@imtbl/wallet 2.12.6 → 2.12.7-alpha.1
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/README.md +688 -0
- package/dist/browser/index.js +47 -47
- package/dist/node/index.cjs +65 -69
- package/dist/node/index.js +50 -50
- package/dist/types/connectWallet.d.ts +13 -19
- package/dist/types/guardian/index.d.ts +10 -5
- package/dist/types/magic/magicTEESigner.d.ts +3 -4
- package/dist/types/sequence/sequenceProvider.d.ts +4 -4
- package/dist/types/sequence/signer/identityInstrumentSigner.d.ts +2 -2
- package/dist/types/sequence/signer/index.d.ts +5 -4
- package/dist/types/sequence/signer/privateKeySigner.d.ts +2 -2
- package/dist/types/sequence/user/registerUser.d.ts +3 -3
- package/dist/types/types.d.ts +39 -9
- package/dist/types/zkEvm/relayerClient.d.ts +8 -4
- package/dist/types/zkEvm/user/registerZkEvmUser.d.ts +7 -4
- package/dist/types/zkEvm/zkEvmProvider.d.ts +13 -5
- package/package.json +7 -7
- package/src/connectWallet.test.ts +16 -22
- package/src/connectWallet.ts +79 -53
- package/src/guardian/index.ts +40 -25
- package/src/magic/magicTEESigner.ts +8 -6
- package/src/sequence/sequenceProvider.ts +17 -9
- package/src/sequence/signer/identityInstrumentSigner.ts +8 -6
- package/src/sequence/signer/index.ts +8 -12
- package/src/sequence/signer/privateKeySigner.ts +6 -5
- package/src/sequence/user/registerUser.ts +5 -4
- package/src/types.ts +44 -12
- package/src/zkEvm/relayerClient.ts +22 -6
- package/src/zkEvm/user/registerZkEvmUser.ts +16 -5
- package/src/zkEvm/zkEvmProvider.ts +56 -29
package/dist/node/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import * as
|
|
1
|
+
import { isUserZkEvm, TypedEventEmitter, Auth, decodeJwtPayload } from '@imtbl/auth';
|
|
2
|
+
export { TypedEventEmitter, isUserZkEvm } from '@imtbl/auth';
|
|
3
|
+
import * as K6 from '@imtbl/generated-clients';
|
|
4
4
|
import { createConfig, MultiRollupApiClients, mr as mr$1, MagicTeeApiClients } from '@imtbl/generated-clients';
|
|
5
5
|
import { utils, trackError, trackFlow, identify, trackDuration } from '@imtbl/metrics';
|
|
6
6
|
import { parseAbiParameters, zeroAddress, encodeAbiParameters, keccak256, getContract, encodePacked, toBytes, encodeFunctionData, hashTypedData, hashMessage, createPublicClient, http, toHex, getAddress, concat, parseAbi } from 'viem';
|
|
7
7
|
import * as Cr from 'node:crypto';
|
|
8
|
-
import * as
|
|
8
|
+
import * as AV from 'viem/chains';
|
|
9
9
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
10
10
|
|
|
11
|
-
var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enumerable:!0});};var vm=(t=>(t.ZKEVM="zkevm",t.ARBITRUM_ONE="arbitrum_one",t))(vm||{}),
|
|
11
|
+
var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enumerable:!0});};var vm=(t=>(t.ZKEVM="zkevm",t.ARBITRUM_ONE="arbitrum_one",t))(vm||{}),v6=(t=>(t.ACCOUNTS_REQUESTED="accountsRequested",t.LOGGED_OUT="loggedOut",t))(v6||{}),E6=(e=>(e.ACCOUNTS_CHANGED="accountsChanged",e))(E6||{}),_4=(a=>(a.PENDING="PENDING",a.SUBMITTED="SUBMITTED",a.SUCCESSFUL="SUCCESSFUL",a.REVERTED="REVERTED",a.FAILED="FAILED",a.CANCELLED="CANCELLED",a))(_4||{});var R6={};ye(R6,{coerceNonceSpace:()=>B6,digestOfTransactionsAndNonce:()=>P6,encodeMessageSubDigest:()=>Im,encodeNonce:()=>O6,encodedTransactions:()=>Gw,getEip155ChainId:()=>Xt,getNonce:()=>zl,getNormalisedTransactions:()=>Am,packSignatures:()=>Nm,signAndPackTypedData:()=>Kw,signERC191Message:()=>Ww,signMetaTransactions:()=>Cm});var $w={mainModule:{abi:[{type:"function",name:"nonce",constant:!0,inputs:[],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"readNonce",constant:!0,inputs:[{type:"uint256",name:"_space"}],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"execute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],name:"_txs",type:"tuple[]"},{type:"uint256",name:"_nonce"},{type:"bytes",name:"_signature"}],outputs:[],payable:!1,stateMutability:"nonpayable"}]}};var I6=s=>{let e=toBytes(s),t=e[0]<<8|e[1],r=[];for(let n=2;n<e.length;){let i=e[n++],a=e[n++];if(i===0)r.push({unrecovered:!0,weight:a,signature:toHex(e.slice(n,n+66)),isDynamic:!1}),n+=66;else if(i===1)r.push({weight:a,address:getAddress(toHex(e.slice(n,n+20)))}),n+=20;else if(i===2){let o=getAddress(toHex(e.slice(n,n+20)));n+=20;let c=e[n]<<8|e[n+1];n+=2,r.push({unrecovered:!0,weight:a,signature:toHex(e.slice(n,n+c)),address:o,isDynamic:!0}),n+=c;}else throw new Error(`Unknown signature part type: ${i}`)}return {version:1,threshold:t,signers:r}},Fw=s=>{let{signers:e,threshold:t}=s,r=e.map(n=>{let i=Number(n.weight);if(n.address&&n.signature===void 0)return encodePacked(["uint8","uint8","address"],[1,i,n.address]);if(n.signature===void 0)throw new Error("Signature value missing for signer");if(n.isDynamic){let a=toBytes(n.signature),o=n.address?getAddress(n.address):void 0;if(!o)throw new Error("Dynamic signature part must include an address");return encodePacked(["uint8","uint8","address","uint16","bytes"],[2,i,o,a.length,toHex(a)])}return encodePacked(["uint8","uint8","bytes"],[0,i,n.signature])});return encodePacked(["uint16",...new Array(r.length).fill("bytes")],[t,...r])};var N6=1,W4=1,J4=2,T6="02",z4="",k6=parseAbiParameters("(bool delegateCall, bool revertOnError, uint256 gasLimit, address target, uint256 value, bytes data)[]"),Am=s=>s.map(e=>({delegateCall:e.delegateCall===!0,revertOnError:e.revertOnError===!0,gasLimit:e.gasLimit??BigInt(0),target:e.to??zeroAddress,value:e.value??BigInt(0),data:e.data??"0x"})),P6=(s,e)=>{let t=e.map(n=>({delegateCall:n.delegateCall,revertOnError:n.revertOnError,gasLimit:n.gasLimit,target:n.target,value:n.value,data:n.data})),r=encodeAbiParameters([{type:"uint256"},...k6],[s,t]);return keccak256(r)},Gw=s=>{let e=s.map(t=>({delegateCall:t.delegateCall,revertOnError:t.revertOnError,gasLimit:t.gasLimit,target:t.target,value:t.value,data:t.data}));return encodeAbiParameters(k6,[e])},B6=s=>s||0n,O6=(s,e)=>{let t=BigInt(s)*2n**96n;return BigInt(e)+t},zl=async(s,e,t)=>{try{let r=getContract({address:e,abi:$w.mainModule.abi,client:s}),n=B6(t),i=await r.read.readNonce([n]);if(typeof i=="bigint")return O6(n,i);throw new Error("Unexpected result from contract.readNonce() call.")}catch(r){if(r instanceof Error&&(r.message.includes("returned no data")||r.message.includes("execution reverted")||r.message.includes("ContractFunctionExecutionError")))return BigInt(0);throw r}},Im=(s,e,t)=>encodePacked(["string","uint256","address","bytes32"],[z4,s,e,t]),Cm=async(s,e,t,r,n)=>{let i=Am(s),a=P6(e,i),o=Im(t,r,a),c=keccak256(o),u=toBytes(c),h=`${await n.signMessage(u)}${T6}`,m=Fw({version:1,threshold:W4,signers:[{isDynamic:!1,unrecovered:!0,weight:N6,signature:h}]}),y=i.map(g=>({delegateCall:g.delegateCall,revertOnError:g.revertOnError,gasLimit:g.gasLimit,target:g.target,value:g.value,data:g.data}));return encodeFunctionData({abi:$w.mainModule.abi,functionName:"execute",args:[y,e,m]})},Y4=s=>{let e=`0x0000${s}`;return I6(e)},Nm=(s,e,t)=>{let r=`${s}${T6}`,{signers:n}=Y4(t),a=[...n,{isDynamic:!1,unrecovered:!0,weight:N6,signature:r,address:e}].sort((o,c)=>{let u=BigInt(o.address??0),l=BigInt(c.address??0);return u<=l?-1:u===l?0:1});return Fw({version:1,threshold:J4,signers:a})},Kw=async(s,e,t,r,n)=>{let i={...s.types},{EIP712Domain:a,...o}=i,c=hashTypedData({domain:s.domain,types:o,primaryType:s.primaryType,message:s.message}),u=Im(t,r,c),l=keccak256(u),h=toBytes(l),m=await n.signMessage(h),y=await n.getAddress();return Nm(m,y,e)},Ww=async(s,e,t,r)=>{let n=hashMessage(e),i=Im(s,r,n),a=keccak256(i),o=toBytes(a);return t.signMessage(o)},Xt=s=>`eip155:${s}`;var Yl=class s{config;rpcProvider;getUser;constructor({config:e,rpcProvider:t,getUser:r}){this.config=e,this.rpcProvider=t,this.getUser=r;}static getResponsePreview(e){return e.length>100?`${e.substring(0,50)}...${e.substring(e.length-50)}`:e}async getUserZkEvm(){let e=await this.getUser();if(!e||!isUserZkEvm(e))throw new Error("User not authenticated or missing zkEvm data");return e}async postToRelayer(e){let t={id:1,jsonrpc:"2.0",...e},r=await this.getUserZkEvm(),n=await fetch(`${this.config.relayerUrl}/v1/transactions`,{method:"POST",headers:{Authorization:`Bearer ${r.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify(t)}),i=await n.text();if(!n.ok){let o=s.getResponsePreview(i);throw new Error(`Relayer HTTP error: ${n.status}. Content: "${o}"`)}let a;try{a=JSON.parse(i);}catch(o){let c=s.getResponsePreview(i);throw new Error(`Relayer JSON parse error: ${o instanceof Error?o.message:"Unknown error"}. Content: "${c}"`)}if(a.error)throw new Error(a.error);return a}getPreferredFeeTokenSymbol(){return this.config.feeTokenSymbol}async ethSendTransaction(e,t){let r=await this.rpcProvider.getChainId(),n={method:"eth_sendTransaction",params:[{to:e,data:t,chainId:Xt(Number(r))}]},{result:i}=await this.postToRelayer(n);return i}async imGetTransactionByHash(e){let t={method:"im_getTransactionByHash",params:[e]},{result:r}=await this.postToRelayer(t);return r}async imGetFeeOptions(e,t){let r=await this.rpcProvider.getChainId(),n={method:"im_getFeeOptions",params:[{userAddress:e,data:t,chainId:Xt(Number(r))}]},{result:i}=await this.postToRelayer(n);return i}async imSignTypedData(e,t){let r=await this.rpcProvider.getChainId(),n={method:"im_signTypedData",params:[{address:e,eip712Payload:t,chainId:Xt(Number(r))}]},{result:i}=await this.postToRelayer(n);return i}async imSign(e,t){let r=await this.rpcProvider.getChainId(),n={method:"im_sign",params:[{address:e,message:t,chainId:Xt(Number(r))}]},{result:i}=await this.postToRelayer(n);return i}};var Zl=(n=>(n[n.USER_REJECTED_REQUEST=4001]="USER_REJECTED_REQUEST",n[n.UNAUTHORIZED=4100]="UNAUTHORIZED",n[n.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD",n[n.DISCONNECTED=4900]="DISCONNECTED",n))(Zl||{}),Ls=(o=>(o[o.RPC_SERVER_ERROR=-32e3]="RPC_SERVER_ERROR",o[o.INVALID_REQUEST=-32600]="INVALID_REQUEST",o[o.METHOD_NOT_FOUND=-32601]="METHOD_NOT_FOUND",o[o.INVALID_PARAMS=-32602]="INVALID_PARAMS",o[o.INTERNAL_ERROR=-32603]="INTERNAL_ERROR",o[o.PARSE_ERROR=-32700]="PARSE_ERROR",o[o.TRANSACTION_REJECTED=-32003]="TRANSACTION_REJECTED",o))(Ls||{}),ne=class extends Error{message;code;constructor(e,t){super(t),this.message=t,this.code=e;}};function X4(s){return s.startsWith("0x")?s:`0x${s}`}function Q4(s){return s.startsWith("0x")?s.slice(2):s}function Jw(s,e){return s.padStart(e,"0")}function ek(s){let e=Jw(s.r.toString(16),64),t=Jw(s.s.toString(16),64),r=Jw(s.recoveryParam?.toString(16)||"",2);return X4(e+t+r)}function tk(s){if(!s.trim())return;let e=parseInt(s,16);return e>=27?e-27:e}function sk(s,e=64){let t=Q4(s);return {r:BigInt(`0x${t.substring(0,e)}`),s:BigInt(`0x${t.substring(e,e*2)}`),recoveryParam:tk(t.substring(e*2,e*2+2))}}async function V6(s,e){let t=await e.signMessage(s),r=sk(t);return ek(r)}var rk="Only sign this message from Immutable Passport";async function D6({getUser:s,ethSigner:e,multiRollupApiClients:t,accessToken:r,rpcProvider:n,flow:i}){let a=e.getAddress();a.then(()=>i.addEvent("endGetAddress"));let o=V6(rk,e);o.then(()=>i.addEvent("endSignRaw"));let c=n.getChainId();c.then(()=>i.addEvent("endDetectNetwork"));let u=t.chainsApi.listChains();u.then(()=>i.addEvent("endListChains"));let[l,h,m,y]=await Promise.all([a,o,c,u]),g=Xt(Number(m)),w=y.data?.result?.find(S=>S.id===g)?.name;if(!w)throw new ne(-32603,`Chain name does not exist on for chain id ${m}`);try{let S=await t.passportApi.createCounterfactualAddressV2({chainName:w,createCounterfactualAddressRequest:{ethereum_address:l,ethereum_signature:h}},{headers:{Authorization:`Bearer ${r}`}});return i.addEvent("endCreateCounterfactualAddress"),s&&s().catch(()=>{}),S.data.counterfactual_address}catch(S){throw new ne(-32603,`Failed to create counterfactual address: ${S}`)}}var Xl="imx_passport_confirmation";var Tm=({url:s,title:e,width:t,height:r})=>{let n=Math.max(0,Math.round(window.screenX+(window.outerWidth-t)/2)),i=Math.max(0,Math.round(window.screenY+(window.outerHeight-r)/2)),a=window.open(s,e,`
|
|
12
12
|
scrollbars=yes,
|
|
13
13
|
width=${t},
|
|
14
14
|
height=${r},
|
|
15
15
|
top=${i},
|
|
16
16
|
left=${n}
|
|
17
|
-
`);if(!a)throw new Error("Failed to open confirmation screen");return a.focus(),a};var Ql="passport-overlay",
|
|
17
|
+
`);if(!a)throw new Error("Failed to open confirmation screen");return a.focus(),a};var Ql="passport-overlay",L6="passport-overlay-contents",km=`${Ql}-close`,Pm=`${Ql}-try-again`,U6=`
|
|
18
18
|
<svg
|
|
19
19
|
viewBox="0 0 20 20"
|
|
20
20
|
fill="none"
|
|
@@ -26,7 +26,7 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
26
26
|
fill="#F3F3F3"
|
|
27
27
|
/>
|
|
28
28
|
</svg>
|
|
29
|
-
`,
|
|
29
|
+
`,H6=`
|
|
30
30
|
<svg
|
|
31
31
|
viewBox="0 0 17 16"
|
|
32
32
|
fill="none"
|
|
@@ -40,7 +40,7 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
40
40
|
fill="#E01A3D"
|
|
41
41
|
/>
|
|
42
42
|
</svg>
|
|
43
|
-
`,
|
|
43
|
+
`,zw=`
|
|
44
44
|
<svg
|
|
45
45
|
style="
|
|
46
46
|
max-width: 123px !important;
|
|
@@ -223,7 +223,7 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
223
223
|
</clipPath>
|
|
224
224
|
</defs>
|
|
225
225
|
</svg>
|
|
226
|
-
`;var
|
|
226
|
+
`;var nk=()=>`
|
|
227
227
|
<button
|
|
228
228
|
id="${km}"
|
|
229
229
|
style="
|
|
@@ -241,9 +241,9 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
241
241
|
justify-content: center !important;
|
|
242
242
|
"
|
|
243
243
|
>
|
|
244
|
-
${
|
|
244
|
+
${U6}
|
|
245
245
|
</button>
|
|
246
|
-
`,
|
|
246
|
+
`,_6=()=>`
|
|
247
247
|
<button
|
|
248
248
|
id="${Pm}"
|
|
249
249
|
style="
|
|
@@ -260,8 +260,8 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
260
260
|
>
|
|
261
261
|
Try again
|
|
262
262
|
</button>
|
|
263
|
-
`,
|
|
264
|
-
${
|
|
263
|
+
`,ik=()=>`
|
|
264
|
+
${zw}
|
|
265
265
|
<div
|
|
266
266
|
style="
|
|
267
267
|
color: #e01a3d !important;
|
|
@@ -271,7 +271,7 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
271
271
|
margin-bottom: 10px !important;
|
|
272
272
|
"
|
|
273
273
|
>
|
|
274
|
-
${
|
|
274
|
+
${H6}
|
|
275
275
|
Pop-up blocked
|
|
276
276
|
</div>
|
|
277
277
|
<p style="
|
|
@@ -284,9 +284,9 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
284
284
|
If the problem continues, adjust your<br />
|
|
285
285
|
browser settings.
|
|
286
286
|
</p>
|
|
287
|
-
${
|
|
288
|
-
`,
|
|
289
|
-
${
|
|
287
|
+
${_6()}
|
|
288
|
+
`,ak=()=>`
|
|
289
|
+
${zw}
|
|
290
290
|
<p style="
|
|
291
291
|
color: #b6b6b6 !important;
|
|
292
292
|
text-align: center !important;
|
|
@@ -295,8 +295,8 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
295
295
|
>
|
|
296
296
|
Secure pop-up not showing?<br />We'll help you re-launch
|
|
297
297
|
</p>
|
|
298
|
-
${
|
|
299
|
-
`,
|
|
298
|
+
${_6()}
|
|
299
|
+
`,j6=s=>`
|
|
300
300
|
<div
|
|
301
301
|
id="${Ql}"
|
|
302
302
|
style="
|
|
@@ -321,9 +321,9 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
321
321
|
z-index: 2147483647 !important;
|
|
322
322
|
"
|
|
323
323
|
>
|
|
324
|
-
${
|
|
324
|
+
${nk()}
|
|
325
325
|
<div
|
|
326
|
-
id="${
|
|
326
|
+
id="${L6}"
|
|
327
327
|
style="
|
|
328
328
|
display: flex !important;
|
|
329
329
|
flex-direction: column !important;
|
|
@@ -334,46 +334,46 @@ var H4=Object.defineProperty;var ye=(s,e)=>{for(var t in e)H4(s,t,{get:e[t],enum
|
|
|
334
334
|
${s??""}
|
|
335
335
|
</div>
|
|
336
336
|
</div>
|
|
337
|
-
`;function Bm({id:s,href:e,rel:t,crossOrigin:r}){let n=`${Ql}-${s}`;if(!document.getElementById(n)){let i=document.createElement("link");i.id=n,i.href=e,t&&(i.rel=t),r&&(i.crossOrigin=r),document.head.appendChild(i);}}var $6=()=>M6(nk()),q6=()=>M6(ik());var uc=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){Bm({id:"link-googleapis",href:"https://fonts.googleapis.com"}),Bm({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),Bm({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?$6():q6(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(Pm);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(km);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};var lc=(s=>(s.PRODUCTION="production",s.SANDBOX="sandbox",s))(lc||{}),ak=(s=>(s.API_KEY="x-immutable-api-key",s.PUBLISHABLE_KEY="x-immutable-publishable-key",s.RATE_LIMITING_KEY="x-api-key",s))(ak||{});var ef=13371,Xi=13473,Xw=42161,Qw=421614,eb=11155111,Cn={13371:{magicPublishableApiKey:"pk_live_10F423798A540ED7",magicProviderId:"aa80b860-8869-4f13-9000-6a6ad3d20017"},13473:{magicPublishableApiKey:"pk_live_10F423798A540ED7",magicProviderId:"aa80b860-8869-4f13-9000-6a6ad3d20017"}};var tf={chainId:13371,name:"Immutable zkEVM",rpcUrl:"https://rpc.immutable.com",relayerUrl:"https://api.immutable.com/relayer-mr",apiUrl:"https://api.immutable.com",passportDomain:"https://passport.immutable.com",magicPublishableApiKey:Cn[13371].magicPublishableApiKey,magicProviderId:Cn[13371].magicProviderId,magicTeeBasePath:"https://tee.express.magiclabs.com"},sf={chainId:13473,name:"Immutable zkEVM Testnet",rpcUrl:"https://rpc.testnet.immutable.com",relayerUrl:"https://api.sandbox.immutable.com/relayer-mr",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",magicPublishableApiKey:Cn[13473].magicPublishableApiKey,magicProviderId:Cn[13473].magicProviderId,magicTeeBasePath:"https://tee.express.magiclabs.com"},Om={chainId:42161,name:"Arbitrum One",rpcUrl:"https://arb1.arbitrum.io/rpc",relayerUrl:"https://next-arbitrum-one-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/arbitrum-one",apiUrl:"https://api.immutable.com",passportDomain:"https://passport.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence.app"},F6={chainId:421614,name:"Arbitrum Sepolia",rpcUrl:"https://sepolia-rollup.arbitrum.io/rpc",relayerUrl:"https://next-arbitrum-sepolia-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/arbitrum-sepolia",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence-dev.app"},Rm={chainId:11155111,name:"Ethereum Sepolia",rpcUrl:"https://rpc.sepolia.org",relayerUrl:"https://next-sepolia-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/sepolia",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence-dev.app"},Vm=[sf,tf],ok={chains:[tf]},ck={chains:[sf]},uk={chains:Vm},lk={chains:[Om]},fk={chains:[F6]},hk={chains:[Rm]};var K6={zkevm:{[lc.PRODUCTION]:tf,[lc.SANDBOX]:sf},arbitrum_one:{[lc.PRODUCTION]:Om,[lc.SANDBOX]:Rm}};function mk(){let s={};for(let[e,t]of Object.entries(K6))for(let r of Object.values(t))s[r.chainId]=e;return s[15003]="zkevm",s}var pk=mk();function gk(s,e){let t=K6[s];if(!t)throw new Error(`Chain ${s} is not supported`);let r=t[e];if(!r)throw new Error(`Chain ${s} is not configured for environment ${e}`);return r}function fc(s){let e=typeof s=="string"?parseInt(s.includes(":")?s.split(":")[1]:s,10):s;return pk[e]??"zkevm"}var tb="Confirm this transaction",sb=720,rb=480,G6=1e3;var hc=class{config;confirmationWindow;popupOptions;overlay;overlayClosed;timer;constructor(e){this.config=e,this.overlayClosed=!1;}getHref(e,t){let r=`${this.config.passportDomain}/transaction-confirmation/${e}`;if(t){let n=t?Object.keys(t).map(i=>`${i}=${t[i]}`).join("&"):"";r=`${r}?${n}`;}return r}requestConfirmation(e,t,r,n){return new Promise((i,a)=>{let o=({data:u,origin:l})=>{if(!(l!==this.config.passportDomain||u.eventType!==Xl))switch(u.messageType){case"confirmation_window_ready":{this.confirmationWindow?.postMessage({eventType:Xl,messageType:"confirmation_start"},this.config.passportDomain);break}case"transaction_confirmed":{this.closeWindow(),i({confirmed:!0});break}case"transaction_rejected":{this.closeWindow(),i({confirmed:!1});break}case"transaction_error":{this.closeWindow(),a(new Error("Error during transaction confirmation"));break}default:this.closeWindow(),a(new Error("Unsupported message type"));}},c="";if(r===W6.mr.TransactionApprovalRequestChainTypeEnum.Starkex)c=this.getHref("transaction",{transactionId:e,etherAddress:t,chainType:r});else {let l=(n?fc(n):"zkevm").replace("_","-");c=this.getHref(`${l}/transaction`,{transactionID:e,etherAddress:t,chainType:r,chainID:n});}window.addEventListener("message",o),this.showConfirmationScreen(c,o,i);})}requestMessageConfirmation(e,t,r,n){return new Promise((i,a)=>{let o=({data:h,origin:m})=>{if(!(m!==this.config.passportDomain||h.eventType!==Xl))switch(h.messageType){case"confirmation_window_ready":{this.confirmationWindow?.postMessage({eventType:Xl,messageType:"confirmation_start"},this.config.passportDomain);break}case"message_confirmed":{this.closeWindow(),i({confirmed:!0});break}case"message_rejected":{this.closeWindow(),i({confirmed:!1});break}case"message_error":{this.closeWindow(),a(new Error("Error during message confirmation"));break}default:this.closeWindow(),a(new Error("Unsupported message type"));}};window.addEventListener("message",o);let u=fc(n).replace("_","-"),l=this.getHref(`${u}/message`,{messageID:e,etherAddress:t,chainID:n,messageType:r});this.showConfirmationScreen(l,o,i);})}showServiceUnavailable(){return new Promise((e,t)=>{this.showConfirmationScreen(this.getHref("unavailable"),()=>{},()=>{this.closeWindow(),t(new Error("Service unavailable"));});})}loading(e){if(!this.config.crossSdkBridgeEnabled){this.popupOptions=e;try{this.confirmationWindow=Tm({url:this.getHref("loading"),title:tb,width:e?.width||rb,height:e?.height||sb}),this.overlay=new uc(this.config.popupOverlayOptions||{});}catch(t){let r=t instanceof Error?t.message:String(t);trackError("passport","confirmationPopupDenied",new Error(r)),this.overlay=new uc(this.config.popupOverlayOptions||{},!0);}this.overlay.append(()=>{try{this.confirmationWindow?.close(),this.confirmationWindow=Tm({url:this.getHref("loading"),title:tb,width:this.popupOptions?.width||rb,height:this.popupOptions?.height||sb});}catch{}},()=>{this.overlayClosed=!0,this.closeWindow();});}}closeWindow(){this.confirmationWindow?.close(),this.overlay?.remove(),this.overlay=void 0;}showConfirmationScreen(e,t,r){if(this.confirmationWindow&&(this.confirmationWindow.location.href=e),!this.overlay){this.overlayClosed=!1,r({confirmed:!1});return}let n=()=>{(this.confirmationWindow?.closed||this.overlayClosed)&&(clearInterval(this.timer),window.removeEventListener("message",t),r({confirmed:!1}),this.overlayClosed=!1,this.confirmationWindow=void 0);};this.timer=setInterval(n,G6),this.overlay.update(()=>this.recreateConfirmationWindow(e,n));}recreateConfirmationWindow(e,t){try{clearInterval(this.timer),this.confirmationWindow?.close(),this.confirmationWindow=Tm({url:e,title:tb,width:this.popupOptions?.width||rb,height:this.popupOptions?.height||sb}),this.timer=setInterval(t,G6);}catch{}}};var Qi=(o=>(o.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",o.TRANSACTION_REJECTED="TRANSACTION_REJECTED",o.INVALID_CONFIGURATION="INVALID_CONFIGURATION",o.UNAUTHORIZED="UNAUTHORIZED",o.GUARDIAN_ERROR="GUARDIAN_ERROR",o.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR",o.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",o))(Qi||{}),Qe=class extends Error{type;constructor(e,t){super(e),this.name="WalletError",this.type=t;}};var ea=s=>typeof s=="object"&&s!==null&&"isAxiosError"in s;var nb="Transaction requires confirmation but this functionality is not supported in this environment. Please contact Immutable support if you need to enable this feature.",Dm=s=>BigInt(s).toString(),bk=s=>{try{return s.map(e=>({delegateCall:e.delegateCall===!0,revertOnError:e.revertOnError===!0,gasLimit:e.gasLimit?Dm(e.gasLimit):"0",target:e.to??zeroAddress,value:e.value?Dm(e.value):"0",data:e.data?e.data.toString():"0x"}))}catch(e){let t=e instanceof Error?e.message:String(e);throw new ie(-32602,`Transaction failed to parsing: ${t}`)}},dc=class{guardianApi;confirmationScreen;crossSdkBridgeEnabled;auth;constructor({config:e,auth:t,guardianApi:r,authConfig:n}){this.confirmationScreen=new hc(n),this.crossSdkBridgeEnabled=e.crossSdkBridgeEnabled,this.guardianApi=r,this.auth=t;}withConfirmationScreen(e){return t=>this.withConfirmationScreenTask(e)(t)()}withConfirmationScreenTask(e){return t=>async()=>{this.confirmationScreen.loading(e);try{return await t()}catch(r){throw r instanceof Qe&&r.type==="SERVICE_UNAVAILABLE_ERROR"?(await this.confirmationScreen.showServiceUnavailable(),r):(this.confirmationScreen.closeWindow(),r)}}}withDefaultConfirmationScreenTask(e){return this.withConfirmationScreenTask()(e)}async evaluateEVMTransaction({chainId:e,nonce:t,metaTransactions:r}){let n=await this.auth.getUserZkEvm(),i={Authorization:`Bearer ${n.accessToken}`},a=bk(r);try{return (await this.guardianApi.evaluateTransaction({id:"evm",transactionEvaluationRequest:{chainType:"evm",chainId:e,transactionData:{nonce:t,userAddress:n.zkEvm.ethAddress,metaTransactions:a}}},{headers:i})).data}catch(o){if(ea(o)&&o.response?.status===403)throw new Qe("Service unavailable","SERVICE_UNAVAILABLE_ERROR");let c=o instanceof Error?o.message:String(o);throw new ie(-32603,`Transaction failed to validate with error: ${c}`)}}async validateEVMTransaction({chainId:e,nonce:t,metaTransactions:r,isBackgroundTransaction:n}){let i=await this.evaluateEVMTransaction({chainId:e,nonce:t,metaTransactions:r}),{confirmationRequired:a,transactionId:o}=i;if(a&&this.crossSdkBridgeEnabled)throw new ie(-32003,nb);if(a&&o){let c=await this.auth.getUserZkEvm();if(!(await this.confirmationScreen.requestConfirmation(o,c.zkEvm.ethAddress,W6.mr.TransactionApprovalRequestChainTypeEnum.Evm,e)).confirmed)throw new ie(-32003,"Transaction rejected by user")}else n||this.confirmationScreen.closeWindow();}async handleEIP712MessageEvaluation({chainID:e,payload:t}){try{let r=await this.auth.getUserZkEvm();if(r===null)throw new ie(4100,"User not logged in. Please log in first.");return (await this.guardianApi.evaluateMessage({messageEvaluationRequest:{chainID:e,payload:t}},{headers:{Authorization:`Bearer ${r.accessToken}`}})).data}catch(r){let n=r instanceof Error?r.message:String(r);throw new ie(-32603,`Message failed to validate with error: ${n}`)}}async evaluateEIP712Message({chainID:e,payload:t}){let{messageId:r,confirmationRequired:n}=await this.handleEIP712MessageEvaluation({chainID:e,payload:t});if(n&&this.crossSdkBridgeEnabled)throw new ie(-32003,nb);if(n&&r){let i=await this.auth.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(r,i.zkEvm.ethAddress,"eip712",e)).confirmed)throw new ie(-32003,"Signature rejected by user")}else this.confirmationScreen.closeWindow();}async handleERC191MessageEvaluation({chainID:e,payload:t}){try{let r=await this.auth.getUserZkEvm();if(r===null)throw new ie(4100,"User not logged in. Please log in first.");return (await this.guardianApi.evaluateErc191Message({eRC191MessageEvaluationRequest:{chainID:Xt(Number(e)),payload:t}},{headers:{Authorization:`Bearer ${r.accessToken}`}})).data}catch(r){let n=r instanceof Error?r.message:String(r);throw new ie(-32603,`Message failed to validate with error: ${n}`)}}async evaluateERC191Message({chainID:e,payload:t}){let{messageId:r,confirmationRequired:n}=await this.handleERC191MessageEvaluation({chainID:e,payload:t});if(n&&this.crossSdkBridgeEnabled)throw new ie(-32003,nb);if(n&&r){let i=await this.auth.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(r,i.zkEvm.ethAddress,"erc191",String(e))).confirmed)throw new ie(-32003,"Signature rejected by user")}else this.confirmationScreen.closeWindow();}};var Sk=s=>new Promise(e=>{setTimeout(()=>e(),s);}),Lm=async(s,e)=>{let{retries:t=3,interval:r=1e3,finalErr:n=Error("Retry failed"),finallyFn:i=()=>{}}=e||{};try{return await s()}catch{return t<=0?Promise.reject(n):(await Sk(r),Lm(s,{retries:t-1,finalErr:n,finallyFn:i}))}finally{t<=0&&i();}};var vk=30,Ek=1e3,xk=async(s,e,t)=>{let r=Am([s]),n=Ww(r),i=await t.imGetFeeOptions(e,n);if(!i||!Array.isArray(i))throw new Error("Invalid fee options received from relayer");let a=t.getPreferredFeeTokenSymbol(),o=i.find(c=>c.tokenSymbol===a);if(!o)throw new Error(`Failed to retrieve fees for ${a} token`);return o},Ak=async(s,e,t,r,n)=>{if(!s.to)throw new ie(-32602,'eth_sendTransaction requires a "to" field');let i={to:s.to.toString(),data:s.data,nonce:BigInt(0),value:s.value,revertOnError:!0},[a,o]=await Promise.all([zl(e,r,n),xk(i,r,t)]),c=[{...i,nonce:a}],u=BigInt(o.tokenPrice);return u!==BigInt(0)&&c.push({nonce:a,to:o.recipientAddress,value:u,revertOnError:!0}),c},Um=async(s,e,t)=>{let n=await Lm(async()=>{let i=await s.imGetTransactionByHash(e);if(i.status==="PENDING")throw new Error;return i},{retries:vk,interval:Ek,finalErr:new ie(-32e3,"transaction hash not generated in time")});if(t.addEvent("endRetrieveRelayerTransaction"),!["SUBMITTED","SUCCESSFUL"].includes(n.status)){let i=`Transaction failed to submit with status ${n.status}.`;throw n.statusMessage&&(i+=` Error message: ${n.statusMessage}`),new ie(-32e3,i)}return n},Hm=async({transactionRequest:s,ethSigner:e,rpcProvider:t,guardianClient:r,relayerClient:n,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c})=>{let u=await t.getChainId(),l=BigInt(u);a.addEvent("endDetectNetwork");let h=await Ak(s,t,n,i,o);a.addEvent("endBuildMetaTransactions");let{nonce:m}=h[0];if(typeof m>"u")throw new Error("Failed to retrieve nonce from the smart wallet");let y=async()=>{await r.validateEVMTransaction({chainId:Xt(Number(u)),nonce:Dm(m),metaTransactions:h,isBackgroundTransaction:c}),a.addEvent("endValidateEVMTransaction");},g=async()=>{let C=await Cm(h,m,l,i,e);return a.addEvent("endGetSignedMetaTransactions"),C},[,w]=await Promise.all([y(),g()]),b=await n.ethSendTransaction(i,w);return a.addEvent("endRelayerSendTransaction"),{signedTransactions:w,relayerId:b,nonce:m}},Ik=async s=>{if(!s.to)throw new ie(-32602,'im_signEjectionTransaction requires a "to" field');if(typeof s.nonce>"u")throw new ie(-32602,'im_signEjectionTransaction requires a "nonce" field');if(!s.chainId)throw new ie(-32602,'im_signEjectionTransaction requires a "chainId" field');return [{to:s.to.toString(),data:s.data,nonce:s.nonce??void 0,value:s.value,revertOnError:!0}]},z6=async({transactionRequest:s,ethSigner:e,zkEvmAddress:t,flow:r})=>{let n=await Ik(s);r.addEvent("endBuildMetaTransactions");let i=await Cm(n,s.nonce,BigInt(s.chainId??0),t,e);return r.addEvent("endGetSignedMetaTransactions"),{to:t,data:i,chainId:Xt(Number(s.chainId??0))}};var ib=async({params:s,ethSigner:e,rpcProvider:t,relayerClient:r,guardianClient:n,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c=!1})=>{let u=s[0],{relayerId:l}=await Hm({transactionRequest:u,ethSigner:e,rpcProvider:t,guardianClient:n,relayerClient:r,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c}),{hash:h}=await Um(r,l,a);return h};var Y6=["types","domain","primaryType","message"],Ck=s=>Y6.every(e=>e in s),Nk=(s,e)=>{let t;if(typeof s=="string")try{t=JSON.parse(s);}catch(n){throw new ie(-32602,`Failed to parse typed data JSON: ${n}`)}else if(typeof s=="object")t=s;else throw new ie(-32602,`Invalid typed data argument: ${s}`);if(!Ck(t))throw new ie(-32602,`Invalid typed data argument. The following properties are required: ${Y6.join(", ")}`);let r=t.domain?.chainId;if(r){let n;if(typeof r=="string"?r.startsWith("0x")?n=parseInt(r,16):n=parseInt(r,10):n=Number(r),t.domain.chainId=n,BigInt(n)!==e)throw new ie(-32602,`Invalid chainId, expected ${e}`)}return t},Z6=async({params:s,method:e,ethSigner:t,rpcProvider:r,relayerClient:n,guardianClient:i,flow:a})=>{let o=s[0],c=s[1];if(!o||!c)throw new ie(-32602,`${e} requires an address and a typed data JSON`);let u=await r.getChainId(),l=Nk(c,BigInt(u));a.addEvent("endDetectNetwork"),await i.evaluateEIP712Message({chainID:String(u),payload:l}),a.addEvent("endValidateMessage");let h=await n.imSignTypedData(o,l);a.addEvent("endRelayerSignTypedData");let m=await Jw(l,h,BigInt(u),o,t);return a.addEvent("getSignedTypedData"),m};var kk=s=>{let e=0;for(;e<s.length&&s[e]===0;)e++;return s.slice(e)},Pk=s=>{if(typeof TextDecoder<"u")return new TextDecoder("utf-8").decode(s);let e="";for(let t=0;t<s.length;t++)e+=String.fromCharCode(s[t]);return decodeURIComponent(escape(e))},X6=s=>{if(!s)return s;try{let e=toBytes(s),t=kk(e);return Pk(t)}catch{return s}};var _m=async({params:s,ethSigner:e,zkEvmAddress:t,rpcProvider:r,guardianClient:n,relayerClient:i,flow:a})=>{let o=s[0],c=s[1];if(!c||!o)throw new ie(-32602,"personal_sign requires an address and a message");if(c.toLowerCase()!==t.toLowerCase())throw new ie(-32602,"personal_sign requires the signer to be the from address");let u=X6(o),l=await r.getChainId();a.addEvent("endDetectNetwork");let h=BigInt(l),m=zw(h,u,e,c);m.then(()=>a.addEvent("endEOASignature")),await n.evaluateERC191Message({chainID:h,payload:u}),a.addEvent("endEvaluateERC191Message");let[y,g]=await Promise.all([m,i.imSign(c,u)]);a.addEvent("endRelayerSign");let w=await e.getAddress();return a.addEvent("endGetEOAAddress"),Nm(y,w,g)};var Bk="/v1/sdk/session-activity/check",jm,Q6=s=>{jm||(jm=s);},Ok=s=>{let e=new URL(Bk,jm);return Object.entries(s).forEach(([t,r])=>{r!=null&&e.searchParams.append(t,String(r));}),e.toString()};async function e5(s){if(!jm)throw new Error("Client not initialised");let e=await fetch(Ok(s));if(e.status!==404){if(!e.ok)throw new Error(`Session activity request failed with status ${e.status}`);return e.json()}}function s5(s,e){return (...t)=>{try{let r=s(...t);return r instanceof Promise?r.catch(n=>(n instanceof Error&&trackError("passport","sessionActivityError",n),e)):r}catch(r){return r instanceof Error&&trackError("passport","sessionActivityError",r),e}}}var{getItem:r5,setItem:ab}=utils.localStorage,ob="sessionActivitySendCount",n5="sessionActivityDate",cb={},Nn={},Mm={},i5=()=>{Nn=r5(ob)||{};let s=r5(n5),e=new Date,t=e.getFullYear(),r=`${e.getMonth()+1}`.padStart(2,"0"),n=`${e.getDate()}`.padStart(2,"0"),i=`${t}-${r}-${n}`;(!s||s!==i)&&(Nn={}),ab(n5,i),ab(ob,Nn);};i5();var Hk=s=>{i5(),Nn[s]||(Nn[s]=0),Nn[s]++,ab(ob,Nn),cb[s]=0;},_k=async s=>new Promise(e=>{setTimeout(e,s*1e3);}),jk=async s=>{let e=s.flow||trackFlow("passport","sendSessionActivity"),t=s.passportClient;if(!t)throw e.addEvent("No Passport Client ID"),new Error("No Passport Client ID provided");if(Mm[t])return;Mm[t]=!0;let{sendTransaction:r,sessionActivityApiUrl:n}=s;if(!r)throw new Error("No sendTransaction function provided");if(!n)throw new Error("No session activity API URL provided");Q6(n);let i=s.walletAddress;if(!i)throw e.addEvent("No Passport Wallet Address"),new Error("No wallet address");let a;try{if(a=await e5({clientId:t,wallet:i,checkCount:cb[t]||0,sendCount:Nn[t]||0}),cb[t]++,!a)return}catch(o){throw e.addEvent("Failed to fetch details"),new Error("Failed to get details",{cause:o})}if(a&&a.contractAddress&&a.functionName){let o=parseAbi([`function ${a.functionName}()`]),c=encodeFunctionData({abi:o,functionName:a.functionName}),u=a.contractAddress;try{e.addEvent("Start Sending Transaction");let l=await s.sendTransaction([{to:u,from:i,data:c}],e);Hk(t),e.addEvent("Transaction Sent",{tx:l});}catch(l){e.addEvent("Failed to send Transaction");let h=new Error("Failed to send transaction",{cause:l});trackError("passport","sessionActivityError",h,{flowId:e.details.flowId});}}a&&a.delay&&a.delay>0&&(e.addEvent("Delaying Transaction",{delay:a.delay}),await _k(a.delay),setTimeout(()=>{e.addEvent("Retrying after Delay"),Mm[t]=!1,a5({...s,flow:e});},0));},a5=s=>s5(jk)(s).then(()=>{Mm[s.passportClient]=!1;}),o5=a5;var c5=async({params:s,ethSigner:e,rpcProvider:t,relayerClient:r,guardianClient:n,zkEvmAddress:i,flow:a})=>{let o={to:i,value:0n},{relayerId:c}=await Hm({transactionRequest:o,ethSigner:e,rpcProvider:t,guardianClient:n,relayerClient:r,zkEvmAddress:i,flow:a});return n.withConfirmationScreen()(async()=>{let u=await _m({params:s,ethSigner:e,zkEvmAddress:i,rpcProvider:t,guardianClient:n,relayerClient:r,flow:a});return await Um(r,c,a),u})};var u5=async({params:s,ethSigner:e,zkEvmAddress:t,flow:r})=>{if(!s||s.length!==1)throw new ie(-32602,"im_signEjectionTransaction requires a singular param (hash)");let n=s[0];return await z6({transactionRequest:n,ethSigner:e,zkEvmAddress:t,flow:r})};var $m=s=>"zkEvm"in s,af=class{#e;#s;#r;#t;#a;#i;#n;#u;#c;#o;isPassport=!0;constructor({auth:e,config:t,multiRollupApiClients:r,passportEventEmitter:n,guardianClient:i,ethSigner:a,user:o,sessionActivityApiUrl:c}){this.#e=e,this.#s=t,this.#i=i,this.#a=n,this.#r=c,this.#o=a,this.#n=createPublicClient({transport:http(this.#s.zkEvmRpcUrl)}),this.#c=new Yl({config:this.#s,rpcProvider:this.#n,auth:this.#e}),this.#u=r,this.#t=new TypedEventEmitter,o&&$m(o)&&this.#f(o.zkEvm.ethAddress),n.on(AuthEvents.LOGGED_IN,u=>{$m(u)&&this.#f(u.zkEvm.ethAddress);}),n.on(AuthEvents.LOGGED_OUT,this.#h),n.on("accountsRequested",o5);}#h=()=>{this.#t.emit("accountsChanged",[]);};async#f(e,t){if(!this.#r)return;let r=BigInt(1),n=async(i,a)=>await ib({params:i,ethSigner:this.#o,guardianClient:this.#i,rpcProvider:this.#n,relayerClient:this.#c,zkEvmAddress:e,flow:a,nonceSpace:r,isBackgroundTransaction:!0});this.#a.emit("accountsRequested",{sessionActivityApiUrl:this.#r,sendTransaction:n,walletAddress:e,passportClient:t||await this.#e.getClientId()});}async#l(){try{let e=await this.#e.getUser();return e&&$m(e)?e.zkEvm.ethAddress:void 0}catch{return}}async#d(e){switch(e.method){case"eth_requestAccounts":{let t=await this.#l();if(t)return [t];let r=trackFlow("passport","ethRequestAccounts");try{let n=await this.#e.getUserOrLogin();r.addEvent("endGetUserOrLogin");let i;return $m(n)?i=n.zkEvm.ethAddress:(r.addEvent("startUserRegistration"),i=await L6({ethSigner:this.#o,auth:this.#e,multiRollupApiClients:this.#u,accessToken:n.accessToken,rpcProvider:this.#n,flow:r}),r.addEvent("endUserRegistration")),this.#t.emit("accountsChanged",[i]),identify({passportId:n.profile.sub}),this.#f(i),[i]}catch(n){throw n instanceof Error?trackError("passport","ethRequestAccounts",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_sendTransaction":{let t=await this.#l();if(!t)throw new ie(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","ethSendTransaction");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>await ib({params:e.params||[],ethSigner:this.#o,guardianClient:this.#i,rpcProvider:this.#n,relayerClient:this.#c,zkEvmAddress:t,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","eth_sendTransaction",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_accounts":{let t=await this.#l();return t?[t]:[]}case"personal_sign":{let t=await this.#l();if(!t)throw new ie(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","personalSign");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>this.#s.forceScwDeployBeforeMessageSignature&&!(await zl(this.#n,t)>BigInt(0))?await c5({params:e.params||[],zkEvmAddress:t,ethSigner:this.#o,rpcProvider:this.#n,guardianClient:this.#i,relayerClient:this.#c,flow:r}):await _m({params:e.params||[],zkEvmAddress:t,ethSigner:this.#o,rpcProvider:this.#n,guardianClient:this.#i,relayerClient:this.#c,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","personal_sign",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_signTypedData":case"eth_signTypedData_v4":{if(!await this.#l())throw new ie(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","ethSignTypedDataV4");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>await Z6({method:e.method,params:e.params||[],ethSigner:this.#o,rpcProvider:this.#n,relayerClient:this.#c,guardianClient:this.#i,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","eth_signTypedData",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_chainId":{let t=await this.#n.getChainId();return toHex(t)}case"eth_getBalance":case"eth_getCode":case"eth_getTransactionCount":{let[t,r]=e.params||[];return this.#n.request({method:e.method,params:[t,r||"latest"]})}case"eth_getStorageAt":{let[t,r,n]=e.params||[];return this.#n.request({method:"eth_getStorageAt",params:[t,r,n||"latest"]})}case"eth_call":case"eth_estimateGas":{let[t,r]=e.params||[];return this.#n.request({method:e.method,params:[t,r||"latest"]})}case"eth_gasPrice":case"eth_blockNumber":case"eth_getBlockByHash":case"eth_getBlockByNumber":case"eth_getTransactionByHash":case"eth_getTransactionReceipt":return this.#n.request({method:e.method,params:e.params||[]});case"im_signEjectionTransaction":{let t=await this.#l();if(!t)throw new ie(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","imSignEjectionTransaction");try{return await u5({params:e.params||[],ethSigner:this.#o,zkEvmAddress:t,flow:r})}catch(n){throw n instanceof Error?trackError("passport","imSignEjectionTransaction",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"im_addSessionActivity":{let[t]=e.params||[],r=await this.#l();return r&&this.#f(r,t),null}default:throw new ie(4200,"Method not supported")}}async request(e){try{return this.#d(e)}catch(t){throw t instanceof ie?t:t instanceof Error?new ie(-32603,t.message):new ie(-32603,"Internal error")}}on(e,t){this.#t.on(e,t);}removeListener(e,t){this.#t.removeListener(e,t);}};var Gk="Only sign this message from Immutable Passport";function Wk(s){let e=s.startsWith("0x")?s.slice(2):s,t=e.substring(0,64),r=e.substring(64,128),n=e.substring(128,130),i=parseInt(n,16),o=(i>=27?i-27:i).toString(16).padStart(2,"0");return `0x${t}${r}${o}`}async function ub({auth:s,ethSigner:e,multiRollupApiClients:t,accessToken:r,rpcProvider:n,flow:i}){let a=e.getAddress();a.then(()=>i.addEvent("endGetAddress"));let o=e.signMessage(Gk).then(Wk);o.then(()=>i.addEvent("endSignRaw"));let c=n.getChainId();c.then(()=>i.addEvent("endDetectNetwork"));let u=t.chainsApi.listChains();u.then(()=>i.addEvent("endListChains"));let[l,h,m,y]=await Promise.all([a,o,c,u]),g=Xt(Number(m)),w=y.data?.result?.find(b=>b.id===g)?.name;if(!w)throw new ie(-32603,`Chain name does not exist for chain id ${m}`);try{let b=await t.passportApi.createCounterfactualAddressV2({chainName:w,createCounterfactualAddressRequest:{ethereum_address:l,ethereum_signature:h}},{headers:{Authorization:`Bearer ${r}`}});return i.addEvent("endCreateCounterfactualAddress"),s.forceUserRefreshInBackground(),b.data.counterfactual_address}catch(b){throw i.addEvent("errorRegisteringUser"),new ie(-32603,`Failed to create counterfactual address: ${b}`)}}function l5(s,e){return e in s&&!!s[e]?.ethAddress}function f5(s,e){return s[e]?.ethAddress}var of=class{#e;#s;#r;#t;#a;#i;#n;#u;isPassport=!0;constructor({auth:e,chainConfig:t,multiRollupApiClients:r,guardianClient:n,ethSigner:i,passportEventEmitter:a}){let o=fc(t.chainId);if(o==="zkevm")throw new Error("SequenceProvider cannot be used for zkEVM chains. Use ZkEvmProvider instead.");this.#u=o,this.#e=e,this.#s=t,this.#r=r,this.#i=n,this.#n=i,this.#a=a,this.#t=createPublicClient({transport:http(this.#s.rpcUrl)});}async#c(){let e=await this.#e.getUser();if(e&&l5(e,this.#u))return f5(e,this.#u)}async#o(e){switch(e.method){case"eth_requestAccounts":{let t=await this.#c();if(t)return [t];let r=trackFlow("passport","ethRequestAccounts");try{let n=await this.#e.getUserOrLogin();r.addEvent("endGetUserOrLogin");let i;if(l5(n,this.#u)?i=f5(n,this.#u):(r.addEvent("startUserRegistration"),i=await ub({auth:this.#e,ethSigner:this.#n,multiRollupApiClients:this.#r,accessToken:n.accessToken,rpcProvider:this.#t,flow:r}),r.addEvent("endUserRegistration")),!i)throw new ie(-32603,"Failed to get user address after registration");return this.#a.emit("accountsChanged",[i]),identify({passportId:n.profile.sub}),[i]}catch(n){throw n instanceof Error?trackError("passport","ethRequestAccounts",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_accounts":{let t=await this.#c();return t?[t]:[]}case"eth_sendTransaction":throw new ie(4200,"eth_sendTransaction not yet implemented for this chain");case"personal_sign":throw new ie(4200,"personal_sign not yet implemented for this chain");case"eth_signTypedData":case"eth_signTypedData_v4":throw new ie(4200,"eth_signTypedData not yet implemented for this chain");case"eth_chainId":{let t=await this.#t.getChainId();return toHex(t)}case"eth_getBalance":case"eth_getCode":case"eth_getTransactionCount":{let[t,r]=e.params||[];return this.#t.request({method:e.method,params:[t,r||"latest"]})}case"eth_getStorageAt":{let[t,r,n]=e.params||[];return this.#t.request({method:"eth_getStorageAt",params:[t,r,n||"latest"]})}case"eth_call":case"eth_estimateGas":{let[t,r]=e.params||[];return this.#t.request({method:e.method,params:[t,r||"latest"]})}case"eth_gasPrice":case"eth_blockNumber":case"eth_getBlockByHash":case"eth_getBlockByNumber":case"eth_getTransactionByHash":case"eth_getTransactionReceipt":return this.#t.request({method:e.method,params:e.params||[]});default:throw new ie(4200,"Method not supported")}}async request(e){try{return this.#o(e)}catch(t){throw t instanceof ie?t:t instanceof Error?new ie(-32603,t.message):new ie(-32603,"Internal error")}}on(e,t){this.#a.on(e,t);}removeListener(e,t){this.#a.removeListener(e,t);}};var cf=class{passportDomain;zkEvmRpcUrl;relayerUrl;indexerMrBasePath;jsonRpcReferrer;forceScwDeployBeforeMessageSignature;crossSdkBridgeEnabled;feeTokenSymbol;constructor(e){this.passportDomain=e.passportDomain,this.zkEvmRpcUrl=e.zkEvmRpcUrl,this.relayerUrl=e.relayerUrl,this.indexerMrBasePath=e.indexerMrBasePath,this.jsonRpcReferrer=e.jsonRpcReferrer,this.forceScwDeployBeforeMessageSignature=e.forceScwDeployBeforeMessageSignature||!1,this.crossSdkBridgeEnabled=e.crossSdkBridgeEnabled||!1,this.feeTokenSymbol=e.feeTokenSymbol||"IMX";}};var lb=async(s,e,t=!0,r=!0)=>{let n=trackFlow("passport",e,t);try{return await s(n)}catch(i){throw i instanceof Error?trackError("passport",e,i,{flowId:n.details.flowId}):n.addEvent("errored"),i}finally{r&&n.addEvent("End");}};var d5="ETH",sP=s=>s.reduce((e,t)=>`${e}${t.toString(16).padStart(2,"0")}`,""),rP=s=>{if(typeof TextEncoder<"u")return new TextEncoder().encode(s);let e=unescape(encodeURIComponent(s)),t=new Uint8Array(e.length);for(let r=0;r<e.length;r+=1)t[r]=e.charCodeAt(r);return t},nP=s=>{let e=rP(s),t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="";for(let n=0;n<e.length;n+=3){let i=e[n],a=e[n+1],o=e[n+2],c=i<<16|(a??0)<<8|(o??0),u=c>>18&63,l=c>>12&63,h=c>>6&63,m=c&63;r+=t[u]+t[l],r+=Number.isFinite(a)?t[h]:"=",r+=Number.isFinite(o)?t[m]:"=";}return r},mc=class s{auth;magicTeeApiClient;userWallet=null;createWalletPromise=null;constructor(e,t){this.auth=e,this.magicTeeApiClient=t;}async getUserWallet(){let{userWallet:e}=this;e||(e=await this.createWallet());let t=await this.getUserOrThrow();if(t.profile.sub!==e.userIdentifier&&(e=await this.createWallet(t)),isUserZkEvm(t)&&t.zkEvm.userAdminAddress.toLowerCase()!==e.walletAddress.toLowerCase())throw new Qe(`Wallet address mismatch.Rollup: zkEVM, TEE address: ${e.walletAddress}, profile address: ${t.zkEvm.userAdminAddress}`,"WALLET_CONNECTION_ERROR");return e}async createWallet(e){return this.createWalletPromise?this.createWalletPromise:(this.createWalletPromise=new Promise(async(t,r)=>{try{this.userWallet=null;let n=e||await this.getUserOrThrow(),i=s.getHeaders(n);await lb(async a=>{try{let o=performance.now(),c=await this.magicTeeApiClient.walletApi.createWalletV1WalletPost({xMagicChain:d5},{headers:i});return trackDuration("passport",a.details.flowName,Math.round(performance.now()-o)),this.userWallet={userIdentifier:n.profile.sub,walletAddress:c.data.public_address},t(this.userWallet)}catch(o){let c="MagicTEE: Failed to initialise EOA";return ea(o)?o.response?c+=` with status ${o.response.status}: ${JSON.stringify(o.response.data)}`:c+=`: ${o.message}`:c+=`: ${o.message}`,r(new Error(c))}},"magicCreateWallet");}catch(n){r(n);}finally{this.createWalletPromise=null;}}),this.createWalletPromise)}async getUserOrThrow(){let e=await this.auth.getUser();if(!e)throw new Qe("User has been logged out","NOT_LOGGED_IN_ERROR");return e}static getHeaders(e){if(!e)throw new Qe("User has been logged out","NOT_LOGGED_IN_ERROR");return {Authorization:`Bearer ${e.idToken}`}}async getAddress(){return (await this.getUserWallet()).walletAddress}async signMessage(e){await this.getUserWallet();let t=e instanceof Uint8Array?`0x${sP(e)}`:e,r=await this.getUserOrThrow(),n=s.getHeaders(r);return lb(async i=>{try{let a=performance.now(),o=await this.magicTeeApiClient.signOperationsApi.signMessageV1WalletSignMessagePost({signMessageRequest:{message_base64:nP(t)},xMagicChain:d5},{headers:n});return trackDuration("passport",i.details.flowName,Math.round(performance.now()-a)),o.data.signature}catch(a){let o="MagicTEE: Failed to sign message using EOA";throw ea(a)?a.response?o+=` with status ${a.response.status}: ${JSON.stringify(a.response.data)}`:o+=`: ${a.message}`:o+=`: ${a.message}`,new Error(o)}},"magicSignMessage")}};var fb={icon:'data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>',name:"Immutable Passport",rdns:"com.immutable.passport",uuid:"3f0259bb-54c0-4ff0-85f2-6bb7c2d8b6c8"};function hb(s){if(typeof window>"u")return;let e=new CustomEvent("eip6963:announceProvider",{detail:Object.freeze(s)});window.dispatchEvent(e);let t=()=>window.dispatchEvent(e);window.addEventListener("eip6963:requestProvider",t);}var Na={};ye(Na,{IdentitySigner:()=>jg,toIdentityAuthKey:()=>vE});var ke={};ye(ke,{format:()=>bP,from:()=>SP});var m5="1.1.0";var mt=class s extends Error{constructor(e,t={}){let r=t.cause instanceof s?t.cause.details:t.cause?.message?t.cause.message:t.details,n=t.cause instanceof s&&t.cause.docsPath||t.docsPath,i=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...n?[`Docs: https://abitype.dev${n}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${m5}`].join(`
|
|
338
|
-
`);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=r,this.docsPath=n,this.metaMessages=t.metaMessages,this.shortMessage=e;}};function ws(s,e){return s.exec(e)?.groups}var db=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,mb=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,qm=/^\(.+?\).*?$/;var p5=/^tuple(?<array>(\[(\d*)\])*)$/;function Fm(s){let e=s.type;if(p5.test(s.type)&&"components"in s){e="(";let t=s.components.length;for(let n=0;n<t;n++){let i=s.components[n];e+=Fm(i),n<t-1&&(e+=", ");}let r=ws(p5,s.type);return e+=`)${r?.array??""}`,Fm({...s,type:e})}return "indexed"in s&&s.indexed&&(e=`${e} indexed`),s.name?`${e} ${s.name}`:e}function or(s){let e="",t=s.length;for(let r=0;r<t;r++){let n=s[r];e+=Fm(n),r!==t-1&&(e+=", ");}return e}function Ir(s){return s.type==="function"?`function ${s.name}(${or(s.inputs)})${s.stateMutability&&s.stateMutability!=="nonpayable"?` ${s.stateMutability}`:""}${s.outputs?.length?` returns (${or(s.outputs)})`:""}`:s.type==="event"?`event ${s.name}(${or(s.inputs)})`:s.type==="error"?`error ${s.name}(${or(s.inputs)})`:s.type==="constructor"?`constructor(${or(s.inputs)})${s.stateMutability==="payable"?" payable":""}`:s.type==="fallback"?`fallback() external${s.stateMutability==="payable"?" payable":""}`:"receive() external payable"}function pb(s){let e=[],t=s.length;for(let r=0;r<t;r++){let n=s[r],i=Ir(n);e.push(i);}return e}var g5=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function y5(s){return g5.test(s)}function w5(s){return ws(g5,s)}var b5=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function S5(s){return b5.test(s)}function v5(s){return ws(b5,s)}var E5=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function x5(s){return E5.test(s)}function A5(s){return ws(E5,s)}var I5=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Tn(s){return I5.test(s)}function C5(s){return ws(I5,s)}var N5=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function T5(s){return N5.test(s)}function k5(s){return ws(N5,s)}var P5=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function B5(s){return P5.test(s)}function O5(s){return ws(P5,s)}var iP=/^receive\(\) external payable$/;function R5(s){return iP.test(s)}var gb=new Set(["memory","indexed","storage","calldata"]),V5=new Set(["indexed"]),Km=new Set(["calldata","memory","storage"]);var Gm=class extends mt{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"});}},Wm=class extends mt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"});}},Jm=class extends mt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"});}};var zm=class extends mt{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"});}},Ym=class extends mt{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"});}},Zm=class extends mt{constructor({param:e,name:t}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"});}},Xm=class extends mt{constructor({param:e,type:t,modifier:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${r}" not allowed${t?` in "${t}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"});}},Qm=class extends mt{constructor({param:e,type:t,modifier:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${r}" not allowed${t?` in "${t}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${r}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"});}},ep=class extends mt{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"});}};var cr=class extends mt{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"});}},tp=class extends mt{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"});}},sp=class extends mt{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"});}};var rp=class extends mt{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"});}};var np=class extends mt{constructor({current:e,depth:t}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${t>0?"opening":"closing"} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"});}};function D5(s,e,t){let r="";if(t)for(let n of Object.entries(t)){if(!n)continue;let i="";for(let a of n[1])i+=`[${a.type}${a.name?`:${a.name}`:""}]`;r+=`(${n[0]}{${i}})`;}return e?`${e}:${s}${r}`:s}var ip=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function uf(s,e={}){if(x5(s))return aP(s,e);if(S5(s))return oP(s,e);if(y5(s))return cP(s,e);if(T5(s))return uP(s,e);if(B5(s))return lP(s);if(R5(s))return {type:"receive",stateMutability:"payable"};throw new tp({signature:s})}function aP(s,e={}){let t=A5(s);if(!t)throw new cr({signature:s,type:"function"});let r=ls(t.parameters),n=[],i=r.length;for(let o=0;o<i;o++)n.push(Us(r[o],{modifiers:Km,structs:e,type:"function"}));let a=[];if(t.returns){let o=ls(t.returns),c=o.length;for(let u=0;u<c;u++)a.push(Us(o[u],{modifiers:Km,structs:e,type:"function"}));}return {name:t.name,type:"function",stateMutability:t.stateMutability??"nonpayable",inputs:n,outputs:a}}function oP(s,e={}){let t=v5(s);if(!t)throw new cr({signature:s,type:"event"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{modifiers:V5,structs:e,type:"event"}));return {name:t.name,type:"event",inputs:n}}function cP(s,e={}){let t=w5(s);if(!t)throw new cr({signature:s,type:"error"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{structs:e,type:"error"}));return {name:t.name,type:"error",inputs:n}}function uP(s,e={}){let t=k5(s);if(!t)throw new cr({signature:s,type:"constructor"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{structs:e,type:"constructor"}));return {type:"constructor",stateMutability:t.stateMutability??"nonpayable",inputs:n}}function lP(s){let e=O5(s);if(!e)throw new cr({signature:s,type:"fallback"});return {type:"fallback",stateMutability:e.stateMutability??"nonpayable"}}var fP=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,hP=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,dP=/^u?int$/;function Us(s,e){let t=D5(s,e?.type,e?.structs);if(ip.has(t))return ip.get(t);let r=qm.test(s),n=ws(r?hP:fP,s);if(!n)throw new Ym({param:s});if(n.name&&pP(n.name))throw new Zm({param:s,name:n.name});let i=n.name?{name:n.name}:{},a=n.modifier==="indexed"?{indexed:!0}:{},o=e?.structs??{},c,u={};if(r){c="tuple";let h=ls(n.type),m=[],y=h.length;for(let g=0;g<y;g++)m.push(Us(h[g],{structs:o}));u={components:m};}else if(n.type in o)c="tuple",u={components:o[n.type]};else if(dP.test(n.type))c=`${n.type}256`;else if(n.type==="address payable")c="address";else if(c=n.type,e?.type!=="struct"&&!yb(c))throw new Jm({type:c});if(n.modifier){if(!e?.modifiers?.has?.(n.modifier))throw new Xm({param:s,type:e?.type,modifier:n.modifier});if(Km.has(n.modifier)&&!gP(c,!!n.array))throw new Qm({param:s,type:e?.type,modifier:n.modifier})}let l={type:`${c}${n.array??""}`,...i,...a,...u};return ip.set(t,l),l}function ls(s,e=[],t="",r=0){let n=s.trim().length;for(let i=0;i<n;i++){let a=s[i],o=s.slice(i+1);switch(a){case",":return r===0?ls(o,[...e,t.trim()]):ls(o,e,`${t}${a}`,r);case"(":return ls(o,e,`${t}${a}`,r+1);case")":return ls(o,e,`${t}${a}`,r-1);default:return ls(o,e,`${t}${a}`,r)}}if(t==="")return e;if(r!==0)throw new np({current:t,depth:r});return e.push(t.trim()),e}function yb(s){return s==="address"||s==="bool"||s==="function"||s==="string"||db.test(s)||mb.test(s)}var mP=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function pP(s){return s==="address"||s==="bool"||s==="function"||s==="string"||s==="tuple"||db.test(s)||mb.test(s)||mP.test(s)}function gP(s,e){return e||s==="bytes"||s==="string"||s==="tuple"}function pc(s){let e={},t=s.length;for(let a=0;a<t;a++){let o=s[a];if(!Tn(o))continue;let c=C5(o);if(!c)throw new cr({signature:o,type:"struct"});let u=c.properties.split(";"),l=[],h=u.length;for(let m=0;m<h;m++){let g=u[m].trim();if(!g)continue;let w=Us(g,{type:"struct"});l.push(w);}if(!l.length)throw new sp({signature:o});e[c.name]=l;}let r={},n=Object.entries(e),i=n.length;for(let a=0;a<i;a++){let[o,c]=n[a];r[o]=L5(c,e);}return r}var yP=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function L5(s,e,t=new Set){let r=[],n=s.length;for(let i=0;i<n;i++){let a=s[i];if(qm.test(a.type))r.push(a);else {let c=ws(yP,a.type);if(!c?.type)throw new ep({abiParameter:a});let{array:u,type:l}=c;if(l in e){if(t.has(l))throw new rp({type:l});r.push({...a,type:`tuple${u??""}`,components:L5(e[l]??[],e,new Set([...t,l]))});}else if(yb(l))r.push(a);else throw new Wm({type:l})}}return r}function wb(s){let e=pc(s),t=[],r=s.length;for(let n=0;n<r;n++){let i=s[n];Tn(i)||t.push(uf(i,e));}return t}function ap(s){let e;if(typeof s=="string")e=uf(s);else {let t=pc(s),r=s.length;for(let n=0;n<r;n++){let i=s[n];if(!Tn(i)){e=uf(i,t);break}}}if(!e)throw new Gm({signature:s});return e}function op(s){let e=[];if(typeof s=="string"){let t=ls(s),r=t.length;for(let n=0;n<r;n++)e.push(Us(t[n],{modifiers:gb}));}else {let t=pc(s),r=s.length;for(let n=0;n<r;n++){let i=s[n];if(Tn(i))continue;let a=ls(i),o=a.length;for(let c=0;c<o;c++)e.push(Us(a[c],{modifiers:gb,structs:t}));}}if(e.length===0)throw new zm({params:s});return e}function U5(s){for(let e of s)if(typeof e!="string")return !1;return !0}function bP(s){return pb(s)}function SP(s){return U5(s)?wb(s):s}var H5="0.1.1";function _5(){return H5}var G=class s extends Error{static setStaticOptions(e){s.prototype.docsOrigin=e.docsOrigin,s.prototype.showVersion=e.showVersion,s.prototype.version=e.version;}constructor(e,t={}){let r=(()=>{if(t.cause instanceof s){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&typeof t.cause.details=="string"?t.cause.details:t.cause?.message?t.cause.message:t.details})(),n=t.cause instanceof s&&t.cause.docsPath||t.docsPath,i=t.docsOrigin??s.prototype.docsOrigin,a=`${i}${n??""}`,o=!!(t.version??s.prototype.showVersion),c=t.version??s.prototype.version,u=[e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...r||n||o?["",r?`Details: ${r}`:void 0,n?`See: ${a}`:void 0,o?`Version: ${c}`:void 0]:[]].filter(l=>typeof l=="string").join(`
|
|
339
|
-
`);super(u,t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=t.cause,this.details=r,this.docs=a,this.docsOrigin=i,this.docsPath=n,this.shortMessage=e,this.showVersion=o,this.version=c;}walk(e){return j5(this,e)}};Object.defineProperty(G,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${_5()}`}});G.setStaticOptions(G.defaultStaticOptions);function j5(s,e){return e?.(s)?s:s&&typeof s=="object"&&"cause"in s&&s.cause?j5(s.cause,e):e?null:s}var ee={};ye(ee,{keccak256:()=>yt,ripemd160:()=>lB,sha256:()=>If,validate:()=>Gb});var ta=Cr&&typeof Cr=="object"&&"webcrypto"in Cr?Cr.webcrypto:Cr&&typeof Cr=="object"&&"randomBytes"in Cr?Cr:void 0;function vP(s){return s instanceof Uint8Array||ArrayBuffer.isView(s)&&s.constructor.name==="Uint8Array"}function sa(s){if(!Number.isSafeInteger(s)||s<0)throw new Error("positive integer expected, got "+s)}function ur(s,...e){if(!vP(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error("Uint8Array expected of length "+e+", got length="+s.length)}function M5(s){if(typeof s!="function"||typeof s.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");sa(s.outputLen),sa(s.blockLen);}function Nr(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function up(s,e){ur(s);let t=e.outputLen;if(s.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function $5(s){return new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4))}function Qt(...s){for(let e=0;e<s.length;e++)s[e].fill(0);}function lp(s){return new DataView(s.buffer,s.byteOffset,s.byteLength)}function Hs(s,e){return s<<32-e|s>>>e}function lf(s,e){return s<<e|s>>>32-e>>>0}var EP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function xP(s){return s<<24&4278190080|s<<8&16711680|s>>>8&65280|s>>>24&255}function AP(s){for(let e=0;e<s.length;e++)s[e]=xP(s[e]);return s}var bb=EP?s=>s:AP;function IP(s){if(typeof s!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(s))}function ra(s){return typeof s=="string"&&(s=IP(s)),ur(s),s}function q5(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];ur(n),e+=n.length;}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}var kn=class{};function Pn(s){let e=r=>s().update(ra(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function F5(s=32){if(ta&&typeof ta.getRandomValues=="function")return ta.getRandomValues(new Uint8Array(s));if(ta&&typeof ta.randomBytes=="function")return Uint8Array.from(ta.randomBytes(s));throw new Error("crypto.getRandomValues must be defined")}function CP(s,e,t,r){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,r);let n=BigInt(32),i=BigInt(4294967295),a=Number(t>>n&i),o=Number(t&i),c=r?4:0,u=r?0:4;s.setUint32(e+c,a,r),s.setUint32(e+u,o,r);}function Sb(s,e,t){return s&e^~s&t}function vb(s,e,t){return s&e^s&t^e&t}var na=class extends kn{constructor(e,t,r,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=lp(this.buffer);}update(e){Nr(this),e=ra(e),ur(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(n-this.pos,i-a);if(o===n){let c=lp(e);for(;n<=i-a;a+=n)this.process(c,a);continue}r.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0);}return this.length+=e.length,this.roundClean(),this}digestInto(e){Nr(this),up(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:a}=this;t[a++]=128,Qt(this.buffer.subarray(a)),this.padOffset>n-a&&(this.process(r,0),a=0);for(let h=a;h<n;h++)t[h]=0;CP(r,n-8,BigInt(this.length*8),i),this.process(r,0);let o=lp(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)o.setUint32(4*h,l[h],i);}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=n,e.pos=o,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},Tr=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Vt=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Dt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var NP=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),G5=Uint8Array.from(new Array(16).fill(0).map((s,e)=>e)),TP=G5.map(s=>(9*s+5)%16),W5=(()=>{let t=[[G5],[TP]];for(let r=0;r<4;r++)for(let n of t)n.push(n[r].map(i=>NP[i]));return t})(),J5=W5[0],z5=W5[1],Y5=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(s=>Uint8Array.from(s)),kP=J5.map((s,e)=>s.map(t=>Y5[e][t])),PP=z5.map((s,e)=>s.map(t=>Y5[e][t])),BP=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),OP=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function K5(s,e,t,r){return s===0?e^t^r:s===1?e&t|~e&r:s===2?(e|~t)^r:s===3?e&r|t&~r:e^(t|~r)}var fp=new Uint32Array(16),hp=class extends na{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776;}get(){let{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return [e,t,r,n,i]}set(e,t,r,n,i){this.h0=e|0,this.h1=t|0,this.h2=r|0,this.h3=n|0,this.h4=i|0;}process(e,t){for(let y=0;y<16;y++,t+=4)fp[y]=e.getUint32(t,!0);let r=this.h0|0,n=r,i=this.h1|0,a=i,o=this.h2|0,c=o,u=this.h3|0,l=u,h=this.h4|0,m=h;for(let y=0;y<5;y++){let g=4-y,w=BP[y],b=OP[y],C=J5[y],N=z5[y],x=kP[y],E=PP[y];for(let I=0;I<16;I++){let D=lf(r+K5(y,i,o,u)+fp[C[I]]+w,x[I])+h|0;r=h,h=u,u=lf(o,10)|0,o=i,i=D;}for(let I=0;I<16;I++){let D=lf(n+K5(g,a,c,l)+fp[N[I]]+b,E[I])+m|0;n=m,m=l,l=lf(c,10)|0,c=a,a=D;}}this.set(this.h1+o+l|0,this.h2+u+m|0,this.h3+h+n|0,this.h4+r+a|0,this.h0+i+c|0);}roundClean(){Qt(fp);}destroy(){this.destroyed=!0,Qt(this.buffer),this.set(0,0,0,0,0);}},Z5=Pn(()=>new hp);var X5=Z5;var dp=BigInt(4294967295),Q5=BigInt(32);function RP(s,e=!1){return e?{h:Number(s&dp),l:Number(s>>Q5&dp)}:{h:Number(s>>Q5&dp)|0,l:Number(s&dp)|0}}function mp(s,e=!1){let t=s.length,r=new Uint32Array(t),n=new Uint32Array(t);for(let i=0;i<t;i++){let{h:a,l:o}=RP(s[i],e);[r[i],n[i]]=[a,o];}return [r,n]}var Eb=(s,e,t)=>s>>>t,xb=(s,e,t)=>s<<32-t|e>>>t,ia=(s,e,t)=>s>>>t|e<<32-t,aa=(s,e,t)=>s<<32-t|e>>>t,ff=(s,e,t)=>s<<64-t|e>>>t-32,hf=(s,e,t)=>s>>>t-32|e<<64-t;var e3=(s,e,t)=>s<<t|e>>>32-t,t3=(s,e,t)=>e<<t|s>>>32-t,s3=(s,e,t)=>e<<t-32|s>>>64-t,r3=(s,e,t)=>s<<t-32|e>>>64-t;function lr(s,e,t,r){let n=(e>>>0)+(r>>>0);return {h:s+t+(n/2**32|0)|0,l:n|0}}var n3=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),i3=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,a3=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),o3=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,c3=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),u3=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var DP=BigInt(0),df=BigInt(1),LP=BigInt(2),UP=BigInt(7),HP=BigInt(256),_P=BigInt(113),h3=[],d3=[],m3=[];for(let s=0,e=df,t=1,r=0;s<24;s++){[t,r]=[r,(2*t+3*r)%5],h3.push(2*(5*r+t)),d3.push((s+1)*(s+2)/2%64);let n=DP;for(let i=0;i<7;i++)e=(e<<df^(e>>UP)*_P)%HP,e&LP&&(n^=df<<(df<<BigInt(i))-df);m3.push(n);}var p3=mp(m3,!0),jP=p3[0],MP=p3[1],l3=(s,e,t)=>t>32?s3(s,e,t):e3(s,e,t),f3=(s,e,t)=>t>32?r3(s,e,t):t3(s,e,t);function $P(s,e=24){let t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let a=0;a<10;a++)t[a]=s[a]^s[a+10]^s[a+20]^s[a+30]^s[a+40];for(let a=0;a<10;a+=2){let o=(a+8)%10,c=(a+2)%10,u=t[c],l=t[c+1],h=l3(u,l,1)^t[o],m=f3(u,l,1)^t[o+1];for(let y=0;y<50;y+=10)s[a+y]^=h,s[a+y+1]^=m;}let n=s[2],i=s[3];for(let a=0;a<24;a++){let o=d3[a],c=l3(n,i,o),u=f3(n,i,o),l=h3[a];n=s[l],i=s[l+1],s[l]=c,s[l+1]=u;}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)t[o]=s[a+o];for(let o=0;o<10;o++)s[a+o]^=~t[(o+2)%10]&t[(o+4)%10];}s[0]^=jP[r],s[1]^=MP[r];}Qt(t);}var Ab=class s extends kn{constructor(e,t,r,n=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,sa(r),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=$5(this.state);}clone(){return this._cloneInto()}keccak(){bb(this.state32),$P(this.state32,this.rounds),bb(this.state32),this.posOut=0,this.pos=0;}update(e){Nr(this),e=ra(e),ur(e);let{blockLen:t,state:r}=this,n=e.length;for(let i=0;i<n;){let a=Math.min(t-this.pos,n-i);for(let o=0;o<a;o++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak();}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,t&128&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak();}writeInto(e){Nr(this,!1),ur(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a;}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return sa(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(up(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Qt(this.state);}_cloneInto(e){let{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:a}=this;return e||(e=new s(t,r,n,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=a,e.destroyed=this.destroyed,e}},qP=(s,e,t)=>Pn(()=>new Ab(e,s,t));var g3=qP(1,136,256/8);var FP=Uint32Array.from([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]),Bn=new Uint32Array(64),pp=class extends na{constructor(e=32){super(64,e,8,!1),this.A=Tr[0]|0,this.B=Tr[1]|0,this.C=Tr[2]|0,this.D=Tr[3]|0,this.E=Tr[4]|0,this.F=Tr[5]|0,this.G=Tr[6]|0,this.H=Tr[7]|0;}get(){let{A:e,B:t,C:r,D:n,E:i,F:a,G:o,H:c}=this;return [e,t,r,n,i,a,o,c]}set(e,t,r,n,i,a,o,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0;}process(e,t){for(let h=0;h<16;h++,t+=4)Bn[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){let m=Bn[h-15],y=Bn[h-2],g=Hs(m,7)^Hs(m,18)^m>>>3,w=Hs(y,17)^Hs(y,19)^y>>>10;Bn[h]=w+Bn[h-7]+g+Bn[h-16]|0;}let{A:r,B:n,C:i,D:a,E:o,F:c,G:u,H:l}=this;for(let h=0;h<64;h++){let m=Hs(o,6)^Hs(o,11)^Hs(o,25),y=l+m+Sb(o,c,u)+FP[h]+Bn[h]|0,w=(Hs(r,2)^Hs(r,13)^Hs(r,22))+vb(r,n,i)|0;l=u,u=c,c=o,o=a+y|0,a=i,i=n,n=r,r=y+w|0;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,n,i,a,o,c,u,l);}roundClean(){Qt(Bn);}destroy(){this.set(0,0,0,0,0,0,0,0),Qt(this.buffer);}};var y3=mp(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(s=>BigInt(s))),KP=y3[0],GP=y3[1],On=new Uint32Array(80),Rn=new Uint32Array(80),gp=class extends na{constructor(e=64){super(128,e,16,!1),this.Ah=Dt[0]|0,this.Al=Dt[1]|0,this.Bh=Dt[2]|0,this.Bl=Dt[3]|0,this.Ch=Dt[4]|0,this.Cl=Dt[5]|0,this.Dh=Dt[6]|0,this.Dl=Dt[7]|0,this.Eh=Dt[8]|0,this.El=Dt[9]|0,this.Fh=Dt[10]|0,this.Fl=Dt[11]|0,this.Gh=Dt[12]|0,this.Gl=Dt[13]|0,this.Hh=Dt[14]|0,this.Hl=Dt[15]|0;}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:h,Fl:m,Gh:y,Gl:g,Hh:w,Hl:b}=this;return [e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,b]}set(e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,b){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=h|0,this.Fl=m|0,this.Gh=y|0,this.Gl=g|0,this.Hh=w|0,this.Hl=b|0;}process(e,t){for(let x=0;x<16;x++,t+=4)On[x]=e.getUint32(t),Rn[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let E=On[x-15]|0,I=Rn[x-15]|0,D=ia(E,I,1)^ia(E,I,8)^Eb(E,I,7),K=aa(E,I,1)^aa(E,I,8)^xb(E,I,7),$=On[x-2]|0,J=Rn[x-2]|0,ne=ia($,J,19)^ff($,J,61)^Eb($,J,6),F=aa($,J,19)^hf($,J,61)^xb($,J,6),z=a3(K,F,Rn[x-7],Rn[x-16]),ce=o3(z,D,ne,On[x-7],On[x-16]);On[x]=ce|0,Rn[x]=z|0;}let{Ah:r,Al:n,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:h,El:m,Fh:y,Fl:g,Gh:w,Gl:b,Hh:C,Hl:N}=this;for(let x=0;x<80;x++){let E=ia(h,m,14)^ia(h,m,18)^ff(h,m,41),I=aa(h,m,14)^aa(h,m,18)^hf(h,m,41),D=h&y^~h&w,K=m&g^~m&b,$=c3(N,I,K,GP[x],Rn[x]),J=u3($,C,E,D,KP[x],On[x]),ne=$|0,F=ia(r,n,28)^ff(r,n,34)^ff(r,n,39),z=aa(r,n,28)^hf(r,n,34)^hf(r,n,39),ce=r&i^r&o^i&o,Le=n&a^n&c^a&c;C=w|0,N=b|0,w=y|0,b=g|0,y=h|0,g=m|0,{h,l:m}=lr(u|0,l|0,J|0,ne|0),u=o|0,l=c|0,o=i|0,c=a|0,i=r|0,a=n|0;let U=n3(ne,z,Le);r=i3(U,J,F,ce),n=U|0;}(({h:r,l:n}=lr(this.Ah|0,this.Al|0,r|0,n|0))),{h:i,l:a}=lr(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=lr(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l}=lr(this.Dh|0,this.Dl|0,u|0,l|0),{h,l:m}=lr(this.Eh|0,this.El|0,h|0,m|0),{h:y,l:g}=lr(this.Fh|0,this.Fl|0,y|0,g|0),{h:w,l:b}=lr(this.Gh|0,this.Gl|0,w|0,b|0),{h:C,l:N}=lr(this.Hh|0,this.Hl|0,C|0,N|0),this.set(r,n,i,a,o,c,u,l,h,m,y,g,w,b,C,N);}roundClean(){Qt(On,Rn);}destroy(){Qt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);}},Ib=class extends gp{constructor(){super(48),this.Ah=Vt[0]|0,this.Al=Vt[1]|0,this.Bh=Vt[2]|0,this.Bl=Vt[3]|0,this.Ch=Vt[4]|0,this.Cl=Vt[5]|0,this.Dh=Vt[6]|0,this.Dl=Vt[7]|0,this.Eh=Vt[8]|0,this.El=Vt[9]|0,this.Fh=Vt[10]|0,this.Fl=Vt[11]|0,this.Gh=Vt[12]|0,this.Gl=Vt[13]|0,this.Hh=Vt[14]|0,this.Hl=Vt[15]|0;}};var gc=Pn(()=>new pp);var w3=Pn(()=>new gp),b3=Pn(()=>new Ib);var S3=gc;var f={};ye(f,{InvalidBytesBooleanError:()=>Ep,InvalidBytesTypeError:()=>da,SizeExceedsPaddingSizeError:()=>wf,SizeOverflowError:()=>yf,SliceOffsetOutOfBoundsError:()=>Sc,assert:()=>V3,concat:()=>Mb,from:()=>Rr,fromArray:()=>D3,fromBoolean:()=>aB,fromHex:()=>et,fromNumber:()=>oB,fromString:()=>Vr,isEqual:()=>cB,padLeft:()=>L3,padRight:()=>U3,random:()=>jb,size:()=>bs,slice:()=>$b,toBigInt:()=>qb,toBoolean:()=>Fb,toHex:()=>uB,toNumber:()=>Ms,toString:()=>xp,trimLeft:()=>Ap,trimRight:()=>vp,validate:()=>Kb});var kb=BigInt(0),Tb=BigInt(1);function yc(s){return s instanceof Uint8Array||ArrayBuffer.isView(s)&&s.constructor.name==="Uint8Array"}function Pb(s){if(!yc(s))throw new Error("Uint8Array expected")}function wc(s,e){if(typeof e!="boolean")throw new Error(s+" boolean expected, got "+e)}function mf(s){let e=s.toString(16);return e.length&1?"0"+e:e}function x3(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);return s===""?kb:BigInt("0x"+s)}var A3=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",WP=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function bc(s){if(Pb(s),A3)return s.toHex();let e="";for(let t=0;t<s.length;t++)e+=WP[s[t]];return e}var kr={_0:48,_9:57,A:65,F:70,a:97,f:102};function v3(s){if(s>=kr._0&&s<=kr._9)return s-kr._0;if(s>=kr.A&&s<=kr.F)return s-(kr.A-10);if(s>=kr.a&&s<=kr.f)return s-(kr.a-10)}function pf(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);if(A3)return Uint8Array.fromHex(s);let e=s.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(t);for(let n=0,i=0;n<t;n++,i+=2){let a=v3(s.charCodeAt(i)),o=v3(s.charCodeAt(i+1));if(a===void 0||o===void 0){let c=s[i]+s[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}r[n]=a*16+o;}return r}function Pr(s){return x3(bc(s))}function Bb(s){return Pb(s),x3(bc(Uint8Array.from(s).reverse()))}function oa(s,e){return pf(s.toString(16).padStart(e*2,"0"))}function Ob(s,e){return oa(s,e).reverse()}function fs(s,e,t){let r;if(typeof e=="string")try{r=pf(e);}catch(i){throw new Error(s+" must be hex string or Uint8Array, cause: "+i)}else if(yc(e))r=Uint8Array.from(e);else throw new Error(s+" must be hex string or Uint8Array");let n=r.length;if(typeof t=="number"&&n!==t)throw new Error(s+" of length "+t+" expected, got "+n);return r}function gf(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];Pb(n),e+=n.length;}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}function yp(s,e){if(s.length!==e.length)return !1;let t=0;for(let r=0;r<s.length;r++)t|=s[r]^e[r];return t===0}var Cb=s=>typeof s=="bigint"&&kb<=s;function wp(s,e,t){return Cb(s)&&Cb(e)&&Cb(t)&&e<=s&&s<t}function ca(s,e,t,r){if(!wp(e,t,r))throw new Error("expected valid "+s+": "+t+" <= n < "+r+", got "+e)}function I3(s){let e;for(e=0;s>kb;s>>=Tb,e+=1);return e}var ua=s=>(Tb<<BigInt(s))-Tb,Nb=s=>new Uint8Array(s),E3=s=>Uint8Array.from(s);function C3(s,e,t){if(typeof s!="number"||s<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let r=Nb(s),n=Nb(s),i=0,a=()=>{r.fill(1),n.fill(0),i=0;},o=(...h)=>t(n,r,...h),c=(h=Nb(0))=>{n=o(E3([0]),h),r=o(),h.length!==0&&(n=o(E3([1]),h),r=o());},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let h=0,m=[];for(;h<e;){r=o();let y=r.slice();m.push(y),h+=r.length;}return gf(...m)};return (h,m)=>{a(),c(h);let y;for(;!(y=m(u()));)c();return a(),y}}var JP={bigint:s=>typeof s=="bigint",function:s=>typeof s=="function",boolean:s=>typeof s=="boolean",string:s=>typeof s=="string",stringOrUint8Array:s=>typeof s=="string"||yc(s),isSafeInteger:s=>Number.isSafeInteger(s),array:s=>Array.isArray(s),field:(s,e)=>e.Fp.isValid(s),hash:s=>typeof s=="function"&&Number.isSafeInteger(s.outputLen)};function la(s,e,t={}){let r=(n,i,a)=>{let o=JP[i];if(typeof o!="function")throw new Error("invalid validator function");let c=s[n];if(!(a&&c===void 0)&&!o(c,s))throw new Error("param "+String(n)+" is invalid. Expected "+i+", got "+c)};for(let[n,i]of Object.entries(e))r(n,i,!1);for(let[n,i]of Object.entries(t))r(n,i,!0);return s}function Rb(s){let e=new WeakMap;return (t,...r)=>{let n=e.get(t);if(n!==void 0)return n;let i=s(t,...r);return e.set(t,i),i}}var v={};ye(v,{IntegerOutOfRangeError:()=>xc,InvalidHexBooleanError:()=>bp,InvalidHexTypeError:()=>vf,InvalidHexValueError:()=>Ef,InvalidLengthError:()=>xf,SizeExceedsPaddingSizeError:()=>Sf,SizeOverflowError:()=>bf,SliceOffsetOutOfBoundsError:()=>vc,assert:()=>R3,concat:()=>Je,from:()=>es,fromBoolean:()=>Af,fromBytes:()=>Ne,fromNumber:()=>le,fromString:()=>hs,isEqual:()=>XP,padLeft:()=>fr,padRight:()=>js,random:()=>QP,size:()=>Ue,slice:()=>lt,toBigInt:()=>Sp,toBoolean:()=>tB,toBytes:()=>sB,toNumber:()=>_b,toString:()=>rB,trimLeft:()=>ha,trimRight:()=>eB,validate:()=>ts});function Or(s,e){if(bs(s)>e)throw new yf({givenSize:bs(s),maxSize:e})}function N3(s,e){if(typeof e=="number"&&e>0&&e>bs(s)-1)throw new Sc({offset:e,position:"start",size:bs(s)})}function T3(s,e,t){if(typeof e=="number"&&typeof t=="number"&&bs(s)!==t-e)throw new Sc({offset:t,position:"end",size:bs(s)})}var Br={zero:48,nine:57,A:65,F:70,a:97,f:102};function Vb(s){if(s>=Br.zero&&s<=Br.nine)return s-Br.zero;if(s>=Br.A&&s<=Br.F)return s-(Br.A-10);if(s>=Br.a&&s<=Br.f)return s-(Br.a-10)}function Db(s,e={}){let{dir:t,size:r=32}=e;if(r===0)return s;if(s.length>r)throw new wf({size:s.length,targetSize:r,type:"Bytes"});let n=new Uint8Array(r);for(let i=0;i<r;i++){let a=t==="right";n[a?i:r-i-1]=s[a?i:s.length-i-1];}return n}function Lb(s,e={}){let{dir:t="left"}=e,r=s,n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),r}function fa(s,e){if(Ue(s)>e)throw new bf({givenSize:Ue(s),maxSize:e})}function P3(s,e){if(typeof e=="number"&&e>0&&e>Ue(s)-1)throw new vc({offset:e,position:"start",size:Ue(s)})}function B3(s,e,t){if(typeof e=="number"&&typeof t=="number"&&Ue(s)!==t-e)throw new vc({offset:t,position:"end",size:Ue(s)})}function Ub(s,e={}){let{dir:t,size:r=32}=e;if(r===0)return s;let n=s.replace("0x","");if(n.length>r*2)throw new Sf({size:Math.ceil(n.length/2),targetSize:r,type:"Hex"});return `0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function Hb(s,e={}){let{dir:t="left"}=e,r=s.replace("0x",""),n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),r==="0"?"0x":t==="right"&&r.length%2===1?`0x${r}0`:`0x${r}`}var zP="#__bigint";function _s(s,e,t){return JSON.stringify(s,(r,n)=>typeof e=="function"?e(r,n):typeof n=="bigint"?n.toString()+zP:n,t)}var YP=new TextEncoder,ZP=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function R3(s,e={}){let{strict:t=!1}=e;if(!s)throw new vf(s);if(typeof s!="string")throw new vf(s);if(t&&!/^0x[0-9a-fA-F]*$/.test(s))throw new Ef(s);if(!s.startsWith("0x"))throw new Ef(s)}function Je(...s){return `0x${s.reduce((e,t)=>e+t.replace("0x",""),"")}`}function es(s){return s instanceof Uint8Array?Ne(s):Array.isArray(s)?Ne(new Uint8Array(s)):s}function Af(s,e={}){let t=`0x${Number(s)}`;return typeof e.size=="number"?(fa(t,e.size),fr(t,e.size)):t}function Ne(s,e={}){let t="";for(let n=0;n<s.length;n++)t+=ZP[s[n]];let r=`0x${t}`;return typeof e.size=="number"?(fa(r,e.size),js(r,e.size)):r}function le(s,e={}){let{signed:t,size:r}=e,n=BigInt(s),i;r?t?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof s=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof i=="bigint"&&t?-i-1n:0;if(i&&n>i||n<a){let u=typeof s=="bigint"?"n":"";throw new xc({max:i?`${i}${u}`:void 0,min:`${a}${u}`,signed:t,size:r,value:`${s}${u}`})}let c=`0x${(t&&n<0?BigInt.asUintN(r*8,BigInt(n)):n).toString(16)}`;return r?fr(c,r):c}function hs(s,e={}){return Ne(YP.encode(s),e)}function XP(s,e){return yp(et(s),et(e))}function fr(s,e){return Ub(s,{dir:"left",size:e})}function js(s,e){return Ub(s,{dir:"right",size:e})}function QP(s){return Ne(jb(s))}function lt(s,e,t,r={}){let{strict:n}=r;P3(s,e);let i=`0x${s.replace("0x","").slice((e??0)*2,(t??s.length)*2)}`;return n&&B3(i,e,t),i}function Ue(s){return Math.ceil((s.length-2)/2)}function ha(s){return Hb(s,{dir:"left"})}function eB(s){return Hb(s,{dir:"right"})}function Sp(s,e={}){let{signed:t}=e;e.size&&fa(s,e.size);let r=BigInt(s);if(!t)return r;let n=(s.length-2)/2,i=(1n<<BigInt(n)*8n)-1n,a=i>>1n;return r<=a?r:r-i-1n}function tB(s,e={}){e.size&&fa(s,e.size);let t=ha(s);if(t==="0x")return !1;if(t==="0x1")return !0;throw new bp(s)}function sB(s,e={}){return et(s,e)}function _b(s,e={}){let{signed:t,size:r}=e;return Number(!t&&!r?s:Sp(s,e))}function rB(s,e={}){let{size:t}=e,r=et(s);return t&&(Or(r,t),r=vp(r)),new TextDecoder().decode(r)}function ts(s,e={}){let{strict:t=!1}=e;try{return R3(s,{strict:t}),!0}catch{return !1}}var xc=class extends G{constructor({max:e,min:t,signed:r,size:n,value:i}){super(`Number \`${i}\` is not in safe${n?` ${n*8}-bit`:""}${r?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"});}},bp=class extends G{constructor(e){super(`Hex value \`"${e}"\` is not a valid boolean.`,{metaMessages:['The hex value must be `"0x0"` (false) or `"0x1"` (true).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexBooleanError"});}},vf=class extends G{constructor(e){super(`Value \`${typeof e=="object"?_s(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"});}},Ef=class extends G{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"});}},xf=class extends G{constructor(e){super(`Hex value \`"${e}"\` is an odd length (${e.length-2} nibbles).`,{metaMessages:["It must be an even length."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidLengthError"});}},bf=class extends G{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"});}},vc=class extends G{constructor({offset:e,position:t,size:r}){super(`Slice ${t==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"});}},Sf=class extends G{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"});}};var nB=new TextDecoder,iB=new TextEncoder;function V3(s){if(!(s instanceof Uint8Array)){if(!s)throw new da(s);if(typeof s!="object")throw new da(s);if(!("BYTES_PER_ELEMENT"in s))throw new da(s);if(s.BYTES_PER_ELEMENT!==1||s.constructor.name!=="Uint8Array")throw new da(s)}}function Mb(...s){let e=0;for(let r of s)e+=r.length;let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}function Rr(s){return s instanceof Uint8Array?s:typeof s=="string"?et(s):D3(s)}function D3(s){return s instanceof Uint8Array?s:new Uint8Array(s)}function aB(s,e={}){let{size:t}=e,r=new Uint8Array(1);return r[0]=Number(s),typeof t=="number"?(Or(r,t),L3(r,t)):r}function et(s,e={}){let{size:t}=e,r=s;t&&(fa(s,t),r=js(s,t));let n=r.slice(2);n.length%2&&(n=`0${n}`);let i=n.length/2,a=new Uint8Array(i);for(let o=0,c=0;o<i;o++){let u=Vb(n.charCodeAt(c++)),l=Vb(n.charCodeAt(c++));if(u===void 0||l===void 0)throw new G(`Invalid byte sequence ("${n[c-2]}${n[c-1]}" in "${n}").`);a[o]=u<<4|l;}return a}function oB(s,e){let t=le(s,e);return et(t)}function Vr(s,e={}){let{size:t}=e,r=iB.encode(s);return typeof t=="number"?(Or(r,t),U3(r,t)):r}function cB(s,e){return yp(s,e)}function L3(s,e){return Db(s,{dir:"left",size:e})}function U3(s,e){return Db(s,{dir:"right",size:e})}function jb(s){return crypto.getRandomValues(new Uint8Array(s))}function bs(s){return s.length}function $b(s,e,t,r={}){let{strict:n}=r;N3(s,e);let i=s.slice(e,t);return n&&T3(i,e,t),i}function qb(s,e={}){let{size:t}=e;typeof t<"u"&&Or(s,t);let r=Ne(s,e);return Sp(r,e)}function Fb(s,e={}){let{size:t}=e,r=s;if(typeof t<"u"&&(Or(r,t),r=Ap(r)),r.length>1||r[0]>1)throw new Ep(r);return !!r[0]}function uB(s,e={}){return Ne(s,e)}function Ms(s,e={}){let{size:t}=e;typeof t<"u"&&Or(s,t);let r=Ne(s,e);return _b(r,e)}function xp(s,e={}){let{size:t}=e,r=s;return typeof t<"u"&&(Or(r,t),r=vp(r)),nB.decode(r)}function Ap(s){return Lb(s,{dir:"left"})}function vp(s){return Lb(s,{dir:"right"})}function Kb(s){try{return V3(s),!0}catch{return !1}}var Ep=class extends G{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"});}},da=class extends G{constructor(e){super(`Value \`${typeof e=="object"?_s(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"});}},yf=class extends G{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"});}},Sc=class extends G{constructor({offset:e,position:t,size:r}){super(`Slice ${t==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"});}},wf=class extends G{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"});}};function yt(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=g3(Rr(s));return t==="Bytes"?r:Ne(r)}function lB(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=X5(Rr(s));return t==="Bytes"?r:Ne(r)}function If(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=S3(Rr(s));return t==="Bytes"?r:Ne(r)}function Gb(s){return ts(s)&&Ue(s)===32}var P={};ye(P,{InvalidAddressError:()=>ma,InvalidChecksumError:()=>Tp,InvalidInputError:()=>Ac,assert:()=>ss,checksum:()=>Nf,from:()=>$3,fromPublicKey:()=>Zb,isEqual:()=>Xb,validate:()=>pa});var Ip=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e;}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let r=this.keys().next().value;r&&this.delete(r);}return this}};var fB={checksum:new Ip(8192)},Cp=fB.checksum;function _3(s,e={}){let{compressed:t}=e,{prefix:r,x:n,y:i}=s;if(t===!1||typeof n=="bigint"&&typeof i=="bigint"){if(r!==4)throw new Np({prefix:r,cause:new zb});return}if(t===!0||typeof n=="bigint"&&typeof i>"u"){if(r!==3&&r!==2)throw new Np({prefix:r,cause:new Jb});return}throw new Wb({publicKey:s})}function Dr(s){let e=(()=>{if(ts(s))return j3(s);if(Kb(s))return hB(s);let{prefix:t,x:r,y:n}=s;return typeof r=="bigint"&&typeof n=="bigint"?{prefix:t??4,x:r,y:n}:{prefix:t,x:r}})();return _3(e),e}function hB(s){return j3(Ne(s))}function j3(s){if(s.length!==132&&s.length!==130&&s.length!==68)throw new Yb({publicKey:s});if(s.length===130){let r=BigInt(lt(s,0,32)),n=BigInt(lt(s,32,64));return {prefix:4,x:r,y:n}}if(s.length===132){let r=Number(lt(s,0,1)),n=BigInt(lt(s,1,33)),i=BigInt(lt(s,33,65));return {prefix:r,x:n,y:i}}let e=Number(lt(s,0,1)),t=BigInt(lt(s,1,33));return {prefix:e,x:t}}function M3(s,e={}){return et(Vn(s,e))}function Vn(s,e={}){_3(s);let{prefix:t,x:r,y:n}=s,{includePrefix:i=!0}=e;return Je(i?le(t,{size:1}):"0x",le(r,{size:32}),typeof n=="bigint"?le(n,{size:32}):"0x")}var Wb=class extends G{constructor({publicKey:e}){super(`Value \`${_s(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"});}},Np=class extends G{constructor({prefix:e,cause:t}){super(`Prefix "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"});}},Jb=class extends G{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"});}},zb=class extends G{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"});}},Yb=class extends G{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Ue(es(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"});}};var dB=/^0x[a-fA-F0-9]{40}$/;function ss(s,e={}){let{strict:t=!0}=e;if(!dB.test(s))throw new ma({address:s,cause:new Ac});if(t){if(s.toLowerCase()===s)return;if(Nf(s)!==s)throw new ma({address:s,cause:new Tp})}}function Nf(s){if(Cp.has(s))return Cp.get(s);ss(s,{strict:!1});let e=s.substring(2).toLowerCase(),t=yt(Vr(e),{as:"Bytes"}),r=e.split("");for(let i=0;i<40;i+=2)t[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(t[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());let n=`0x${r.join("")}`;return Cp.set(s,n),n}function $3(s,e={}){let{checksum:t=!1}=e;return ss(s),t?Nf(s):s}function Zb(s,e={}){let t=yt(`0x${Vn(s).slice(4)}`).substring(26);return $3(`0x${t}`,e)}function Xb(s,e){return ss(s,{strict:!1}),ss(e,{strict:!1}),s.toLowerCase()===e.toLowerCase()}function pa(s,e={}){let{strict:t=!0}=e??{};try{return ss(s,{strict:t}),!0}catch{return !1}}var ma=class extends G{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"});}},Ac=class extends G{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"});}},Tp=class extends G{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"});}};function Pp(s){let e=!0,t="",r=0,n="",i=!1;for(let a=0;a<s.length;a++){let o=s[a];if(["(",")",","].includes(o)&&(e=!0),o==="("&&r++,o===")"&&r--,!!e){if(r===0){if(o===" "&&["event","function","error",""].includes(n))n="";else if(n+=o,o===")"){i=!0;break}continue}if(o===" "){s[a-1]!==","&&t!==","&&t!==",("&&(t="",e=!1);continue}n+=o,t+=o;}}if(!i)throw new G("Unable to normalize signature.");return n}function kp(s,e){let t=typeof s,r=e.type;switch(r){case"address":return pa(s,{strict:!1});case"bool":return t==="boolean";case"function":return t==="string";case"string":return t==="string";default:return r==="tuple"&&"components"in e?Object.values(e.components).every((n,i)=>kp(Object.values(s)[i],n)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?t==="number"||t==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?t==="string"||s instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(s)&&s.every(n=>kp(n,{...e,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Qb(s,e,t){for(let r in s){let n=s[r],i=e[r];if(n.type==="tuple"&&i.type==="tuple"&&"components"in n&&"components"in i)return Qb(n.components,i.components,t[r]);let a=[n.type,i.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?pa(t[r],{strict:!1}):a.includes("address")&&a.includes("bytes")?pa(t[r],{strict:!1}):!1)return a}}function q3(s,e={}){let{prepare:t=!0}=e,r=Array.isArray(s)?ap(s):typeof s=="string"?ap(s):s;return {...r,...t?{hash:Ic(r)}:{}}}function Tf(s,e,t){let{args:r=[],prepare:n=!0}=t??{},i=ts(e,{strict:!1}),a=s.filter(u=>i?u.type==="function"||u.type==="error"?tS(u)===lt(e,0,4):u.type==="event"?Ic(u)===e:!1:"name"in u&&u.name===e);if(a.length===0)throw new Cc({name:e});if(a.length===1)return {...a[0],...n?{hash:Ic(a[0])}:{}};let o;for(let u of a){if(!("inputs"in u))continue;if(!r||r.length===0){if(!u.inputs||u.inputs.length===0)return {...u,...n?{hash:Ic(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==r.length)continue;if(r.every((h,m)=>{let y="inputs"in u&&u.inputs[m];return y?kp(h,y):!1})){if(o&&"inputs"in o&&o.inputs){let h=Qb(u.inputs,o.inputs,r);if(h)throw new eS({abiItem:u,type:h[0]},{abiItem:o,type:h[1]})}o=u;}}let c=(()=>{if(o)return o;let[u,...l]=a;return {...u,overloads:l}})();if(!c)throw new Cc({name:e});return {...c,...n?{hash:Ic(c)}:{}}}function tS(...s){let e=(()=>{if(Array.isArray(s[0])){let[t,r]=s;return Tf(t,r)}return s[0]})();return lt(Ic(e),0,4)}function pB(...s){let e=(()=>{if(Array.isArray(s[0])){let[r,n]=s;return Tf(r,n)}return s[0]})(),t=typeof e=="string"?e:Ir(e);return Pp(t)}function Ic(...s){let e=(()=>{if(Array.isArray(s[0])){let[t,r]=s;return Tf(t,r)}return s[0]})();return typeof e!="string"&&"hash"in e&&e.hash?e.hash:yt(hs(pB(e)))}var eS=class extends G{constructor(e,t){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${Pp(Ir(e.abiItem))}\`, and`,`\`${t.type}\` in \`${Pp(Ir(t.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"});}},Cc=class extends G{constructor({name:e,data:t,type:r="item"}){let n=e?` with name "${e}"`:t?` with data "${t}"`:"";super(`ABI ${r}${n} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"});}},Bp=class extends G{constructor({data:e}){super(`Selector size is invalid. Expected 4 bytes. Received ${Ue(e)} bytes ("${e}").`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.InvalidSelectorSizeError"});}};var tt={};ye(tt,{ArrayLengthMismatchError:()=>Pf,BytesSizeMismatchError:()=>Tc,DataSizeTooSmallError:()=>Up,InvalidArrayError:()=>Bf,InvalidTypeError:()=>ya,LengthMismatchError:()=>Rf,ZeroDataError:()=>Hp,decode:()=>kc,encode:()=>Lr,encodePacked:()=>Lp,format:()=>OB,from:()=>_p});var K3=/^(.*)\[([0-9]*)\]$/,Op=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Nc=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,sS=2n**256n-1n;function ga(s,e,t){let{checksumAddress:r,staticPosition:n}=t,i=iS(e.type);if(i){let[a,o]=i;return yB(s,{...e,type:o},{checksumAddress:r,length:a,staticPosition:n})}if(e.type==="tuple")return vB(s,e,{checksumAddress:r,staticPosition:n});if(e.type==="address")return gB(s,{checksum:r});if(e.type==="bool")return wB(s);if(e.type.startsWith("bytes"))return bB(s,e,{staticPosition:n});if(e.type.startsWith("uint")||e.type.startsWith("int"))return SB(s,e);if(e.type==="string")return EB(s,{staticPosition:n});throw new ya(e.type)}var G3=32,rS=32;function gB(s,e={}){let{checksum:t=!1}=e,r=s.readBytes(32);return [(i=>t?Nf(i):i)(Ne($b(r,-20))),32]}function yB(s,e,t){let{checksumAddress:r,length:n,staticPosition:i}=t;if(!n){let c=Ms(s.readBytes(rS)),u=i+c,l=u+G3;s.setPosition(u);let h=Ms(s.readBytes(G3)),m=kf(e),y=0,g=[];for(let w=0;w<h;++w){s.setPosition(l+(m?w*32:y));let[b,C]=ga(s,e,{checksumAddress:r,staticPosition:l});y+=C,g.push(b);}return s.setPosition(i+32),[g,32]}if(kf(e)){let c=Ms(s.readBytes(rS)),u=i+c,l=[];for(let h=0;h<n;++h){s.setPosition(u+h*32);let[m]=ga(s,e,{checksumAddress:r,staticPosition:u});l.push(m);}return s.setPosition(i+32),[l,32]}let a=0,o=[];for(let c=0;c<n;++c){let[u,l]=ga(s,e,{checksumAddress:r,staticPosition:i+a});a+=l,o.push(u);}return [o,a]}function wB(s){return [Fb(s.readBytes(32),{size:32}),32]}function bB(s,e,{staticPosition:t}){let[r,n]=e.type.split("bytes");if(!n){let a=Ms(s.readBytes(32));s.setPosition(t+a);let o=Ms(s.readBytes(32));if(o===0)return s.setPosition(t+32),["0x",32];let c=s.readBytes(o);return s.setPosition(t+32),[Ne(c),32]}return [Ne(s.readBytes(Number.parseInt(n,10),32)),32]}function SB(s,e){let t=e.type.startsWith("int"),r=Number.parseInt(e.type.split("int")[1]||"256",10),n=s.readBytes(32);return [r>48?qb(n,{signed:t}):Ms(n,{signed:t}),32]}function vB(s,e,t){let{checksumAddress:r,staticPosition:n}=t,i=e.components.length===0||e.components.some(({name:c})=>!c),a=i?[]:{},o=0;if(kf(e)){let c=Ms(s.readBytes(rS)),u=n+c;for(let l=0;l<e.components.length;++l){let h=e.components[l];s.setPosition(u+o);let[m,y]=ga(s,h,{checksumAddress:r,staticPosition:u});o+=y,a[i?l:h?.name]=m;}return s.setPosition(n+32),[a,32]}for(let c=0;c<e.components.length;++c){let u=e.components[c],[l,h]=ga(s,u,{checksumAddress:r,staticPosition:n});a[i?c:u?.name]=l,o+=h;}return [a,o]}function EB(s,{staticPosition:e}){let t=Ms(s.readBytes(32)),r=e+t;s.setPosition(r);let n=Ms(s.readBytes(32));if(n===0)return s.setPosition(e+32),["",32];let i=s.readBytes(n,32),a=xp(Ap(i));return s.setPosition(e+32),[a,32]}function W3({checksumAddress:s,parameters:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(nS({checksumAddress:s,parameter:e[n],value:t[n]}));return r}function nS({checksumAddress:s=!1,parameter:e,value:t}){let r=e,n=iS(r.type);if(n){let[i,a]=n;return AB(t,{checksumAddress:s,length:i,parameter:{...r,type:a}})}if(r.type==="tuple")return kB(t,{checksumAddress:s,parameter:r});if(r.type==="address")return xB(t,{checksum:s});if(r.type==="bool")return CB(t);if(r.type.startsWith("uint")||r.type.startsWith("int")){let i=r.type.startsWith("int"),[,,a="256"]=Nc.exec(r.type)??[];return NB(t,{signed:i,size:Number(a)})}if(r.type.startsWith("bytes"))return IB(t,{type:r.type});if(r.type==="string")return TB(t);throw new ya(r.type)}function Vp(s){let e=0;for(let i=0;i<s.length;i++){let{dynamic:a,encoded:o}=s[i];a?e+=32:e+=Ue(o);}let t=[],r=[],n=0;for(let i=0;i<s.length;i++){let{dynamic:a,encoded:o}=s[i];a?(t.push(le(e+n,{size:32})),r.push(o),n+=Ue(o)):t.push(o);}return Je(...t,...r)}function xB(s,e){let{checksum:t=!1}=e;return ss(s,{strict:t}),{dynamic:!1,encoded:fr(s.toLowerCase())}}function AB(s,e){let{checksumAddress:t,length:r,parameter:n}=e,i=r===null;if(!Array.isArray(s))throw new Bf(s);if(!i&&s.length!==r)throw new Pf({expectedLength:r,givenLength:s.length,type:`${n.type}[${r}]`});let a=!1,o=[];for(let c=0;c<s.length;c++){let u=nS({checksumAddress:t,parameter:n,value:s[c]});u.dynamic&&(a=!0),o.push(u);}if(i||a){let c=Vp(o);if(i){let u=le(o.length,{size:32});return {dynamic:!0,encoded:o.length>0?Je(u,c):u}}if(a)return {dynamic:!0,encoded:c}}return {dynamic:!1,encoded:Je(...o.map(({encoded:c})=>c))}}function IB(s,{type:e}){let[,t]=e.split("bytes"),r=Ue(s);if(!t){let n=s;return r%32!==0&&(n=js(n,Math.ceil((s.length-2)/2/32)*32)),{dynamic:!0,encoded:Je(fr(le(r,{size:32})),n)}}if(r!==Number.parseInt(t,10))throw new Tc({expectedSize:Number.parseInt(t,10),value:s});return {dynamic:!1,encoded:js(s)}}function CB(s){if(typeof s!="boolean")throw new G(`Invalid boolean value: "${s}" (type: ${typeof s}). Expected: \`true\` or \`false\`.`);return {dynamic:!1,encoded:fr(Af(s))}}function NB(s,{signed:e,size:t}){if(typeof t=="number"){let r=2n**(BigInt(t)-(e?1n:0n))-1n,n=e?-r-1n:0n;if(s>r||s<n)throw new xc({max:r.toString(),min:n.toString(),signed:e,size:t/8,value:s.toString()})}return {dynamic:!1,encoded:le(s,{size:32,signed:e})}}function TB(s){let e=hs(s),t=Math.ceil(Ue(e)/32),r=[];for(let n=0;n<t;n++)r.push(js(lt(e,n*32,(n+1)*32)));return {dynamic:!0,encoded:Je(js(le(Ue(e),{size:32})),...r)}}function kB(s,e){let{checksumAddress:t,parameter:r}=e,n=!1,i=[];for(let a=0;a<r.components.length;a++){let o=r.components[a],c=Array.isArray(s)?a:o.name,u=nS({checksumAddress:t,parameter:o,value:s[c]});i.push(u),u.dynamic&&(n=!0);}return {dynamic:n,encoded:n?Vp(i):Je(...i.map(({encoded:a})=>a))}}function iS(s){let e=s.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}function kf(s){let{type:e}=s;if(e==="string"||e==="bytes"||e.endsWith("[]"))return !0;if(e==="tuple")return s.components?.some(kf);let t=iS(s.type);return !!(t&&kf({...s,type:t[1]}))}var BB={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new oS({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(s){if(s<0||s>this.bytes.length-1)throw new aS({length:this.bytes.length,position:s})},decrementPosition(s){if(s<0)throw new Dp({offset:s});let e=this.position-s;this.assertPosition(e),this.position=e;},getReadCount(s){return this.positionReadCount.get(s||this.position)||0},incrementPosition(s){if(s<0)throw new Dp({offset:s});let e=this.position+s;this.assertPosition(e),this.position=e;},inspectByte(s){let e=s??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(s,e){let t=e??this.position;return this.assertPosition(t+s-1),this.bytes.subarray(t,t+s)},inspectUint8(s){let e=s??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(s){let e=s??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(s){let e=s??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(s){let e=s??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(s){this.assertPosition(this.position),this.bytes[this.position]=s,this.position++;},pushBytes(s){this.assertPosition(this.position+s.length-1),this.bytes.set(s,this.position),this.position+=s.length;},pushUint8(s){this.assertPosition(this.position),this.bytes[this.position]=s,this.position++;},pushUint16(s){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,s),this.position+=2;},pushUint24(s){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,s>>8),this.dataView.setUint8(this.position+2,s&255),this.position+=3;},pushUint32(s){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,s),this.position+=4;},readByte(){this.assertReadLimit(),this._touch();let s=this.inspectByte();return this.position++,s},readBytes(s,e){this.assertReadLimit(),this._touch();let t=this.inspectBytes(s);return this.position+=e??s,t},readUint8(){this.assertReadLimit(),this._touch();let s=this.inspectUint8();return this.position+=1,s},readUint16(){this.assertReadLimit(),this._touch();let s=this.inspectUint16();return this.position+=2,s},readUint24(){this.assertReadLimit(),this._touch();let s=this.inspectUint24();return this.position+=3,s},readUint32(){this.assertReadLimit(),this._touch();let s=this.inspectUint32();return this.position+=4,s},get remaining(){return this.bytes.length-this.position},setPosition(s){let e=this.position;return this.assertPosition(s),this.position=s,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let s=this.getReadCount();this.positionReadCount.set(this.position,s+1),s>0&&this.recursiveReadCount++;}};function Of(s,{recursiveReadLimit:e=8192}={}){let t=Object.create(BB);return t.bytes=s,t.dataView=new DataView(s.buffer,s.byteOffset,s.byteLength),t.positionReadCount=new Map,t.recursiveReadLimit=e,t}var Dp=class extends G{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"});}},aS=class extends G{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"});}},oS=class extends G{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"});}};function kc(s,e,t={}){let{as:r="Array",checksumAddress:n=!1}=t,i=typeof e=="string"?et(e):e,a=Of(i);if(bs(i)===0&&s.length>0)throw new Hp;if(bs(i)&&bs(i)<32)throw new Up({data:typeof e=="string"?e:Ne(e),parameters:s,size:bs(i)});let o=0,c=r==="Array"?[]:{};for(let u=0;u<s.length;++u){let l=s[u];a.setPosition(o);let[h,m]=ga(a,l,{checksumAddress:n,staticPosition:0});o+=m,r==="Array"?c.push(h):c[l.name??u]=h;}return c}function Lr(s,e,t){let{checksumAddress:r=!1}=t??{};if(s.length!==e.length)throw new Rf({expectedLength:s.length,givenLength:e.length});let n=W3({checksumAddress:r,parameters:s,values:e}),i=Vp(n);return i.length===0?"0x":i}function Lp(s,e){if(s.length!==e.length)throw new Rf({expectedLength:s.length,givenLength:e.length});let t=[];for(let r=0;r<s.length;r++){let n=s[r],i=e[r];t.push(Lp.encode(n,i));}return Je(...t)}(function(s){function e(t,r,n=!1){if(t==="address"){let c=r;return ss(c),fr(c.toLowerCase(),n?32:0)}if(t==="string")return hs(r);if(t==="bytes")return r;if(t==="bool")return fr(Af(r),n?32:1);let i=t.match(Nc);if(i){let[c,u,l="256"]=i,h=Number.parseInt(l,10)/8;return le(r,{size:n?32:h,signed:u==="int"})}let a=t.match(Op);if(a){let[c,u]=a;if(Number.parseInt(u,10)!==(r.length-2)/2)throw new Tc({expectedSize:Number.parseInt(u,10),value:r});return js(r,n?32:0)}let o=t.match(K3);if(o&&Array.isArray(r)){let[c,u]=o,l=[];for(let h=0;h<r.length;h++)l.push(e(u,r[h],!0));return l.length===0?"0x":Je(...l)}throw new ya(t)}s.encode=e;})(Lp||(Lp={}));function OB(s){return or(s)}function _p(s){return Array.isArray(s)&&typeof s[0]=="string"?op(s):typeof s=="string"?op(s):s}var Up=class extends G{constructor({data:e,parameters:t,size:r}){super(`Data size of ${r} bytes is too small for given parameters.`,{metaMessages:[`Params: (${or(t)})`,`Data: ${e} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"});}},Hp=class extends G{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"});}},Pf=class extends G{constructor({expectedLength:e,givenLength:t,type:r}){super(`Array length mismatch for type \`${r}\`. Expected: \`${e}\`. Given: \`${t}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"});}},Tc=class extends G{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Ue(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"});}},Rf=class extends G{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${t}`].join(`
|
|
340
|
-
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"});}},Bf=class extends G{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"});}},ya=class extends G{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"});}};var se={};ye(se,{decodeData:()=>RB,decodeResult:()=>VB,encodeData:()=>DB,encodeResult:()=>LB,format:()=>UB,from:()=>HB,fromAbi:()=>wa,getSelector:()=>z3});function RB(...s){let[e,t]=(()=>{if(Array.isArray(s[0])){let[i,a,o]=s;return [wa(i,a),o]}return s})(),{overloads:r}=e;if(Ue(t)<4)throw new Bp({data:t});if(e.inputs?.length===0)return;let n=r?wa([e,...r],t):e;if(!(Ue(t)<=4))return kc(n.inputs,lt(t,4))}function VB(...s){let[e,t,r={}]=(()=>{if(Array.isArray(s[0])){let[i,a,o,c]=s;return [wa(i,a),o,c]}return s})(),n=kc(e.outputs,t,r);if(!(n&&Object.keys(n).length===0))return n&&Object.keys(n).length===1?Array.isArray(n)?n[0]:Object.values(n)[0]:n}function DB(...s){let[e,t=[]]=(()=>{if(Array.isArray(s[0])){let[u,l,h]=s;return [wa(u,l,{args:h}),h]}let[o,c]=s;return [o,c]})(),{overloads:r}=e,n=r?wa([e,...r],e.name,{args:t}):e,i=z3(n),a=t.length>0?Lr(n.inputs,t):void 0;return a?Je(i,a):i}function LB(...s){let[e,t,r={}]=(()=>{if(Array.isArray(s[0])){let[a,o,c,u]=s;return [wa(a,o),c,u]}return s})(),{as:n="Array"}=r,i=e.outputs.length===1?[t]:Array.isArray(t)?t:n==="Object"?Object.values(t):[t];return Lr(e.outputs,i)}function UB(s){return Ir(s)}function HB(s,e={}){return q3(s,e)}function wa(s,e,t){let r=Tf(s,e,t);if(r.type!=="function")throw new Cc({name:e,type:"function"});return r}function z3(s){return tS(s)}function Y3(s){let e=[];for(let t=0;t<s.length;t++){let[r,n]=s[t];r&&ss(r,{strict:!1}),e.push({address:r,storageKeys:n.map(i=>Gb(i)?i:ha(i))});}return e}function Z3(s){if(!s||s.length===0)return [];let e=[];for(let{address:t,storageKeys:r}of s){for(let n=0;n<r.length;n++)if(Ue(r[n])!==32)throw new cS({storageKey:r[n]});t&&ss(t,{strict:!1}),e.push([t,r]);}return e}var cS=class extends G{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Ue(e)} bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AccessList.InvalidStorageKeySizeError"});}};function eI(s){return _B(s,"Hex")}function _B(s,e){let t=e,r=(()=>{if(typeof s=="string"){if(s.length>3&&s.length%2!==0)throw new xf(s);return et(s)}return s})(),n=Of(r,{recursiveReadLimit:Number.POSITIVE_INFINITY});return tI(n,t)}function tI(s,e="Hex"){if(s.bytes.length===0)return e==="Hex"?Ne(s.bytes):s.bytes;let t=s.readByte();if(t<128&&s.decrementPosition(1),t<192){let n=Q3(s,t,128),i=s.readBytes(n);return e==="Hex"?Ne(i):i}let r=Q3(s,t,192);return jB(s,r,e)}function Q3(s,e,t){if(t===128&&e<128)return 1;if(e<=t+55)return e-t;if(e===t+55+1)return s.readUint8();if(e===t+55+2)return s.readUint16();if(e===t+55+3)return s.readUint24();if(e===t+55+4)return s.readUint32();throw new G("Invalid RLP prefix")}function jB(s,e,t){let r=s.position,n=[];for(;s.position-r<e;)n.push(tI(s,t));return n}function MB(s,e){let{as:t}=e,r=rI(s),n=Of(new Uint8Array(r.length));return r.encode(n),t==="Hex"?Ne(n.bytes):n.bytes}function sI(s,e={}){let{as:t="Hex"}=e;return MB(s,{as:t})}function rI(s){return Array.isArray(s)?$B(s.map(e=>rI(e))):qB(s)}function $B(s){let e=s.reduce((n,i)=>n+i.length,0),t=nI(e);return {length:e<=55?1+e:1+t+e,encode(n){e<=55?n.pushByte(192+e):(n.pushByte(247+t),t===1?n.pushUint8(e):t===2?n.pushUint16(e):t===3?n.pushUint24(e):n.pushUint32(e));for(let{encode:i}of s)i(n);}}}function qB(s){let e=typeof s=="string"?et(s):s,t=nI(e.length);return {length:e.length===1&&e[0]<128?1:e.length<=55?1+e.length:1+t+e.length,encode(n){e.length===1&&e[0]<128?n.pushBytes(e):e.length<=55?(n.pushByte(128+e.length),n.pushBytes(e)):(n.pushByte(183+t),t===1?n.pushUint8(e.length):t===2?n.pushUint16(e.length):t===3?n.pushUint24(e.length):n.pushUint32(e.length),n.pushBytes(e));}}}function nI(s){if(s<=255)return 1;if(s<=65535)return 2;if(s<=16777215)return 3;if(s<=4294967295)return 4;throw new G("Length is too large.")}var Tt={};ye(Tt,{InvalidRError:()=>qp,InvalidSError:()=>Fp,InvalidSerializedSizeError:()=>$p,InvalidVError:()=>Kp,InvalidYParityError:()=>Sa,MissingPropertiesError:()=>Bc,assert:()=>Gp,extract:()=>Wp,from:()=>Vf,fromBytes:()=>AI,fromDerBytes:()=>aO,fromDerHex:()=>II,fromHex:()=>IS,fromLegacy:()=>CI,fromRpc:()=>NI,fromTuple:()=>CS,toBytes:()=>oO,toDerBytes:()=>cO,toDerHex:()=>uO,toHex:()=>TI,toLegacy:()=>lO,toRpc:()=>NS,toTuple:()=>TS,vToYParity:()=>Jp,validate:()=>fO,yParityToV:()=>kS});var jp=class extends kn{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,M5(e);let r=ra(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let a=0;a<i.length;a++)i[a]^=54;this.iHash.update(i),this.oHash=e.create();for(let a=0;a<i.length;a++)i[a]^=106;this.oHash.update(i),Qt(i);}update(e){return Nr(this),this.iHash.update(e),this}digestInto(e){Nr(this),ur(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy();}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=n,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy();}},uS=(s,e,t)=>new jp(s,e).update(t).digest();uS.create=(s,e)=>new jp(s,e);var rs=BigInt(0),Ft=BigInt(1),ba=BigInt(2),FB=BigInt(3),oI=BigInt(4),cI=BigInt(5),uI=BigInt(8);function qt(s,e){let t=s%e;return t>=rs?t:e+t}function Ss(s,e,t){let r=s;for(;e-- >rs;)r*=r,r%=t;return r}function Mp(s,e){if(s===rs)throw new Error("invert: expected non-zero number");if(e<=rs)throw new Error("invert: expected positive modulus, got "+e);let t=qt(s,e),r=e,n=rs,a=Ft;for(;t!==rs;){let u=r/t,l=r%t,h=n-a*u;r=t,t=l,n=a,a=h;}if(r!==Ft)throw new Error("invert: does not exist");return qt(n,e)}function lI(s,e){let t=(s.ORDER+Ft)/oI,r=s.pow(e,t);if(!s.eql(s.sqr(r),e))throw new Error("Cannot find square root");return r}function KB(s,e){let t=(s.ORDER-cI)/uI,r=s.mul(e,ba),n=s.pow(r,t),i=s.mul(e,n),a=s.mul(s.mul(i,ba),n),o=s.mul(i,s.sub(a,s.ONE));if(!s.eql(s.sqr(o),e))throw new Error("Cannot find square root");return o}function GB(s){if(s<BigInt(3))throw new Error("sqrt is not defined for small field");let e=s-Ft,t=0;for(;e%ba===rs;)e/=ba,t++;let r=ba,n=Ur(s);for(;aI(n,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return lI;let i=n.pow(r,e),a=(e+Ft)/ba;return function(c,u){if(c.is0(u))return u;if(aI(c,u)!==1)throw new Error("Cannot find square root");let l=t,h=c.mul(c.ONE,i),m=c.pow(u,e),y=c.pow(u,a);for(;!c.eql(m,c.ONE);){if(c.is0(m))return c.ZERO;let g=1,w=c.sqr(m);for(;!c.eql(w,c.ONE);)if(g++,w=c.sqr(w),g===l)throw new Error("Cannot find square root");let b=Ft<<BigInt(l-g-1),C=c.pow(h,b);l=g,h=c.sqr(C),m=c.mul(m,h),y=c.mul(y,C);}return y}}function WB(s){return s%oI===FB?lI:s%uI===cI?KB:GB(s)}var JB=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function lS(s){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=JB.reduce((r,n)=>(r[n]="function",r),e);return la(s,t)}function zB(s,e,t){if(t<rs)throw new Error("invalid exponent, negatives unsupported");if(t===rs)return s.ONE;if(t===Ft)return e;let r=s.ONE,n=e;for(;t>rs;)t&Ft&&(r=s.mul(r,n)),n=s.sqr(n),t>>=Ft;return r}function fS(s,e,t=!1){let r=new Array(e.length).fill(t?s.ZERO:void 0),n=e.reduce((a,o,c)=>s.is0(o)?a:(r[c]=a,s.mul(a,o)),s.ONE),i=s.inv(n);return e.reduceRight((a,o,c)=>s.is0(o)?a:(r[c]=s.mul(a,r[c]),s.mul(a,o)),i),r}function aI(s,e){let t=(s.ORDER-Ft)/ba,r=s.pow(e,t),n=s.eql(r,s.ONE),i=s.eql(r,s.ZERO),a=s.eql(r,s.neg(s.ONE));if(!n&&!i&&!a)throw new Error("invalid Legendre symbol result");return n?1:i?0:-1}function hS(s,e){e!==void 0&&sa(e);let t=e!==void 0?e:s.toString(2).length,r=Math.ceil(t/8);return {nBitLength:t,nByteLength:r}}function Ur(s,e,t=!1,r={}){if(s<=rs)throw new Error("invalid field: expected ORDER > 0, got "+s);let{nBitLength:n,nByteLength:i}=hS(s,e);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let a,o=Object.freeze({ORDER:s,isLE:t,BITS:n,BYTES:i,MASK:ua(n),ZERO:rs,ONE:Ft,create:c=>qt(c,s),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return rs<=c&&c<s},is0:c=>c===rs,isOdd:c=>(c&Ft)===Ft,neg:c=>qt(-c,s),eql:(c,u)=>c===u,sqr:c=>qt(c*c,s),add:(c,u)=>qt(c+u,s),sub:(c,u)=>qt(c-u,s),mul:(c,u)=>qt(c*u,s),pow:(c,u)=>zB(o,c,u),div:(c,u)=>qt(c*Mp(u,s),s),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Mp(c,s),sqrt:r.sqrt||(c=>(a||(a=WB(s)),a(o,c))),toBytes:c=>t?Ob(c,i):oa(c,i),fromBytes:c=>{if(c.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+c.length);return t?Bb(c):Pr(c)},invertBatch:c=>fS(o,c),cmov:(c,u,l)=>l?u:c});return Object.freeze(o)}function fI(s){if(typeof s!="bigint")throw new Error("field order must be bigint");let e=s.toString(2).length;return Math.ceil(e/8)}function dS(s){let e=fI(s);return e+Math.ceil(e/2)}function hI(s,e,t=!1){let r=s.length,n=fI(e),i=dS(e);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);let a=t?Bb(s):Pr(s),o=qt(a,e-Ft)+Ft;return t?Ob(o,n):oa(o,n)}var dI=BigInt(0),wS=BigInt(1);function mS(s,e){let t=e.negate();return s?t:e}function pI(s,e){if(!Number.isSafeInteger(s)||s<=0||s>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+s)}function pS(s,e){pI(s,e);let t=Math.ceil(e/s)+1,r=2**(s-1),n=2**s,i=ua(s),a=BigInt(s);return {windows:t,windowSize:r,mask:i,maxNumber:n,shiftBy:a}}function mI(s,e,t){let{windowSize:r,mask:n,maxNumber:i,shiftBy:a}=t,o=Number(s&n),c=s>>a;o>r&&(o-=i,c+=wS);let u=e*r,l=u+Math.abs(o)-1,h=o===0,m=o<0,y=e%2!==0;return {nextN:c,offset:l,isZero:h,isNeg:m,isNegF:y,offsetF:u}}function YB(s,e){if(!Array.isArray(s))throw new Error("array expected");s.forEach((t,r)=>{if(!(t instanceof e))throw new Error("invalid point at index "+r)});}function ZB(s,e){if(!Array.isArray(s))throw new Error("array of scalars expected");s.forEach((t,r)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+r)});}var gS=new WeakMap,gI=new WeakMap;function yS(s){return gI.get(s)||1}function yI(s,e){return {constTimeNegate:mS,hasPrecomputes(t){return yS(t)!==1},unsafeLadder(t,r,n=s.ZERO){let i=t;for(;r>dI;)r&wS&&(n=n.add(i)),i=i.double(),r>>=wS;return n},precomputeWindow(t,r){let{windows:n,windowSize:i}=pS(r,e),a=[],o=t,c=o;for(let u=0;u<n;u++){c=o,a.push(c);for(let l=1;l<i;l++)c=c.add(o),a.push(c);o=c.double();}return a},wNAF(t,r,n){let i=s.ZERO,a=s.BASE,o=pS(t,e);for(let c=0;c<o.windows;c++){let{nextN:u,offset:l,isZero:h,isNeg:m,isNegF:y,offsetF:g}=mI(n,c,o);n=u,h?a=a.add(mS(y,r[g])):i=i.add(mS(m,r[l]));}return {p:i,f:a}},wNAFUnsafe(t,r,n,i=s.ZERO){let a=pS(t,e);for(let o=0;o<a.windows&&n!==dI;o++){let{nextN:c,offset:u,isZero:l,isNeg:h}=mI(n,o,a);if(n=c,!l){let m=r[u];i=i.add(h?m.negate():m);}}return i},getPrecomputes(t,r,n){let i=gS.get(r);return i||(i=this.precomputeWindow(r,t),t!==1&&gS.set(r,n(i))),i},wNAFCached(t,r,n){let i=yS(t);return this.wNAF(i,this.getPrecomputes(i,t,n),r)},wNAFCachedUnsafe(t,r,n,i){let a=yS(t);return a===1?this.unsafeLadder(t,r,i):this.wNAFUnsafe(a,this.getPrecomputes(a,t,n),r,i)},setWindowSize(t,r){pI(r,e),gI.set(t,r),gS.delete(t);}}}function wI(s,e,t,r){YB(t,s),ZB(r,e);let n=t.length,i=r.length;if(n!==i)throw new Error("arrays of points and scalars must have equal length");let a=s.ZERO,o=I3(BigInt(n)),c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);let u=ua(c),l=new Array(Number(u)+1).fill(a),h=Math.floor((e.BITS-1)/c)*c,m=a;for(let y=h;y>=0;y-=c){l.fill(a);for(let w=0;w<i;w++){let b=r[w],C=Number(b>>BigInt(y)&u);l[C]=l[C].add(t[w]);}let g=a;for(let w=l.length-1,b=a;w>0;w--)b=b.add(l[w]),g=g.add(b);if(m=m.add(g),y!==0)for(let w=0;w<c;w++)m=m.double();}return m}function bS(s){return lS(s.Fp),la(s,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...hS(s.n,s.nBitLength),...s,p:s.Fp.ORDER})}function bI(s){s.lowS!==void 0&&wc("lowS",s.lowS),s.prehash!==void 0&&wc("prehash",s.prehash);}function XB(s){let e=bS(s);la(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:t,Fp:r,a:n}=e;if(t){if(!r.eql(n,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}var ES=class extends Error{constructor(e=""){super(e);}},Hr={Err:ES,_tlv:{encode:(s,e)=>{let{Err:t}=Hr;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let r=e.length/2,n=mf(r);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let i=r>127?mf(n.length/2|128):"";return mf(s)+i+n+e},decode(s,e){let{Err:t}=Hr,r=0;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[r++]!==s)throw new t("tlv.decode: wrong tlv");let n=e[r++],i=!!(n&128),a=0;if(!i)a=n;else {let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let u=e.subarray(r,r+c);if(u.length!==c)throw new t("tlv.decode: length bytes not complete");if(u[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let l of u)a=a<<8|l;if(r+=c,a<128)throw new t("tlv.decode(long): not minimal encoding")}let o=e.subarray(r,r+a);if(o.length!==a)throw new t("tlv.decode: wrong value length");return {v:o,l:e.subarray(r+a)}}},_int:{encode(s){let{Err:e}=Hr;if(s<_r)throw new e("integer: negative integers are not allowed");let t=mf(s);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(s){let{Err:e}=Hr;if(s[0]&128)throw new e("invalid signature integer: negative");if(s[0]===0&&!(s[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Pr(s)}},toSig(s){let{Err:e,_int:t,_tlv:r}=Hr,n=fs("signature",s),{v:i,l:a}=r.decode(48,n);if(a.length)throw new e("invalid signature: left bytes after parsing");let{v:o,l:c}=r.decode(2,i),{v:u,l}=r.decode(2,c);if(l.length)throw new e("invalid signature: left bytes after parsing");return {r:t.decode(o),s:t.decode(u)}},hexFromSig(s){let{_tlv:e,_int:t}=Hr,r=e.encode(2,t.encode(s.r)),n=e.encode(2,t.encode(s.s)),i=r+n;return e.encode(48,i)}};function SS(s,e){return bc(oa(s,e))}var _r=BigInt(0),Nt=BigInt(1);BigInt(2);var vS=BigInt(3),QB=BigInt(4);function eO(s){let e=XB(s),{Fp:t}=e,r=Ur(e.n,e.nBitLength),n=e.toBytes||((x,E,I)=>{let D=E.toAffine();return gf(Uint8Array.from([4]),t.toBytes(D.x),t.toBytes(D.y))}),i=e.fromBytes||(x=>{let E=x.subarray(1),I=t.fromBytes(E.subarray(0,t.BYTES)),D=t.fromBytes(E.subarray(t.BYTES,2*t.BYTES));return {x:I,y:D}});function a(x){let{a:E,b:I}=e,D=t.sqr(x),K=t.mul(D,x);return t.add(t.add(K,t.mul(x,E)),I)}function o(x,E){let I=t.sqr(E),D=a(x);return t.eql(I,D)}if(!o(e.Gx,e.Gy))throw new Error("bad curve params: generator point");let c=t.mul(t.pow(e.a,vS),QB),u=t.mul(t.sqr(e.b),BigInt(27));if(t.is0(t.add(c,u)))throw new Error("bad curve params: a or b");function l(x){return wp(x,Nt,e.n)}function h(x){let{allowedPrivateKeyLengths:E,nByteLength:I,wrapPrivateKey:D,n:K}=e;if(E&&typeof x!="bigint"){if(yc(x)&&(x=bc(x)),typeof x!="string"||!E.includes(x.length))throw new Error("invalid private key");x=x.padStart(I*2,"0");}let $;try{$=typeof x=="bigint"?x:Pr(fs("private key",x,I));}catch{throw new Error("invalid private key, expected hex or "+I+" bytes, got "+typeof x)}return D&&($=qt($,K)),ca("private key",$,Nt,K),$}function m(x){if(!(x instanceof w))throw new Error("ProjectivePoint expected")}let y=Rb((x,E)=>{let{px:I,py:D,pz:K}=x;if(t.eql(K,t.ONE))return {x:I,y:D};let $=x.is0();E==null&&(E=$?t.ONE:t.inv(K));let J=t.mul(I,E),ne=t.mul(D,E),F=t.mul(K,E);if($)return {x:t.ZERO,y:t.ZERO};if(!t.eql(F,t.ONE))throw new Error("invZ was invalid");return {x:J,y:ne}}),g=Rb(x=>{if(x.is0()){if(e.allowInfinityPoint&&!t.is0(x.py))return;throw new Error("bad point: ZERO")}let{x:E,y:I}=x.toAffine();if(!t.isValid(E)||!t.isValid(I))throw new Error("bad point: x or y not FE");if(!o(E,I))throw new Error("bad point: equation left != right");if(!x.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return !0});class w{constructor(E,I,D){if(E==null||!t.isValid(E))throw new Error("x required");if(I==null||!t.isValid(I)||t.is0(I))throw new Error("y required");if(D==null||!t.isValid(D))throw new Error("z required");this.px=E,this.py=I,this.pz=D,Object.freeze(this);}static fromAffine(E){let{x:I,y:D}=E||{};if(!E||!t.isValid(I)||!t.isValid(D))throw new Error("invalid affine point");if(E instanceof w)throw new Error("projective point not allowed");let K=$=>t.eql($,t.ZERO);return K(I)&&K(D)?w.ZERO:new w(I,D,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(E){let I=fS(t,E.map(D=>D.pz));return E.map((D,K)=>D.toAffine(I[K])).map(w.fromAffine)}static fromHex(E){let I=w.fromAffine(i(fs("pointHex",E)));return I.assertValidity(),I}static fromPrivateKey(E){return w.BASE.multiply(h(E))}static msm(E,I){return wI(w,r,E,I)}_setWindowSize(E){N.setWindowSize(this,E);}assertValidity(){g(this);}hasEvenY(){let{y:E}=this.toAffine();if(t.isOdd)return !t.isOdd(E);throw new Error("Field doesn't support isOdd")}equals(E){m(E);let{px:I,py:D,pz:K}=this,{px:$,py:J,pz:ne}=E,F=t.eql(t.mul(I,ne),t.mul($,K)),z=t.eql(t.mul(D,ne),t.mul(J,K));return F&&z}negate(){return new w(this.px,t.neg(this.py),this.pz)}double(){let{a:E,b:I}=e,D=t.mul(I,vS),{px:K,py:$,pz:J}=this,ne=t.ZERO,F=t.ZERO,z=t.ZERO,ce=t.mul(K,K),Le=t.mul($,$),U=t.mul(J,J),M=t.mul(K,$);return M=t.add(M,M),z=t.mul(K,J),z=t.add(z,z),ne=t.mul(E,z),F=t.mul(D,U),F=t.add(ne,F),ne=t.sub(Le,F),F=t.add(Le,F),F=t.mul(ne,F),ne=t.mul(M,ne),z=t.mul(D,z),U=t.mul(E,U),M=t.sub(ce,U),M=t.mul(E,M),M=t.add(M,z),z=t.add(ce,ce),ce=t.add(z,ce),ce=t.add(ce,U),ce=t.mul(ce,M),F=t.add(F,ce),U=t.mul($,J),U=t.add(U,U),ce=t.mul(U,M),ne=t.sub(ne,ce),z=t.mul(U,Le),z=t.add(z,z),z=t.add(z,z),new w(ne,F,z)}add(E){m(E);let{px:I,py:D,pz:K}=this,{px:$,py:J,pz:ne}=E,F=t.ZERO,z=t.ZERO,ce=t.ZERO,Le=e.a,U=t.mul(e.b,vS),M=t.mul(I,$),Q=t.mul(D,J),pe=t.mul(K,ne),te=t.add(I,D),H=t.add($,J);te=t.mul(te,H),H=t.add(M,Q),te=t.sub(te,H),H=t.add(I,K);let Y=t.add($,ne);return H=t.mul(H,Y),Y=t.add(M,pe),H=t.sub(H,Y),Y=t.add(D,K),F=t.add(J,ne),Y=t.mul(Y,F),F=t.add(Q,pe),Y=t.sub(Y,F),ce=t.mul(Le,H),F=t.mul(U,pe),ce=t.add(F,ce),F=t.sub(Q,ce),ce=t.add(Q,ce),z=t.mul(F,ce),Q=t.add(M,M),Q=t.add(Q,M),pe=t.mul(Le,pe),H=t.mul(U,H),Q=t.add(Q,pe),pe=t.sub(M,pe),pe=t.mul(Le,pe),H=t.add(H,pe),M=t.mul(Q,H),z=t.add(z,M),M=t.mul(Y,H),F=t.mul(te,F),F=t.sub(F,M),M=t.mul(te,Q),ce=t.mul(Y,ce),ce=t.add(ce,M),new w(F,z,ce)}subtract(E){return this.add(E.negate())}is0(){return this.equals(w.ZERO)}wNAF(E){return N.wNAFCached(this,E,w.normalizeZ)}multiplyUnsafe(E){let{endo:I,n:D}=e;ca("scalar",E,_r,D);let K=w.ZERO;if(E===_r)return K;if(this.is0()||E===Nt)return this;if(!I||N.hasPrecomputes(this))return N.wNAFCachedUnsafe(this,E,w.normalizeZ);let{k1neg:$,k1:J,k2neg:ne,k2:F}=I.splitScalar(E),z=K,ce=K,Le=this;for(;J>_r||F>_r;)J&Nt&&(z=z.add(Le)),F&Nt&&(ce=ce.add(Le)),Le=Le.double(),J>>=Nt,F>>=Nt;return $&&(z=z.negate()),ne&&(ce=ce.negate()),ce=new w(t.mul(ce.px,I.beta),ce.py,ce.pz),z.add(ce)}multiply(E){let{endo:I,n:D}=e;ca("scalar",E,Nt,D);let K,$;if(I){let{k1neg:J,k1:ne,k2neg:F,k2:z}=I.splitScalar(E),{p:ce,f:Le}=this.wNAF(ne),{p:U,f:M}=this.wNAF(z);ce=N.constTimeNegate(J,ce),U=N.constTimeNegate(F,U),U=new w(t.mul(U.px,I.beta),U.py,U.pz),K=ce.add(U),$=Le.add(M);}else {let{p:J,f:ne}=this.wNAF(E);K=J,$=ne;}return w.normalizeZ([K,$])[0]}multiplyAndAddUnsafe(E,I,D){let K=w.BASE,$=(ne,F)=>F===_r||F===Nt||!ne.equals(K)?ne.multiplyUnsafe(F):ne.multiply(F),J=$(this,I).add($(E,D));return J.is0()?void 0:J}toAffine(E){return y(this,E)}isTorsionFree(){let{h:E,isTorsionFree:I}=e;if(E===Nt)return !0;if(I)return I(w,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:E,clearCofactor:I}=e;return E===Nt?this:I?I(w,this):this.multiplyUnsafe(e.h)}toRawBytes(E=!0){return wc("isCompressed",E),this.assertValidity(),n(w,this,E)}toHex(E=!0){return wc("isCompressed",E),bc(this.toRawBytes(E))}}w.BASE=new w(e.Gx,e.Gy,t.ONE),w.ZERO=new w(t.ZERO,t.ONE,t.ZERO);let{endo:b,nBitLength:C}=e,N=yI(w,b?Math.ceil(C/2):C);return {CURVE:e,ProjectivePoint:w,normPrivateKeyToScalar:h,weierstrassEquation:a,isWithinCurveOrder:l}}function tO(s){let e=bS(s);return la(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function SI(s){let e=tO(s),{Fp:t,n:r,nByteLength:n,nBitLength:i}=e,a=t.BYTES+1,o=2*t.BYTES+1;function c(U){return qt(U,r)}function u(U){return Mp(U,r)}let{ProjectivePoint:l,normPrivateKeyToScalar:h,weierstrassEquation:m,isWithinCurveOrder:y}=eO({...e,toBytes(U,M,Q){let pe=M.toAffine(),te=t.toBytes(pe.x),H=gf;return wc("isCompressed",Q),Q?H(Uint8Array.from([M.hasEvenY()?2:3]),te):H(Uint8Array.from([4]),te,t.toBytes(pe.y))},fromBytes(U){let M=U.length,Q=U[0],pe=U.subarray(1);if(M===a&&(Q===2||Q===3)){let te=Pr(pe);if(!wp(te,Nt,t.ORDER))throw new Error("Point is not on curve");let H=m(te),Y;try{Y=t.sqrt(H);}catch(Ce){let _e=Ce instanceof Error?": "+Ce.message:"";throw new Error("Point is not on curve"+_e)}let Z=(Y&Nt)===Nt;return (Q&1)===1!==Z&&(Y=t.neg(Y)),{x:te,y:Y}}else if(M===o&&Q===4){let te=t.fromBytes(pe.subarray(0,t.BYTES)),H=t.fromBytes(pe.subarray(t.BYTES,2*t.BYTES));return {x:te,y:H}}else {let te=a,H=o;throw new Error("invalid Point, expected length of "+te+", or uncompressed "+H+", got "+M)}}});function g(U){let M=r>>Nt;return U>M}function w(U){return g(U)?c(-U):U}let b=(U,M,Q)=>Pr(U.slice(M,Q));class C{constructor(M,Q,pe){ca("r",M,Nt,r),ca("s",Q,Nt,r),this.r=M,this.s=Q,pe!=null&&(this.recovery=pe),Object.freeze(this);}static fromCompact(M){let Q=n;return M=fs("compactSignature",M,Q*2),new C(b(M,0,Q),b(M,Q,2*Q))}static fromDER(M){let{r:Q,s:pe}=Hr.toSig(fs("DER",M));return new C(Q,pe)}assertValidity(){}addRecoveryBit(M){return new C(this.r,this.s,M)}recoverPublicKey(M){let{r:Q,s:pe,recovery:te}=this,H=K(fs("msgHash",M));if(te==null||![0,1,2,3].includes(te))throw new Error("recovery id invalid");let Y=te===2||te===3?Q+e.n:Q;if(Y>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let Z=te&1?"03":"02",ge=l.fromHex(Z+SS(Y,t.BYTES)),Ce=u(Y),_e=c(-H*Ce),$t=c(pe*Ce),Fe=l.BASE.multiplyAndAddUnsafe(ge,_e,$t);if(!Fe)throw new Error("point at infinify");return Fe.assertValidity(),Fe}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return pf(this.toDERHex())}toDERHex(){return Hr.hexFromSig(this)}toCompactRawBytes(){return pf(this.toCompactHex())}toCompactHex(){let M=n;return SS(this.r,M)+SS(this.s,M)}}let N={isValidPrivateKey(U){try{return h(U),!0}catch{return !1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let U=dS(e.n);return hI(e.randomBytes(U),e.n)},precompute(U=8,M=l.BASE){return M._setWindowSize(U),M.multiply(BigInt(3)),M}};function x(U,M=!0){return l.fromPrivateKey(U).toRawBytes(M)}function E(U){if(typeof U=="bigint")return !1;if(U instanceof l)return !0;let Q=fs("key",U).length,pe=t.BYTES,te=pe+1,H=2*pe+1;if(!(e.allowedPrivateKeyLengths||n===te))return Q===te||Q===H}function I(U,M,Q=!0){if(E(U)===!0)throw new Error("first arg must be private key");if(E(M)===!1)throw new Error("second arg must be public key");return l.fromHex(M).multiply(h(U)).toRawBytes(Q)}let D=e.bits2int||function(U){if(U.length>8192)throw new Error("input is too large");let M=Pr(U),Q=U.length*8-i;return Q>0?M>>BigInt(Q):M},K=e.bits2int_modN||function(U){return c(D(U))},$=ua(i);function J(U){return ca("num < 2^"+i,U,_r,$),oa(U,n)}function ne(U,M,Q=F){if(["recovered","canonical"].some(re=>re in Q))throw new Error("sign() legacy options not supported");let{hash:pe,randomBytes:te}=e,{lowS:H,prehash:Y,extraEntropy:Z}=Q;H==null&&(H=!0),U=fs("msgHash",U),bI(Q),Y&&(U=fs("prehashed msgHash",pe(U)));let ge=K(U),Ce=h(M),_e=[J(Ce),J(ge)];if(Z!=null&&Z!==!1){let re=Z===!0?te(t.BYTES):Z;_e.push(fs("extraEntropy",re));}let $t=gf(..._e),Fe=ge;function Re(re){let cs=D(re);if(!y(cs))return;let Ps=u(cs),us=l.BASE.multiply(cs).toAffine(),je=c(us.x);if(je===_r)return;let Wl=c(Ps*c(Fe+je*Ce));if(Wl===_r)return;let cc=(us.x===je?0:2)|Number(us.y&Nt),v6=Wl;return H&&g(Wl)&&(v6=w(Wl),cc^=1),new C(je,v6,cc)}return {seed:$t,k2sig:Re}}let F={lowS:e.lowS,prehash:!1},z={lowS:e.lowS,prehash:!1};function ce(U,M,Q=F){let{seed:pe,k2sig:te}=ne(U,M,Q),H=e;return C3(H.hash.outputLen,H.nByteLength,H.hmac)(pe,te)}l.BASE._setWindowSize(8);function Le(U,M,Q,pe=z){let te=U;M=fs("msgHash",M),Q=fs("publicKey",Q);let{lowS:H,prehash:Y,format:Z}=pe;if(bI(pe),"strict"in pe)throw new Error("options.strict was renamed to lowS");if(Z!==void 0&&Z!=="compact"&&Z!=="der")throw new Error("format must be compact or der");let ge=typeof te=="string"||yc(te),Ce=!ge&&!Z&&typeof te=="object"&&te!==null&&typeof te.r=="bigint"&&typeof te.s=="bigint";if(!ge&&!Ce)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let _e,$t;try{if(Ce&&(_e=new C(te.r,te.s)),ge){try{Z!=="compact"&&(_e=C.fromDER(te));}catch(cc){if(!(cc instanceof Hr.Err))throw cc}!_e&&Z!=="der"&&(_e=C.fromCompact(te));}$t=l.fromHex(Q);}catch{return !1}if(!_e||H&&_e.hasHighS())return !1;Y&&(M=e.hash(M));let{r:Fe,s:Re}=_e,re=K(M),cs=u(Re),Ps=c(re*cs),us=c(Fe*cs),je=l.BASE.multiplyAndAddUnsafe($t,Ps,us)?.toAffine();return je?c(je.x)===Fe:!1}return {CURVE:e,getPublicKey:x,getSharedSecret:I,sign:ce,verify:Le,ProjectivePoint:l,Signature:C,utils:N}}function sO(s){return {hash:s,hmac:(e,...t)=>uS(s,e,q5(...t)),randomBytes:F5}}function Pc(s,e){let t=r=>SI({...s,...sO(r)});return {...t(e),create:t}}var xI=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),vI=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),rO=BigInt(0),nO=BigInt(1),xS=BigInt(2),EI=(s,e)=>(s+e/xS)/e;function iO(s){let e=xI,t=BigInt(3),r=BigInt(6),n=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=s*s*s%e,l=u*u*s%e,h=Ss(l,t,e)*l%e,m=Ss(h,t,e)*l%e,y=Ss(m,xS,e)*u%e,g=Ss(y,n,e)*y%e,w=Ss(g,i,e)*g%e,b=Ss(w,o,e)*w%e,C=Ss(b,c,e)*b%e,N=Ss(C,o,e)*w%e,x=Ss(N,t,e)*l%e,E=Ss(x,a,e)*g%e,I=Ss(E,r,e)*u%e,D=Ss(I,xS,e);if(!AS.eql(AS.sqr(D),s))throw new Error("Cannot find square root");return D}var AS=Ur(xI,void 0,void 0,{sqrt:iO}),vs=Pc({a:rO,b:BigInt(7),Fp:AS,n:vI,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:s=>{let e=vI,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-nO*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,a=BigInt("0x100000000000000000000000000000000"),o=EI(i*s,e),c=EI(-r*s,e),u=qt(s-o*t-c*n,e),l=qt(-o*r-c*i,e),h=u>a,m=l>a;if(h&&(u=e-u),m&&(l=e-l),u>a||l>a)throw new Error("splitScalar: Endomorphism failed, k="+s);return {k1neg:h,k1:u,k2neg:m,k2:l}}}},gc);function Gp(s,e={}){let{recovered:t}=e;if(typeof s.r>"u")throw new Bc({signature:s});if(typeof s.s>"u")throw new Bc({signature:s});if(t&&typeof s.yParity>"u")throw new Bc({signature:s});if(s.r<0n||s.r>sS)throw new qp({value:s.r});if(s.s<0n||s.s>sS)throw new Fp({value:s.s});if(typeof s.yParity=="number"&&s.yParity!==0&&s.yParity!==1)throw new Sa({value:s.yParity})}function AI(s){return IS(Ne(s))}function IS(s){if(s.length!==130&&s.length!==132)throw new $p({signature:s});let e=BigInt(lt(s,0,32)),t=BigInt(lt(s,32,64)),r=(()=>{let n=+`0x${s.slice(130)}`;if(!Number.isNaN(n))try{return Jp(n)}catch{throw new Sa({value:n})}})();return typeof r>"u"?{r:e,s:t}:{r:e,s:t,yParity:r}}function Wp(s){if(!(typeof s.r>"u")&&!(typeof s.s>"u"))return Vf(s)}function Vf(s){let e=typeof s=="string"?IS(s):s instanceof Uint8Array?AI(s):typeof s.r=="string"?NI(s):s.v?CI(s):{r:s.r,s:s.s,...typeof s.yParity<"u"?{yParity:s.yParity}:{}};return Gp(e),e}function aO(s){return II(Ne(s))}function II(s){let{r:e,s:t}=vs.Signature.fromDER(es(s).slice(2));return {r:e,s:t}}function CI(s){return {r:s.r,s:s.s,yParity:Jp(s.v)}}function NI(s){let e=(()=>{let t=s.v?Number(s.v):void 0,r=s.yParity?Number(s.yParity):void 0;if(typeof t=="number"&&typeof r!="number"&&(r=Jp(t)),typeof r!="number")throw new Sa({value:s.yParity});return r})();return {r:BigInt(s.r),s:BigInt(s.s),yParity:e}}function CS(s){let[e,t,r]=s;return Vf({r:t==="0x"?0n:BigInt(t),s:r==="0x"?0n:BigInt(r),yParity:e==="0x"?0:Number(e)})}function oO(s){return et(TI(s))}function TI(s){Gp(s);let e=s.r,t=s.s;return Je(le(e,{size:32}),le(t,{size:32}),typeof s.yParity=="number"?le(kS(s.yParity),{size:1}):"0x")}function cO(s){return new vs.Signature(s.r,s.s).toDERRawBytes()}function uO(s){return `0x${new vs.Signature(s.r,s.s).toDERHex()}`}function lO(s){return {r:s.r,s:s.s,v:kS(s.yParity)}}function NS(s){let{r:e,s:t,yParity:r}=s;return {r:le(e,{size:32}),s:le(t,{size:32}),yParity:r===0?"0x0":"0x1"}}function TS(s){let{r:e,s:t,yParity:r}=s;return [r?"0x01":"0x",e===0n?"0x":ha(le(e)),t===0n?"0x":ha(le(t))]}function fO(s,e={}){try{return Gp(s,e),!0}catch{return !1}}function Jp(s){if(s===0||s===27)return 0;if(s===1||s===28)return 1;if(s>=35)return s%2===0?1:0;throw new Kp({value:s})}function kS(s){if(s===0)return 27;if(s===1)return 28;throw new Sa({value:s})}var $p=class extends G{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Ue(es(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"});}},Bc=class extends G{constructor({signature:e}){super(`Signature \`${_s(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"});}},qp=class extends G{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"});}},Fp=class extends G{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"});}},Sa=class extends G{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"});}},Kp=class extends G{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"});}};var hO=new TextEncoder,dO=new TextDecoder,zp=Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((s,e)=>[e,s.charCodeAt(0)])),Yp={...Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((s,e)=>[s.charCodeAt(0),e])),61:0,45:62,95:63};function mO(s,e={}){let{pad:t=!0,url:r=!1}=e,n=new Uint8Array(Math.ceil(s.length/3)*4);for(let c=0,u=0;u<s.length;c+=4,u+=3){let l=(s[u]<<16)+(s[u+1]<<8)+(s[u+2]|0);n[c]=zp[l>>18],n[c+1]=zp[l>>12&63],n[c+2]=zp[l>>6&63],n[c+3]=zp[l&63];}let i=s.length%3,a=Math.floor(s.length/3)*4+(i&&i+1),o=dO.decode(new Uint8Array(n.buffer,0,a));return t&&i===1&&(o+="=="),t&&i===2&&(o+="="),r&&(o=o.replaceAll("+","-").replaceAll("/","_")),o}function kI(s,e={}){return mO(et(s),e)}function Df(s){let e=s.replace(/=+$/,""),t=e.length,r=new Uint8Array(t+3);hO.encodeInto(e+"===",r);for(let i=0,a=0;i<e.length;i+=4,a+=3){let o=(Yp[r[i]]<<18)+(Yp[r[i+1]]<<12)+(Yp[r[i+2]]<<6)+Yp[r[i+3]];r[a]=o>>16,r[a+1]=o>>8&255,r[a+2]=o&255;}let n=(t>>2)*3+(t%4&&t%4-1);return new Uint8Array(r.buffer,0,n)}var Lt={};ye(Lt,{createKeyPair:()=>gO,getPublicKey:()=>OI,getSharedSecret:()=>yO,noble:()=>pO,randomPrivateKey:()=>RI,recoverAddress:()=>VI,recoverPublicKey:()=>DI,sign:()=>wO,verify:()=>bO});var Zp=!1;var pO=vs;function gO(s={}){let{as:e="Hex"}=s,t=RI({as:e}),r=OI({privateKey:t});return {privateKey:t,publicKey:r}}function OI(s){let{privateKey:e}=s,t=vs.ProjectivePoint.fromPrivateKey(es(e).slice(2));return Dr(t)}function yO(s){let{as:e="Hex",privateKey:t,publicKey:r}=s,a=vs.ProjectivePoint.fromHex(Vn(r).slice(2)).multiply(vs.utils.normPrivateKeyToScalar(es(t).slice(2))).toRawBytes(!0);return e==="Hex"?Ne(a):a}function RI(s={}){let{as:e="Hex"}=s,t=vs.utils.randomPrivateKey();return e==="Hex"?Ne(t):t}function VI(s){return Zb(DI(s))}function DI(s){let{payload:e,signature:t}=s,{r,s:n,yParity:i}=t,o=new vs.Signature(BigInt(r),BigInt(n)).addRecoveryBit(i).recoverPublicKey(es(e).substring(2));return Dr(o)}function wO(s){let{extraEntropy:e=Zp,hash:t,payload:r,privateKey:n}=s,{r:i,s:a,recovery:o}=vs.sign(Rr(r),Rr(n),{extraEntropy:typeof e=="boolean"?e:es(e).slice(2),lowS:!0,...t?{prehash:!0}:{}});return {r:i,s:a,yParity:o}}function bO(s){let{address:e,hash:t,payload:r,publicKey:n,signature:i}=s;return e?Xb(e,VI({payload:r,signature:i})):vs.verify(i,Rr(r),M3(n),...t?[{prehash:!0,lowS:!0}]:[])}function LI(s,e={}){return {...s,blockNumber:s.blockNumber?BigInt(s.blockNumber):null,logIndex:s.logIndex?Number(s.logIndex):null,transactionIndex:s.transactionIndex?Number(s.transactionIndex):null}}function UI(s,e={}){return {address:s.address,blockHash:s.blockHash,blockNumber:typeof s.blockNumber=="bigint"?le(s.blockNumber):null,data:s.data,logIndex:typeof s.logIndex=="number"?le(s.logIndex):null,topics:s.topics,transactionHash:s.transactionHash,transactionIndex:typeof s.transactionIndex=="number"?le(s.transactionIndex):null,removed:s.removed}}var Oc={};ye(Oc,{createKeyPair:()=>NO,getPublicKey:()=>$I,getSharedSecret:()=>TO,noble:()=>CO,randomPrivateKey:()=>qI,recoverPublicKey:()=>kO,sign:()=>PO,verify:()=>OS});var _I=Ur(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),SO=_I.create(BigInt("-3")),vO=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),PS=Pc({a:SO,b:vO,Fp:_I,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},gc);var jI=Ur(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),EO=jI.create(BigInt("-3")),xO=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");Pc({a:EO,b:xO,Fp:jI,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},b3);var MI=Ur(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),AO=MI.create(BigInt("-3")),IO=BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00");Pc({a:AO,b:IO,Fp:MI,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},w3);var BS=PS,jr=PS;var CO=jr;function NO(s={}){let{as:e="Hex"}=s,t=qI({as:e}),r=$I({privateKey:t});return {privateKey:t,publicKey:r}}function $I(s){let{privateKey:e}=s,t=jr.ProjectivePoint.fromPrivateKey(typeof e=="string"?e.slice(2):Ne(e).slice(2));return Dr(t)}function TO(s){let{as:e="Hex",privateKey:t,publicKey:r}=s,n=jr.ProjectivePoint.fromHex(Vn(r).slice(2)),i=typeof t=="string"?t.slice(2):Ne(t).slice(2),o=n.multiply(jr.utils.normPrivateKeyToScalar(i)).toRawBytes(!0);return e==="Hex"?Ne(o):o}function qI(s={}){let{as:e="Hex"}=s,t=jr.utils.randomPrivateKey();return e==="Hex"?Ne(t):t}function kO(s){let{payload:e,signature:t}=s,{r,s:n,yParity:i}=t,a=new jr.Signature(BigInt(r),BigInt(n)).addRecoveryBit(i),o=e instanceof Uint8Array?Ne(e):e,c=a.recoverPublicKey(o.substring(2));return Dr(c)}function PO(s){let{extraEntropy:e=Zp,hash:t,payload:r,privateKey:n}=s,{r:i,s:a,recovery:o}=jr.sign(r instanceof Uint8Array?r:et(r),n instanceof Uint8Array?n:et(n),{extraEntropy:typeof e=="boolean"?e:es(e).slice(2),lowS:!0,...t?{prehash:!0}:{}});return {r:i,s:a,yParity:o}}function OS(s){let{hash:e,payload:t,publicKey:r,signature:n}=s;return jr.verify(n,t instanceof Uint8Array?t:et(t),Vn(r).substring(2),...e?[{prehash:!0,lowS:!0}]:[])}var Xp={};ye(Xp,{encode:()=>FI,getSignPayload:()=>BO});function FI(s){let e=es(s);return Je("0x19",hs(`Ethereum Signed Message:
|
|
341
|
-
`+Ue(e)),e)}function
|
|
342
|
-
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionEnvelope.TipAboveFeeCapError"});}};var va={};ye(va,{assert:()=>Lf,deserialize:()=>zI,from:()=>RO,getSignPayload:()=>VO,hash:()=>YI,serialize:()=>ZI,serializedType:()=>JI,toRpc:()=>DO,type:()=>RS,validate:()=>LO});var JI="0x02",RS="eip1559";function Lf(s){let{chainId:e,maxPriorityFeePerGas:t,maxFeePerGas:r,to:n}=s;if(e<=0)throw new tg({chainId:e});if(n&&ss(n,{strict:!1}),r&&BigInt(r)>2n**256n-1n)throw new eg({feeCap:r});if(t&&r&&t>r)throw new rg({maxFeePerGas:r,maxPriorityFeePerGas:t})}function zI(s){let e=eI(lt(s,1)),[t,r,n,i,a,o,c,u,l,h,m,y]=e;if(!(e.length===9||e.length===12))throw new sg({attributes:{chainId:t,nonce:r,maxPriorityFeePerGas:n,maxFeePerGas:i,gas:a,to:o,value:c,data:u,accessList:l,...e.length>9?{yParity:h,r:m,s:y}:{}},serialized:s,type:RS});let g={chainId:Number(t),type:RS};ts(o)&&o!=="0x"&&(g.to=o),ts(a)&&a!=="0x"&&(g.gas=BigInt(a)),ts(u)&&u!=="0x"&&(g.data=u),ts(r)&&(g.nonce=r==="0x"?0n:BigInt(r)),ts(c)&&c!=="0x"&&(g.value=BigInt(c)),ts(i)&&i!=="0x"&&(g.maxFeePerGas=BigInt(i)),ts(n)&&n!=="0x"&&(g.maxPriorityFeePerGas=BigInt(n)),l.length!==0&&l!=="0x"&&(g.accessList=Y3(l));let w=m&&y&&h?CS([h,m,y]):void 0;return w&&(g={...g,...w}),Lf(g),g}function RO(s,e={}){let{signature:t}=e,r=typeof s=="string"?zI(s):s;return Lf(r),{...r,...t?Vf(t):{},type:"eip1559"}}function VO(s){return YI(s,{presign:!0})}function YI(s,e={}){let{presign:t}=e;return yt(ZI({...s,...t?{r:void 0,s:void 0,yParity:void 0,v:void 0}:{}}))}function ZI(s,e={}){let{chainId:t,gas:r,nonce:n,to:i,value:a,maxFeePerGas:o,maxPriorityFeePerGas:c,accessList:u,data:l,input:h}=s;Lf(s);let m=Z3(u),y=Wp(e.signature||s),g=[le(t),n?le(n):"0x",c?le(c):"0x",o?le(o):"0x",r?le(r):"0x",i??"0x",a?le(a):"0x",l??h??"0x",m,...y?TS(y):[]];return Je(JI,sI(g))}function DO(s){let e=Wp(s);return {...s,chainId:le(s.chainId),data:s.data??s.input,type:"0x2",...typeof s.gas=="bigint"?{gas:le(s.gas)}:{},...typeof s.nonce=="bigint"?{nonce:le(s.nonce)}:{},...typeof s.value=="bigint"?{value:le(s.value)}:{},...typeof s.maxFeePerGas=="bigint"?{maxFeePerGas:le(s.maxFeePerGas)}:{},...typeof s.maxPriorityFeePerGas=="bigint"?{maxPriorityFeePerGas:le(s.maxPriorityFeePerGas)}:{},...e?NS(e):{}}}function LO(s){try{return Lf(s),!0}catch{return !1}}var Rc={};ye(Rc,{fromRpc:()=>UO,fromRpcStatus:()=>XI,fromRpcType:()=>e8,toRpc:()=>HO,toRpcStatus:()=>QI,toRpcType:()=>t8});var XI={"0x0":"reverted","0x1":"success"},QI={reverted:"0x0",success:"0x1"},e8={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"},t8={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function UO(s){return s?{...s,blobGasPrice:s.blobGasPrice?BigInt(s.blobGasPrice):void 0,blobGasUsed:s.blobGasUsed?BigInt(s.blobGasUsed):void 0,blockNumber:BigInt(s.blockNumber??0n),cumulativeGasUsed:BigInt(s.cumulativeGasUsed??0n),effectiveGasPrice:BigInt(s.effectiveGasPrice??0n),gasUsed:BigInt(s.gasUsed??0n),logs:s.logs.map(e=>LI(e,{pending:!1})),status:XI[s.status],transactionIndex:Number(s.transactionIndex??0),type:e8[s.type]||s.type}:null}function HO(s){return {blobGasPrice:s.blobGasPrice?le(s.blobGasPrice):void 0,blobGasUsed:s.blobGasUsed?le(s.blobGasUsed):void 0,blockHash:s.blockHash,blockNumber:le(s.blockNumber),contractAddress:s.contractAddress,cumulativeGasUsed:le(s.cumulativeGasUsed),effectiveGasPrice:le(s.effectiveGasPrice),from:s.from,gasUsed:le(s.gasUsed),logs:s.logs.map(UI),logsBloom:s.logsBloom,root:s.root,status:QI[s.status],to:s.to,transactionHash:s.transactionHash,transactionIndex:le(s.transactionIndex),type:t8[s.type]??s.type}}var Hf={};ye(Hf,{BytesSizeMismatchError:()=>ng,InvalidDomainError:()=>ig,InvalidPrimaryTypeError:()=>ag,InvalidStructTypeError:()=>og,assert:()=>VS,domainSeparator:()=>_O,encode:()=>s8,encodeData:()=>US,encodeField:()=>HS,encodeType:()=>r8,extractEip712DomainTypes:()=>cg,findTypeDependencies:()=>_S,getSignPayload:()=>Uf,hashDomain:()=>DS,hashStruct:()=>LS,hashType:()=>n8,serialize:()=>jO,validate:()=>MO});function VS(s){let{domain:e,message:t,primaryType:r,types:n}=s,i=(a,o)=>{for(let c of a){let{name:u,type:l}=c,h=o[u],m=l.match(Nc);if(m&&(typeof h=="number"||typeof h=="bigint")){let[,w,b]=m;le(h,{signed:w==="int",size:Number.parseInt(b??"",10)/8});}if(l==="address"&&typeof h=="string"&&!pa(h))throw new ma({address:h,cause:new Ac});let y=l.match(Op);if(y){let[,w]=y;if(w&&Ue(h)!==Number.parseInt(w,10))throw new ng({expectedSize:Number.parseInt(w,10),givenSize:Ue(h)})}let g=n[l];g&&($O(l),i(g,h));}};if(n.EIP712Domain&&e){if(typeof e!="object")throw new ig({domain:e});i(n.EIP712Domain,e);}if(r!=="EIP712Domain")if(n[r])i(n[r],t);else throw new ag({primaryType:r,types:n})}function _O(s){return DS({domain:s})}function s8(s){let{domain:e={},message:t,primaryType:r}=s,n={EIP712Domain:cg(e),...s.types};VS({domain:e,message:t,primaryType:r,types:n});let i=["0x19","0x01"];return e&&i.push(DS({domain:e,types:n})),r!=="EIP712Domain"&&i.push(LS({data:t,primaryType:r,types:n})),Je(...i)}function r8(s){let{primaryType:e,types:t}=s,r="",n=_S({primaryType:e,types:t});n.delete(e);let i=[e,...Array.from(n).sort()];for(let a of i)r+=`${a}(${(t[a]??[]).map(({name:o,type:c})=>`${c} ${o}`).join(",")})`;return r}function cg(s){return [typeof s?.name=="string"&&{name:"name",type:"string"},s?.version&&{name:"version",type:"string"},(typeof s?.chainId=="number"||typeof s?.chainId=="bigint")&&{name:"chainId",type:"uint256"},s?.verifyingContract&&{name:"verifyingContract",type:"address"},s?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function Uf(s){return yt(s8(s))}function DS(s){let{domain:e,types:t}=s;return LS({data:e,primaryType:"EIP712Domain",types:{...t,EIP712Domain:t?.EIP712Domain||cg(e)}})}function LS(s){let{data:e,primaryType:t,types:r}=s,n=US({data:e,primaryType:t,types:r});return yt(n)}function jO(s){let{domain:e,message:t,primaryType:r,types:n}=s,i=(c,u)=>{let l={...u};for(let h of c){let{name:m,type:y}=h;y==="address"&&(l[m]=l[m].toLowerCase());}return l},a=(()=>{if(!e)return {};let c=n.EIP712Domain??cg(e);return i(c,e)})(),o=(()=>{if(r!=="EIP712Domain")return n[r]?i(n[r],t):{}})();return _s({domain:a,message:o,primaryType:r,types:n},(c,u)=>typeof u=="bigint"?u.toString():u)}function MO(s){try{return VS(s),!0}catch{return !1}}var ng=class extends G{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.BytesSizeMismatchError"});}},ig=class extends G{constructor({domain:e}){super(`Invalid domain "${_s(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidDomainError"});}},ag=class extends G{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{metaMessages:["Check that the primary type is a key in `types`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidPrimaryTypeError"});}},og=class extends G{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidStructTypeError"});}};function US(s){let{data:e,primaryType:t,types:r}=s,n=[{type:"bytes32"}],i=[n8({primaryType:t,types:r})];for(let a of r[t]??[]){let[o,c]=HS({types:r,name:a.name,type:a.type,value:e[a.name]});n.push(o),i.push(c);}return Lr(n,i)}function n8(s){let{primaryType:e,types:t}=s,r=hs(r8({primaryType:e,types:t}));return yt(r)}function HS(s){let{types:e,name:t,type:r,value:n}=s;if(e[r]!==void 0)return [{type:"bytes32"},yt(US({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},yt(n,{as:"Hex"})];if(r==="string")return [{type:"bytes32"},yt(Vr(n),{as:"Hex"})];if(r.lastIndexOf("]")===r.length-1){let i=r.slice(0,r.lastIndexOf("[")),a=n.map(o=>HS({name:t,type:i,types:e,value:o}));return [{type:"bytes32"},yt(Lr(a.map(([o])=>o),a.map(([,o])=>o)))]}return [{type:r},n]}function _S(s,e=new Set){let{primaryType:t,types:r}=s,i=t.match(/^\w*/u)?.[0];if(e.has(i)||r[i]===void 0)return e;e.add(i);for(let a of r[i])_S({primaryType:a.type,types:r},e);return e}function $O(s){if(s==="address"||s==="bool"||s==="string"||s.startsWith("bytes")||s.startsWith("uint")||s.startsWith("int"))throw new og({type:s})}var Ln={};ye(Ln,{CredentialCreationFailedError:()=>Dn,CredentialRequestFailedError:()=>_f,createChallenge:()=>o8,createCredential:()=>FO,getAuthenticatorData:()=>c8,getClientDataJSON:()=>u8,getCredentialCreationOptions:()=>l8,getCredentialRequestOptions:()=>f8,getSignPayload:()=>KO,sign:()=>GO,verify:()=>WO});function i8(s){let e=s[4]===0?5:4,t=e+32,r=s[t+2]===0?t+3:t+2,n=BigInt(Ne(s.slice(e,t))),i=BigInt(Ne(s.slice(r)));return {r:n,s:i>BS.CURVE.n/2n?BS.CURVE.n-i:i}}async function a8(s){try{let e=s.getPublicKey();if(!e)throw new Dn;let t=new Uint8Array(e),r=await crypto.subtle.importKey("spki",new Uint8Array(t),{name:"ECDSA",namedCurve:"P-256",hash:"SHA-256"},!0,["verify"]),n=new Uint8Array(await crypto.subtle.exportKey("raw",r));return Dr(n)}catch(e){if(e.message!=="Permission denied to access object")throw e;let t=new Uint8Array(s.attestationObject),r=32,n=88,i=c=>{let u=new Uint8Array([c,n,r]);for(let l=0;l<t.length-u.length;l++)if(u.every((h,m)=>t[l+m]===h))return l+u.length;throw new Dn},a=i(33),o=i(34);return Dr(new Uint8Array([4,...t.slice(a,a+r),...t.slice(o,o+r)]))}}var o8=Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]);async function FO(s){let{createFn:e=window.navigator.credentials.create.bind(window.navigator.credentials),...t}=s,r=l8(t);try{let n=await e(r);if(!n)throw new Dn;let i=n.response,a=await a8(i);return {id:n.id,publicKey:a,raw:n}}catch(n){throw new Dn({cause:n})}}function c8(s={}){let{flag:e=5,rpId:t=window.location.hostname,signCount:r=0}=s,n=If(hs(t)),i=le(e,{size:1}),a=le(r,{size:4});return Je(n,i,a)}function u8(s){let{challenge:e,crossOrigin:t=!1,extraClientData:r,origin:n=window.location.origin}=s;return JSON.stringify({type:"webauthn.get",challenge:kI(e,{url:!0,pad:!1}),origin:n,crossOrigin:t,...r})}function l8(s){let{attestation:e="none",authenticatorSelection:t={residentKey:"preferred",requireResidentKey:!1,userVerification:"required"},challenge:r=o8,excludeCredentialIds:n,extensions:i,name:a,rp:o={id:window.location.hostname,name:window.document.title},user:c}=s,u=c?.name??a;return {publicKey:{attestation:e,authenticatorSelection:t,challenge:typeof r=="string"?et(r):r,...n?{excludeCredentials:n?.map(l=>({id:Df(l),type:"public-key"}))}:{},pubKeyCredParams:[{type:"public-key",alg:-7}],...i&&{extensions:i},rp:o,user:{id:c?.id??yt(Vr(u),{as:"Bytes"}),name:u,displayName:c?.displayName??u}}}}function f8(s){let{credentialId:e,challenge:t,extensions:r,rpId:n=window.location.hostname,userVerification:i="required"}=s;return {publicKey:{...e?{allowCredentials:Array.isArray(e)?e.map(a=>({id:Df(a),type:"public-key"})):[{id:Df(e),type:"public-key"}]}:{},challenge:et(t),...r&&{extensions:r},rpId:n,userVerification:i}}}function KO(s){let{challenge:e,crossOrigin:t,extraClientData:r,flag:n,origin:i,rpId:a,signCount:o,userVerification:c="required"}=s,u=c8({flag:n,rpId:a,signCount:o}),l=u8({challenge:e,crossOrigin:t,extraClientData:r,origin:i}),h=If(hs(l)),m=l.indexOf('"challenge"'),y=l.indexOf('"type"'),g={authenticatorData:u,clientDataJSON:l,challengeIndex:m,typeIndex:y,userVerificationRequired:c==="required"},w=Je(u,h);return {metadata:g,payload:w}}async function GO(s){let{getFn:e=window.navigator.credentials.get.bind(window.navigator.credentials),...t}=s,r=f8(t);try{let n=await e(r);if(!n)throw new _f;let i=n.response,a=String.fromCharCode(...new Uint8Array(i.clientDataJSON)),o=a.indexOf('"challenge"'),c=a.indexOf('"type"'),u=i8(new Uint8Array(i.signature));return {metadata:{authenticatorData:Ne(new Uint8Array(i.authenticatorData)),clientDataJSON:a,challengeIndex:o,typeIndex:c,userVerificationRequired:r.publicKey.userVerification==="required"},signature:u,raw:n}}catch(n){throw new _f({cause:n})}}function WO(s){let{challenge:e,hash:t=!0,metadata:r,publicKey:n,signature:i}=s,{authenticatorData:a,challengeIndex:o,clientDataJSON:c,typeIndex:u,userVerificationRequired:l}=r,h=et(a);if(h.length<37)return !1;let m=h[32];if((m&1)!==1||l&&(m&4)!==4||(m&8)!==8&&(m&16)===16)return !1;if(u!==void 0){let N='"type":"webauthn.get"';if(N!==c.slice(Number(u),N.length+1))return !1}let y=o!==void 0?c.slice(Number(o)).match(/^"challenge":"(.*?)"/):c.match(/"challenge":"(.*?)"/);if(!y)return !1;let[g,w]=y;if(Ne(Df(w))!==e)return !1;let b=If(Vr(c),{as:"Bytes"}),C=Mb(h,b);return OS({hash:t,payload:C,publicKey:n,signature:i})}var Dn=class extends G{constructor({cause:e}={}){super("Failed to create credential.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebAuthnP256.CredentialCreationFailedError"});}},_f=class extends G{constructor({cause:e}={}){super("Failed to request credential.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebAuthnP256.CredentialRequestFailedError"});}};var _c={};ye(_c,{from:()=>_R});var Ve={};ye(Ve,{configFromJson:()=>DR,configToJson:()=>VR,evaluateConfigurationSafety:()=>UR,findSignerLeaf:()=>Ff,flatLeavesToTopology:()=>Sv,getSigners:()=>RR,getWeight:()=>Kf,hasInvalidValues:()=>Uc,hashConfiguration:()=>Wt,isAnyAddressSubdigestLeaf:()=>qs,isConfig:()=>Hc,isLeaf:()=>k8,isNestedLeaf:()=>ns,isNode:()=>wt,isNodeLeaf:()=>Pt,isSapientSignerLeaf:()=>Gt,isSignerLeaf:()=>Kt,isSubdigestLeaf:()=>$s,isTopology:()=>Lc,maximumDepth:()=>Gf,mergeTopology:()=>Ag,normalizeSignerSignature:()=>LR,replaceAddress:()=>xg,topologyToFlatLeaves:()=>Sg});var Ut={};ye(Ut,{FLAG_ADDRESS:()=>fv,FLAG_BRANCH:()=>dv,FLAG_NESTED:()=>pv,FLAG_NODE:()=>dg,FLAG_SIGNATURE_ANY_ADDRESS_SUBDIGEST:()=>yv,FLAG_SIGNATURE_ERC1271:()=>hv,FLAG_SIGNATURE_ETH_SIGN:()=>gv,FLAG_SIGNATURE_HASH:()=>lv,FLAG_SIGNATURE_SAPIENT:()=>mg,FLAG_SIGNATURE_SAPIENT_COMPACT:()=>wv,FLAG_SUBDIGEST:()=>mv,decodeSignature:()=>A8,encodeChainedSignature:()=>I8,encodeSignature:()=>C8,encodeTopology:()=>Mf,fillLeaves:()=>lg,isRawConfig:()=>wg,isRawLeaf:()=>x8,isRawNestedLeaf:()=>qf,isRawNode:()=>pg,isRawSignature:()=>E8,isRawSignerLeaf:()=>$f,isRawTopology:()=>gg,isSignatureOfSapientSignerLeaf:()=>NR,isSignedSapientSignerLeaf:()=>bv,isSignedSignerLeaf:()=>bg,parseBranch:()=>yg,rawSignatureFromJson:()=>PR,rawSignatureToJson:()=>TR,recover:()=>cv});var nt={};ye(nt,{DEPLOY:()=>h8,DefaultGuestAddress:()=>YO,EXECUTE:()=>eR,EXECUTE_USER_OP:()=>$S,GET_IMPLEMENTATION:()=>ZO,GET_LIMIT_USAGE:()=>iR,IMAGE_HASH:()=>XO,INCREMENT_USAGE_LIMIT:()=>nR,IS_VALID_SIGNATURE:()=>jf,PlaceholderAddress:()=>zO,READ_ENTRYPOINT:()=>rR,READ_NONCE:()=>QO,READ_NONCE_4337:()=>sR,RECOVER_SAPIENT_SIGNATURE:()=>jS,RECOVER_SAPIENT_SIGNATURE_COMPACT:()=>MS,UPDATE_IMAGE_HASH:()=>tR,ZeroAddress:()=>JO});var JO="0x0000000000000000000000000000000000000000",zO="0xffff0000ffff0000ffff0000ffff0000ffff0000",YO="0x0000000000006Ac72ed1d192fa28f0058D3F8806",jf=ke.from(["function isValidSignature(bytes32 _hash, bytes memory _signature) public view returns (bytes4 magicValue)"])[0],h8=ke.from(["function deploy(address _mainModule, bytes32 _salt) public payable returns (address _contract)"])[0],ZO=ke.from(["function getImplementation() external view returns (address)"])[0],XO=ke.from(["function imageHash() external view returns (bytes32)"])[0],QO=ke.from(["function readNonce(uint256 _space) public view returns (uint256)"])[0],eR=ke.from(["function execute(bytes calldata _payload, bytes calldata _signature) external"])[0],tR=ke.from(["function updateImageHash(bytes32 _imageHash) external"])[0],jS=ke.from(["function recoverSapientSignature((uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external view returns (bytes32)"])[0],MS=ke.from(["function recoverSapientSignatureCompact(bytes32 _digest, bytes calldata _signature) external view returns (bytes32)"])[0],$S=ke.from(["function executeUserOp(bytes calldata _userOp) external"])[0],sR=ke.from(["function getNonce(address _account, uint192 _key) public view returns (uint256)"])[0],rR=ke.from(["function entrypoint() public view returns (address)"])[0],nR=ke.from([{type:"function",name:"incrementUsageLimit",inputs:[{name:"limits",type:"tuple[]",internalType:"struct UsageLimit[]",components:[{name:"usageHash",type:"bytes32",internalType:"bytes32"},{name:"usageAmount",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"}])[0],iR=ke.from(["function getLimitUsage(address wallet, bytes32 usageHash) public view returns (uint256)"])[0];var Mr={};ye(Mr,{InvalidWrappedSignatureError:()=>ug,assert:()=>FS,from:()=>cR,magicBytes:()=>qS,universalSignatureValidatorAbi:()=>oR,universalSignatureValidatorBytecode:()=>aR,unwrap:()=>d8,validate:()=>lR,wrap:()=>uR});var qS="0x6492649264926492649264926492649264926492649264926492649264926492",aR="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",oR=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}];function FS(s){if(lt(s,-32)!==qS)throw new ug(s)}function cR(s){return typeof s=="string"?d8(s):s}function d8(s){FS(s);let[e,t,r]=kc(_p("address, bytes, bytes"),s);return {data:t,signature:r,to:e}}function uR(s){let{data:e,signature:t,to:r}=s;return Je(Lr(_p("address, bytes, bytes"),[r,e,t]),qS)}function lR(s){try{return FS(s),!0}catch{return !1}}var ug=class extends G{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"});}};function KS(s,{to:e,data:t}){let r=v.concat(tt.encode([{type:"address"},{type:"bytes"},{type:"bytes"}],[e,v.from(t),v.from(s)]),Mr.magicBytes);switch(typeof s){case"object":return v.toBytes(r);case"string":return r}}function m8(s){switch(typeof s){case"object":if(f.toHex(s.subarray(-Mr.magicBytes.slice(2).length/2))===Mr.magicBytes){let[e,t,r]=tt.decode([{type:"address"},{type:"bytes"},{type:"bytes"}],s.subarray(0,-Mr.magicBytes.slice(2).length/2));return {signature:v.toBytes(r),erc6492:{to:e,data:v.toBytes(t)}}}else return {signature:s};case"string":if(s.endsWith(Mr.magicBytes.slice(2)))try{let[e,t,r]=tt.decode([{type:"address"},{type:"bytes"},{type:"bytes"}],s.slice(0,-Mr.magicBytes.slice(2).length));return {signature:r,erc6492:{to:e,data:t}}}catch{return {signature:s}}else return {signature:s}}}var we={};ye(we,{BEHAVIOR_ABORT_ON_ERROR:()=>ev,BEHAVIOR_IGNORE_ERROR:()=>XS,BEHAVIOR_REVERT_ON_ERROR:()=>QS,KIND_CONFIG_UPDATE:()=>YS,KIND_DIGEST:()=>ZS,KIND_MESSAGE:()=>zS,KIND_TRANSACTIONS:()=>JS,decode:()=>AR,decodeBehaviorOnError:()=>v8,encode:()=>y8,encode4337Nonce:()=>w8,encodeBehaviorOnError:()=>Dc,encodeSapient:()=>vR,fromAbiFormat:()=>CR,fromCall:()=>pR,fromConfigUpdate:()=>tv,fromDigest:()=>mR,fromMessage:()=>dR,hash:()=>Vc,hashCall:()=>xR,isCalls:()=>gR,isCalls4337_07:()=>bR,isConfigUpdate:()=>wR,isDigest:()=>g8,isMessage:()=>yR,isParented:()=>SR,isRecovery:()=>sv,isSessionImplicitAuthorize:()=>nv,to4337Message:()=>S8,to4337UserOperation:()=>b8,toAbiFormat:()=>av,toRecovery:()=>rv,toTyped:()=>iv});var xa={};ye(xa,{createJSONReplacer:()=>GS,createJSONReviver:()=>WS,fromJSON:()=>hR,minBytesFor:()=>Es,packRSY:()=>$r,toJSON:()=>fR,unpackRSY:()=>Ea});function Es(s){return Math.ceil(s.toString(16).length/2)}function $r({r:s,s:e,yParity:t}){let r=f.padLeft(f.fromNumber(s),32),n=f.padLeft(f.fromNumber(e),32);return t%2===1&&(n[0]|=128),f.concat(r,n)}function Ea(s){let e=f.toBigInt(s.slice(0,32)),t=s.slice(32,64),r=t[0]&128?1:0,n=new Uint8Array(t);n[0]=n[0]&127;let i=f.toBigInt(n);return {r:e,s:i,yParity:r}}function GS(s){return (e,t)=>typeof t=="bigint"?{__bigint:"0x"+t.toString(16)}:t instanceof Uint8Array?{__uint8array:Array.from(t)}:s?s(e,t):t}function WS(s){return (e,t)=>{if(t&&typeof t=="object"&&"__bigint"in t&&Object.keys(t).length===1){let r=t.__bigint;if(typeof r=="string"&&r.startsWith("0x"))return BigInt(r)}if(t&&typeof t=="object"&&"__uint8array"in t&&Object.keys(t).length===1){let r=t.__uint8array;if(Array.isArray(r))return new Uint8Array(r)}return s?s(e,t):t}}function fR(s,e,t){let r=e instanceof Function?GS(e):GS();return JSON.stringify(s,r,t)}function hR(s,e){let t=e?WS(e):WS();return JSON.parse(s,t)}var JS=0,zS=1,YS=2,ZS=3,XS=0,QS=1,ev=2;function dR(s){return {type:"message",message:s}}function tv(s){return {type:"config-update",imageHash:s}}function mR(s){return {type:"digest",digest:s}}function pR(s,e,t){return {type:"call",nonce:s,space:e,calls:t}}function gR(s){return s.type==="call"}function yR(s){return s.type==="message"}function wR(s){return s.type==="config-update"}function g8(s){return s.type==="digest"}function sv(s){return nv(s)?!1:s.recovery===!0}function bR(s){return s.type==="call_4337_07"}function SR(s){return "parentWallets"in s}function rv(s){return sv(s)?s:{...s,recovery:!0}}function nv(s){return s.type==="session-implicit-authorize"}function y8(s,e){let t=s.calls.length,r=Es(s.nonce);if(r>15)throw new Error("Nonce is too large");let n=0;s.space===0n&&(n|=1),n|=r<<1,t===1&&(n|=16);let i=0;if(t!==1)if(t<256)i=1;else if(t<65536)i=2,n|=32;else throw new Error("Too many calls");let a=f.fromNumber(n,{size:1});if(s.space!==0n){let o=f.padLeft(f.fromNumber(s.space),20);a=f.concat(a,o);}if(r>0){let o=f.padLeft(f.fromNumber(s.nonce),r);a=f.concat(a,o);}t!==1&&(i===1?a=f.concat(a,f.fromNumber(t,{size:1})):a=f.concat(a,f.fromNumber(t,{size:2})));for(let o of s.calls){let c=0;if(e&&P.isEqual(o.to,e)&&(c|=1),o.value!==0n&&(c|=2),o.data&&o.data.length>0&&(c|=4),o.gasLimit!==0n&&(c|=8),o.delegateCall&&(c|=16),o.onlyFallback&&(c|=32),c|=Dc(o.behaviorOnError)<<6,a=f.concat(a,f.fromNumber(c,{size:1})),!(c&1)){let u=f.fromHex(o.to);if(u.length!==20)throw new Error(`Invalid 'to' address: ${o.to}`);a=f.concat(a,u);}if(c&2){let u=f.padLeft(f.fromNumber(o.value),32);a=f.concat(a,u);}if(c&4){let u=f.fromHex(o.data).length;if(u>16777215)throw new Error("Data too large");let l=f.fromNumber(u,{size:3});a=f.concat(a,l,f.fromHex(o.data));}if(c&8){let u=f.padLeft(f.fromNumber(o.gasLimit),32);a=f.concat(a,u);}}return a}function vR(s,e){let t={kind:0,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};switch(e.type){case"call":t.kind=0,t.calls=e.calls.map(r=>({...r,data:r.data,behaviorOnError:BigInt(Dc(r.behaviorOnError))})),t.space=e.space,t.nonce=e.nonce;break;case"message":t.kind=1,t.message=e.message;break;case"config-update":t.kind=2,t.imageHash=e.imageHash;break;case"digest":t.kind=3,t.digest=e.digest;break}return t}function Vc(s,e,t){if(g8(t))return f.fromHex(t.digest);if(nv(t))return kt.hash(t.attestation);let r=iv(s,e,t);return f.fromHex(Uf(r))}function ER(s,e,t){return sv(s)?{name:"Sequence Wallet - Recovery Mode",version:"1",chainId:Number(t),verifyingContract:e}:{name:"Sequence Wallet",version:"3",chainId:Number(t),verifyingContract:e}}function w8(s,e){if(s>6277101735386680763835789423207666416102355444464034512895n)throw new RangeError("key exceeds 192 bits");if(e>18446744073709551615n)throw new RangeError("seq exceeds 64 bits");return s<<64n|e}function iv(s,e,t){let r=ER(t,s,e);switch(t.type){case"call":{let n={Calls:[{name:"calls",type:"Call[]"},{name:"space",type:"uint256"},{name:"nonce",type:"uint256"},{name:"wallets",type:"address[]"}],Call:[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"gasLimit",type:"uint256"},{name:"delegateCall",type:"bool"},{name:"onlyFallback",type:"bool"},{name:"behaviorOnError",type:"uint256"}]},i={calls:t.calls.map(a=>({to:a.to,value:a.value.toString(),data:a.data,gasLimit:a.gasLimit.toString(),delegateCall:a.delegateCall,onlyFallback:a.onlyFallback,behaviorOnError:BigInt(Dc(a.behaviorOnError)).toString()})),space:t.space.toString(),nonce:t.nonce.toString(),wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Calls",message:i}}case"message":{let n={Message:[{name:"message",type:"bytes"},{name:"wallets",type:"address[]"}]},i={message:t.message,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Message",message:i}}case"config-update":{let n={ConfigUpdate:[{name:"imageHash",type:"bytes32"},{name:"wallets",type:"address[]"}]},i={imageHash:t.imageHash,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"ConfigUpdate",message:i}}case"digest":throw new Error("Digest does not support typed data - Use message instead");case"session-implicit-authorize":throw new Error("Payload does not support typed data");case"call_4337_07":{let n={type:"message",message:S8(t,s,e)};return iv(s,e,n)}}}function b8(s,e,t){let r={type:"call",space:0n,nonce:0n,calls:s.calls},n=v.fromBytes(y8(r));return {sender:e,nonce:w8(s.space,s.nonce),callData:se.encodeData($S,[n]),callGasLimit:s.callGasLimit,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,preVerificationGas:s.preVerificationGas,verificationGasLimit:s.verificationGasLimit,factory:s.factory,factoryData:s.factoryData,paymaster:s.paymaster,paymasterData:s.paymasterData,paymasterPostOpGasLimit:s.paymasterPostOpGasLimit,paymasterVerificationGasLimit:s.paymasterVerificationGasLimit,signature:t}}function S8(s,e,t){let r=b8(s,e),n=v.concat(v.padLeft(v.fromNumber(r.verificationGasLimit),16),v.padLeft(v.fromNumber(r.callGasLimit),16)),i=v.concat(v.padLeft(v.fromNumber(r.maxPriorityFeePerGas),16),v.padLeft(v.fromNumber(r.maxFeePerGas),16)),a=ee.keccak256(r.factory&&r.factoryData?v.concat(r.factory,r.factoryData):"0x"),o=ee.keccak256(r.paymaster?v.concat(r.paymaster,v.padLeft(v.fromNumber(r.paymasterVerificationGasLimit||0),16),v.padLeft(v.fromNumber(r.paymasterPostOpGasLimit||0),16),r.paymasterData||"0x"):"0x"),c=tt.encode([{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[r.sender,r.nonce,a,ee.keccak256(r.callData),n,r.preVerificationGas,i,o]);return tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"}],[ee.keccak256(c),s.entrypoint,BigInt(t)])}function Dc(s){switch(s){case"ignore":return XS;case"revert":return QS;case"abort":return ev}}function xR(s){let e=ee.keccak256(f.fromString("Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)"));return ee.keccak256(tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"uint256"},{type:"bool"},{type:"bool"},{type:"uint256"}],[v.from(e),v.from(s.to),s.value,v.from(ee.keccak256(s.data)),s.gasLimit,s.delegateCall,s.onlyFallback,BigInt(Dc(s.behaviorOnError))]))}function AR(s,e){let t=0;if(s.length<1)throw new Error("Invalid packed data: missing globalFlag");let r=f.toNumber(s.slice(t,t+1));t+=1;let n=(r&1)===1,i=0n;if(!n){if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for space");i=f.toBigInt(s.slice(t,t+20)),t+=20;}let a=r>>1&7,o=0n;if(a>0){if(t+a>s.length)throw new Error("Invalid packed data: not enough bytes for nonce");o=f.toBigInt(s.slice(t,t+a)),t+=a;}let c=1;if(!((r&16)===16)){let m=(r&32)===32?2:1;if(t+m>s.length)throw new Error("Invalid packed data: not enough bytes for callsCount");c=f.toNumber(s.slice(t,t+m)),t+=m;}let l=[];for(let h=0;h<c;h++){if(t+1>s.length)throw new Error("Invalid packed data: missing call flags");let m=f.toNumber(s.slice(t,t+1));t+=1;let y;if((m&1)===1){if(!e)throw new Error('Missing "self" address for toSelf call');y=e;}else {if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for address");y=f.toHex(s.slice(t,t+20)),t+=20;}let g=0n;if((m&2)===2){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for value");g=f.toBigInt(s.slice(t,t+32)),t+=32;}let w=f.fromHex("0x");if((m&4)===4){if(t+3>s.length)throw new Error("Invalid packed data: not enough bytes for data length");let I=f.toNumber(s.slice(t,t+3));if(t+=3,t+I>s.length)throw new Error("Invalid packed data: not enough bytes for call data");w=s.slice(t,t+I),t+=I;}let b=0n;if((m&8)===8){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for gasLimit");b=f.toBigInt(s.slice(t,t+32)),t+=32;}let C=(m&16)===16,N=(m&32)===32,x=(m&192)>>6,E=v8(x);l.push({to:y,value:g,data:f.toHex(w),gasLimit:b,delegateCall:C,onlyFallback:N,behaviorOnError:E});}return {type:"call",space:i,nonce:o,calls:l}}function v8(s){switch(s){case 0:return "ignore";case 1:return "revert";case 2:return "abort";default:throw new Error(`Invalid behaviorOnError value: ${s}`)}}function IR(s){switch(s){case XS:return "ignore";case QS:return "revert";case ev:return "abort";default:throw new Error(`Unknown behavior: ${s}`)}}function CR(s){if(s.kind===JS)return {type:"call",nonce:s.nonce,space:s.space,calls:s.calls.map(e=>({to:P.from(e.to),value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:IR(Number(e.behaviorOnError))})),parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===zS)return {type:"message",message:s.message,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===YS)return {type:"config-update",imageHash:s.imageHash,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===ZS)return {type:"digest",digest:s.digest,parentWallets:s.parentWallets.map(e=>P.from(e))};throw new Error("Not implemented")}function av(s){if(s.type==="call")return {kind:JS,noChainId:!1,calls:s.calls.map(e=>({to:e.to,value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:BigInt(Dc(e.behaviorOnError))})),space:s.space,nonce:s.nonce,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="message")return {kind:zS,noChainId:!1,calls:[],space:0n,nonce:0n,message:s.message,imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="config-update")return {kind:YS,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:s.imageHash,digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="digest")return {kind:ZS,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:s.digest,parentWallets:s.parentWallets??[]};throw new Error("Invalid payload type")}var lv=0,fv=1,hv=2,dg=3,dv=4,mv=5,pv=6,gv=7,yv=8,mg=9,wv=10;function NR(s){return "type"in s&&(s.type==="sapient_compact"||s.type==="sapient")&&typeof s=="object"&&"address"in s&&"data"in s}function E8(s){return typeof s=="object"&&s&&typeof s.noChainId=="boolean"&&(s.checkpointerData===void 0||f.validate(s.checkpointerData))&&wg(s.configuration)&&(s.suffix===void 0||Array.isArray(s.suffix)&&s.suffix.every(e=>E8(e)&&e.checkpointerData===void 0))}function wg(s){return s&&typeof s=="object"&&typeof s.threshold=="bigint"&&typeof s.checkpoint=="bigint"&&gg(s.topology)&&(s.checkpointer===void 0||P.validate(s.checkpointer))}function $f(s){return typeof s=="object"&&"weight"in s&&"signature"in s}function bg(s){return Kt(s)&&"signature"in s}function bv(s){return Gt(s)&&"signature"in s}function pg(s){return Array.isArray(s)&&s.length===2&&(gg(s[0])||Lc(s[0]))&&(gg(s[1])||Lc(s[1]))}function gg(s){return pg(s)||x8(s)}function x8(s){return typeof s=="object"&&"weight"in s&&!("tree"in s)}function qf(s){return typeof s=="object"&&"tree"in s&&"weight"in s&&"threshold"in s}function A8(s){let{signature:e,erc6492:t}=m8(s);if(e.length<1)throw new Error("Signature is empty");let r=e[0],n=1,i=(r&2)===2,a,o;if((r&64)===64){if(n+20>e.length)throw new Error("Not enough bytes for checkpointer address");if(a=f.toHex(e.slice(n,n+20)),n+=20,n+3>e.length)throw new Error("Not enough bytes for checkpointer data size");let w=f.toNumber(e.slice(n,n+3));if(n+=3,n+w>e.length)throw new Error("Not enough bytes for checkpointer data");o=e.slice(n,n+w),n+=w;}let c=(r&28)>>2;if(n+c>e.length)throw new Error("Not enough bytes for checkpoint");let u=f.toBigInt(e.slice(n,n+c));n+=c;let l=((r&32)>>5)+1;if(n+l>e.length)throw new Error("Not enough bytes for threshold");let h=f.toBigInt(e.slice(n,n+l));if(n+=l,(r&1)===1){let w=[];for(;n<e.length;){if(n+3>e.length)throw new Error("Not enough bytes for chained subsignature size");let b=f.toNumber(e.subarray(n,n+3));if(n+=3,n+b>e.length)throw new Error("Not enough bytes for chained subsignature");let C=A8(e.subarray(n,n+b));if(n+=b,C.checkpointerData)throw new Error("Chained subsignature has checkpointer data");w.push({...C,checkpointerData:void 0});}if(w.length===0)throw new Error("Chained signature has no subsignatures");return {...w[0],suffix:w.slice(1),erc6492:t}}let{nodes:m,leftover:y}=yg(e.slice(n));if(y.length!==0)throw new Error("Leftover bytes in signature");let g=ov(m);return {noChainId:i,checkpointerData:o,configuration:{threshold:h,checkpoint:u,topology:g,checkpointer:a},erc6492:t}}function yg(s){let e=[],t=0;for(;t<s.length;){let r=s[t];t++;let n=(r&240)>>4;if(n===lv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for dynamic weight");i=s[t],t++;}if(t+64>s.length)throw new Error("Not enough bytes for hash signature (r + yParityAndS)");let a=Ea(s.slice(t,t+64));t+=64,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"hash",...a}});continue}if(n===fv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for address weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for address leaf");let a=f.toHex(s.slice(t,t+20));t+=20,e.push({type:"signer",address:a,weight:BigInt(i)});continue}if(n===hv){let i=r&3;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for ERC1271 weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for ERC1271 signer address");let a=f.toHex(s.slice(t,t+20));t+=20;let o=(r&12)>>2;if(t+o>s.length)throw new Error("Not enough bytes for ERC1271 sizeSize");let c=f.toNumber(s.slice(t,t+o));if(t+=o,t+c>s.length)throw new Error("Not enough bytes for ERC1271 data");let u=s.slice(t,t+c);t+=c,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"erc1271",address:a,data:f.toHex(u)}});continue}if(n===dg){if(t+32>s.length)throw new Error("Not enough bytes for node leaf");let i=s.slice(t,t+32);t+=32,e.push(f.toHex(i));continue}if(n===dv){let i=r&15;if(t+i>s.length)throw new Error("Not enough bytes for branch sizeSize");let a=f.toNumber(s.slice(t,t+i));if(t+=i,t+a>s.length)throw new Error("Not enough bytes in sub-branch");let o=s.slice(t,t+a);t+=a;let{nodes:c,leftover:u}=yg(o);if(u.length>0)throw new Error("Leftover bytes in sub-branch");let l=ov(c);e.push(l);continue}if(n===mv){if(t+32>s.length)throw new Error("Not enough bytes for subdigest");let i=s.slice(t,t+32);t+=32,e.push({type:"subdigest",digest:f.toHex(i)});continue}if(n===pv){let i=(r&12)>>2;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for nested weight");i=s[t],t++;}let a=r&3;if(a===0){if(t+2>s.length)throw new Error("Not enough bytes for nested threshold");a=f.toNumber(s.slice(t,t+2)),t+=2;}if(t+3>s.length)throw new Error("Not enough bytes for nested sub-tree size");let o=f.toNumber(s.slice(t,t+3));if(t+=3,t+o>s.length)throw new Error("Not enough bytes for nested sub-tree");let c=s.slice(t,t+o);t+=o;let{nodes:u,leftover:l}=yg(c);if(l.length>0)throw new Error("Leftover bytes in nested sub-tree");let h=ov(u);e.push({type:"nested",tree:h,weight:BigInt(i),threshold:BigInt(a)});continue}if(n===gv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for dynamic weight in eth_sign");i=s[t],t++;}if(t+64>s.length)throw new Error("Not enough bytes for eth_sign signature");let a=Ea(s.slice(t,t+64));t+=64,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"eth_sign",...a}});continue}if(n===yv){if(t+32>s.length)throw new Error("Not enough bytes for any address subdigest");let i=s.slice(t,t+32);t+=32,e.push({type:"any-address-subdigest",digest:f.toHex(i)});continue}if(n===mg||n===wv){let i=r&3;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for sapient weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for sapient signer address");let a=f.toHex(s.slice(t,t+20));t+=20;let o=(r&12)>>2;if(t+o>s.length)throw new Error("Not enough bytes for sapient signature size");let c=f.toNumber(s.slice(t,t+o));if(t+=o,t+c>s.length)throw new Error("Not enough bytes for sapient signature data");let u=s.slice(t,t+c);t+=c,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{address:a,data:f.toHex(u),type:n===mg?"sapient":"sapient_compact"}});continue}throw new Error(`Invalid signature flag: 0x${n.toString(16)}`)}return {nodes:e,leftover:s.slice(t)}}function lg(s,e){if(wt(s))return [lg(s[0],e),lg(s[1],e)];if(Kt(s)){let t=e(s);return t?{...s,signature:t}:s}if(Gt(s)){let t=e(s);return t?{...s,signature:t}:s}if($s(s)||qs(s))return s;if(ns(s))return {...s,tree:lg(s.tree,e)};if(Pt(s))return s;throw new Error("Invalid topology")}function I8(s){let e=1,t=s[s.length-1];t?.configuration.checkpointer&&(e|=64);let r=f.fromNumber(e);if(t?.configuration.checkpointer){r=f.concat(r,f.padLeft(f.fromHex(t.configuration.checkpointer),20));let n=t.checkpointerData?.length??0;if(n>16777215)throw new Error("Checkpointer data too large");let i=f.padLeft(f.fromNumber(n),3);r=f.concat(r,i,t.checkpointerData??f.fromArray([]));}for(let n=0;n<s.length;n++){let i=s[n],a=C8(i,!0,n===s.length-1);if(a.length>16777215)throw new Error("Chained signature too large");let o=f.padLeft(f.fromNumber(a.length),3);r=f.concat(r,o,a);}return r}function C8(s,e,t){let{noChainId:r,checkpointerData:n,configuration:i,suffix:a,erc6492:o}=s;if(a?.length){let w=I8([{...s,suffix:void 0,erc6492:void 0},...a]);return o?KS(w,o):w}let c=0;r&&(c|=2);let u=Es(i.checkpoint);if(u>7)throw new Error("Checkpoint too large");c|=u<<2;let l=Es(i.threshold);if(l=l===0?1:l,l>2)throw new Error("Threshold too large");c|=l==2?32:0,i.checkpointer&&!t&&(c|=64);let h=f.fromNumber(c);if(i.checkpointer&&!t&&(h=f.concat(h,f.padLeft(f.fromHex(i.checkpointer),20)),!e)){let w=n?.length??0;if(w>16777215)throw new Error("Checkpointer data too large");let b=f.padLeft(f.fromNumber(w),3);h=f.concat(h,b,n??f.fromArray([]));}let m=f.padLeft(f.fromNumber(i.checkpoint),u);h=f.concat(h,m);let y=f.padLeft(f.fromNumber(i.threshold),l);h=f.concat(h,y);let g=Mf(i.topology,s);return h=f.concat(h,g),o?KS(h,o):h}function Mf(s,e={}){if(wt(s)||pg(s)){let t=Mf(s[0],e),r=Mf(s[1],e);if(wt(s[1])||pg(s[1])){let i=Es(BigInt(r.length));if(i>15)throw new Error("Branch too large");let a=dv<<4|i;return f.concat(t,f.fromNumber(a),f.padLeft(f.fromNumber(r.length),i),r)}else return f.concat(t,r)}if(ns(s)||qf(s)){let t=Mf(s.tree,e),r=pv<<4,n=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)r|=Number(s.weight)<<2;else if(s.weight<=255n)n=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");let i=f.fromArray([]);if(s.threshold<=3n&&s.threshold>0n)r|=Number(s.threshold);else if(s.threshold<=65535n)i=f.padLeft(f.fromNumber(Number(s.threshold)),2);else throw new Error("Threshold too large");if(t.length>16777215)throw new Error("Nested tree too large");return f.concat(f.fromNumber(r),n,i,f.padLeft(f.fromNumber(t.length),3),t)}if(Pt(s))return f.concat(f.fromNumber(dg<<4),f.fromHex(s));if(bg(s)||$f(s))if(s.signature.type==="hash"||s.signature.type==="eth_sign"){let t=(s.signature.type==="hash"?lv:gv)<<4,r=f.fromArray([]);if(s.weight<=15n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)r=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");let n=$r(s.signature);return f.concat(f.fromNumber(t),r,n)}else if(s.signature.type==="erc1271"){let t=hv<<4,r=Es(BigInt(s.signature.data.length));if(r>3)throw new Error("Signature too large");t|=r<<2;let n=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)n=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),n,f.padLeft(f.fromHex(s.signature.address),20),f.padLeft(f.fromNumber(f.fromHex(s.signature.data).length),r),f.fromHex(s.signature.data))}else if(s.signature.type==="sapient"||s.signature.type==="sapient_compact"){let t=(s.signature.type==="sapient"?mg:wv)<<4,r=f.fromHex(s.signature.data),n=Es(BigInt(r.length));if(n>3)throw new Error("Signature too large");t|=n<<2;let i=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)i=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),i,f.padLeft(f.fromHex(s.signature.address),20),f.padLeft(f.fromNumber(r.length),n),r)}else throw new Error(`Invalid signature type: ${s.signature.type}`);if(Kt(s)){let t=fv<<4,r=f.fromArray([]);if(s.weight<=15n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)r=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),r,f.padLeft(f.fromHex(s.address),20))}if(Gt(s)){let t=Wt(s);return f.concat(f.fromNumber(dg<<4),t)}if($s(s))return f.concat(f.fromNumber(mv<<4),f.fromHex(s.digest));if(qs(s))return f.concat(f.fromNumber(yv<<4),f.fromHex(s.digest));throw new Error("Invalid topology")}function ov(s){if(s.length===0)throw new Error("Empty signature tree");if(s.length===1)return s[0];let e=s[0];for(let t=1;t<s.length;t++)e=[e,s[t]];return e}function TR(s){return JSON.stringify(N8(s))}function N8(s){return {noChainId:s.noChainId,checkpointerData:s.checkpointerData?f.toHex(s.checkpointerData):void 0,configuration:{threshold:s.configuration.threshold.toString(),checkpoint:s.configuration.checkpoint.toString(),topology:fg(s.configuration.topology),checkpointer:s.configuration.checkpointer},suffix:s.suffix?s.suffix.map(e=>N8(e)):void 0}}function fg(s){if(Array.isArray(s))return [fg(s[0]),fg(s[1])];if(typeof s=="object"&&s!==null&&"type"in s)switch(s.type){case"signer":return {type:"signer",address:s.address,weight:s.weight.toString()};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:s.weight.toString(),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:fg(s.tree),weight:s.weight.toString(),threshold:s.threshold.toString()};case"unrecovered-signer":return {type:"unrecovered-signer",weight:s.weight.toString(),signature:kR(s.signature)};default:throw new Error("Invalid raw topology type")}if(typeof s=="string")return s;throw new Error("Invalid raw topology format")}function kR(s){if(s.type==="eth_sign"||s.type==="hash")return {type:s.type,r:v.fromNumber(s.r,{size:32}),s:v.fromNumber(s.s,{size:32}),yParity:s.yParity};if(s.type==="erc1271")return {type:s.type,address:s.address,data:s.data};if(s.type==="sapient"||s.type==="sapient_compact")return {type:s.type,address:s.address,data:s.data};throw new Error("Unknown signature type in raw signature")}function PR(s){let e=JSON.parse(s);return T8(e)}function T8(s){return {noChainId:s.noChainId,checkpointerData:s.checkpointerData?f.fromHex(s.checkpointerData):void 0,configuration:{threshold:BigInt(s.configuration.threshold),checkpoint:BigInt(s.configuration.checkpoint),topology:hg(s.configuration.topology),checkpointer:s.configuration.checkpointer},suffix:s.suffix?s.suffix.map(e=>T8(e)):void 0}}function hg(s){if(Array.isArray(s)){if(s.length!==2)throw new Error("Invalid raw topology node");return [hg(s[0]),hg(s[1])]}if(typeof s=="object"&&s!==null&&"type"in s)switch(s.type){case"signer":return {type:"signer",address:s.address,weight:BigInt(s.weight)};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:hg(s.tree),weight:BigInt(s.weight),threshold:BigInt(s.threshold)};case"unrecovered-signer":return {type:"unrecovered-signer",weight:BigInt(s.weight),signature:BR(s.signature)};default:throw new Error("Invalid raw topology type")}if(typeof s=="string")return s;throw new Error("Invalid raw topology format")}function BR(s){switch(s.type){case"eth_sign":case"hash":return {type:s.type,r:v.toBigInt(s.r),s:v.toBigInt(s.s),yParity:s.yParity};case"erc1271":return {type:"erc1271",address:s.address,data:s.data};case"sapient":case"sapient_compact":return {type:s.type,address:s.address,data:s.data};default:throw new Error("Invalid signature type in raw signature")}}async function cv(s,e,t,r,n){if(s.suffix?.length){let o=!1,{configuration:c,weight:u}=await cv({...s,suffix:void 0},e,t,r,n);o||=u<c.threshold;for(let l of s.suffix){let h=await cv(l,e,l.noChainId?0:t,tv(f.toHex(Wt(c))),n);o||=h.weight<h.configuration.threshold,o||=h.configuration.checkpoint>=c.checkpoint,c=h.configuration,u=h.weight;}return {configuration:c,weight:o?0n:u}}let{topology:i,weight:a}=await uv(s.configuration.topology,e,t,r,n);return {configuration:{...s.configuration,topology:i},weight:a}}async function uv(s,e,t,r,n){let i=Vc(e,t,r);if($f(s))switch(s.signature.type){case"eth_sign":case"hash":return {topology:{type:"signer",address:Lt.recoverAddress({payload:s.signature.type==="eth_sign"?ee.keccak256(tt.encodePacked(["string","bytes32"],[`Ethereum Signed Message:
|
|
343
|
-
32`,f.toHex(i)])):i,signature:s.signature}),weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};case"erc1271":switch(n?.provider){case void 0:case"assume-invalid":if(n?.throw!==!1)throw new Error(`unable to validate signer ${s.signature.address} erc-1271 signature`);return {topology:{type:"signer",address:s.signature.address,weight:s.weight},weight:0n};case"assume-valid":return {topology:{type:"signer",address:s.signature.address,weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};default:let a="provider"in n.provider?n.provider.provider:n.provider,o="block"in n.provider?n.provider.block:void 0,c={to:s.signature.address,data:se.encodeData(jf,[f.toHex(i),s.signature.data])},u=await a.request({method:"eth_call",params:o===void 0?[c,"latest"]:[c,v.fromNumber(o)]}),l=se.decodeResult(jf,u);if(v.isEqual(l,se.getSelector(jf)))return {topology:{type:"signer",address:s.signature.address,weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};if(n?.throw!==!1)throw new Error(`invalid signer ${s.signature.address} erc-1271 signature`);return {topology:{type:"signer",address:s.signature.address,weight:s.weight},weight:0n}}case"sapient":case"sapient_compact":switch(n?.provider){case void 0:case"assume-invalid":case"assume-valid":throw new Error(`unable to validate sapient signer ${s.signature.address} signature`);default:let a="provider"in n.provider?n.provider.provider:n.provider,o="block"in n.provider?n.provider.block:void 0,c={to:s.signature.address,data:s.signature.type==="sapient"?se.encodeData(
|
|
344
|
-
`),f.fromHex(s.address),f.padLeft(f.fromNumber(s.weight),32)));if(
|
|
337
|
+
`;function Bm({id:s,href:e,rel:t,crossOrigin:r}){let n=`${Ql}-${s}`;if(!document.getElementById(n)){let i=document.createElement("link");i.id=n,i.href=e,t&&(i.rel=t),r&&(i.crossOrigin=r),document.head.appendChild(i);}}var M6=()=>j6(ik()),$6=()=>j6(ak());var uc=class{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(e,t=!1){this.disableBlockedPopupOverlay=e.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=e.disableGenericPopupOverlay||!1,this.isBlockedOverlay=t;}append(e,t){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(e),this.updateCloseButton(t));}update(e){this.updateTryAgainButton(e);}remove(){this.overlay&&this.overlay.remove();}shouldAppendOverlay(){return !(this.disableGenericPopupOverlay&&this.disableBlockedPopupOverlay||this.disableGenericPopupOverlay&&!this.isBlockedOverlay||this.disableBlockedPopupOverlay&&this.isBlockedOverlay)}appendOverlay(){if(!this.overlay){Bm({id:"link-googleapis",href:"https://fonts.googleapis.com"}),Bm({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),Bm({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});let t=document.createElement("div");t.innerHTML=this.isBlockedOverlay?M6():$6(),document.body.insertAdjacentElement("beforeend",t),this.overlay=t;}}updateTryAgainButton(e){let t=document.getElementById(Pm);t&&(this.tryAgainListener&&t.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=e,t.addEventListener("click",e));}updateCloseButton(e){let t=document.getElementById(km);t&&(this.onCloseListener&&t.removeEventListener("click",this.onCloseListener),this.onCloseListener=e,t.addEventListener("click",e));}};var lc=(s=>(s.PRODUCTION="production",s.SANDBOX="sandbox",s))(lc||{}),ok=(s=>(s.API_KEY="x-immutable-api-key",s.PUBLISHABLE_KEY="x-immutable-publishable-key",s.RATE_LIMITING_KEY="x-api-key",s))(ok||{});var ef=13371,Xi=13473,Yw=42161,Zw=421614,Xw=11155111,Cn={13371:{magicPublishableApiKey:"pk_live_10F423798A540ED7",magicProviderId:"aa80b860-8869-4f13-9000-6a6ad3d20017"},13473:{magicPublishableApiKey:"pk_live_10F423798A540ED7",magicProviderId:"aa80b860-8869-4f13-9000-6a6ad3d20017"}};var tf={chainId:13371,name:"Immutable zkEVM",rpcUrl:"https://rpc.immutable.com",relayerUrl:"https://api.immutable.com/relayer-mr",apiUrl:"https://api.immutable.com",passportDomain:"https://passport.immutable.com",magicPublishableApiKey:Cn[13371].magicPublishableApiKey,magicProviderId:Cn[13371].magicProviderId,magicTeeBasePath:"https://tee.express.magiclabs.com"},sf={chainId:13473,name:"Immutable zkEVM Testnet",rpcUrl:"https://rpc.testnet.immutable.com",relayerUrl:"https://api.sandbox.immutable.com/relayer-mr",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",magicPublishableApiKey:Cn[13473].magicPublishableApiKey,magicProviderId:Cn[13473].magicProviderId,magicTeeBasePath:"https://tee.express.magiclabs.com"},Om={chainId:42161,name:"Arbitrum One",rpcUrl:"https://arb1.arbitrum.io/rpc",relayerUrl:"https://next-arbitrum-one-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/arbitrum-one",apiUrl:"https://api.immutable.com",passportDomain:"https://passport.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence.app"},F6={chainId:421614,name:"Arbitrum Sepolia",rpcUrl:"https://sepolia-rollup.arbitrum.io/rpc",relayerUrl:"https://next-arbitrum-sepolia-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/arbitrum-sepolia",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence-dev.app"},Rm={chainId:11155111,name:"Ethereum Sepolia",rpcUrl:"https://rpc.sepolia.org",relayerUrl:"https://next-sepolia-relayer.sequence.app",nodeUrl:"https://next-nodes.sequence.app/sepolia",apiUrl:"https://api.sandbox.immutable.com",passportDomain:"https://passport.sandbox.immutable.com",feeTokenSymbol:"ETH",sequenceIdentityInstrumentEndpoint:"https://next-identity.sequence-dev.app"},Vm=[sf,tf],ck={chains:[tf]},uk={chains:[sf]},lk={chains:Vm},fk={chains:[Om]},hk={chains:[F6]},dk={chains:[Rm]};var q6={zkevm:{[lc.PRODUCTION]:tf,[lc.SANDBOX]:sf},arbitrum_one:{[lc.PRODUCTION]:Om,[lc.SANDBOX]:Rm}};function pk(){let s={};for(let[e,t]of Object.entries(q6))for(let r of Object.values(t))s[r.chainId]=e;return s[15003]="zkevm",s}var gk=pk();function yk(s,e){let t=q6[s];if(!t)throw new Error(`Chain ${s} is not supported`);let r=t[e];if(!r)throw new Error(`Chain ${s} is not configured for environment ${e}`);return r}function fc(s){let e=typeof s=="string"?parseInt(s.includes(":")?s.split(":")[1]:s,10):s;return gk[e]??"zkevm"}var Qw="Confirm this transaction",eb=720,tb=480,G6=1e3;var hc=class{config;confirmationWindow;popupOptions;overlay;overlayClosed;timer;constructor(e){this.config=e,this.overlayClosed=!1;}getHref(e,t){let r=`${this.config.passportDomain}/transaction-confirmation/${e}`;if(t){let n=t?Object.keys(t).map(i=>`${i}=${t[i]}`).join("&"):"";r=`${r}?${n}`;}return r}requestConfirmation(e,t,r,n){return new Promise((i,a)=>{let o=({data:u,origin:l})=>{if(!(l!==this.config.passportDomain||u.eventType!==Xl))switch(u.messageType){case"confirmation_window_ready":{this.confirmationWindow?.postMessage({eventType:Xl,messageType:"confirmation_start"},this.config.passportDomain);break}case"transaction_confirmed":{this.closeWindow(),i({confirmed:!0});break}case"transaction_rejected":{this.closeWindow(),i({confirmed:!1});break}case"transaction_error":{this.closeWindow(),a(new Error("Error during transaction confirmation"));break}default:this.closeWindow(),a(new Error("Unsupported message type"));}},c="";if(r===K6.mr.TransactionApprovalRequestChainTypeEnum.Starkex)c=this.getHref("transaction",{transactionId:e,etherAddress:t,chainType:r});else {let l=(n?fc(n):"zkevm").replace("_","-");c=this.getHref(`${l}/transaction`,{transactionID:e,etherAddress:t,chainType:r,chainID:n});}window.addEventListener("message",o),this.showConfirmationScreen(c,o,i);})}requestMessageConfirmation(e,t,r,n){return new Promise((i,a)=>{let o=({data:h,origin:m})=>{if(!(m!==this.config.passportDomain||h.eventType!==Xl))switch(h.messageType){case"confirmation_window_ready":{this.confirmationWindow?.postMessage({eventType:Xl,messageType:"confirmation_start"},this.config.passportDomain);break}case"message_confirmed":{this.closeWindow(),i({confirmed:!0});break}case"message_rejected":{this.closeWindow(),i({confirmed:!1});break}case"message_error":{this.closeWindow(),a(new Error("Error during message confirmation"));break}default:this.closeWindow(),a(new Error("Unsupported message type"));}};window.addEventListener("message",o);let u=fc(n).replace("_","-"),l=this.getHref(`${u}/message`,{messageID:e,etherAddress:t,chainID:n,messageType:r});this.showConfirmationScreen(l,o,i);})}showServiceUnavailable(){return new Promise((e,t)=>{this.showConfirmationScreen(this.getHref("unavailable"),()=>{},()=>{this.closeWindow(),t(new Error("Service unavailable"));});})}loading(e){if(!this.config.crossSdkBridgeEnabled){this.popupOptions=e;try{this.confirmationWindow=Tm({url:this.getHref("loading"),title:Qw,width:e?.width||tb,height:e?.height||eb}),this.overlay=new uc(this.config.popupOverlayOptions||{});}catch(t){let r=t instanceof Error?t.message:String(t);trackError("passport","confirmationPopupDenied",new Error(r)),this.overlay=new uc(this.config.popupOverlayOptions||{},!0);}this.overlay.append(()=>{try{this.confirmationWindow?.close(),this.confirmationWindow=Tm({url:this.getHref("loading"),title:Qw,width:this.popupOptions?.width||tb,height:this.popupOptions?.height||eb});}catch{}},()=>{this.overlayClosed=!0,this.closeWindow();});}}closeWindow(){this.confirmationWindow?.close(),this.overlay?.remove(),this.overlay=void 0;}showConfirmationScreen(e,t,r){if(this.confirmationWindow&&(this.confirmationWindow.location.href=e),!this.overlay){this.overlayClosed=!1,r({confirmed:!1});return}let n=()=>{(this.confirmationWindow?.closed||this.overlayClosed)&&(clearInterval(this.timer),window.removeEventListener("message",t),r({confirmed:!1}),this.overlayClosed=!1,this.confirmationWindow=void 0);};this.timer=setInterval(n,G6),this.overlay.update(()=>this.recreateConfirmationWindow(e,n));}recreateConfirmationWindow(e,t){try{clearInterval(this.timer),this.confirmationWindow?.close(),this.confirmationWindow=Tm({url:e,title:Qw,width:this.popupOptions?.width||tb,height:this.popupOptions?.height||eb}),this.timer=setInterval(t,G6);}catch{}}};var Qi=(o=>(o.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",o.TRANSACTION_REJECTED="TRANSACTION_REJECTED",o.INVALID_CONFIGURATION="INVALID_CONFIGURATION",o.UNAUTHORIZED="UNAUTHORIZED",o.GUARDIAN_ERROR="GUARDIAN_ERROR",o.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR",o.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",o))(Qi||{}),Qe=class extends Error{type;constructor(e,t){super(e),this.name="WalletError",this.type=t;}};var ea=s=>typeof s=="object"&&s!==null&&"isAxiosError"in s;var sb="Transaction requires confirmation but this functionality is not supported in this environment. Please contact Immutable support if you need to enable this feature.",Dm=s=>BigInt(s).toString(),vk=s=>{try{return s.map(e=>({delegateCall:e.delegateCall===!0,revertOnError:e.revertOnError===!0,gasLimit:e.gasLimit?Dm(e.gasLimit):"0",target:e.to??zeroAddress,value:e.value?Dm(e.value):"0",data:e.data?e.data.toString():"0x"}))}catch(e){let t=e instanceof Error?e.message:String(e);throw new ne(-32602,`Transaction failed to parsing: ${t}`)}},dc=class{guardianApi;confirmationScreen;crossSdkBridgeEnabled;getUser;constructor({config:e,getUser:t,guardianApi:r,passportDomain:n,clientId:i}){this.confirmationScreen=new hc({authenticationDomain:"https://auth.immutable.com",passportDomain:n,oidcConfiguration:{clientId:i,redirectUri:"https://auth.immutable.com/im-logged-in"},crossSdkBridgeEnabled:e.crossSdkBridgeEnabled}),this.crossSdkBridgeEnabled=e.crossSdkBridgeEnabled,this.guardianApi=r,this.getUser=t;}async getUserZkEvm(){let e=await this.getUser();if(!e||!isUserZkEvm(e))throw new ne(4100,"User not authenticated or missing zkEvm data");return e}withConfirmationScreen(e){return t=>this.withConfirmationScreenTask(e)(t)()}withConfirmationScreenTask(e){return t=>async()=>{this.confirmationScreen.loading(e);try{return await t()}catch(r){throw r instanceof Qe&&r.type==="SERVICE_UNAVAILABLE_ERROR"?(await this.confirmationScreen.showServiceUnavailable(),r):(this.confirmationScreen.closeWindow(),r)}}}withDefaultConfirmationScreenTask(e){return this.withConfirmationScreenTask()(e)}async evaluateEVMTransaction({chainId:e,nonce:t,metaTransactions:r}){let n=await this.getUserZkEvm(),i={Authorization:`Bearer ${n.accessToken}`},a=vk(r);try{return (await this.guardianApi.evaluateTransaction({id:"evm",transactionEvaluationRequest:{chainType:"evm",chainId:e,transactionData:{nonce:t,userAddress:n.zkEvm.ethAddress,metaTransactions:a}}},{headers:i})).data}catch(o){if(ea(o)&&o.response?.status===403)throw new Qe("Service unavailable","SERVICE_UNAVAILABLE_ERROR");let c=o instanceof Error?o.message:String(o);throw new ne(-32603,`Transaction failed to validate with error: ${c}`)}}async validateEVMTransaction({chainId:e,nonce:t,metaTransactions:r,isBackgroundTransaction:n}){let i=await this.evaluateEVMTransaction({chainId:e,nonce:t,metaTransactions:r}),{confirmationRequired:a,transactionId:o}=i;if(a&&this.crossSdkBridgeEnabled)throw new ne(-32003,sb);if(a&&o){let c=await this.getUserZkEvm();if(!(await this.confirmationScreen.requestConfirmation(o,c.zkEvm.ethAddress,K6.mr.TransactionApprovalRequestChainTypeEnum.Evm,e)).confirmed)throw new ne(-32003,"Transaction rejected by user")}else n||this.confirmationScreen.closeWindow();}async handleEIP712MessageEvaluation({chainID:e,payload:t}){try{let r=await this.getUserZkEvm();return (await this.guardianApi.evaluateMessage({messageEvaluationRequest:{chainID:e,payload:t}},{headers:{Authorization:`Bearer ${r.accessToken}`}})).data}catch(r){let n=r instanceof Error?r.message:String(r);throw new ne(-32603,`Message failed to validate with error: ${n}`)}}async evaluateEIP712Message({chainID:e,payload:t}){let{messageId:r,confirmationRequired:n}=await this.handleEIP712MessageEvaluation({chainID:e,payload:t});if(n&&this.crossSdkBridgeEnabled)throw new ne(-32003,sb);if(n&&r){let i=await this.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(r,i.zkEvm.ethAddress,"eip712",e)).confirmed)throw new ne(-32003,"Signature rejected by user")}else this.confirmationScreen.closeWindow();}async handleERC191MessageEvaluation({chainID:e,payload:t}){try{let r=await this.getUserZkEvm();return (await this.guardianApi.evaluateErc191Message({eRC191MessageEvaluationRequest:{chainID:Xt(Number(e)),payload:t}},{headers:{Authorization:`Bearer ${r.accessToken}`}})).data}catch(r){let n=r instanceof Error?r.message:String(r);throw new ne(-32603,`Message failed to validate with error: ${n}`)}}async evaluateERC191Message({chainID:e,payload:t}){let{messageId:r,confirmationRequired:n}=await this.handleERC191MessageEvaluation({chainID:e,payload:t});if(n&&this.crossSdkBridgeEnabled)throw new ne(-32003,sb);if(n&&r){let i=await this.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(r,i.zkEvm.ethAddress,"erc191",String(e))).confirmed)throw new ne(-32003,"Signature rejected by user")}else this.confirmationScreen.closeWindow();}};var Ek=s=>new Promise(e=>{setTimeout(()=>e(),s);}),Lm=async(s,e)=>{let{retries:t=3,interval:r=1e3,finalErr:n=Error("Retry failed"),finallyFn:i=()=>{}}=e||{};try{return await s()}catch{return t<=0?Promise.reject(n):(await Ek(r),Lm(s,{retries:t-1,finalErr:n,finallyFn:i}))}finally{t<=0&&i();}};var xk=30,Ak=1e3,Ik=async(s,e,t)=>{let r=Am([s]),n=Gw(r),i=await t.imGetFeeOptions(e,n);if(!i||!Array.isArray(i))throw new Error("Invalid fee options received from relayer");let a=t.getPreferredFeeTokenSymbol(),o=i.find(c=>c.tokenSymbol===a);if(!o)throw new Error(`Failed to retrieve fees for ${a} token`);return o},Ck=async(s,e,t,r,n)=>{if(!s.to)throw new ne(-32602,'eth_sendTransaction requires a "to" field');let i={to:s.to.toString(),data:s.data,nonce:BigInt(0),value:s.value,revertOnError:!0},[a,o]=await Promise.all([zl(e,r,n),Ik(i,r,t)]),c=[{...i,nonce:a}],u=BigInt(o.tokenPrice);return u!==BigInt(0)&&c.push({nonce:a,to:o.recipientAddress,value:u,revertOnError:!0}),c},Um=async(s,e,t)=>{let n=await Lm(async()=>{let i=await s.imGetTransactionByHash(e);if(i.status==="PENDING")throw new Error;return i},{retries:xk,interval:Ak,finalErr:new ne(-32e3,"transaction hash not generated in time")});if(t.addEvent("endRetrieveRelayerTransaction"),!["SUBMITTED","SUCCESSFUL"].includes(n.status)){let i=`Transaction failed to submit with status ${n.status}.`;throw n.statusMessage&&(i+=` Error message: ${n.statusMessage}`),new ne(-32e3,i)}return n},Hm=async({transactionRequest:s,ethSigner:e,rpcProvider:t,guardianClient:r,relayerClient:n,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c})=>{let u=await t.getChainId(),l=BigInt(u);a.addEvent("endDetectNetwork");let h=await Ck(s,t,n,i,o);a.addEvent("endBuildMetaTransactions");let{nonce:m}=h[0];if(typeof m>"u")throw new Error("Failed to retrieve nonce from the smart wallet");let y=async()=>{await r.validateEVMTransaction({chainId:Xt(Number(u)),nonce:Dm(m),metaTransactions:h,isBackgroundTransaction:c}),a.addEvent("endValidateEVMTransaction");},g=async()=>{let C=await Cm(h,m,l,i,e);return a.addEvent("endGetSignedMetaTransactions"),C},[,w]=await Promise.all([y(),g()]),S=await n.ethSendTransaction(i,w);return a.addEvent("endRelayerSendTransaction"),{signedTransactions:w,relayerId:S,nonce:m}},Nk=async s=>{if(!s.to)throw new ne(-32602,'im_signEjectionTransaction requires a "to" field');if(typeof s.nonce>"u")throw new ne(-32602,'im_signEjectionTransaction requires a "nonce" field');if(!s.chainId)throw new ne(-32602,'im_signEjectionTransaction requires a "chainId" field');return [{to:s.to.toString(),data:s.data,nonce:s.nonce??void 0,value:s.value,revertOnError:!0}]},J6=async({transactionRequest:s,ethSigner:e,zkEvmAddress:t,flow:r})=>{let n=await Nk(s);r.addEvent("endBuildMetaTransactions");let i=await Cm(n,s.nonce,BigInt(s.chainId??0),t,e);return r.addEvent("endGetSignedMetaTransactions"),{to:t,data:i,chainId:Xt(Number(s.chainId??0))}};var rb=async({params:s,ethSigner:e,rpcProvider:t,relayerClient:r,guardianClient:n,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c=!1})=>{let u=s[0],{relayerId:l}=await Hm({transactionRequest:u,ethSigner:e,rpcProvider:t,guardianClient:n,relayerClient:r,zkEvmAddress:i,flow:a,nonceSpace:o,isBackgroundTransaction:c}),{hash:h}=await Um(r,l,a);return h};var z6=["types","domain","primaryType","message"],Tk=s=>z6.every(e=>e in s),kk=(s,e)=>{let t;if(typeof s=="string")try{t=JSON.parse(s);}catch(n){throw new ne(-32602,`Failed to parse typed data JSON: ${n}`)}else if(typeof s=="object")t=s;else throw new ne(-32602,`Invalid typed data argument: ${s}`);if(!Tk(t))throw new ne(-32602,`Invalid typed data argument. The following properties are required: ${z6.join(", ")}`);let r=t.domain?.chainId;if(r){let n;if(typeof r=="string"?r.startsWith("0x")?n=parseInt(r,16):n=parseInt(r,10):n=Number(r),t.domain.chainId=n,BigInt(n)!==e)throw new ne(-32602,`Invalid chainId, expected ${e}`)}return t},Y6=async({params:s,method:e,ethSigner:t,rpcProvider:r,relayerClient:n,guardianClient:i,flow:a})=>{let o=s[0],c=s[1];if(!o||!c)throw new ne(-32602,`${e} requires an address and a typed data JSON`);let u=await r.getChainId(),l=kk(c,BigInt(u));a.addEvent("endDetectNetwork"),await i.evaluateEIP712Message({chainID:String(u),payload:l}),a.addEvent("endValidateMessage");let h=await n.imSignTypedData(o,l);a.addEvent("endRelayerSignTypedData");let m=await Kw(l,h,BigInt(u),o,t);return a.addEvent("getSignedTypedData"),m};var Bk=s=>{let e=0;for(;e<s.length&&s[e]===0;)e++;return s.slice(e)},Ok=s=>{if(typeof TextDecoder<"u")return new TextDecoder("utf-8").decode(s);let e="";for(let t=0;t<s.length;t++)e+=String.fromCharCode(s[t]);return decodeURIComponent(escape(e))},Z6=s=>{if(!s)return s;try{let e=toBytes(s),t=Bk(e);return Ok(t)}catch{return s}};var _m=async({params:s,ethSigner:e,zkEvmAddress:t,rpcProvider:r,guardianClient:n,relayerClient:i,flow:a})=>{let o=s[0],c=s[1];if(!c||!o)throw new ne(-32602,"personal_sign requires an address and a message");if(c.toLowerCase()!==t.toLowerCase())throw new ne(-32602,"personal_sign requires the signer to be the from address");let u=Z6(o),l=await r.getChainId();a.addEvent("endDetectNetwork");let h=BigInt(l),m=Ww(h,u,e,c);m.then(()=>a.addEvent("endEOASignature")),await n.evaluateERC191Message({chainID:h,payload:u}),a.addEvent("endEvaluateERC191Message");let[y,g]=await Promise.all([m,i.imSign(c,u)]);a.addEvent("endRelayerSign");let w=await e.getAddress();return a.addEvent("endGetEOAAddress"),Nm(y,w,g)};var Rk="/v1/sdk/session-activity/check",jm,X6=s=>{jm||(jm=s);},Vk=s=>{let e=new URL(Rk,jm);return Object.entries(s).forEach(([t,r])=>{r!=null&&e.searchParams.append(t,String(r));}),e.toString()};async function Q6(s){if(!jm)throw new Error("Client not initialised");let e=await fetch(Vk(s));if(e.status!==404){if(!e.ok)throw new Error(`Session activity request failed with status ${e.status}`);return e.json()}}function t5(s,e){return (...t)=>{try{let r=s(...t);return r instanceof Promise?r.catch(n=>(n instanceof Error&&trackError("passport","sessionActivityError",n),e)):r}catch(r){return r instanceof Error&&trackError("passport","sessionActivityError",r),e}}}var{getItem:s5,setItem:nb}=utils.localStorage,ib="sessionActivitySendCount",r5="sessionActivityDate",ab={},Nn={},Mm={},n5=()=>{Nn=s5(ib)||{};let s=s5(r5),e=new Date,t=e.getFullYear(),r=`${e.getMonth()+1}`.padStart(2,"0"),n=`${e.getDate()}`.padStart(2,"0"),i=`${t}-${r}-${n}`;(!s||s!==i)&&(Nn={}),nb(r5,i),nb(ib,Nn);};n5();var jk=s=>{n5(),Nn[s]||(Nn[s]=0),Nn[s]++,nb(ib,Nn),ab[s]=0;},Mk=async s=>new Promise(e=>{setTimeout(e,s*1e3);}),$k=async s=>{let e=s.flow||trackFlow("passport","sendSessionActivity"),t=s.passportClient;if(!t)throw e.addEvent("No Passport Client ID"),new Error("No Passport Client ID provided");if(Mm[t])return;Mm[t]=!0;let{sendTransaction:r,sessionActivityApiUrl:n}=s;if(!r)throw new Error("No sendTransaction function provided");if(!n)throw new Error("No session activity API URL provided");X6(n);let i=s.walletAddress;if(!i)throw e.addEvent("No Passport Wallet Address"),new Error("No wallet address");let a;try{if(a=await Q6({clientId:t,wallet:i,checkCount:ab[t]||0,sendCount:Nn[t]||0}),ab[t]++,!a)return}catch(o){throw e.addEvent("Failed to fetch details"),new Error("Failed to get details",{cause:o})}if(a&&a.contractAddress&&a.functionName){let o=parseAbi([`function ${a.functionName}()`]),c=encodeFunctionData({abi:o,functionName:a.functionName}),u=a.contractAddress;try{e.addEvent("Start Sending Transaction");let l=await s.sendTransaction([{to:u,from:i,data:c}],e);jk(t),e.addEvent("Transaction Sent",{tx:l});}catch(l){e.addEvent("Failed to send Transaction");let h=new Error("Failed to send transaction",{cause:l});trackError("passport","sessionActivityError",h,{flowId:e.details.flowId});}}a&&a.delay&&a.delay>0&&(e.addEvent("Delaying Transaction",{delay:a.delay}),await Mk(a.delay),setTimeout(()=>{e.addEvent("Retrying after Delay"),Mm[t]=!1,i5({...s,flow:e});},0));},i5=s=>t5($k)(s).then(()=>{Mm[s.passportClient]=!1;}),a5=i5;var o5=async({params:s,ethSigner:e,rpcProvider:t,relayerClient:r,guardianClient:n,zkEvmAddress:i,flow:a})=>{let o={to:i,value:0n},{relayerId:c}=await Hm({transactionRequest:o,ethSigner:e,rpcProvider:t,guardianClient:n,relayerClient:r,zkEvmAddress:i,flow:a});return n.withConfirmationScreen()(async()=>{let u=await _m({params:s,ethSigner:e,zkEvmAddress:i,rpcProvider:t,guardianClient:n,relayerClient:r,flow:a});return await Um(r,c,a),u})};var c5=async({params:s,ethSigner:e,zkEvmAddress:t,flow:r})=>{if(!s||s.length!==1)throw new ne(-32602,"im_signEjectionTransaction requires a singular param (hash)");let n=s[0];return await J6({transactionRequest:n,ethSigner:e,zkEvmAddress:t,flow:r})};var ob=s=>!!s.zkEvm,af=class{#e;#s;#r;#t;#a;#i;#n;#u;#c;#o;#h;isPassport=!0;constructor({getUser:e,clientId:t,config:r,multiRollupApiClients:n,walletEventEmitter:i,guardianClient:a,ethSigner:o,user:c,sessionActivityApiUrl:u}){this.#e=e,this.#h=t,this.#s=r,this.#i=a,this.#a=i,this.#r=u,this.#o=o,this.#n=createPublicClient({transport:http(this.#s.zkEvmRpcUrl)}),this.#c=new Yl({config:this.#s,rpcProvider:this.#n,getUser:this.#e}),this.#u=n,this.#t=new TypedEventEmitter,c&&ob(c)&&this.#f(c.zkEvm.ethAddress),i.on("loggedOut",this.#d),i.on("accountsRequested",a5);}#d=()=>{this.#t.emit("accountsChanged",[]);};async#m(){return this.#e()}async#f(e){if(!this.#r)return;let t=BigInt(1),r=async(n,i)=>await rb({params:n,ethSigner:this.#o,guardianClient:this.#i,rpcProvider:this.#n,relayerClient:this.#c,zkEvmAddress:e,flow:i,nonceSpace:t,isBackgroundTransaction:!0});this.#a.emit("accountsRequested",{sessionActivityApiUrl:this.#r,sendTransaction:r,walletAddress:e,passportClient:this.#h});}async#l(){try{let e=await this.#m();return e&&ob(e)?e.zkEvm.ethAddress:void 0}catch{return}}async#p(e){switch(e.method){case"eth_requestAccounts":{let t=await this.#l();if(t)return [t];let r=trackFlow("passport","ethRequestAccounts");try{let n=await this.#e();if(!n)throw new ne(4100,"User not authenticated. Please log in first.");r.addEvent("endGetUser");let i;return ob(n)?i=n.zkEvm.ethAddress:(r.addEvent("startUserRegistration"),i=await D6({ethSigner:this.#o,getUser:this.#e,multiRollupApiClients:this.#u,accessToken:n.accessToken,rpcProvider:this.#n,flow:r}),r.addEvent("endUserRegistration"),await this.#e(!0),r.addEvent("endForceRefresh")),this.#t.emit("accountsChanged",[i]),identify({passportId:n.profile.sub}),this.#f(i),[i]}catch(n){throw n instanceof Error?trackError("passport","ethRequestAccounts",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_sendTransaction":{let t=await this.#l();if(!t)throw new ne(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","ethSendTransaction");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>await rb({params:e.params||[],ethSigner:this.#o,guardianClient:this.#i,rpcProvider:this.#n,relayerClient:this.#c,zkEvmAddress:t,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","eth_sendTransaction",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_accounts":{let t=await this.#l();return t?[t]:[]}case"personal_sign":{let t=await this.#l();if(!t)throw new ne(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","personalSign");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>this.#s.forceScwDeployBeforeMessageSignature&&!(await zl(this.#n,t)>BigInt(0))?await o5({params:e.params||[],zkEvmAddress:t,ethSigner:this.#o,rpcProvider:this.#n,guardianClient:this.#i,relayerClient:this.#c,flow:r}):await _m({params:e.params||[],zkEvmAddress:t,ethSigner:this.#o,rpcProvider:this.#n,guardianClient:this.#i,relayerClient:this.#c,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","personal_sign",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_signTypedData":case"eth_signTypedData_v4":{if(!await this.#l())throw new ne(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","ethSignTypedDataV4");try{return await this.#i.withConfirmationScreen({width:480,height:720})(async()=>await Y6({method:e.method,params:e.params||[],ethSigner:this.#o,rpcProvider:this.#n,relayerClient:this.#c,guardianClient:this.#i,flow:r}))}catch(n){throw n instanceof Error?trackError("passport","eth_signTypedData",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_chainId":{let t=await this.#n.getChainId();return toHex(t)}case"eth_getBalance":case"eth_getCode":case"eth_getTransactionCount":{let[t,r]=e.params||[];return this.#n.request({method:e.method,params:[t,r||"latest"]})}case"eth_getStorageAt":{let[t,r,n]=e.params||[];return this.#n.request({method:"eth_getStorageAt",params:[t,r,n||"latest"]})}case"eth_call":case"eth_estimateGas":{let[t,r]=e.params||[];return this.#n.request({method:e.method,params:[t,r||"latest"]})}case"eth_gasPrice":case"eth_blockNumber":case"eth_getBlockByHash":case"eth_getBlockByNumber":case"eth_getTransactionByHash":case"eth_getTransactionReceipt":return this.#n.request({method:e.method,params:e.params||[]});case"im_signEjectionTransaction":{let t=await this.#l();if(!t)throw new ne(4100,"Unauthorised - call eth_requestAccounts first");let r=trackFlow("passport","imSignEjectionTransaction");try{return await c5({params:e.params||[],ethSigner:this.#o,zkEvmAddress:t,flow:r})}catch(n){throw n instanceof Error?trackError("passport","imSignEjectionTransaction",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"im_addSessionActivity":{let t=await this.#l();return t&&this.#f(t),null}default:throw new ne(4200,"Method not supported")}}async request(e){try{return this.#p(e)}catch(t){throw t instanceof ne?t:t instanceof Error?new ne(-32603,t.message):new ne(-32603,"Internal error")}}on(e,t){this.#t.on(e,t);}removeListener(e,t){this.#t.removeListener(e,t);}};var Jk="Only sign this message from Immutable Passport";function zk(s){let e=s.startsWith("0x")?s.slice(2):s,t=e.substring(0,64),r=e.substring(64,128),n=e.substring(128,130),i=parseInt(n,16),o=(i>=27?i-27:i).toString(16).padStart(2,"0");return `0x${t}${r}${o}`}async function cb({getUser:s,ethSigner:e,multiRollupApiClients:t,accessToken:r,rpcProvider:n,flow:i}){let a=e.getAddress();a.then(()=>i.addEvent("endGetAddress"));let o=e.signMessage(Jk).then(zk);o.then(()=>i.addEvent("endSignRaw"));let c=n.getChainId();c.then(()=>i.addEvent("endDetectNetwork"));let u=t.chainsApi.listChains();u.then(()=>i.addEvent("endListChains"));let[l,h,m,y]=await Promise.all([a,o,c,u]),g=Xt(Number(m)),w=y.data?.result?.find(S=>S.id===g)?.name;if(!w)throw new ne(-32603,`Chain name does not exist for chain id ${m}`);try{let S=await t.passportApi.createCounterfactualAddressV2({chainName:w,createCounterfactualAddressRequest:{ethereum_address:l,ethereum_signature:h}},{headers:{Authorization:`Bearer ${r}`}});return i.addEvent("endCreateCounterfactualAddress"),s(!0).catch(()=>{}),S.data.counterfactual_address}catch(S){throw i.addEvent("errorRegisteringUser"),new ne(-32603,`Failed to create counterfactual address: ${S}`)}}function u5(s,e){return e in s&&!!s[e]?.ethAddress}function l5(s,e){return s[e]?.ethAddress}var of=class{#e;#s;#r;#t;#a;#i;#n;#u;isPassport=!0;constructor({getUser:e,chainConfig:t,multiRollupApiClients:r,guardianClient:n,ethSigner:i,passportEventEmitter:a}){let o=fc(t.chainId);if(o==="zkevm")throw new Error("SequenceProvider cannot be used for zkEVM chains. Use ZkEvmProvider instead.");this.#u=o,this.#e=e,this.#s=t,this.#r=r,this.#i=n,this.#n=i,this.#a=a,this.#t=createPublicClient({transport:http(this.#s.rpcUrl)});}async#c(){let e=await this.#e();if(e&&u5(e,this.#u))return l5(e,this.#u)}async#o(e){switch(e.method){case"eth_requestAccounts":{let t=await this.#c();if(t)return [t];let r=trackFlow("passport","ethRequestAccounts");try{let n=await this.#e();if(r.addEvent("endGetUser"),!n)throw new ne(-32603,"User not authenticated");let i;if(u5(n,this.#u)?i=l5(n,this.#u):(r.addEvent("startUserRegistration"),i=await cb({getUser:this.#e,ethSigner:this.#n,multiRollupApiClients:this.#r,accessToken:n.accessToken,rpcProvider:this.#t,flow:r}),r.addEvent("endUserRegistration")),!i)throw new ne(-32603,"Failed to get user address after registration");return this.#a.emit("accountsChanged",[i]),identify({passportId:n.profile.sub}),[i]}catch(n){throw n instanceof Error?trackError("passport","ethRequestAccounts",n,{flowId:r.details.flowId}):r.addEvent("errored"),n}finally{r.addEvent("End");}}case"eth_accounts":{let t=await this.#c();return t?[t]:[]}case"eth_sendTransaction":throw new ne(4200,"eth_sendTransaction not yet implemented for this chain");case"personal_sign":throw new ne(4200,"personal_sign not yet implemented for this chain");case"eth_signTypedData":case"eth_signTypedData_v4":throw new ne(4200,"eth_signTypedData not yet implemented for this chain");case"eth_chainId":{let t=await this.#t.getChainId();return toHex(t)}case"eth_getBalance":case"eth_getCode":case"eth_getTransactionCount":{let[t,r]=e.params||[];return this.#t.request({method:e.method,params:[t,r||"latest"]})}case"eth_getStorageAt":{let[t,r,n]=e.params||[];return this.#t.request({method:"eth_getStorageAt",params:[t,r,n||"latest"]})}case"eth_call":case"eth_estimateGas":{let[t,r]=e.params||[];return this.#t.request({method:e.method,params:[t,r||"latest"]})}case"eth_gasPrice":case"eth_blockNumber":case"eth_getBlockByHash":case"eth_getBlockByNumber":case"eth_getTransactionByHash":case"eth_getTransactionReceipt":return this.#t.request({method:e.method,params:e.params||[]});default:throw new ne(4200,"Method not supported")}}async request(e){try{return this.#o(e)}catch(t){throw t instanceof ne?t:t instanceof Error?new ne(-32603,t.message):new ne(-32603,"Internal error")}}on(e,t){this.#a.on(e,t);}removeListener(e,t){this.#a.removeListener(e,t);}};var cf=class{passportDomain;zkEvmRpcUrl;relayerUrl;indexerMrBasePath;jsonRpcReferrer;forceScwDeployBeforeMessageSignature;crossSdkBridgeEnabled;feeTokenSymbol;constructor(e){this.passportDomain=e.passportDomain,this.zkEvmRpcUrl=e.zkEvmRpcUrl,this.relayerUrl=e.relayerUrl,this.indexerMrBasePath=e.indexerMrBasePath,this.jsonRpcReferrer=e.jsonRpcReferrer,this.forceScwDeployBeforeMessageSignature=e.forceScwDeployBeforeMessageSignature||!1,this.crossSdkBridgeEnabled=e.crossSdkBridgeEnabled||!1,this.feeTokenSymbol=e.feeTokenSymbol||"IMX";}};var ub=async(s,e,t=!0,r=!0)=>{let n=trackFlow("passport",e,t);try{return await s(n)}catch(i){throw i instanceof Error?trackError("passport",e,i,{flowId:n.details.flowId}):n.addEvent("errored"),i}finally{r&&n.addEvent("End");}};var h5="ETH",nP=s=>s.reduce((e,t)=>`${e}${t.toString(16).padStart(2,"0")}`,""),iP=s=>{if(typeof TextEncoder<"u")return new TextEncoder().encode(s);let e=unescape(encodeURIComponent(s)),t=new Uint8Array(e.length);for(let r=0;r<e.length;r+=1)t[r]=e.charCodeAt(r);return t},aP=s=>{let e=iP(s),t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="";for(let n=0;n<e.length;n+=3){let i=e[n],a=e[n+1],o=e[n+2],c=i<<16|(a??0)<<8|(o??0),u=c>>18&63,l=c>>12&63,h=c>>6&63,m=c&63;r+=t[u]+t[l],r+=Number.isFinite(a)?t[h]:"=",r+=Number.isFinite(o)?t[m]:"=";}return r},mc=class s{getUser;magicTeeApiClient;userWallet=null;createWalletPromise=null;constructor(e,t){this.getUser=e,this.magicTeeApiClient=t;}async getUserWallet(){let{userWallet:e}=this;e||(e=await this.createWallet());let t=await this.getUserOrThrow();if(t.profile.sub!==e.userIdentifier&&(e=await this.createWallet(t)),isUserZkEvm(t)&&t.zkEvm.userAdminAddress.toLowerCase()!==e.walletAddress.toLowerCase())throw new Qe(`Wallet address mismatch.Rollup: zkEVM, TEE address: ${e.walletAddress}, profile address: ${t.zkEvm.userAdminAddress}`,"WALLET_CONNECTION_ERROR");return e}async createWallet(e){return this.createWalletPromise?this.createWalletPromise:(this.createWalletPromise=new Promise(async(t,r)=>{try{this.userWallet=null;let n=e||await this.getUserOrThrow(),i=s.getHeaders(n);await ub(async a=>{try{let o=performance.now(),c=await this.magicTeeApiClient.walletApi.createWalletV1WalletPost({xMagicChain:h5},{headers:i});return trackDuration("passport",a.details.flowName,Math.round(performance.now()-o)),this.userWallet={userIdentifier:n.profile.sub,walletAddress:c.data.public_address},t(this.userWallet)}catch(o){let c="MagicTEE: Failed to initialise EOA";return ea(o)?o.response?c+=` with status ${o.response.status}: ${JSON.stringify(o.response.data)}`:c+=`: ${o.message}`:c+=`: ${o.message}`,r(new Error(c))}},"magicCreateWallet");}catch(n){r(n);}finally{this.createWalletPromise=null;}}),this.createWalletPromise)}async getUserOrThrow(){let e=await this.getUser();if(!e)throw new Qe("User has been logged out","NOT_LOGGED_IN_ERROR");return e}static getHeaders(e){if(!e)throw new Qe("User has been logged out","NOT_LOGGED_IN_ERROR");return {Authorization:`Bearer ${e.idToken}`}}async getAddress(){return (await this.getUserWallet()).walletAddress}async signMessage(e){await this.getUserWallet();let t=e instanceof Uint8Array?`0x${nP(e)}`:e,r=await this.getUserOrThrow(),n=s.getHeaders(r);return ub(async i=>{try{let a=performance.now(),o=await this.magicTeeApiClient.signOperationsApi.signMessageV1WalletSignMessagePost({signMessageRequest:{message_base64:aP(t)},xMagicChain:h5},{headers:n});return trackDuration("passport",i.details.flowName,Math.round(performance.now()-a)),o.data.signature}catch(a){let o="MagicTEE: Failed to sign message using EOA";throw ea(a)?a.response?o+=` with status ${a.response.status}: ${JSON.stringify(a.response.data)}`:o+=`: ${a.message}`:o+=`: ${a.message}`,new Error(o)}},"magicSignMessage")}};var lb={icon:'data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>',name:"Immutable Passport",rdns:"com.immutable.passport",uuid:"3f0259bb-54c0-4ff0-85f2-6bb7c2d8b6c8"};function fb(s){if(typeof window>"u")return;let e=new CustomEvent("eip6963:announceProvider",{detail:Object.freeze(s)});window.dispatchEvent(e);let t=()=>window.dispatchEvent(e);window.addEventListener("eip6963:requestProvider",t);}var Na={};ye(Na,{IdentitySigner:()=>_g,toIdentityAuthKey:()=>SE});var ke={};ye(ke,{format:()=>vP,from:()=>EP});var d5="1.1.0";var mt=class s extends Error{constructor(e,t={}){let r=t.cause instanceof s?t.cause.details:t.cause?.message?t.cause.message:t.details,n=t.cause instanceof s&&t.cause.docsPath||t.docsPath,i=[e||"An error occurred.","",...t.metaMessages?[...t.metaMessages,""]:[],...n?[`Docs: https://abitype.dev${n}`]:[],...r?[`Details: ${r}`]:[],`Version: abitype@${d5}`].join(`
|
|
338
|
+
`);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),t.cause&&(this.cause=t.cause),this.details=r,this.docsPath=n,this.metaMessages=t.metaMessages,this.shortMessage=e;}};function ws(s,e){return s.exec(e)?.groups}var hb=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,db=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,$m=/^\(.+?\).*?$/;var m5=/^tuple(?<array>(\[(\d*)\])*)$/;function Fm(s){let e=s.type;if(m5.test(s.type)&&"components"in s){e="(";let t=s.components.length;for(let n=0;n<t;n++){let i=s.components[n];e+=Fm(i),n<t-1&&(e+=", ");}let r=ws(m5,s.type);return e+=`)${r?.array??""}`,Fm({...s,type:e})}return "indexed"in s&&s.indexed&&(e=`${e} indexed`),s.name?`${e} ${s.name}`:e}function or(s){let e="",t=s.length;for(let r=0;r<t;r++){let n=s[r];e+=Fm(n),r!==t-1&&(e+=", ");}return e}function Ir(s){return s.type==="function"?`function ${s.name}(${or(s.inputs)})${s.stateMutability&&s.stateMutability!=="nonpayable"?` ${s.stateMutability}`:""}${s.outputs?.length?` returns (${or(s.outputs)})`:""}`:s.type==="event"?`event ${s.name}(${or(s.inputs)})`:s.type==="error"?`error ${s.name}(${or(s.inputs)})`:s.type==="constructor"?`constructor(${or(s.inputs)})${s.stateMutability==="payable"?" payable":""}`:s.type==="fallback"?`fallback() external${s.stateMutability==="payable"?" payable":""}`:"receive() external payable"}function mb(s){let e=[],t=s.length;for(let r=0;r<t;r++){let n=s[r],i=Ir(n);e.push(i);}return e}var p5=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function g5(s){return p5.test(s)}function y5(s){return ws(p5,s)}var w5=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function b5(s){return w5.test(s)}function S5(s){return ws(w5,s)}var v5=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function E5(s){return v5.test(s)}function x5(s){return ws(v5,s)}var A5=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Tn(s){return A5.test(s)}function I5(s){return ws(A5,s)}var C5=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function N5(s){return C5.test(s)}function T5(s){return ws(C5,s)}var k5=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function P5(s){return k5.test(s)}function B5(s){return ws(k5,s)}var oP=/^receive\(\) external payable$/;function O5(s){return oP.test(s)}var pb=new Set(["memory","indexed","storage","calldata"]),R5=new Set(["indexed"]),qm=new Set(["calldata","memory","storage"]);var Gm=class extends mt{constructor({signature:e}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"});}},Km=class extends mt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"});}},Wm=class extends mt{constructor({type:e}){super("Unknown type.",{metaMessages:[`Type "${e}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"});}};var Jm=class extends mt{constructor({params:e}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(e,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"});}},zm=class extends mt{constructor({param:e}){super("Invalid ABI parameter.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"});}},Ym=class extends mt{constructor({param:e,name:t}){super("Invalid ABI parameter.",{details:e,metaMessages:[`"${t}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"});}},Zm=class extends mt{constructor({param:e,type:t,modifier:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${r}" not allowed${t?` in "${t}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"});}},Xm=class extends mt{constructor({param:e,type:t,modifier:r}){super("Invalid ABI parameter.",{details:e,metaMessages:[`Modifier "${r}" not allowed${t?` in "${t}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${r}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"});}},Qm=class extends mt{constructor({abiParameter:e}){super("Invalid ABI parameter.",{details:JSON.stringify(e,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"});}};var cr=class extends mt{constructor({signature:e,type:t}){super(`Invalid ${t} signature.`,{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"});}},ep=class extends mt{constructor({signature:e}){super("Unknown signature.",{details:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"});}},tp=class extends mt{constructor({signature:e}){super("Invalid struct signature.",{details:e,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"});}};var sp=class extends mt{constructor({type:e}){super("Circular reference detected.",{metaMessages:[`Struct "${e}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"});}};var rp=class extends mt{constructor({current:e,depth:t}){super("Unbalanced parentheses.",{metaMessages:[`"${e.trim()}" has too many ${t>0?"opening":"closing"} parentheses.`],details:`Depth "${t}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"});}};function V5(s,e,t){let r="";if(t)for(let n of Object.entries(t)){if(!n)continue;let i="";for(let a of n[1])i+=`[${a.type}${a.name?`:${a.name}`:""}]`;r+=`(${n[0]}{${i}})`;}return e?`${e}:${s}${r}`:s}var np=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function uf(s,e={}){if(E5(s))return cP(s,e);if(b5(s))return uP(s,e);if(g5(s))return lP(s,e);if(N5(s))return fP(s,e);if(P5(s))return hP(s);if(O5(s))return {type:"receive",stateMutability:"payable"};throw new ep({signature:s})}function cP(s,e={}){let t=x5(s);if(!t)throw new cr({signature:s,type:"function"});let r=ls(t.parameters),n=[],i=r.length;for(let o=0;o<i;o++)n.push(Us(r[o],{modifiers:qm,structs:e,type:"function"}));let a=[];if(t.returns){let o=ls(t.returns),c=o.length;for(let u=0;u<c;u++)a.push(Us(o[u],{modifiers:qm,structs:e,type:"function"}));}return {name:t.name,type:"function",stateMutability:t.stateMutability??"nonpayable",inputs:n,outputs:a}}function uP(s,e={}){let t=S5(s);if(!t)throw new cr({signature:s,type:"event"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{modifiers:R5,structs:e,type:"event"}));return {name:t.name,type:"event",inputs:n}}function lP(s,e={}){let t=y5(s);if(!t)throw new cr({signature:s,type:"error"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{structs:e,type:"error"}));return {name:t.name,type:"error",inputs:n}}function fP(s,e={}){let t=T5(s);if(!t)throw new cr({signature:s,type:"constructor"});let r=ls(t.parameters),n=[],i=r.length;for(let a=0;a<i;a++)n.push(Us(r[a],{structs:e,type:"constructor"}));return {type:"constructor",stateMutability:t.stateMutability??"nonpayable",inputs:n}}function hP(s){let e=B5(s);if(!e)throw new cr({signature:s,type:"fallback"});return {type:"fallback",stateMutability:e.stateMutability??"nonpayable"}}var dP=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,mP=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,pP=/^u?int$/;function Us(s,e){let t=V5(s,e?.type,e?.structs);if(np.has(t))return np.get(t);let r=$m.test(s),n=ws(r?mP:dP,s);if(!n)throw new zm({param:s});if(n.name&&yP(n.name))throw new Ym({param:s,name:n.name});let i=n.name?{name:n.name}:{},a=n.modifier==="indexed"?{indexed:!0}:{},o=e?.structs??{},c,u={};if(r){c="tuple";let h=ls(n.type),m=[],y=h.length;for(let g=0;g<y;g++)m.push(Us(h[g],{structs:o}));u={components:m};}else if(n.type in o)c="tuple",u={components:o[n.type]};else if(pP.test(n.type))c=`${n.type}256`;else if(n.type==="address payable")c="address";else if(c=n.type,e?.type!=="struct"&&!gb(c))throw new Wm({type:c});if(n.modifier){if(!e?.modifiers?.has?.(n.modifier))throw new Zm({param:s,type:e?.type,modifier:n.modifier});if(qm.has(n.modifier)&&!wP(c,!!n.array))throw new Xm({param:s,type:e?.type,modifier:n.modifier})}let l={type:`${c}${n.array??""}`,...i,...a,...u};return np.set(t,l),l}function ls(s,e=[],t="",r=0){let n=s.trim().length;for(let i=0;i<n;i++){let a=s[i],o=s.slice(i+1);switch(a){case",":return r===0?ls(o,[...e,t.trim()]):ls(o,e,`${t}${a}`,r);case"(":return ls(o,e,`${t}${a}`,r+1);case")":return ls(o,e,`${t}${a}`,r-1);default:return ls(o,e,`${t}${a}`,r)}}if(t==="")return e;if(r!==0)throw new rp({current:t,depth:r});return e.push(t.trim()),e}function gb(s){return s==="address"||s==="bool"||s==="function"||s==="string"||hb.test(s)||db.test(s)}var gP=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function yP(s){return s==="address"||s==="bool"||s==="function"||s==="string"||s==="tuple"||hb.test(s)||db.test(s)||gP.test(s)}function wP(s,e){return e||s==="bytes"||s==="string"||s==="tuple"}function pc(s){let e={},t=s.length;for(let a=0;a<t;a++){let o=s[a];if(!Tn(o))continue;let c=I5(o);if(!c)throw new cr({signature:o,type:"struct"});let u=c.properties.split(";"),l=[],h=u.length;for(let m=0;m<h;m++){let g=u[m].trim();if(!g)continue;let w=Us(g,{type:"struct"});l.push(w);}if(!l.length)throw new tp({signature:o});e[c.name]=l;}let r={},n=Object.entries(e),i=n.length;for(let a=0;a<i;a++){let[o,c]=n[a];r[o]=D5(c,e);}return r}var bP=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function D5(s,e,t=new Set){let r=[],n=s.length;for(let i=0;i<n;i++){let a=s[i];if($m.test(a.type))r.push(a);else {let c=ws(bP,a.type);if(!c?.type)throw new Qm({abiParameter:a});let{array:u,type:l}=c;if(l in e){if(t.has(l))throw new sp({type:l});r.push({...a,type:`tuple${u??""}`,components:D5(e[l]??[],e,new Set([...t,l]))});}else if(gb(l))r.push(a);else throw new Km({type:l})}}return r}function yb(s){let e=pc(s),t=[],r=s.length;for(let n=0;n<r;n++){let i=s[n];Tn(i)||t.push(uf(i,e));}return t}function ip(s){let e;if(typeof s=="string")e=uf(s);else {let t=pc(s),r=s.length;for(let n=0;n<r;n++){let i=s[n];if(!Tn(i)){e=uf(i,t);break}}}if(!e)throw new Gm({signature:s});return e}function ap(s){let e=[];if(typeof s=="string"){let t=ls(s),r=t.length;for(let n=0;n<r;n++)e.push(Us(t[n],{modifiers:pb}));}else {let t=pc(s),r=s.length;for(let n=0;n<r;n++){let i=s[n];if(Tn(i))continue;let a=ls(i),o=a.length;for(let c=0;c<o;c++)e.push(Us(a[c],{modifiers:pb,structs:t}));}}if(e.length===0)throw new Jm({params:s});return e}function L5(s){for(let e of s)if(typeof e!="string")return !1;return !0}function vP(s){return mb(s)}function EP(s){return L5(s)?yb(s):s}var U5="0.1.1";function H5(){return U5}var K=class s extends Error{static setStaticOptions(e){s.prototype.docsOrigin=e.docsOrigin,s.prototype.showVersion=e.showVersion,s.prototype.version=e.version;}constructor(e,t={}){let r=(()=>{if(t.cause instanceof s){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause&&"details"in t.cause&&typeof t.cause.details=="string"?t.cause.details:t.cause?.message?t.cause.message:t.details})(),n=t.cause instanceof s&&t.cause.docsPath||t.docsPath,i=t.docsOrigin??s.prototype.docsOrigin,a=`${i}${n??""}`,o=!!(t.version??s.prototype.showVersion),c=t.version??s.prototype.version,u=[e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...r||n||o?["",r?`Details: ${r}`:void 0,n?`See: ${a}`:void 0,o?`Version: ${c}`:void 0]:[]].filter(l=>typeof l=="string").join(`
|
|
339
|
+
`);super(u,t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=t.cause,this.details=r,this.docs=a,this.docsOrigin=i,this.docsPath=n,this.shortMessage=e,this.showVersion=o,this.version=c;}walk(e){return _5(this,e)}};Object.defineProperty(K,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${H5()}`}});K.setStaticOptions(K.defaultStaticOptions);function _5(s,e){return e?.(s)?s:s&&typeof s=="object"&&"cause"in s&&s.cause?_5(s.cause,e):e?null:s}var ee={};ye(ee,{keccak256:()=>yt,ripemd160:()=>hB,sha256:()=>If,validate:()=>Gb});var ta=Cr&&typeof Cr=="object"&&"webcrypto"in Cr?Cr.webcrypto:Cr&&typeof Cr=="object"&&"randomBytes"in Cr?Cr:void 0;function xP(s){return s instanceof Uint8Array||ArrayBuffer.isView(s)&&s.constructor.name==="Uint8Array"}function sa(s){if(!Number.isSafeInteger(s)||s<0)throw new Error("positive integer expected, got "+s)}function ur(s,...e){if(!xP(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error("Uint8Array expected of length "+e+", got length="+s.length)}function j5(s){if(typeof s!="function"||typeof s.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");sa(s.outputLen),sa(s.blockLen);}function Nr(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function cp(s,e){ur(s);let t=e.outputLen;if(s.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function M5(s){return new Uint32Array(s.buffer,s.byteOffset,Math.floor(s.byteLength/4))}function Qt(...s){for(let e=0;e<s.length;e++)s[e].fill(0);}function up(s){return new DataView(s.buffer,s.byteOffset,s.byteLength)}function Hs(s,e){return s<<32-e|s>>>e}function lf(s,e){return s<<e|s>>>32-e>>>0}var AP=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function IP(s){return s<<24&4278190080|s<<8&16711680|s>>>8&65280|s>>>24&255}function CP(s){for(let e=0;e<s.length;e++)s[e]=IP(s[e]);return s}var wb=AP?s=>s:CP;function NP(s){if(typeof s!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(s))}function ra(s){return typeof s=="string"&&(s=NP(s)),ur(s),s}function $5(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];ur(n),e+=n.length;}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}var kn=class{};function Pn(s){let e=r=>s().update(ra(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function F5(s=32){if(ta&&typeof ta.getRandomValues=="function")return ta.getRandomValues(new Uint8Array(s));if(ta&&typeof ta.randomBytes=="function")return Uint8Array.from(ta.randomBytes(s));throw new Error("crypto.getRandomValues must be defined")}function TP(s,e,t,r){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,r);let n=BigInt(32),i=BigInt(4294967295),a=Number(t>>n&i),o=Number(t&i),c=r?4:0,u=r?0:4;s.setUint32(e+c,a,r),s.setUint32(e+u,o,r);}function bb(s,e,t){return s&e^~s&t}function Sb(s,e,t){return s&e^s&t^e&t}var na=class extends kn{constructor(e,t,r,n){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.buffer=new Uint8Array(e),this.view=up(this.buffer);}update(e){Nr(this),e=ra(e),ur(e);let{view:t,buffer:r,blockLen:n}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(n-this.pos,i-a);if(o===n){let c=up(e);for(;n<=i-a;a+=n)this.process(c,a);continue}r.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0);}return this.length+=e.length,this.roundClean(),this}digestInto(e){Nr(this),cp(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:a}=this;t[a++]=128,Qt(this.buffer.subarray(a)),this.padOffset>n-a&&(this.process(r,0),a=0);for(let h=a;h<n;h++)t[h]=0;TP(r,n-8,BigInt(this.length*8),i),this.process(r,0);let o=up(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)o.setUint32(4*h,l[h],i);}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=n,e.pos=o,n%t&&e.buffer.set(r),e}clone(){return this._cloneInto()}},Tr=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Vt=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Dt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var kP=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),G5=Uint8Array.from(new Array(16).fill(0).map((s,e)=>e)),PP=G5.map(s=>(9*s+5)%16),K5=(()=>{let t=[[G5],[PP]];for(let r=0;r<4;r++)for(let n of t)n.push(n[r].map(i=>kP[i]));return t})(),W5=K5[0],J5=K5[1],z5=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(s=>Uint8Array.from(s)),BP=W5.map((s,e)=>s.map(t=>z5[e][t])),OP=J5.map((s,e)=>s.map(t=>z5[e][t])),RP=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),VP=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function q5(s,e,t,r){return s===0?e^t^r:s===1?e&t|~e&r:s===2?(e|~t)^r:s===3?e&r|t&~r:e^(t|~r)}var lp=new Uint32Array(16),fp=class extends na{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776;}get(){let{h0:e,h1:t,h2:r,h3:n,h4:i}=this;return [e,t,r,n,i]}set(e,t,r,n,i){this.h0=e|0,this.h1=t|0,this.h2=r|0,this.h3=n|0,this.h4=i|0;}process(e,t){for(let y=0;y<16;y++,t+=4)lp[y]=e.getUint32(t,!0);let r=this.h0|0,n=r,i=this.h1|0,a=i,o=this.h2|0,c=o,u=this.h3|0,l=u,h=this.h4|0,m=h;for(let y=0;y<5;y++){let g=4-y,w=RP[y],S=VP[y],C=W5[y],N=J5[y],x=BP[y],E=OP[y];for(let I=0;I<16;I++){let D=lf(r+q5(y,i,o,u)+lp[C[I]]+w,x[I])+h|0;r=h,h=u,u=lf(o,10)|0,o=i,i=D;}for(let I=0;I<16;I++){let D=lf(n+q5(g,a,c,l)+lp[N[I]]+S,E[I])+m|0;n=m,m=l,l=lf(c,10)|0,c=a,a=D;}}this.set(this.h1+o+l|0,this.h2+u+m|0,this.h3+h+n|0,this.h4+r+a|0,this.h0+i+c|0);}roundClean(){Qt(lp);}destroy(){this.destroyed=!0,Qt(this.buffer),this.set(0,0,0,0,0);}},Y5=Pn(()=>new fp);var Z5=Y5;var hp=BigInt(4294967295),X5=BigInt(32);function DP(s,e=!1){return e?{h:Number(s&hp),l:Number(s>>X5&hp)}:{h:Number(s>>X5&hp)|0,l:Number(s&hp)|0}}function dp(s,e=!1){let t=s.length,r=new Uint32Array(t),n=new Uint32Array(t);for(let i=0;i<t;i++){let{h:a,l:o}=DP(s[i],e);[r[i],n[i]]=[a,o];}return [r,n]}var vb=(s,e,t)=>s>>>t,Eb=(s,e,t)=>s<<32-t|e>>>t,ia=(s,e,t)=>s>>>t|e<<32-t,aa=(s,e,t)=>s<<32-t|e>>>t,ff=(s,e,t)=>s<<64-t|e>>>t-32,hf=(s,e,t)=>s>>>t-32|e<<64-t;var Q5=(s,e,t)=>s<<t|e>>>32-t,e3=(s,e,t)=>e<<t|s>>>32-t,t3=(s,e,t)=>e<<t-32|s>>>64-t,s3=(s,e,t)=>s<<t-32|e>>>64-t;function lr(s,e,t,r){let n=(e>>>0)+(r>>>0);return {h:s+t+(n/2**32|0)|0,l:n|0}}var r3=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),n3=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,i3=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),a3=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,o3=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),c3=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var UP=BigInt(0),df=BigInt(1),HP=BigInt(2),_P=BigInt(7),jP=BigInt(256),MP=BigInt(113),f3=[],h3=[],d3=[];for(let s=0,e=df,t=1,r=0;s<24;s++){[t,r]=[r,(2*t+3*r)%5],f3.push(2*(5*r+t)),h3.push((s+1)*(s+2)/2%64);let n=UP;for(let i=0;i<7;i++)e=(e<<df^(e>>_P)*MP)%jP,e&HP&&(n^=df<<(df<<BigInt(i))-df);d3.push(n);}var m3=dp(d3,!0),$P=m3[0],FP=m3[1],u3=(s,e,t)=>t>32?t3(s,e,t):Q5(s,e,t),l3=(s,e,t)=>t>32?s3(s,e,t):e3(s,e,t);function qP(s,e=24){let t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let a=0;a<10;a++)t[a]=s[a]^s[a+10]^s[a+20]^s[a+30]^s[a+40];for(let a=0;a<10;a+=2){let o=(a+8)%10,c=(a+2)%10,u=t[c],l=t[c+1],h=u3(u,l,1)^t[o],m=l3(u,l,1)^t[o+1];for(let y=0;y<50;y+=10)s[a+y]^=h,s[a+y+1]^=m;}let n=s[2],i=s[3];for(let a=0;a<24;a++){let o=h3[a],c=u3(n,i,o),u=l3(n,i,o),l=f3[a];n=s[l],i=s[l+1],s[l]=c,s[l+1]=u;}for(let a=0;a<50;a+=10){for(let o=0;o<10;o++)t[o]=s[a+o];for(let o=0;o<10;o++)s[a+o]^=~t[(o+2)%10]&t[(o+4)%10];}s[0]^=$P[r],s[1]^=FP[r];}Qt(t);}var xb=class s extends kn{constructor(e,t,r,n=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,sa(r),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=M5(this.state);}clone(){return this._cloneInto()}keccak(){wb(this.state32),qP(this.state32,this.rounds),wb(this.state32),this.posOut=0,this.pos=0;}update(e){Nr(this),e=ra(e),ur(e);let{blockLen:t,state:r}=this,n=e.length;for(let i=0;i<n;){let a=Math.min(t-this.pos,n-i);for(let o=0;o<a;o++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak();}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,t&128&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak();}writeInto(e){Nr(this,!1),ur(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a;}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return sa(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(cp(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Qt(this.state);}_cloneInto(e){let{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:a}=this;return e||(e=new s(t,r,n,a,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=a,e.destroyed=this.destroyed,e}},GP=(s,e,t)=>Pn(()=>new xb(e,s,t));var p3=GP(1,136,256/8);var KP=Uint32Array.from([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]),Bn=new Uint32Array(64),mp=class extends na{constructor(e=32){super(64,e,8,!1),this.A=Tr[0]|0,this.B=Tr[1]|0,this.C=Tr[2]|0,this.D=Tr[3]|0,this.E=Tr[4]|0,this.F=Tr[5]|0,this.G=Tr[6]|0,this.H=Tr[7]|0;}get(){let{A:e,B:t,C:r,D:n,E:i,F:a,G:o,H:c}=this;return [e,t,r,n,i,a,o,c]}set(e,t,r,n,i,a,o,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0;}process(e,t){for(let h=0;h<16;h++,t+=4)Bn[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){let m=Bn[h-15],y=Bn[h-2],g=Hs(m,7)^Hs(m,18)^m>>>3,w=Hs(y,17)^Hs(y,19)^y>>>10;Bn[h]=w+Bn[h-7]+g+Bn[h-16]|0;}let{A:r,B:n,C:i,D:a,E:o,F:c,G:u,H:l}=this;for(let h=0;h<64;h++){let m=Hs(o,6)^Hs(o,11)^Hs(o,25),y=l+m+bb(o,c,u)+KP[h]+Bn[h]|0,w=(Hs(r,2)^Hs(r,13)^Hs(r,22))+Sb(r,n,i)|0;l=u,u=c,c=o,o=a+y|0,a=i,i=n,n=r,r=y+w|0;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,n,i,a,o,c,u,l);}roundClean(){Qt(Bn);}destroy(){this.set(0,0,0,0,0,0,0,0),Qt(this.buffer);}};var g3=dp(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(s=>BigInt(s))),WP=g3[0],JP=g3[1],On=new Uint32Array(80),Rn=new Uint32Array(80),pp=class extends na{constructor(e=64){super(128,e,16,!1),this.Ah=Dt[0]|0,this.Al=Dt[1]|0,this.Bh=Dt[2]|0,this.Bl=Dt[3]|0,this.Ch=Dt[4]|0,this.Cl=Dt[5]|0,this.Dh=Dt[6]|0,this.Dl=Dt[7]|0,this.Eh=Dt[8]|0,this.El=Dt[9]|0,this.Fh=Dt[10]|0,this.Fl=Dt[11]|0,this.Gh=Dt[12]|0,this.Gl=Dt[13]|0,this.Hh=Dt[14]|0,this.Hl=Dt[15]|0;}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:h,Fl:m,Gh:y,Gl:g,Hh:w,Hl:S}=this;return [e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,S]}set(e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,S){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=h|0,this.Fl=m|0,this.Gh=y|0,this.Gl=g|0,this.Hh=w|0,this.Hl=S|0;}process(e,t){for(let x=0;x<16;x++,t+=4)On[x]=e.getUint32(t),Rn[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let E=On[x-15]|0,I=Rn[x-15]|0,D=ia(E,I,1)^ia(E,I,8)^vb(E,I,7),G=aa(E,I,1)^aa(E,I,8)^Eb(E,I,7),$=On[x-2]|0,J=Rn[x-2]|0,ie=ia($,J,19)^ff($,J,61)^vb($,J,6),q=aa($,J,19)^hf($,J,61)^Eb($,J,6),z=i3(G,q,Rn[x-7],Rn[x-16]),ce=a3(z,D,ie,On[x-7],On[x-16]);On[x]=ce|0,Rn[x]=z|0;}let{Ah:r,Al:n,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:h,El:m,Fh:y,Fl:g,Gh:w,Gl:S,Hh:C,Hl:N}=this;for(let x=0;x<80;x++){let E=ia(h,m,14)^ia(h,m,18)^ff(h,m,41),I=aa(h,m,14)^aa(h,m,18)^hf(h,m,41),D=h&y^~h&w,G=m&g^~m&S,$=o3(N,I,G,JP[x],Rn[x]),J=c3($,C,E,D,WP[x],On[x]),ie=$|0,q=ia(r,n,28)^ff(r,n,34)^ff(r,n,39),z=aa(r,n,28)^hf(r,n,34)^hf(r,n,39),ce=r&i^r&o^i&o,Le=n&a^n&c^a&c;C=w|0,N=S|0,w=y|0,S=g|0,y=h|0,g=m|0,{h,l:m}=lr(u|0,l|0,J|0,ie|0),u=o|0,l=c|0,o=i|0,c=a|0,i=r|0,a=n|0;let U=r3(ie,z,Le);r=n3(U,J,q,ce),n=U|0;}(({h:r,l:n}=lr(this.Ah|0,this.Al|0,r|0,n|0))),{h:i,l:a}=lr(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=lr(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l}=lr(this.Dh|0,this.Dl|0,u|0,l|0),{h,l:m}=lr(this.Eh|0,this.El|0,h|0,m|0),{h:y,l:g}=lr(this.Fh|0,this.Fl|0,y|0,g|0),{h:w,l:S}=lr(this.Gh|0,this.Gl|0,w|0,S|0),{h:C,l:N}=lr(this.Hh|0,this.Hl|0,C|0,N|0),this.set(r,n,i,a,o,c,u,l,h,m,y,g,w,S,C,N);}roundClean(){Qt(On,Rn);}destroy(){Qt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);}},Ab=class extends pp{constructor(){super(48),this.Ah=Vt[0]|0,this.Al=Vt[1]|0,this.Bh=Vt[2]|0,this.Bl=Vt[3]|0,this.Ch=Vt[4]|0,this.Cl=Vt[5]|0,this.Dh=Vt[6]|0,this.Dl=Vt[7]|0,this.Eh=Vt[8]|0,this.El=Vt[9]|0,this.Fh=Vt[10]|0,this.Fl=Vt[11]|0,this.Gh=Vt[12]|0,this.Gl=Vt[13]|0,this.Hh=Vt[14]|0,this.Hl=Vt[15]|0;}};var gc=Pn(()=>new mp);var y3=Pn(()=>new pp),w3=Pn(()=>new Ab);var b3=gc;var f={};ye(f,{InvalidBytesBooleanError:()=>vp,InvalidBytesTypeError:()=>da,SizeExceedsPaddingSizeError:()=>wf,SizeOverflowError:()=>yf,SliceOffsetOutOfBoundsError:()=>Sc,assert:()=>R3,concat:()=>jb,from:()=>Rr,fromArray:()=>V3,fromBoolean:()=>cB,fromHex:()=>et,fromNumber:()=>uB,fromString:()=>Vr,isEqual:()=>lB,padLeft:()=>D3,padRight:()=>L3,random:()=>_b,size:()=>bs,slice:()=>Mb,toBigInt:()=>$b,toBoolean:()=>Fb,toHex:()=>fB,toNumber:()=>Ms,toString:()=>Ep,trimLeft:()=>xp,trimRight:()=>Sp,validate:()=>qb});var Tb=BigInt(0),Nb=BigInt(1);function yc(s){return s instanceof Uint8Array||ArrayBuffer.isView(s)&&s.constructor.name==="Uint8Array"}function kb(s){if(!yc(s))throw new Error("Uint8Array expected")}function wc(s,e){if(typeof e!="boolean")throw new Error(s+" boolean expected, got "+e)}function mf(s){let e=s.toString(16);return e.length&1?"0"+e:e}function E3(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);return s===""?Tb:BigInt("0x"+s)}var x3=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",zP=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function bc(s){if(kb(s),x3)return s.toHex();let e="";for(let t=0;t<s.length;t++)e+=zP[s[t]];return e}var kr={_0:48,_9:57,A:65,F:70,a:97,f:102};function S3(s){if(s>=kr._0&&s<=kr._9)return s-kr._0;if(s>=kr.A&&s<=kr.F)return s-(kr.A-10);if(s>=kr.a&&s<=kr.f)return s-(kr.a-10)}function pf(s){if(typeof s!="string")throw new Error("hex string expected, got "+typeof s);if(x3)return Uint8Array.fromHex(s);let e=s.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(t);for(let n=0,i=0;n<t;n++,i+=2){let a=S3(s.charCodeAt(i)),o=S3(s.charCodeAt(i+1));if(a===void 0||o===void 0){let c=s[i]+s[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}r[n]=a*16+o;}return r}function Pr(s){return E3(bc(s))}function Pb(s){return kb(s),E3(bc(Uint8Array.from(s).reverse()))}function oa(s,e){return pf(s.toString(16).padStart(e*2,"0"))}function Bb(s,e){return oa(s,e).reverse()}function fs(s,e,t){let r;if(typeof e=="string")try{r=pf(e);}catch(i){throw new Error(s+" must be hex string or Uint8Array, cause: "+i)}else if(yc(e))r=Uint8Array.from(e);else throw new Error(s+" must be hex string or Uint8Array");let n=r.length;if(typeof t=="number"&&n!==t)throw new Error(s+" of length "+t+" expected, got "+n);return r}function gf(...s){let e=0;for(let r=0;r<s.length;r++){let n=s[r];kb(n),e+=n.length;}let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}function gp(s,e){if(s.length!==e.length)return !1;let t=0;for(let r=0;r<s.length;r++)t|=s[r]^e[r];return t===0}var Ib=s=>typeof s=="bigint"&&Tb<=s;function yp(s,e,t){return Ib(s)&&Ib(e)&&Ib(t)&&e<=s&&s<t}function ca(s,e,t,r){if(!yp(e,t,r))throw new Error("expected valid "+s+": "+t+" <= n < "+r+", got "+e)}function A3(s){let e;for(e=0;s>Tb;s>>=Nb,e+=1);return e}var ua=s=>(Nb<<BigInt(s))-Nb,Cb=s=>new Uint8Array(s),v3=s=>Uint8Array.from(s);function I3(s,e,t){if(typeof s!="number"||s<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let r=Cb(s),n=Cb(s),i=0,a=()=>{r.fill(1),n.fill(0),i=0;},o=(...h)=>t(n,r,...h),c=(h=Cb(0))=>{n=o(v3([0]),h),r=o(),h.length!==0&&(n=o(v3([1]),h),r=o());},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let h=0,m=[];for(;h<e;){r=o();let y=r.slice();m.push(y),h+=r.length;}return gf(...m)};return (h,m)=>{a(),c(h);let y;for(;!(y=m(u()));)c();return a(),y}}var YP={bigint:s=>typeof s=="bigint",function:s=>typeof s=="function",boolean:s=>typeof s=="boolean",string:s=>typeof s=="string",stringOrUint8Array:s=>typeof s=="string"||yc(s),isSafeInteger:s=>Number.isSafeInteger(s),array:s=>Array.isArray(s),field:(s,e)=>e.Fp.isValid(s),hash:s=>typeof s=="function"&&Number.isSafeInteger(s.outputLen)};function la(s,e,t={}){let r=(n,i,a)=>{let o=YP[i];if(typeof o!="function")throw new Error("invalid validator function");let c=s[n];if(!(a&&c===void 0)&&!o(c,s))throw new Error("param "+String(n)+" is invalid. Expected "+i+", got "+c)};for(let[n,i]of Object.entries(e))r(n,i,!1);for(let[n,i]of Object.entries(t))r(n,i,!0);return s}function Ob(s){let e=new WeakMap;return (t,...r)=>{let n=e.get(t);if(n!==void 0)return n;let i=s(t,...r);return e.set(t,i),i}}var v={};ye(v,{IntegerOutOfRangeError:()=>xc,InvalidHexBooleanError:()=>wp,InvalidHexTypeError:()=>vf,InvalidHexValueError:()=>Ef,InvalidLengthError:()=>xf,SizeExceedsPaddingSizeError:()=>Sf,SizeOverflowError:()=>bf,SliceOffsetOutOfBoundsError:()=>vc,assert:()=>O3,concat:()=>Je,from:()=>es,fromBoolean:()=>Af,fromBytes:()=>Ne,fromNumber:()=>le,fromString:()=>hs,isEqual:()=>eB,padLeft:()=>fr,padRight:()=>js,random:()=>tB,size:()=>Ue,slice:()=>lt,toBigInt:()=>bp,toBoolean:()=>rB,toBytes:()=>nB,toNumber:()=>Hb,toString:()=>iB,trimLeft:()=>ha,trimRight:()=>sB,validate:()=>ts});function Or(s,e){if(bs(s)>e)throw new yf({givenSize:bs(s),maxSize:e})}function C3(s,e){if(typeof e=="number"&&e>0&&e>bs(s)-1)throw new Sc({offset:e,position:"start",size:bs(s)})}function N3(s,e,t){if(typeof e=="number"&&typeof t=="number"&&bs(s)!==t-e)throw new Sc({offset:t,position:"end",size:bs(s)})}var Br={zero:48,nine:57,A:65,F:70,a:97,f:102};function Rb(s){if(s>=Br.zero&&s<=Br.nine)return s-Br.zero;if(s>=Br.A&&s<=Br.F)return s-(Br.A-10);if(s>=Br.a&&s<=Br.f)return s-(Br.a-10)}function Vb(s,e={}){let{dir:t,size:r=32}=e;if(r===0)return s;if(s.length>r)throw new wf({size:s.length,targetSize:r,type:"Bytes"});let n=new Uint8Array(r);for(let i=0;i<r;i++){let a=t==="right";n[a?i:r-i-1]=s[a?i:s.length-i-1];}return n}function Db(s,e={}){let{dir:t="left"}=e,r=s,n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),r}function fa(s,e){if(Ue(s)>e)throw new bf({givenSize:Ue(s),maxSize:e})}function k3(s,e){if(typeof e=="number"&&e>0&&e>Ue(s)-1)throw new vc({offset:e,position:"start",size:Ue(s)})}function P3(s,e,t){if(typeof e=="number"&&typeof t=="number"&&Ue(s)!==t-e)throw new vc({offset:t,position:"end",size:Ue(s)})}function Lb(s,e={}){let{dir:t,size:r=32}=e;if(r===0)return s;let n=s.replace("0x","");if(n.length>r*2)throw new Sf({size:Math.ceil(n.length/2),targetSize:r,type:"Hex"});return `0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function Ub(s,e={}){let{dir:t="left"}=e,r=s.replace("0x",""),n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),r==="0"?"0x":t==="right"&&r.length%2===1?`0x${r}0`:`0x${r}`}var ZP="#__bigint";function _s(s,e,t){return JSON.stringify(s,(r,n)=>typeof e=="function"?e(r,n):typeof n=="bigint"?n.toString()+ZP:n,t)}var XP=new TextEncoder,QP=Array.from({length:256},(s,e)=>e.toString(16).padStart(2,"0"));function O3(s,e={}){let{strict:t=!1}=e;if(!s)throw new vf(s);if(typeof s!="string")throw new vf(s);if(t&&!/^0x[0-9a-fA-F]*$/.test(s))throw new Ef(s);if(!s.startsWith("0x"))throw new Ef(s)}function Je(...s){return `0x${s.reduce((e,t)=>e+t.replace("0x",""),"")}`}function es(s){return s instanceof Uint8Array?Ne(s):Array.isArray(s)?Ne(new Uint8Array(s)):s}function Af(s,e={}){let t=`0x${Number(s)}`;return typeof e.size=="number"?(fa(t,e.size),fr(t,e.size)):t}function Ne(s,e={}){let t="";for(let n=0;n<s.length;n++)t+=QP[s[n]];let r=`0x${t}`;return typeof e.size=="number"?(fa(r,e.size),js(r,e.size)):r}function le(s,e={}){let{signed:t,size:r}=e,n=BigInt(s),i;r?t?i=(1n<<BigInt(r)*8n-1n)-1n:i=2n**(BigInt(r)*8n)-1n:typeof s=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));let a=typeof i=="bigint"&&t?-i-1n:0;if(i&&n>i||n<a){let u=typeof s=="bigint"?"n":"";throw new xc({max:i?`${i}${u}`:void 0,min:`${a}${u}`,signed:t,size:r,value:`${s}${u}`})}let c=`0x${(t&&n<0?BigInt.asUintN(r*8,BigInt(n)):n).toString(16)}`;return r?fr(c,r):c}function hs(s,e={}){return Ne(XP.encode(s),e)}function eB(s,e){return gp(et(s),et(e))}function fr(s,e){return Lb(s,{dir:"left",size:e})}function js(s,e){return Lb(s,{dir:"right",size:e})}function tB(s){return Ne(_b(s))}function lt(s,e,t,r={}){let{strict:n}=r;k3(s,e);let i=`0x${s.replace("0x","").slice((e??0)*2,(t??s.length)*2)}`;return n&&P3(i,e,t),i}function Ue(s){return Math.ceil((s.length-2)/2)}function ha(s){return Ub(s,{dir:"left"})}function sB(s){return Ub(s,{dir:"right"})}function bp(s,e={}){let{signed:t}=e;e.size&&fa(s,e.size);let r=BigInt(s);if(!t)return r;let n=(s.length-2)/2,i=(1n<<BigInt(n)*8n)-1n,a=i>>1n;return r<=a?r:r-i-1n}function rB(s,e={}){e.size&&fa(s,e.size);let t=ha(s);if(t==="0x")return !1;if(t==="0x1")return !0;throw new wp(s)}function nB(s,e={}){return et(s,e)}function Hb(s,e={}){let{signed:t,size:r}=e;return Number(!t&&!r?s:bp(s,e))}function iB(s,e={}){let{size:t}=e,r=et(s);return t&&(Or(r,t),r=Sp(r)),new TextDecoder().decode(r)}function ts(s,e={}){let{strict:t=!1}=e;try{return O3(s,{strict:t}),!0}catch{return !1}}var xc=class extends K{constructor({max:e,min:t,signed:r,size:n,value:i}){super(`Number \`${i}\` is not in safe${n?` ${n*8}-bit`:""}${r?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"});}},wp=class extends K{constructor(e){super(`Hex value \`"${e}"\` is not a valid boolean.`,{metaMessages:['The hex value must be `"0x0"` (false) or `"0x1"` (true).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexBooleanError"});}},vf=class extends K{constructor(e){super(`Value \`${typeof e=="object"?_s(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"});}},Ef=class extends K{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"});}},xf=class extends K{constructor(e){super(`Hex value \`"${e}"\` is an odd length (${e.length-2} nibbles).`,{metaMessages:["It must be an even length."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidLengthError"});}},bf=class extends K{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"});}},vc=class extends K{constructor({offset:e,position:t,size:r}){super(`Slice ${t==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"});}},Sf=class extends K{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"});}};var aB=new TextDecoder,oB=new TextEncoder;function R3(s){if(!(s instanceof Uint8Array)){if(!s)throw new da(s);if(typeof s!="object")throw new da(s);if(!("BYTES_PER_ELEMENT"in s))throw new da(s);if(s.BYTES_PER_ELEMENT!==1||s.constructor.name!=="Uint8Array")throw new da(s)}}function jb(...s){let e=0;for(let r of s)e+=r.length;let t=new Uint8Array(e);for(let r=0,n=0;r<s.length;r++){let i=s[r];t.set(i,n),n+=i.length;}return t}function Rr(s){return s instanceof Uint8Array?s:typeof s=="string"?et(s):V3(s)}function V3(s){return s instanceof Uint8Array?s:new Uint8Array(s)}function cB(s,e={}){let{size:t}=e,r=new Uint8Array(1);return r[0]=Number(s),typeof t=="number"?(Or(r,t),D3(r,t)):r}function et(s,e={}){let{size:t}=e,r=s;t&&(fa(s,t),r=js(s,t));let n=r.slice(2);n.length%2&&(n=`0${n}`);let i=n.length/2,a=new Uint8Array(i);for(let o=0,c=0;o<i;o++){let u=Rb(n.charCodeAt(c++)),l=Rb(n.charCodeAt(c++));if(u===void 0||l===void 0)throw new K(`Invalid byte sequence ("${n[c-2]}${n[c-1]}" in "${n}").`);a[o]=u<<4|l;}return a}function uB(s,e){let t=le(s,e);return et(t)}function Vr(s,e={}){let{size:t}=e,r=oB.encode(s);return typeof t=="number"?(Or(r,t),L3(r,t)):r}function lB(s,e){return gp(s,e)}function D3(s,e){return Vb(s,{dir:"left",size:e})}function L3(s,e){return Vb(s,{dir:"right",size:e})}function _b(s){return crypto.getRandomValues(new Uint8Array(s))}function bs(s){return s.length}function Mb(s,e,t,r={}){let{strict:n}=r;C3(s,e);let i=s.slice(e,t);return n&&N3(i,e,t),i}function $b(s,e={}){let{size:t}=e;typeof t<"u"&&Or(s,t);let r=Ne(s,e);return bp(r,e)}function Fb(s,e={}){let{size:t}=e,r=s;if(typeof t<"u"&&(Or(r,t),r=xp(r)),r.length>1||r[0]>1)throw new vp(r);return !!r[0]}function fB(s,e={}){return Ne(s,e)}function Ms(s,e={}){let{size:t}=e;typeof t<"u"&&Or(s,t);let r=Ne(s,e);return Hb(r,e)}function Ep(s,e={}){let{size:t}=e,r=s;return typeof t<"u"&&(Or(r,t),r=Sp(r)),aB.decode(r)}function xp(s){return Db(s,{dir:"left"})}function Sp(s){return Db(s,{dir:"right"})}function qb(s){try{return R3(s),!0}catch{return !1}}var vp=class extends K{constructor(e){super(`Bytes value \`${e}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"});}},da=class extends K{constructor(e){super(`Value \`${typeof e=="object"?_s(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"});}},yf=class extends K{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"});}},Sc=class extends K{constructor({offset:e,position:t,size:r}){super(`Slice ${t==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SliceOffsetOutOfBoundsError"});}},wf=class extends K{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"});}};function yt(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=p3(Rr(s));return t==="Bytes"?r:Ne(r)}function hB(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=Z5(Rr(s));return t==="Bytes"?r:Ne(r)}function If(s,e={}){let{as:t=typeof s=="string"?"Hex":"Bytes"}=e,r=b3(Rr(s));return t==="Bytes"?r:Ne(r)}function Gb(s){return ts(s)&&Ue(s)===32}var P={};ye(P,{InvalidAddressError:()=>ma,InvalidChecksumError:()=>Np,InvalidInputError:()=>Ac,assert:()=>ss,checksum:()=>Nf,from:()=>M3,fromPublicKey:()=>Yb,isEqual:()=>Zb,validate:()=>pa});var Ap=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e;}get(e){let t=super.get(e);return super.has(e)&&t!==void 0&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){let r=this.keys().next().value;r&&this.delete(r);}return this}};var dB={checksum:new Ap(8192)},Ip=dB.checksum;function H3(s,e={}){let{compressed:t}=e,{prefix:r,x:n,y:i}=s;if(t===!1||typeof n=="bigint"&&typeof i=="bigint"){if(r!==4)throw new Cp({prefix:r,cause:new Jb});return}if(t===!0||typeof n=="bigint"&&typeof i>"u"){if(r!==3&&r!==2)throw new Cp({prefix:r,cause:new Wb});return}throw new Kb({publicKey:s})}function Dr(s){let e=(()=>{if(ts(s))return _3(s);if(qb(s))return mB(s);let{prefix:t,x:r,y:n}=s;return typeof r=="bigint"&&typeof n=="bigint"?{prefix:t??4,x:r,y:n}:{prefix:t,x:r}})();return H3(e),e}function mB(s){return _3(Ne(s))}function _3(s){if(s.length!==132&&s.length!==130&&s.length!==68)throw new zb({publicKey:s});if(s.length===130){let r=BigInt(lt(s,0,32)),n=BigInt(lt(s,32,64));return {prefix:4,x:r,y:n}}if(s.length===132){let r=Number(lt(s,0,1)),n=BigInt(lt(s,1,33)),i=BigInt(lt(s,33,65));return {prefix:r,x:n,y:i}}let e=Number(lt(s,0,1)),t=BigInt(lt(s,1,33));return {prefix:e,x:t}}function j3(s,e={}){return et(Vn(s,e))}function Vn(s,e={}){H3(s);let{prefix:t,x:r,y:n}=s,{includePrefix:i=!0}=e;return Je(i?le(t,{size:1}):"0x",le(r,{size:32}),typeof n=="bigint"?le(n,{size:32}):"0x")}var Kb=class extends K{constructor({publicKey:e}){super(`Value \`${_s(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"});}},Cp=class extends K{constructor({prefix:e,cause:t}){super(`Prefix "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"});}},Wb=class extends K{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"});}},Jb=class extends K{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"});}},zb=class extends K{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Ue(es(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"});}};var pB=/^0x[a-fA-F0-9]{40}$/;function ss(s,e={}){let{strict:t=!0}=e;if(!pB.test(s))throw new ma({address:s,cause:new Ac});if(t){if(s.toLowerCase()===s)return;if(Nf(s)!==s)throw new ma({address:s,cause:new Np})}}function Nf(s){if(Ip.has(s))return Ip.get(s);ss(s,{strict:!1});let e=s.substring(2).toLowerCase(),t=yt(Vr(e),{as:"Bytes"}),r=e.split("");for(let i=0;i<40;i+=2)t[i>>1]>>4>=8&&r[i]&&(r[i]=r[i].toUpperCase()),(t[i>>1]&15)>=8&&r[i+1]&&(r[i+1]=r[i+1].toUpperCase());let n=`0x${r.join("")}`;return Ip.set(s,n),n}function M3(s,e={}){let{checksum:t=!1}=e;return ss(s),t?Nf(s):s}function Yb(s,e={}){let t=yt(`0x${Vn(s).slice(4)}`).substring(26);return M3(`0x${t}`,e)}function Zb(s,e){return ss(s,{strict:!1}),ss(e,{strict:!1}),s.toLowerCase()===e.toLowerCase()}function pa(s,e={}){let{strict:t=!0}=e??{};try{return ss(s,{strict:t}),!0}catch{return !1}}var ma=class extends K{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"});}},Ac=class extends K{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"});}},Np=class extends K{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"});}};function kp(s){let e=!0,t="",r=0,n="",i=!1;for(let a=0;a<s.length;a++){let o=s[a];if(["(",")",","].includes(o)&&(e=!0),o==="("&&r++,o===")"&&r--,!!e){if(r===0){if(o===" "&&["event","function","error",""].includes(n))n="";else if(n+=o,o===")"){i=!0;break}continue}if(o===" "){s[a-1]!==","&&t!==","&&t!==",("&&(t="",e=!1);continue}n+=o,t+=o;}}if(!i)throw new K("Unable to normalize signature.");return n}function Tp(s,e){let t=typeof s,r=e.type;switch(r){case"address":return pa(s,{strict:!1});case"bool":return t==="boolean";case"function":return t==="string";case"string":return t==="string";default:return r==="tuple"&&"components"in e?Object.values(e.components).every((n,i)=>Tp(Object.values(s)[i],n)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(r)?t==="number"||t==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(r)?t==="string"||s instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(r)?Array.isArray(s)&&s.every(n=>Tp(n,{...e,type:r.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Xb(s,e,t){for(let r in s){let n=s[r],i=e[r];if(n.type==="tuple"&&i.type==="tuple"&&"components"in n&&"components"in i)return Xb(n.components,i.components,t[r]);let a=[n.type,i.type];if(a.includes("address")&&a.includes("bytes20")?!0:a.includes("address")&&a.includes("string")?pa(t[r],{strict:!1}):a.includes("address")&&a.includes("bytes")?pa(t[r],{strict:!1}):!1)return a}}function $3(s,e={}){let{prepare:t=!0}=e,r=Array.isArray(s)?ip(s):typeof s=="string"?ip(s):s;return {...r,...t?{hash:Ic(r)}:{}}}function Tf(s,e,t){let{args:r=[],prepare:n=!0}=t??{},i=ts(e,{strict:!1}),a=s.filter(u=>i?u.type==="function"||u.type==="error"?eS(u)===lt(e,0,4):u.type==="event"?Ic(u)===e:!1:"name"in u&&u.name===e);if(a.length===0)throw new Cc({name:e});if(a.length===1)return {...a[0],...n?{hash:Ic(a[0])}:{}};let o;for(let u of a){if(!("inputs"in u))continue;if(!r||r.length===0){if(!u.inputs||u.inputs.length===0)return {...u,...n?{hash:Ic(u)}:{}};continue}if(!u.inputs||u.inputs.length===0||u.inputs.length!==r.length)continue;if(r.every((h,m)=>{let y="inputs"in u&&u.inputs[m];return y?Tp(h,y):!1})){if(o&&"inputs"in o&&o.inputs){let h=Xb(u.inputs,o.inputs,r);if(h)throw new Qb({abiItem:u,type:h[0]},{abiItem:o,type:h[1]})}o=u;}}let c=(()=>{if(o)return o;let[u,...l]=a;return {...u,overloads:l}})();if(!c)throw new Cc({name:e});return {...c,...n?{hash:Ic(c)}:{}}}function eS(...s){let e=(()=>{if(Array.isArray(s[0])){let[t,r]=s;return Tf(t,r)}return s[0]})();return lt(Ic(e),0,4)}function yB(...s){let e=(()=>{if(Array.isArray(s[0])){let[r,n]=s;return Tf(r,n)}return s[0]})(),t=typeof e=="string"?e:Ir(e);return kp(t)}function Ic(...s){let e=(()=>{if(Array.isArray(s[0])){let[t,r]=s;return Tf(t,r)}return s[0]})();return typeof e!="string"&&"hash"in e&&e.hash?e.hash:yt(hs(yB(e)))}var Qb=class extends K{constructor(e,t){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${e.type}\` in \`${kp(Ir(e.abiItem))}\`, and`,`\`${t.type}\` in \`${kp(Ir(t.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"});}},Cc=class extends K{constructor({name:e,data:t,type:r="item"}){let n=e?` with name "${e}"`:t?` with data "${t}"`:"";super(`ABI ${r}${n} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"});}},Pp=class extends K{constructor({data:e}){super(`Selector size is invalid. Expected 4 bytes. Received ${Ue(e)} bytes ("${e}").`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.InvalidSelectorSizeError"});}};var tt={};ye(tt,{ArrayLengthMismatchError:()=>Pf,BytesSizeMismatchError:()=>Tc,DataSizeTooSmallError:()=>Lp,InvalidArrayError:()=>Bf,InvalidTypeError:()=>ya,LengthMismatchError:()=>Rf,ZeroDataError:()=>Up,decode:()=>kc,encode:()=>Lr,encodePacked:()=>Dp,format:()=>VB,from:()=>Hp});var q3=/^(.*)\[([0-9]*)\]$/,Bp=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Nc=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,tS=2n**256n-1n;function ga(s,e,t){let{checksumAddress:r,staticPosition:n}=t,i=nS(e.type);if(i){let[a,o]=i;return bB(s,{...e,type:o},{checksumAddress:r,length:a,staticPosition:n})}if(e.type==="tuple")return xB(s,e,{checksumAddress:r,staticPosition:n});if(e.type==="address")return wB(s,{checksum:r});if(e.type==="bool")return SB(s);if(e.type.startsWith("bytes"))return vB(s,e,{staticPosition:n});if(e.type.startsWith("uint")||e.type.startsWith("int"))return EB(s,e);if(e.type==="string")return AB(s,{staticPosition:n});throw new ya(e.type)}var G3=32,sS=32;function wB(s,e={}){let{checksum:t=!1}=e,r=s.readBytes(32);return [(i=>t?Nf(i):i)(Ne(Mb(r,-20))),32]}function bB(s,e,t){let{checksumAddress:r,length:n,staticPosition:i}=t;if(!n){let c=Ms(s.readBytes(sS)),u=i+c,l=u+G3;s.setPosition(u);let h=Ms(s.readBytes(G3)),m=kf(e),y=0,g=[];for(let w=0;w<h;++w){s.setPosition(l+(m?w*32:y));let[S,C]=ga(s,e,{checksumAddress:r,staticPosition:l});y+=C,g.push(S);}return s.setPosition(i+32),[g,32]}if(kf(e)){let c=Ms(s.readBytes(sS)),u=i+c,l=[];for(let h=0;h<n;++h){s.setPosition(u+h*32);let[m]=ga(s,e,{checksumAddress:r,staticPosition:u});l.push(m);}return s.setPosition(i+32),[l,32]}let a=0,o=[];for(let c=0;c<n;++c){let[u,l]=ga(s,e,{checksumAddress:r,staticPosition:i+a});a+=l,o.push(u);}return [o,a]}function SB(s){return [Fb(s.readBytes(32),{size:32}),32]}function vB(s,e,{staticPosition:t}){let[r,n]=e.type.split("bytes");if(!n){let a=Ms(s.readBytes(32));s.setPosition(t+a);let o=Ms(s.readBytes(32));if(o===0)return s.setPosition(t+32),["0x",32];let c=s.readBytes(o);return s.setPosition(t+32),[Ne(c),32]}return [Ne(s.readBytes(Number.parseInt(n,10),32)),32]}function EB(s,e){let t=e.type.startsWith("int"),r=Number.parseInt(e.type.split("int")[1]||"256",10),n=s.readBytes(32);return [r>48?$b(n,{signed:t}):Ms(n,{signed:t}),32]}function xB(s,e,t){let{checksumAddress:r,staticPosition:n}=t,i=e.components.length===0||e.components.some(({name:c})=>!c),a=i?[]:{},o=0;if(kf(e)){let c=Ms(s.readBytes(sS)),u=n+c;for(let l=0;l<e.components.length;++l){let h=e.components[l];s.setPosition(u+o);let[m,y]=ga(s,h,{checksumAddress:r,staticPosition:u});o+=y,a[i?l:h?.name]=m;}return s.setPosition(n+32),[a,32]}for(let c=0;c<e.components.length;++c){let u=e.components[c],[l,h]=ga(s,u,{checksumAddress:r,staticPosition:n});a[i?c:u?.name]=l,o+=h;}return [a,o]}function AB(s,{staticPosition:e}){let t=Ms(s.readBytes(32)),r=e+t;s.setPosition(r);let n=Ms(s.readBytes(32));if(n===0)return s.setPosition(e+32),["",32];let i=s.readBytes(n,32),a=Ep(xp(i));return s.setPosition(e+32),[a,32]}function K3({checksumAddress:s,parameters:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(rS({checksumAddress:s,parameter:e[n],value:t[n]}));return r}function rS({checksumAddress:s=!1,parameter:e,value:t}){let r=e,n=nS(r.type);if(n){let[i,a]=n;return CB(t,{checksumAddress:s,length:i,parameter:{...r,type:a}})}if(r.type==="tuple")return BB(t,{checksumAddress:s,parameter:r});if(r.type==="address")return IB(t,{checksum:s});if(r.type==="bool")return TB(t);if(r.type.startsWith("uint")||r.type.startsWith("int")){let i=r.type.startsWith("int"),[,,a="256"]=Nc.exec(r.type)??[];return kB(t,{signed:i,size:Number(a)})}if(r.type.startsWith("bytes"))return NB(t,{type:r.type});if(r.type==="string")return PB(t);throw new ya(r.type)}function Rp(s){let e=0;for(let i=0;i<s.length;i++){let{dynamic:a,encoded:o}=s[i];a?e+=32:e+=Ue(o);}let t=[],r=[],n=0;for(let i=0;i<s.length;i++){let{dynamic:a,encoded:o}=s[i];a?(t.push(le(e+n,{size:32})),r.push(o),n+=Ue(o)):t.push(o);}return Je(...t,...r)}function IB(s,e){let{checksum:t=!1}=e;return ss(s,{strict:t}),{dynamic:!1,encoded:fr(s.toLowerCase())}}function CB(s,e){let{checksumAddress:t,length:r,parameter:n}=e,i=r===null;if(!Array.isArray(s))throw new Bf(s);if(!i&&s.length!==r)throw new Pf({expectedLength:r,givenLength:s.length,type:`${n.type}[${r}]`});let a=!1,o=[];for(let c=0;c<s.length;c++){let u=rS({checksumAddress:t,parameter:n,value:s[c]});u.dynamic&&(a=!0),o.push(u);}if(i||a){let c=Rp(o);if(i){let u=le(o.length,{size:32});return {dynamic:!0,encoded:o.length>0?Je(u,c):u}}if(a)return {dynamic:!0,encoded:c}}return {dynamic:!1,encoded:Je(...o.map(({encoded:c})=>c))}}function NB(s,{type:e}){let[,t]=e.split("bytes"),r=Ue(s);if(!t){let n=s;return r%32!==0&&(n=js(n,Math.ceil((s.length-2)/2/32)*32)),{dynamic:!0,encoded:Je(fr(le(r,{size:32})),n)}}if(r!==Number.parseInt(t,10))throw new Tc({expectedSize:Number.parseInt(t,10),value:s});return {dynamic:!1,encoded:js(s)}}function TB(s){if(typeof s!="boolean")throw new K(`Invalid boolean value: "${s}" (type: ${typeof s}). Expected: \`true\` or \`false\`.`);return {dynamic:!1,encoded:fr(Af(s))}}function kB(s,{signed:e,size:t}){if(typeof t=="number"){let r=2n**(BigInt(t)-(e?1n:0n))-1n,n=e?-r-1n:0n;if(s>r||s<n)throw new xc({max:r.toString(),min:n.toString(),signed:e,size:t/8,value:s.toString()})}return {dynamic:!1,encoded:le(s,{size:32,signed:e})}}function PB(s){let e=hs(s),t=Math.ceil(Ue(e)/32),r=[];for(let n=0;n<t;n++)r.push(js(lt(e,n*32,(n+1)*32)));return {dynamic:!0,encoded:Je(js(le(Ue(e),{size:32})),...r)}}function BB(s,e){let{checksumAddress:t,parameter:r}=e,n=!1,i=[];for(let a=0;a<r.components.length;a++){let o=r.components[a],c=Array.isArray(s)?a:o.name,u=rS({checksumAddress:t,parameter:o,value:s[c]});i.push(u),u.dynamic&&(n=!0);}return {dynamic:n,encoded:n?Rp(i):Je(...i.map(({encoded:a})=>a))}}function nS(s){let e=s.match(/^(.*)\[(\d+)?\]$/);return e?[e[2]?Number(e[2]):null,e[1]]:void 0}function kf(s){let{type:e}=s;if(e==="string"||e==="bytes"||e.endsWith("[]"))return !0;if(e==="tuple")return s.components?.some(kf);let t=nS(s.type);return !!(t&&kf({...s,type:t[1]}))}var RB={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new aS({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(s){if(s<0||s>this.bytes.length-1)throw new iS({length:this.bytes.length,position:s})},decrementPosition(s){if(s<0)throw new Vp({offset:s});let e=this.position-s;this.assertPosition(e),this.position=e;},getReadCount(s){return this.positionReadCount.get(s||this.position)||0},incrementPosition(s){if(s<0)throw new Vp({offset:s});let e=this.position+s;this.assertPosition(e),this.position=e;},inspectByte(s){let e=s??this.position;return this.assertPosition(e),this.bytes[e]},inspectBytes(s,e){let t=e??this.position;return this.assertPosition(t+s-1),this.bytes.subarray(t,t+s)},inspectUint8(s){let e=s??this.position;return this.assertPosition(e),this.bytes[e]},inspectUint16(s){let e=s??this.position;return this.assertPosition(e+1),this.dataView.getUint16(e)},inspectUint24(s){let e=s??this.position;return this.assertPosition(e+2),(this.dataView.getUint16(e)<<8)+this.dataView.getUint8(e+2)},inspectUint32(s){let e=s??this.position;return this.assertPosition(e+3),this.dataView.getUint32(e)},pushByte(s){this.assertPosition(this.position),this.bytes[this.position]=s,this.position++;},pushBytes(s){this.assertPosition(this.position+s.length-1),this.bytes.set(s,this.position),this.position+=s.length;},pushUint8(s){this.assertPosition(this.position),this.bytes[this.position]=s,this.position++;},pushUint16(s){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,s),this.position+=2;},pushUint24(s){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,s>>8),this.dataView.setUint8(this.position+2,s&255),this.position+=3;},pushUint32(s){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,s),this.position+=4;},readByte(){this.assertReadLimit(),this._touch();let s=this.inspectByte();return this.position++,s},readBytes(s,e){this.assertReadLimit(),this._touch();let t=this.inspectBytes(s);return this.position+=e??s,t},readUint8(){this.assertReadLimit(),this._touch();let s=this.inspectUint8();return this.position+=1,s},readUint16(){this.assertReadLimit(),this._touch();let s=this.inspectUint16();return this.position+=2,s},readUint24(){this.assertReadLimit(),this._touch();let s=this.inspectUint24();return this.position+=3,s},readUint32(){this.assertReadLimit(),this._touch();let s=this.inspectUint32();return this.position+=4,s},get remaining(){return this.bytes.length-this.position},setPosition(s){let e=this.position;return this.assertPosition(s),this.position=s,()=>this.position=e},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let s=this.getReadCount();this.positionReadCount.set(this.position,s+1),s>0&&this.recursiveReadCount++;}};function Of(s,{recursiveReadLimit:e=8192}={}){let t=Object.create(RB);return t.bytes=s,t.dataView=new DataView(s.buffer,s.byteOffset,s.byteLength),t.positionReadCount=new Map,t.recursiveReadLimit=e,t}var Vp=class extends K{constructor({offset:e}){super(`Offset \`${e}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"});}},iS=class extends K{constructor({length:e,position:t}){super(`Position \`${t}\` is out of bounds (\`0 < position < ${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"});}},aS=class extends K{constructor({count:e,limit:t}){super(`Recursive read limit of \`${t}\` exceeded (recursive read count: \`${e}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"});}};function kc(s,e,t={}){let{as:r="Array",checksumAddress:n=!1}=t,i=typeof e=="string"?et(e):e,a=Of(i);if(bs(i)===0&&s.length>0)throw new Up;if(bs(i)&&bs(i)<32)throw new Lp({data:typeof e=="string"?e:Ne(e),parameters:s,size:bs(i)});let o=0,c=r==="Array"?[]:{};for(let u=0;u<s.length;++u){let l=s[u];a.setPosition(o);let[h,m]=ga(a,l,{checksumAddress:n,staticPosition:0});o+=m,r==="Array"?c.push(h):c[l.name??u]=h;}return c}function Lr(s,e,t){let{checksumAddress:r=!1}=t??{};if(s.length!==e.length)throw new Rf({expectedLength:s.length,givenLength:e.length});let n=K3({checksumAddress:r,parameters:s,values:e}),i=Rp(n);return i.length===0?"0x":i}function Dp(s,e){if(s.length!==e.length)throw new Rf({expectedLength:s.length,givenLength:e.length});let t=[];for(let r=0;r<s.length;r++){let n=s[r],i=e[r];t.push(Dp.encode(n,i));}return Je(...t)}(function(s){function e(t,r,n=!1){if(t==="address"){let c=r;return ss(c),fr(c.toLowerCase(),n?32:0)}if(t==="string")return hs(r);if(t==="bytes")return r;if(t==="bool")return fr(Af(r),n?32:1);let i=t.match(Nc);if(i){let[c,u,l="256"]=i,h=Number.parseInt(l,10)/8;return le(r,{size:n?32:h,signed:u==="int"})}let a=t.match(Bp);if(a){let[c,u]=a;if(Number.parseInt(u,10)!==(r.length-2)/2)throw new Tc({expectedSize:Number.parseInt(u,10),value:r});return js(r,n?32:0)}let o=t.match(q3);if(o&&Array.isArray(r)){let[c,u]=o,l=[];for(let h=0;h<r.length;h++)l.push(e(u,r[h],!0));return l.length===0?"0x":Je(...l)}throw new ya(t)}s.encode=e;})(Dp||(Dp={}));function VB(s){return or(s)}function Hp(s){return Array.isArray(s)&&typeof s[0]=="string"?ap(s):typeof s=="string"?ap(s):s}var Lp=class extends K{constructor({data:e,parameters:t,size:r}){super(`Data size of ${r} bytes is too small for given parameters.`,{metaMessages:[`Params: (${or(t)})`,`Data: ${e} (${r} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"});}},Up=class extends K{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"});}},Pf=class extends K{constructor({expectedLength:e,givenLength:t,type:r}){super(`Array length mismatch for type \`${r}\`. Expected: \`${e}\`. Given: \`${t}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"});}},Tc=class extends K{constructor({expectedSize:e,value:t}){super(`Size of bytes "${t}" (bytes${Ue(t)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"});}},Rf=class extends K{constructor({expectedLength:e,givenLength:t}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${t}`].join(`
|
|
340
|
+
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"});}},Bf=class extends K{constructor(e){super(`Value \`${e}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"});}},ya=class extends K{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"});}};var se={};ye(se,{decodeData:()=>DB,decodeResult:()=>LB,encodeData:()=>UB,encodeResult:()=>HB,format:()=>_B,from:()=>jB,fromAbi:()=>wa,getSelector:()=>J3});function DB(...s){let[e,t]=(()=>{if(Array.isArray(s[0])){let[i,a,o]=s;return [wa(i,a),o]}return s})(),{overloads:r}=e;if(Ue(t)<4)throw new Pp({data:t});if(e.inputs?.length===0)return;let n=r?wa([e,...r],t):e;if(!(Ue(t)<=4))return kc(n.inputs,lt(t,4))}function LB(...s){let[e,t,r={}]=(()=>{if(Array.isArray(s[0])){let[i,a,o,c]=s;return [wa(i,a),o,c]}return s})(),n=kc(e.outputs,t,r);if(!(n&&Object.keys(n).length===0))return n&&Object.keys(n).length===1?Array.isArray(n)?n[0]:Object.values(n)[0]:n}function UB(...s){let[e,t=[]]=(()=>{if(Array.isArray(s[0])){let[u,l,h]=s;return [wa(u,l,{args:h}),h]}let[o,c]=s;return [o,c]})(),{overloads:r}=e,n=r?wa([e,...r],e.name,{args:t}):e,i=J3(n),a=t.length>0?Lr(n.inputs,t):void 0;return a?Je(i,a):i}function HB(...s){let[e,t,r={}]=(()=>{if(Array.isArray(s[0])){let[a,o,c,u]=s;return [wa(a,o),c,u]}return s})(),{as:n="Array"}=r,i=e.outputs.length===1?[t]:Array.isArray(t)?t:n==="Object"?Object.values(t):[t];return Lr(e.outputs,i)}function _B(s){return Ir(s)}function jB(s,e={}){return $3(s,e)}function wa(s,e,t){let r=Tf(s,e,t);if(r.type!=="function")throw new Cc({name:e,type:"function"});return r}function J3(s){return eS(s)}function z3(s){let e=[];for(let t=0;t<s.length;t++){let[r,n]=s[t];r&&ss(r,{strict:!1}),e.push({address:r,storageKeys:n.map(i=>Gb(i)?i:ha(i))});}return e}function Y3(s){if(!s||s.length===0)return [];let e=[];for(let{address:t,storageKeys:r}of s){for(let n=0;n<r.length;n++)if(Ue(r[n])!==32)throw new oS({storageKey:r[n]});t&&ss(t,{strict:!1}),e.push([t,r]);}return e}var oS=class extends K{constructor({storageKey:e}){super(`Size for storage key "${e}" is invalid. Expected 32 bytes. Got ${Ue(e)} bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AccessList.InvalidStorageKeySizeError"});}};function Q3(s){return MB(s,"Hex")}function MB(s,e){let t=e,r=(()=>{if(typeof s=="string"){if(s.length>3&&s.length%2!==0)throw new xf(s);return et(s)}return s})(),n=Of(r,{recursiveReadLimit:Number.POSITIVE_INFINITY});return eI(n,t)}function eI(s,e="Hex"){if(s.bytes.length===0)return e==="Hex"?Ne(s.bytes):s.bytes;let t=s.readByte();if(t<128&&s.decrementPosition(1),t<192){let n=X3(s,t,128),i=s.readBytes(n);return e==="Hex"?Ne(i):i}let r=X3(s,t,192);return $B(s,r,e)}function X3(s,e,t){if(t===128&&e<128)return 1;if(e<=t+55)return e-t;if(e===t+55+1)return s.readUint8();if(e===t+55+2)return s.readUint16();if(e===t+55+3)return s.readUint24();if(e===t+55+4)return s.readUint32();throw new K("Invalid RLP prefix")}function $B(s,e,t){let r=s.position,n=[];for(;s.position-r<e;)n.push(eI(s,t));return n}function FB(s,e){let{as:t}=e,r=sI(s),n=Of(new Uint8Array(r.length));return r.encode(n),t==="Hex"?Ne(n.bytes):n.bytes}function tI(s,e={}){let{as:t="Hex"}=e;return FB(s,{as:t})}function sI(s){return Array.isArray(s)?qB(s.map(e=>sI(e))):GB(s)}function qB(s){let e=s.reduce((n,i)=>n+i.length,0),t=rI(e);return {length:e<=55?1+e:1+t+e,encode(n){e<=55?n.pushByte(192+e):(n.pushByte(247+t),t===1?n.pushUint8(e):t===2?n.pushUint16(e):t===3?n.pushUint24(e):n.pushUint32(e));for(let{encode:i}of s)i(n);}}}function GB(s){let e=typeof s=="string"?et(s):s,t=rI(e.length);return {length:e.length===1&&e[0]<128?1:e.length<=55?1+e.length:1+t+e.length,encode(n){e.length===1&&e[0]<128?n.pushBytes(e):e.length<=55?(n.pushByte(128+e.length),n.pushBytes(e)):(n.pushByte(183+t),t===1?n.pushUint8(e.length):t===2?n.pushUint16(e.length):t===3?n.pushUint24(e.length):n.pushUint32(e.length),n.pushBytes(e));}}}function rI(s){if(s<=255)return 1;if(s<=65535)return 2;if(s<=16777215)return 3;if(s<=4294967295)return 4;throw new K("Length is too large.")}var Tt={};ye(Tt,{InvalidRError:()=>$p,InvalidSError:()=>Fp,InvalidSerializedSizeError:()=>Mp,InvalidVError:()=>qp,InvalidYParityError:()=>Sa,MissingPropertiesError:()=>Bc,assert:()=>Gp,extract:()=>Kp,from:()=>Vf,fromBytes:()=>xI,fromDerBytes:()=>cO,fromDerHex:()=>AI,fromHex:()=>AS,fromLegacy:()=>II,fromRpc:()=>CI,fromTuple:()=>IS,toBytes:()=>uO,toDerBytes:()=>lO,toDerHex:()=>fO,toHex:()=>NI,toLegacy:()=>hO,toRpc:()=>CS,toTuple:()=>NS,vToYParity:()=>Wp,validate:()=>dO,yParityToV:()=>TS});var _p=class extends kn{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,j5(e);let r=ra(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let a=0;a<i.length;a++)i[a]^=54;this.iHash.update(i),this.oHash=e.create();for(let a=0;a<i.length;a++)i[a]^=106;this.oHash.update(i),Qt(i);}update(e){return Nr(this),this.iHash.update(e),this}digestInto(e){Nr(this),ur(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy();}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:a,outputLen:o}=this;return e=e,e.finished=n,e.destroyed=i,e.blockLen=a,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy();}},cS=(s,e,t)=>new _p(s,e).update(t).digest();cS.create=(s,e)=>new _p(s,e);var rs=BigInt(0),qt=BigInt(1),ba=BigInt(2),KB=BigInt(3),aI=BigInt(4),oI=BigInt(5),cI=BigInt(8);function Ft(s,e){let t=s%e;return t>=rs?t:e+t}function Ss(s,e,t){let r=s;for(;e-- >rs;)r*=r,r%=t;return r}function jp(s,e){if(s===rs)throw new Error("invert: expected non-zero number");if(e<=rs)throw new Error("invert: expected positive modulus, got "+e);let t=Ft(s,e),r=e,n=rs,a=qt;for(;t!==rs;){let u=r/t,l=r%t,h=n-a*u;r=t,t=l,n=a,a=h;}if(r!==qt)throw new Error("invert: does not exist");return Ft(n,e)}function uI(s,e){let t=(s.ORDER+qt)/aI,r=s.pow(e,t);if(!s.eql(s.sqr(r),e))throw new Error("Cannot find square root");return r}function WB(s,e){let t=(s.ORDER-oI)/cI,r=s.mul(e,ba),n=s.pow(r,t),i=s.mul(e,n),a=s.mul(s.mul(i,ba),n),o=s.mul(i,s.sub(a,s.ONE));if(!s.eql(s.sqr(o),e))throw new Error("Cannot find square root");return o}function JB(s){if(s<BigInt(3))throw new Error("sqrt is not defined for small field");let e=s-qt,t=0;for(;e%ba===rs;)e/=ba,t++;let r=ba,n=Ur(s);for(;iI(n,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return uI;let i=n.pow(r,e),a=(e+qt)/ba;return function(c,u){if(c.is0(u))return u;if(iI(c,u)!==1)throw new Error("Cannot find square root");let l=t,h=c.mul(c.ONE,i),m=c.pow(u,e),y=c.pow(u,a);for(;!c.eql(m,c.ONE);){if(c.is0(m))return c.ZERO;let g=1,w=c.sqr(m);for(;!c.eql(w,c.ONE);)if(g++,w=c.sqr(w),g===l)throw new Error("Cannot find square root");let S=qt<<BigInt(l-g-1),C=c.pow(h,S);l=g,h=c.sqr(C),m=c.mul(m,h),y=c.mul(y,C);}return y}}function zB(s){return s%aI===KB?uI:s%cI===oI?WB:JB(s)}var YB=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function uS(s){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=YB.reduce((r,n)=>(r[n]="function",r),e);return la(s,t)}function ZB(s,e,t){if(t<rs)throw new Error("invalid exponent, negatives unsupported");if(t===rs)return s.ONE;if(t===qt)return e;let r=s.ONE,n=e;for(;t>rs;)t&qt&&(r=s.mul(r,n)),n=s.sqr(n),t>>=qt;return r}function lS(s,e,t=!1){let r=new Array(e.length).fill(t?s.ZERO:void 0),n=e.reduce((a,o,c)=>s.is0(o)?a:(r[c]=a,s.mul(a,o)),s.ONE),i=s.inv(n);return e.reduceRight((a,o,c)=>s.is0(o)?a:(r[c]=s.mul(a,r[c]),s.mul(a,o)),i),r}function iI(s,e){let t=(s.ORDER-qt)/ba,r=s.pow(e,t),n=s.eql(r,s.ONE),i=s.eql(r,s.ZERO),a=s.eql(r,s.neg(s.ONE));if(!n&&!i&&!a)throw new Error("invalid Legendre symbol result");return n?1:i?0:-1}function fS(s,e){e!==void 0&&sa(e);let t=e!==void 0?e:s.toString(2).length,r=Math.ceil(t/8);return {nBitLength:t,nByteLength:r}}function Ur(s,e,t=!1,r={}){if(s<=rs)throw new Error("invalid field: expected ORDER > 0, got "+s);let{nBitLength:n,nByteLength:i}=fS(s,e);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let a,o=Object.freeze({ORDER:s,isLE:t,BITS:n,BYTES:i,MASK:ua(n),ZERO:rs,ONE:qt,create:c=>Ft(c,s),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return rs<=c&&c<s},is0:c=>c===rs,isOdd:c=>(c&qt)===qt,neg:c=>Ft(-c,s),eql:(c,u)=>c===u,sqr:c=>Ft(c*c,s),add:(c,u)=>Ft(c+u,s),sub:(c,u)=>Ft(c-u,s),mul:(c,u)=>Ft(c*u,s),pow:(c,u)=>ZB(o,c,u),div:(c,u)=>Ft(c*jp(u,s),s),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>jp(c,s),sqrt:r.sqrt||(c=>(a||(a=zB(s)),a(o,c))),toBytes:c=>t?Bb(c,i):oa(c,i),fromBytes:c=>{if(c.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+c.length);return t?Pb(c):Pr(c)},invertBatch:c=>lS(o,c),cmov:(c,u,l)=>l?u:c});return Object.freeze(o)}function lI(s){if(typeof s!="bigint")throw new Error("field order must be bigint");let e=s.toString(2).length;return Math.ceil(e/8)}function hS(s){let e=lI(s);return e+Math.ceil(e/2)}function fI(s,e,t=!1){let r=s.length,n=lI(e),i=hS(e);if(r<16||r<i||r>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+r);let a=t?Pb(s):Pr(s),o=Ft(a,e-qt)+qt;return t?Bb(o,n):oa(o,n)}var hI=BigInt(0),yS=BigInt(1);function dS(s,e){let t=e.negate();return s?t:e}function mI(s,e){if(!Number.isSafeInteger(s)||s<=0||s>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+s)}function mS(s,e){mI(s,e);let t=Math.ceil(e/s)+1,r=2**(s-1),n=2**s,i=ua(s),a=BigInt(s);return {windows:t,windowSize:r,mask:i,maxNumber:n,shiftBy:a}}function dI(s,e,t){let{windowSize:r,mask:n,maxNumber:i,shiftBy:a}=t,o=Number(s&n),c=s>>a;o>r&&(o-=i,c+=yS);let u=e*r,l=u+Math.abs(o)-1,h=o===0,m=o<0,y=e%2!==0;return {nextN:c,offset:l,isZero:h,isNeg:m,isNegF:y,offsetF:u}}function XB(s,e){if(!Array.isArray(s))throw new Error("array expected");s.forEach((t,r)=>{if(!(t instanceof e))throw new Error("invalid point at index "+r)});}function QB(s,e){if(!Array.isArray(s))throw new Error("array of scalars expected");s.forEach((t,r)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+r)});}var pS=new WeakMap,pI=new WeakMap;function gS(s){return pI.get(s)||1}function gI(s,e){return {constTimeNegate:dS,hasPrecomputes(t){return gS(t)!==1},unsafeLadder(t,r,n=s.ZERO){let i=t;for(;r>hI;)r&yS&&(n=n.add(i)),i=i.double(),r>>=yS;return n},precomputeWindow(t,r){let{windows:n,windowSize:i}=mS(r,e),a=[],o=t,c=o;for(let u=0;u<n;u++){c=o,a.push(c);for(let l=1;l<i;l++)c=c.add(o),a.push(c);o=c.double();}return a},wNAF(t,r,n){let i=s.ZERO,a=s.BASE,o=mS(t,e);for(let c=0;c<o.windows;c++){let{nextN:u,offset:l,isZero:h,isNeg:m,isNegF:y,offsetF:g}=dI(n,c,o);n=u,h?a=a.add(dS(y,r[g])):i=i.add(dS(m,r[l]));}return {p:i,f:a}},wNAFUnsafe(t,r,n,i=s.ZERO){let a=mS(t,e);for(let o=0;o<a.windows&&n!==hI;o++){let{nextN:c,offset:u,isZero:l,isNeg:h}=dI(n,o,a);if(n=c,!l){let m=r[u];i=i.add(h?m.negate():m);}}return i},getPrecomputes(t,r,n){let i=pS.get(r);return i||(i=this.precomputeWindow(r,t),t!==1&&pS.set(r,n(i))),i},wNAFCached(t,r,n){let i=gS(t);return this.wNAF(i,this.getPrecomputes(i,t,n),r)},wNAFCachedUnsafe(t,r,n,i){let a=gS(t);return a===1?this.unsafeLadder(t,r,i):this.wNAFUnsafe(a,this.getPrecomputes(a,t,n),r,i)},setWindowSize(t,r){mI(r,e),pI.set(t,r),pS.delete(t);}}}function yI(s,e,t,r){XB(t,s),QB(r,e);let n=t.length,i=r.length;if(n!==i)throw new Error("arrays of points and scalars must have equal length");let a=s.ZERO,o=A3(BigInt(n)),c=1;o>12?c=o-3:o>4?c=o-2:o>0&&(c=2);let u=ua(c),l=new Array(Number(u)+1).fill(a),h=Math.floor((e.BITS-1)/c)*c,m=a;for(let y=h;y>=0;y-=c){l.fill(a);for(let w=0;w<i;w++){let S=r[w],C=Number(S>>BigInt(y)&u);l[C]=l[C].add(t[w]);}let g=a;for(let w=l.length-1,S=a;w>0;w--)S=S.add(l[w]),g=g.add(S);if(m=m.add(g),y!==0)for(let w=0;w<c;w++)m=m.double();}return m}function wS(s){return uS(s.Fp),la(s,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...fS(s.n,s.nBitLength),...s,p:s.Fp.ORDER})}function wI(s){s.lowS!==void 0&&wc("lowS",s.lowS),s.prehash!==void 0&&wc("prehash",s.prehash);}function eO(s){let e=wS(s);la(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:t,Fp:r,a:n}=e;if(t){if(!r.eql(n,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}var vS=class extends Error{constructor(e=""){super(e);}},Hr={Err:vS,_tlv:{encode:(s,e)=>{let{Err:t}=Hr;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let r=e.length/2,n=mf(r);if(n.length/2&128)throw new t("tlv.encode: long form length too big");let i=r>127?mf(n.length/2|128):"";return mf(s)+i+n+e},decode(s,e){let{Err:t}=Hr,r=0;if(s<0||s>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[r++]!==s)throw new t("tlv.decode: wrong tlv");let n=e[r++],i=!!(n&128),a=0;if(!i)a=n;else {let c=n&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let u=e.subarray(r,r+c);if(u.length!==c)throw new t("tlv.decode: length bytes not complete");if(u[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let l of u)a=a<<8|l;if(r+=c,a<128)throw new t("tlv.decode(long): not minimal encoding")}let o=e.subarray(r,r+a);if(o.length!==a)throw new t("tlv.decode: wrong value length");return {v:o,l:e.subarray(r+a)}}},_int:{encode(s){let{Err:e}=Hr;if(s<_r)throw new e("integer: negative integers are not allowed");let t=mf(s);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(s){let{Err:e}=Hr;if(s[0]&128)throw new e("invalid signature integer: negative");if(s[0]===0&&!(s[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Pr(s)}},toSig(s){let{Err:e,_int:t,_tlv:r}=Hr,n=fs("signature",s),{v:i,l:a}=r.decode(48,n);if(a.length)throw new e("invalid signature: left bytes after parsing");let{v:o,l:c}=r.decode(2,i),{v:u,l}=r.decode(2,c);if(l.length)throw new e("invalid signature: left bytes after parsing");return {r:t.decode(o),s:t.decode(u)}},hexFromSig(s){let{_tlv:e,_int:t}=Hr,r=e.encode(2,t.encode(s.r)),n=e.encode(2,t.encode(s.s)),i=r+n;return e.encode(48,i)}};function bS(s,e){return bc(oa(s,e))}var _r=BigInt(0),Nt=BigInt(1);BigInt(2);var SS=BigInt(3),tO=BigInt(4);function sO(s){let e=eO(s),{Fp:t}=e,r=Ur(e.n,e.nBitLength),n=e.toBytes||((x,E,I)=>{let D=E.toAffine();return gf(Uint8Array.from([4]),t.toBytes(D.x),t.toBytes(D.y))}),i=e.fromBytes||(x=>{let E=x.subarray(1),I=t.fromBytes(E.subarray(0,t.BYTES)),D=t.fromBytes(E.subarray(t.BYTES,2*t.BYTES));return {x:I,y:D}});function a(x){let{a:E,b:I}=e,D=t.sqr(x),G=t.mul(D,x);return t.add(t.add(G,t.mul(x,E)),I)}function o(x,E){let I=t.sqr(E),D=a(x);return t.eql(I,D)}if(!o(e.Gx,e.Gy))throw new Error("bad curve params: generator point");let c=t.mul(t.pow(e.a,SS),tO),u=t.mul(t.sqr(e.b),BigInt(27));if(t.is0(t.add(c,u)))throw new Error("bad curve params: a or b");function l(x){return yp(x,Nt,e.n)}function h(x){let{allowedPrivateKeyLengths:E,nByteLength:I,wrapPrivateKey:D,n:G}=e;if(E&&typeof x!="bigint"){if(yc(x)&&(x=bc(x)),typeof x!="string"||!E.includes(x.length))throw new Error("invalid private key");x=x.padStart(I*2,"0");}let $;try{$=typeof x=="bigint"?x:Pr(fs("private key",x,I));}catch{throw new Error("invalid private key, expected hex or "+I+" bytes, got "+typeof x)}return D&&($=Ft($,G)),ca("private key",$,Nt,G),$}function m(x){if(!(x instanceof w))throw new Error("ProjectivePoint expected")}let y=Ob((x,E)=>{let{px:I,py:D,pz:G}=x;if(t.eql(G,t.ONE))return {x:I,y:D};let $=x.is0();E==null&&(E=$?t.ONE:t.inv(G));let J=t.mul(I,E),ie=t.mul(D,E),q=t.mul(G,E);if($)return {x:t.ZERO,y:t.ZERO};if(!t.eql(q,t.ONE))throw new Error("invZ was invalid");return {x:J,y:ie}}),g=Ob(x=>{if(x.is0()){if(e.allowInfinityPoint&&!t.is0(x.py))return;throw new Error("bad point: ZERO")}let{x:E,y:I}=x.toAffine();if(!t.isValid(E)||!t.isValid(I))throw new Error("bad point: x or y not FE");if(!o(E,I))throw new Error("bad point: equation left != right");if(!x.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return !0});class w{constructor(E,I,D){if(E==null||!t.isValid(E))throw new Error("x required");if(I==null||!t.isValid(I)||t.is0(I))throw new Error("y required");if(D==null||!t.isValid(D))throw new Error("z required");this.px=E,this.py=I,this.pz=D,Object.freeze(this);}static fromAffine(E){let{x:I,y:D}=E||{};if(!E||!t.isValid(I)||!t.isValid(D))throw new Error("invalid affine point");if(E instanceof w)throw new Error("projective point not allowed");let G=$=>t.eql($,t.ZERO);return G(I)&&G(D)?w.ZERO:new w(I,D,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(E){let I=lS(t,E.map(D=>D.pz));return E.map((D,G)=>D.toAffine(I[G])).map(w.fromAffine)}static fromHex(E){let I=w.fromAffine(i(fs("pointHex",E)));return I.assertValidity(),I}static fromPrivateKey(E){return w.BASE.multiply(h(E))}static msm(E,I){return yI(w,r,E,I)}_setWindowSize(E){N.setWindowSize(this,E);}assertValidity(){g(this);}hasEvenY(){let{y:E}=this.toAffine();if(t.isOdd)return !t.isOdd(E);throw new Error("Field doesn't support isOdd")}equals(E){m(E);let{px:I,py:D,pz:G}=this,{px:$,py:J,pz:ie}=E,q=t.eql(t.mul(I,ie),t.mul($,G)),z=t.eql(t.mul(D,ie),t.mul(J,G));return q&&z}negate(){return new w(this.px,t.neg(this.py),this.pz)}double(){let{a:E,b:I}=e,D=t.mul(I,SS),{px:G,py:$,pz:J}=this,ie=t.ZERO,q=t.ZERO,z=t.ZERO,ce=t.mul(G,G),Le=t.mul($,$),U=t.mul(J,J),M=t.mul(G,$);return M=t.add(M,M),z=t.mul(G,J),z=t.add(z,z),ie=t.mul(E,z),q=t.mul(D,U),q=t.add(ie,q),ie=t.sub(Le,q),q=t.add(Le,q),q=t.mul(ie,q),ie=t.mul(M,ie),z=t.mul(D,z),U=t.mul(E,U),M=t.sub(ce,U),M=t.mul(E,M),M=t.add(M,z),z=t.add(ce,ce),ce=t.add(z,ce),ce=t.add(ce,U),ce=t.mul(ce,M),q=t.add(q,ce),U=t.mul($,J),U=t.add(U,U),ce=t.mul(U,M),ie=t.sub(ie,ce),z=t.mul(U,Le),z=t.add(z,z),z=t.add(z,z),new w(ie,q,z)}add(E){m(E);let{px:I,py:D,pz:G}=this,{px:$,py:J,pz:ie}=E,q=t.ZERO,z=t.ZERO,ce=t.ZERO,Le=e.a,U=t.mul(e.b,SS),M=t.mul(I,$),Q=t.mul(D,J),pe=t.mul(G,ie),te=t.add(I,D),H=t.add($,J);te=t.mul(te,H),H=t.add(M,Q),te=t.sub(te,H),H=t.add(I,G);let Y=t.add($,ie);return H=t.mul(H,Y),Y=t.add(M,pe),H=t.sub(H,Y),Y=t.add(D,G),q=t.add(J,ie),Y=t.mul(Y,q),q=t.add(Q,pe),Y=t.sub(Y,q),ce=t.mul(Le,H),q=t.mul(U,pe),ce=t.add(q,ce),q=t.sub(Q,ce),ce=t.add(Q,ce),z=t.mul(q,ce),Q=t.add(M,M),Q=t.add(Q,M),pe=t.mul(Le,pe),H=t.mul(U,H),Q=t.add(Q,pe),pe=t.sub(M,pe),pe=t.mul(Le,pe),H=t.add(H,pe),M=t.mul(Q,H),z=t.add(z,M),M=t.mul(Y,H),q=t.mul(te,q),q=t.sub(q,M),M=t.mul(te,Q),ce=t.mul(Y,ce),ce=t.add(ce,M),new w(q,z,ce)}subtract(E){return this.add(E.negate())}is0(){return this.equals(w.ZERO)}wNAF(E){return N.wNAFCached(this,E,w.normalizeZ)}multiplyUnsafe(E){let{endo:I,n:D}=e;ca("scalar",E,_r,D);let G=w.ZERO;if(E===_r)return G;if(this.is0()||E===Nt)return this;if(!I||N.hasPrecomputes(this))return N.wNAFCachedUnsafe(this,E,w.normalizeZ);let{k1neg:$,k1:J,k2neg:ie,k2:q}=I.splitScalar(E),z=G,ce=G,Le=this;for(;J>_r||q>_r;)J&Nt&&(z=z.add(Le)),q&Nt&&(ce=ce.add(Le)),Le=Le.double(),J>>=Nt,q>>=Nt;return $&&(z=z.negate()),ie&&(ce=ce.negate()),ce=new w(t.mul(ce.px,I.beta),ce.py,ce.pz),z.add(ce)}multiply(E){let{endo:I,n:D}=e;ca("scalar",E,Nt,D);let G,$;if(I){let{k1neg:J,k1:ie,k2neg:q,k2:z}=I.splitScalar(E),{p:ce,f:Le}=this.wNAF(ie),{p:U,f:M}=this.wNAF(z);ce=N.constTimeNegate(J,ce),U=N.constTimeNegate(q,U),U=new w(t.mul(U.px,I.beta),U.py,U.pz),G=ce.add(U),$=Le.add(M);}else {let{p:J,f:ie}=this.wNAF(E);G=J,$=ie;}return w.normalizeZ([G,$])[0]}multiplyAndAddUnsafe(E,I,D){let G=w.BASE,$=(ie,q)=>q===_r||q===Nt||!ie.equals(G)?ie.multiplyUnsafe(q):ie.multiply(q),J=$(this,I).add($(E,D));return J.is0()?void 0:J}toAffine(E){return y(this,E)}isTorsionFree(){let{h:E,isTorsionFree:I}=e;if(E===Nt)return !0;if(I)return I(w,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:E,clearCofactor:I}=e;return E===Nt?this:I?I(w,this):this.multiplyUnsafe(e.h)}toRawBytes(E=!0){return wc("isCompressed",E),this.assertValidity(),n(w,this,E)}toHex(E=!0){return wc("isCompressed",E),bc(this.toRawBytes(E))}}w.BASE=new w(e.Gx,e.Gy,t.ONE),w.ZERO=new w(t.ZERO,t.ONE,t.ZERO);let{endo:S,nBitLength:C}=e,N=gI(w,S?Math.ceil(C/2):C);return {CURVE:e,ProjectivePoint:w,normPrivateKeyToScalar:h,weierstrassEquation:a,isWithinCurveOrder:l}}function rO(s){let e=wS(s);return la(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function bI(s){let e=rO(s),{Fp:t,n:r,nByteLength:n,nBitLength:i}=e,a=t.BYTES+1,o=2*t.BYTES+1;function c(U){return Ft(U,r)}function u(U){return jp(U,r)}let{ProjectivePoint:l,normPrivateKeyToScalar:h,weierstrassEquation:m,isWithinCurveOrder:y}=sO({...e,toBytes(U,M,Q){let pe=M.toAffine(),te=t.toBytes(pe.x),H=gf;return wc("isCompressed",Q),Q?H(Uint8Array.from([M.hasEvenY()?2:3]),te):H(Uint8Array.from([4]),te,t.toBytes(pe.y))},fromBytes(U){let M=U.length,Q=U[0],pe=U.subarray(1);if(M===a&&(Q===2||Q===3)){let te=Pr(pe);if(!yp(te,Nt,t.ORDER))throw new Error("Point is not on curve");let H=m(te),Y;try{Y=t.sqrt(H);}catch(Ce){let _e=Ce instanceof Error?": "+Ce.message:"";throw new Error("Point is not on curve"+_e)}let Z=(Y&Nt)===Nt;return (Q&1)===1!==Z&&(Y=t.neg(Y)),{x:te,y:Y}}else if(M===o&&Q===4){let te=t.fromBytes(pe.subarray(0,t.BYTES)),H=t.fromBytes(pe.subarray(t.BYTES,2*t.BYTES));return {x:te,y:H}}else {let te=a,H=o;throw new Error("invalid Point, expected length of "+te+", or uncompressed "+H+", got "+M)}}});function g(U){let M=r>>Nt;return U>M}function w(U){return g(U)?c(-U):U}let S=(U,M,Q)=>Pr(U.slice(M,Q));class C{constructor(M,Q,pe){ca("r",M,Nt,r),ca("s",Q,Nt,r),this.r=M,this.s=Q,pe!=null&&(this.recovery=pe),Object.freeze(this);}static fromCompact(M){let Q=n;return M=fs("compactSignature",M,Q*2),new C(S(M,0,Q),S(M,Q,2*Q))}static fromDER(M){let{r:Q,s:pe}=Hr.toSig(fs("DER",M));return new C(Q,pe)}assertValidity(){}addRecoveryBit(M){return new C(this.r,this.s,M)}recoverPublicKey(M){let{r:Q,s:pe,recovery:te}=this,H=G(fs("msgHash",M));if(te==null||![0,1,2,3].includes(te))throw new Error("recovery id invalid");let Y=te===2||te===3?Q+e.n:Q;if(Y>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let Z=te&1?"03":"02",ge=l.fromHex(Z+bS(Y,t.BYTES)),Ce=u(Y),_e=c(-H*Ce),$t=c(pe*Ce),qe=l.BASE.multiplyAndAddUnsafe(ge,_e,$t);if(!qe)throw new Error("point at infinify");return qe.assertValidity(),qe}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return pf(this.toDERHex())}toDERHex(){return Hr.hexFromSig(this)}toCompactRawBytes(){return pf(this.toCompactHex())}toCompactHex(){let M=n;return bS(this.r,M)+bS(this.s,M)}}let N={isValidPrivateKey(U){try{return h(U),!0}catch{return !1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let U=hS(e.n);return fI(e.randomBytes(U),e.n)},precompute(U=8,M=l.BASE){return M._setWindowSize(U),M.multiply(BigInt(3)),M}};function x(U,M=!0){return l.fromPrivateKey(U).toRawBytes(M)}function E(U){if(typeof U=="bigint")return !1;if(U instanceof l)return !0;let Q=fs("key",U).length,pe=t.BYTES,te=pe+1,H=2*pe+1;if(!(e.allowedPrivateKeyLengths||n===te))return Q===te||Q===H}function I(U,M,Q=!0){if(E(U)===!0)throw new Error("first arg must be private key");if(E(M)===!1)throw new Error("second arg must be public key");return l.fromHex(M).multiply(h(U)).toRawBytes(Q)}let D=e.bits2int||function(U){if(U.length>8192)throw new Error("input is too large");let M=Pr(U),Q=U.length*8-i;return Q>0?M>>BigInt(Q):M},G=e.bits2int_modN||function(U){return c(D(U))},$=ua(i);function J(U){return ca("num < 2^"+i,U,_r,$),oa(U,n)}function ie(U,M,Q=q){if(["recovered","canonical"].some(re=>re in Q))throw new Error("sign() legacy options not supported");let{hash:pe,randomBytes:te}=e,{lowS:H,prehash:Y,extraEntropy:Z}=Q;H==null&&(H=!0),U=fs("msgHash",U),wI(Q),Y&&(U=fs("prehashed msgHash",pe(U)));let ge=G(U),Ce=h(M),_e=[J(Ce),J(ge)];if(Z!=null&&Z!==!1){let re=Z===!0?te(t.BYTES):Z;_e.push(fs("extraEntropy",re));}let $t=gf(..._e),qe=ge;function Re(re){let cs=D(re);if(!y(cs))return;let Ps=u(cs),us=l.BASE.multiply(cs).toAffine(),je=c(us.x);if(je===_r)return;let Wl=c(Ps*c(qe+je*Ce));if(Wl===_r)return;let cc=(us.x===je?0:2)|Number(us.y&Nt),S6=Wl;return H&&g(Wl)&&(S6=w(Wl),cc^=1),new C(je,S6,cc)}return {seed:$t,k2sig:Re}}let q={lowS:e.lowS,prehash:!1},z={lowS:e.lowS,prehash:!1};function ce(U,M,Q=q){let{seed:pe,k2sig:te}=ie(U,M,Q),H=e;return I3(H.hash.outputLen,H.nByteLength,H.hmac)(pe,te)}l.BASE._setWindowSize(8);function Le(U,M,Q,pe=z){let te=U;M=fs("msgHash",M),Q=fs("publicKey",Q);let{lowS:H,prehash:Y,format:Z}=pe;if(wI(pe),"strict"in pe)throw new Error("options.strict was renamed to lowS");if(Z!==void 0&&Z!=="compact"&&Z!=="der")throw new Error("format must be compact or der");let ge=typeof te=="string"||yc(te),Ce=!ge&&!Z&&typeof te=="object"&&te!==null&&typeof te.r=="bigint"&&typeof te.s=="bigint";if(!ge&&!Ce)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let _e,$t;try{if(Ce&&(_e=new C(te.r,te.s)),ge){try{Z!=="compact"&&(_e=C.fromDER(te));}catch(cc){if(!(cc instanceof Hr.Err))throw cc}!_e&&Z!=="der"&&(_e=C.fromCompact(te));}$t=l.fromHex(Q);}catch{return !1}if(!_e||H&&_e.hasHighS())return !1;Y&&(M=e.hash(M));let{r:qe,s:Re}=_e,re=G(M),cs=u(Re),Ps=c(re*cs),us=c(qe*cs),je=l.BASE.multiplyAndAddUnsafe($t,Ps,us)?.toAffine();return je?c(je.x)===qe:!1}return {CURVE:e,getPublicKey:x,getSharedSecret:I,sign:ce,verify:Le,ProjectivePoint:l,Signature:C,utils:N}}function nO(s){return {hash:s,hmac:(e,...t)=>cS(s,e,$5(...t)),randomBytes:F5}}function Pc(s,e){let t=r=>bI({...s,...nO(r)});return {...t(e),create:t}}var EI=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),SI=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),iO=BigInt(0),aO=BigInt(1),ES=BigInt(2),vI=(s,e)=>(s+e/ES)/e;function oO(s){let e=EI,t=BigInt(3),r=BigInt(6),n=BigInt(11),i=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=s*s*s%e,l=u*u*s%e,h=Ss(l,t,e)*l%e,m=Ss(h,t,e)*l%e,y=Ss(m,ES,e)*u%e,g=Ss(y,n,e)*y%e,w=Ss(g,i,e)*g%e,S=Ss(w,o,e)*w%e,C=Ss(S,c,e)*S%e,N=Ss(C,o,e)*w%e,x=Ss(N,t,e)*l%e,E=Ss(x,a,e)*g%e,I=Ss(E,r,e)*u%e,D=Ss(I,ES,e);if(!xS.eql(xS.sqr(D),s))throw new Error("Cannot find square root");return D}var xS=Ur(EI,void 0,void 0,{sqrt:oO}),vs=Pc({a:iO,b:BigInt(7),Fp:xS,n:SI,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:s=>{let e=SI,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-aO*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,a=BigInt("0x100000000000000000000000000000000"),o=vI(i*s,e),c=vI(-r*s,e),u=Ft(s-o*t-c*n,e),l=Ft(-o*r-c*i,e),h=u>a,m=l>a;if(h&&(u=e-u),m&&(l=e-l),u>a||l>a)throw new Error("splitScalar: Endomorphism failed, k="+s);return {k1neg:h,k1:u,k2neg:m,k2:l}}}},gc);function Gp(s,e={}){let{recovered:t}=e;if(typeof s.r>"u")throw new Bc({signature:s});if(typeof s.s>"u")throw new Bc({signature:s});if(t&&typeof s.yParity>"u")throw new Bc({signature:s});if(s.r<0n||s.r>tS)throw new $p({value:s.r});if(s.s<0n||s.s>tS)throw new Fp({value:s.s});if(typeof s.yParity=="number"&&s.yParity!==0&&s.yParity!==1)throw new Sa({value:s.yParity})}function xI(s){return AS(Ne(s))}function AS(s){if(s.length!==130&&s.length!==132)throw new Mp({signature:s});let e=BigInt(lt(s,0,32)),t=BigInt(lt(s,32,64)),r=(()=>{let n=+`0x${s.slice(130)}`;if(!Number.isNaN(n))try{return Wp(n)}catch{throw new Sa({value:n})}})();return typeof r>"u"?{r:e,s:t}:{r:e,s:t,yParity:r}}function Kp(s){if(!(typeof s.r>"u")&&!(typeof s.s>"u"))return Vf(s)}function Vf(s){let e=typeof s=="string"?AS(s):s instanceof Uint8Array?xI(s):typeof s.r=="string"?CI(s):s.v?II(s):{r:s.r,s:s.s,...typeof s.yParity<"u"?{yParity:s.yParity}:{}};return Gp(e),e}function cO(s){return AI(Ne(s))}function AI(s){let{r:e,s:t}=vs.Signature.fromDER(es(s).slice(2));return {r:e,s:t}}function II(s){return {r:s.r,s:s.s,yParity:Wp(s.v)}}function CI(s){let e=(()=>{let t=s.v?Number(s.v):void 0,r=s.yParity?Number(s.yParity):void 0;if(typeof t=="number"&&typeof r!="number"&&(r=Wp(t)),typeof r!="number")throw new Sa({value:s.yParity});return r})();return {r:BigInt(s.r),s:BigInt(s.s),yParity:e}}function IS(s){let[e,t,r]=s;return Vf({r:t==="0x"?0n:BigInt(t),s:r==="0x"?0n:BigInt(r),yParity:e==="0x"?0:Number(e)})}function uO(s){return et(NI(s))}function NI(s){Gp(s);let e=s.r,t=s.s;return Je(le(e,{size:32}),le(t,{size:32}),typeof s.yParity=="number"?le(TS(s.yParity),{size:1}):"0x")}function lO(s){return new vs.Signature(s.r,s.s).toDERRawBytes()}function fO(s){return `0x${new vs.Signature(s.r,s.s).toDERHex()}`}function hO(s){return {r:s.r,s:s.s,v:TS(s.yParity)}}function CS(s){let{r:e,s:t,yParity:r}=s;return {r:le(e,{size:32}),s:le(t,{size:32}),yParity:r===0?"0x0":"0x1"}}function NS(s){let{r:e,s:t,yParity:r}=s;return [r?"0x01":"0x",e===0n?"0x":ha(le(e)),t===0n?"0x":ha(le(t))]}function dO(s,e={}){try{return Gp(s,e),!0}catch{return !1}}function Wp(s){if(s===0||s===27)return 0;if(s===1||s===28)return 1;if(s>=35)return s%2===0?1:0;throw new qp({value:s})}function TS(s){if(s===0)return 27;if(s===1)return 28;throw new Sa({value:s})}var Mp=class extends K{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Ue(es(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"});}},Bc=class extends K{constructor({signature:e}){super(`Signature \`${_s(e)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"});}},$p=class extends K{constructor({value:e}){super(`Value \`${e}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"});}},Fp=class extends K{constructor({value:e}){super(`Value \`${e}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"});}},Sa=class extends K{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"});}},qp=class extends K{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"});}};var mO=new TextEncoder,pO=new TextDecoder,Jp=Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((s,e)=>[e,s.charCodeAt(0)])),zp={...Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((s,e)=>[s.charCodeAt(0),e])),61:0,45:62,95:63};function gO(s,e={}){let{pad:t=!0,url:r=!1}=e,n=new Uint8Array(Math.ceil(s.length/3)*4);for(let c=0,u=0;u<s.length;c+=4,u+=3){let l=(s[u]<<16)+(s[u+1]<<8)+(s[u+2]|0);n[c]=Jp[l>>18],n[c+1]=Jp[l>>12&63],n[c+2]=Jp[l>>6&63],n[c+3]=Jp[l&63];}let i=s.length%3,a=Math.floor(s.length/3)*4+(i&&i+1),o=pO.decode(new Uint8Array(n.buffer,0,a));return t&&i===1&&(o+="=="),t&&i===2&&(o+="="),r&&(o=o.replaceAll("+","-").replaceAll("/","_")),o}function TI(s,e={}){return gO(et(s),e)}function Df(s){let e=s.replace(/=+$/,""),t=e.length,r=new Uint8Array(t+3);mO.encodeInto(e+"===",r);for(let i=0,a=0;i<e.length;i+=4,a+=3){let o=(zp[r[i]]<<18)+(zp[r[i+1]]<<12)+(zp[r[i+2]]<<6)+zp[r[i+3]];r[a]=o>>16,r[a+1]=o>>8&255,r[a+2]=o&255;}let n=(t>>2)*3+(t%4&&t%4-1);return new Uint8Array(r.buffer,0,n)}var Lt={};ye(Lt,{createKeyPair:()=>wO,getPublicKey:()=>BI,getSharedSecret:()=>bO,noble:()=>yO,randomPrivateKey:()=>OI,recoverAddress:()=>RI,recoverPublicKey:()=>VI,sign:()=>SO,verify:()=>vO});var Yp=!1;var yO=vs;function wO(s={}){let{as:e="Hex"}=s,t=OI({as:e}),r=BI({privateKey:t});return {privateKey:t,publicKey:r}}function BI(s){let{privateKey:e}=s,t=vs.ProjectivePoint.fromPrivateKey(es(e).slice(2));return Dr(t)}function bO(s){let{as:e="Hex",privateKey:t,publicKey:r}=s,a=vs.ProjectivePoint.fromHex(Vn(r).slice(2)).multiply(vs.utils.normPrivateKeyToScalar(es(t).slice(2))).toRawBytes(!0);return e==="Hex"?Ne(a):a}function OI(s={}){let{as:e="Hex"}=s,t=vs.utils.randomPrivateKey();return e==="Hex"?Ne(t):t}function RI(s){return Yb(VI(s))}function VI(s){let{payload:e,signature:t}=s,{r,s:n,yParity:i}=t,o=new vs.Signature(BigInt(r),BigInt(n)).addRecoveryBit(i).recoverPublicKey(es(e).substring(2));return Dr(o)}function SO(s){let{extraEntropy:e=Yp,hash:t,payload:r,privateKey:n}=s,{r:i,s:a,recovery:o}=vs.sign(Rr(r),Rr(n),{extraEntropy:typeof e=="boolean"?e:es(e).slice(2),lowS:!0,...t?{prehash:!0}:{}});return {r:i,s:a,yParity:o}}function vO(s){let{address:e,hash:t,payload:r,publicKey:n,signature:i}=s;return e?Zb(e,RI({payload:r,signature:i})):vs.verify(i,Rr(r),j3(n),...t?[{prehash:!0,lowS:!0}]:[])}function DI(s,e={}){return {...s,blockNumber:s.blockNumber?BigInt(s.blockNumber):null,logIndex:s.logIndex?Number(s.logIndex):null,transactionIndex:s.transactionIndex?Number(s.transactionIndex):null}}function LI(s,e={}){return {address:s.address,blockHash:s.blockHash,blockNumber:typeof s.blockNumber=="bigint"?le(s.blockNumber):null,data:s.data,logIndex:typeof s.logIndex=="number"?le(s.logIndex):null,topics:s.topics,transactionHash:s.transactionHash,transactionIndex:typeof s.transactionIndex=="number"?le(s.transactionIndex):null,removed:s.removed}}var Oc={};ye(Oc,{createKeyPair:()=>kO,getPublicKey:()=>MI,getSharedSecret:()=>PO,noble:()=>TO,randomPrivateKey:()=>$I,recoverPublicKey:()=>BO,sign:()=>OO,verify:()=>BS});var HI=Ur(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),EO=HI.create(BigInt("-3")),xO=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),kS=Pc({a:EO,b:xO,Fp:HI,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},gc);var _I=Ur(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),AO=_I.create(BigInt("-3")),IO=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");Pc({a:AO,b:IO,Fp:_I,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},w3);var jI=Ur(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),CO=jI.create(BigInt("-3")),NO=BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00");Pc({a:CO,b:NO,Fp:jI,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},y3);var PS=kS,jr=kS;var TO=jr;function kO(s={}){let{as:e="Hex"}=s,t=$I({as:e}),r=MI({privateKey:t});return {privateKey:t,publicKey:r}}function MI(s){let{privateKey:e}=s,t=jr.ProjectivePoint.fromPrivateKey(typeof e=="string"?e.slice(2):Ne(e).slice(2));return Dr(t)}function PO(s){let{as:e="Hex",privateKey:t,publicKey:r}=s,n=jr.ProjectivePoint.fromHex(Vn(r).slice(2)),i=typeof t=="string"?t.slice(2):Ne(t).slice(2),o=n.multiply(jr.utils.normPrivateKeyToScalar(i)).toRawBytes(!0);return e==="Hex"?Ne(o):o}function $I(s={}){let{as:e="Hex"}=s,t=jr.utils.randomPrivateKey();return e==="Hex"?Ne(t):t}function BO(s){let{payload:e,signature:t}=s,{r,s:n,yParity:i}=t,a=new jr.Signature(BigInt(r),BigInt(n)).addRecoveryBit(i),o=e instanceof Uint8Array?Ne(e):e,c=a.recoverPublicKey(o.substring(2));return Dr(c)}function OO(s){let{extraEntropy:e=Yp,hash:t,payload:r,privateKey:n}=s,{r:i,s:a,recovery:o}=jr.sign(r instanceof Uint8Array?r:et(r),n instanceof Uint8Array?n:et(n),{extraEntropy:typeof e=="boolean"?e:es(e).slice(2),lowS:!0,...t?{prehash:!0}:{}});return {r:i,s:a,yParity:o}}function BS(s){let{hash:e,payload:t,publicKey:r,signature:n}=s;return jr.verify(n,t instanceof Uint8Array?t:et(t),Vn(r).substring(2),...e?[{prehash:!0,lowS:!0}]:[])}var Zp={};ye(Zp,{encode:()=>FI,getSignPayload:()=>RO});function FI(s){let e=es(s);return Je("0x19",hs(`Ethereum Signed Message:
|
|
341
|
+
`+Ue(e)),e)}function RO(s){return yt(FI(s))}var qI={wei:0,gwei:9,szabo:12,finney:15,ether:18};function VO(s,e=0){let t=s.toString(),r=t.startsWith("-");r&&(t=t.slice(1)),t=t.padStart(e,"0");let[n,i]=[t.slice(0,t.length-e),t.slice(t.length-e)];return i=i.replace(/(0+)$/,""),`${r?"-":""}${n||"0"}${i?`.${i}`:""}`}function Xp(s,e="wei"){return VO(s,qI.gwei-qI[e])}var Qp=class extends K{constructor({feeCap:e}={}){super(`The fee cap (\`maxFeePerGas\`/\`maxPriorityFeePerGas\`${e?` = ${Xp(e)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionEnvelope.FeeCapTooHighError"});}};var eg=class extends K{constructor({chainId:e}){super(typeof e<"u"?`Chain ID "${e}" is invalid.`:"Chain ID is invalid."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionEnvelope.InvalidChainIdError"});}},tg=class extends K{constructor({attributes:e,serialized:t,type:r}){let n=Object.entries(e).map(([i,a])=>typeof a>"u"?i:void 0).filter(Boolean);super(`Invalid serialized transaction of type "${r}" was provided.`,{metaMessages:[`Serialized Transaction: "${t}"`,n.length>0?`Missing Attributes: ${n.join(", ")}`:""].filter(Boolean)}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionEnvelope.InvalidSerializedError"});}},sg=class extends K{constructor({maxPriorityFeePerGas:e,maxFeePerGas:t}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${e?` = ${Xp(e)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${t?` = ${Xp(t)} gwei`:""}).`].join(`
|
|
342
|
+
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TransactionEnvelope.TipAboveFeeCapError"});}};var va={};ye(va,{assert:()=>Lf,deserialize:()=>JI,from:()=>DO,getSignPayload:()=>LO,hash:()=>zI,serialize:()=>YI,serializedType:()=>WI,toRpc:()=>UO,type:()=>OS,validate:()=>HO});var WI="0x02",OS="eip1559";function Lf(s){let{chainId:e,maxPriorityFeePerGas:t,maxFeePerGas:r,to:n}=s;if(e<=0)throw new eg({chainId:e});if(n&&ss(n,{strict:!1}),r&&BigInt(r)>2n**256n-1n)throw new Qp({feeCap:r});if(t&&r&&t>r)throw new sg({maxFeePerGas:r,maxPriorityFeePerGas:t})}function JI(s){let e=Q3(lt(s,1)),[t,r,n,i,a,o,c,u,l,h,m,y]=e;if(!(e.length===9||e.length===12))throw new tg({attributes:{chainId:t,nonce:r,maxPriorityFeePerGas:n,maxFeePerGas:i,gas:a,to:o,value:c,data:u,accessList:l,...e.length>9?{yParity:h,r:m,s:y}:{}},serialized:s,type:OS});let g={chainId:Number(t),type:OS};ts(o)&&o!=="0x"&&(g.to=o),ts(a)&&a!=="0x"&&(g.gas=BigInt(a)),ts(u)&&u!=="0x"&&(g.data=u),ts(r)&&(g.nonce=r==="0x"?0n:BigInt(r)),ts(c)&&c!=="0x"&&(g.value=BigInt(c)),ts(i)&&i!=="0x"&&(g.maxFeePerGas=BigInt(i)),ts(n)&&n!=="0x"&&(g.maxPriorityFeePerGas=BigInt(n)),l.length!==0&&l!=="0x"&&(g.accessList=z3(l));let w=m&&y&&h?IS([h,m,y]):void 0;return w&&(g={...g,...w}),Lf(g),g}function DO(s,e={}){let{signature:t}=e,r=typeof s=="string"?JI(s):s;return Lf(r),{...r,...t?Vf(t):{},type:"eip1559"}}function LO(s){return zI(s,{presign:!0})}function zI(s,e={}){let{presign:t}=e;return yt(YI({...s,...t?{r:void 0,s:void 0,yParity:void 0,v:void 0}:{}}))}function YI(s,e={}){let{chainId:t,gas:r,nonce:n,to:i,value:a,maxFeePerGas:o,maxPriorityFeePerGas:c,accessList:u,data:l,input:h}=s;Lf(s);let m=Y3(u),y=Kp(e.signature||s),g=[le(t),n?le(n):"0x",c?le(c):"0x",o?le(o):"0x",r?le(r):"0x",i??"0x",a?le(a):"0x",l??h??"0x",m,...y?NS(y):[]];return Je(WI,tI(g))}function UO(s){let e=Kp(s);return {...s,chainId:le(s.chainId),data:s.data??s.input,type:"0x2",...typeof s.gas=="bigint"?{gas:le(s.gas)}:{},...typeof s.nonce=="bigint"?{nonce:le(s.nonce)}:{},...typeof s.value=="bigint"?{value:le(s.value)}:{},...typeof s.maxFeePerGas=="bigint"?{maxFeePerGas:le(s.maxFeePerGas)}:{},...typeof s.maxPriorityFeePerGas=="bigint"?{maxPriorityFeePerGas:le(s.maxPriorityFeePerGas)}:{},...e?CS(e):{}}}function HO(s){try{return Lf(s),!0}catch{return !1}}var Rc={};ye(Rc,{fromRpc:()=>_O,fromRpcStatus:()=>ZI,fromRpcType:()=>QI,toRpc:()=>jO,toRpcStatus:()=>XI,toRpcType:()=>e8});var ZI={"0x0":"reverted","0x1":"success"},XI={reverted:"0x0",success:"0x1"},QI={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"},e8={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function _O(s){return s?{...s,blobGasPrice:s.blobGasPrice?BigInt(s.blobGasPrice):void 0,blobGasUsed:s.blobGasUsed?BigInt(s.blobGasUsed):void 0,blockNumber:BigInt(s.blockNumber??0n),cumulativeGasUsed:BigInt(s.cumulativeGasUsed??0n),effectiveGasPrice:BigInt(s.effectiveGasPrice??0n),gasUsed:BigInt(s.gasUsed??0n),logs:s.logs.map(e=>DI(e,{pending:!1})),status:ZI[s.status],transactionIndex:Number(s.transactionIndex??0),type:QI[s.type]||s.type}:null}function jO(s){return {blobGasPrice:s.blobGasPrice?le(s.blobGasPrice):void 0,blobGasUsed:s.blobGasUsed?le(s.blobGasUsed):void 0,blockHash:s.blockHash,blockNumber:le(s.blockNumber),contractAddress:s.contractAddress,cumulativeGasUsed:le(s.cumulativeGasUsed),effectiveGasPrice:le(s.effectiveGasPrice),from:s.from,gasUsed:le(s.gasUsed),logs:s.logs.map(LI),logsBloom:s.logsBloom,root:s.root,status:XI[s.status],to:s.to,transactionHash:s.transactionHash,transactionIndex:le(s.transactionIndex),type:e8[s.type]??s.type}}var Hf={};ye(Hf,{BytesSizeMismatchError:()=>rg,InvalidDomainError:()=>ng,InvalidPrimaryTypeError:()=>ig,InvalidStructTypeError:()=>ag,assert:()=>RS,domainSeparator:()=>MO,encode:()=>t8,encodeData:()=>LS,encodeField:()=>US,encodeType:()=>s8,extractEip712DomainTypes:()=>og,findTypeDependencies:()=>HS,getSignPayload:()=>Uf,hashDomain:()=>VS,hashStruct:()=>DS,hashType:()=>r8,serialize:()=>$O,validate:()=>FO});function RS(s){let{domain:e,message:t,primaryType:r,types:n}=s,i=(a,o)=>{for(let c of a){let{name:u,type:l}=c,h=o[u],m=l.match(Nc);if(m&&(typeof h=="number"||typeof h=="bigint")){let[,w,S]=m;le(h,{signed:w==="int",size:Number.parseInt(S??"",10)/8});}if(l==="address"&&typeof h=="string"&&!pa(h))throw new ma({address:h,cause:new Ac});let y=l.match(Bp);if(y){let[,w]=y;if(w&&Ue(h)!==Number.parseInt(w,10))throw new rg({expectedSize:Number.parseInt(w,10),givenSize:Ue(h)})}let g=n[l];g&&(qO(l),i(g,h));}};if(n.EIP712Domain&&e){if(typeof e!="object")throw new ng({domain:e});i(n.EIP712Domain,e);}if(r!=="EIP712Domain")if(n[r])i(n[r],t);else throw new ig({primaryType:r,types:n})}function MO(s){return VS({domain:s})}function t8(s){let{domain:e={},message:t,primaryType:r}=s,n={EIP712Domain:og(e),...s.types};RS({domain:e,message:t,primaryType:r,types:n});let i=["0x19","0x01"];return e&&i.push(VS({domain:e,types:n})),r!=="EIP712Domain"&&i.push(DS({data:t,primaryType:r,types:n})),Je(...i)}function s8(s){let{primaryType:e,types:t}=s,r="",n=HS({primaryType:e,types:t});n.delete(e);let i=[e,...Array.from(n).sort()];for(let a of i)r+=`${a}(${(t[a]??[]).map(({name:o,type:c})=>`${c} ${o}`).join(",")})`;return r}function og(s){return [typeof s?.name=="string"&&{name:"name",type:"string"},s?.version&&{name:"version",type:"string"},(typeof s?.chainId=="number"||typeof s?.chainId=="bigint")&&{name:"chainId",type:"uint256"},s?.verifyingContract&&{name:"verifyingContract",type:"address"},s?.salt&&{name:"salt",type:"bytes32"}].filter(Boolean)}function Uf(s){return yt(t8(s))}function VS(s){let{domain:e,types:t}=s;return DS({data:e,primaryType:"EIP712Domain",types:{...t,EIP712Domain:t?.EIP712Domain||og(e)}})}function DS(s){let{data:e,primaryType:t,types:r}=s,n=LS({data:e,primaryType:t,types:r});return yt(n)}function $O(s){let{domain:e,message:t,primaryType:r,types:n}=s,i=(c,u)=>{let l={...u};for(let h of c){let{name:m,type:y}=h;y==="address"&&(l[m]=l[m].toLowerCase());}return l},a=(()=>{if(!e)return {};let c=n.EIP712Domain??og(e);return i(c,e)})(),o=(()=>{if(r!=="EIP712Domain")return n[r]?i(n[r],t):{}})();return _s({domain:a,message:o,primaryType:r,types:n},(c,u)=>typeof u=="bigint"?u.toString():u)}function FO(s){try{return RS(s),!0}catch{return !1}}var rg=class extends K{constructor({expectedSize:e,givenSize:t}){super(`Expected bytes${e}, got bytes${t}.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.BytesSizeMismatchError"});}},ng=class extends K{constructor({domain:e}){super(`Invalid domain "${_s(e)}".`,{metaMessages:["Must be a valid EIP-712 domain."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidDomainError"});}},ig=class extends K{constructor({primaryType:e,types:t}){super(`Invalid primary type \`${e}\` must be one of \`${JSON.stringify(Object.keys(t))}\`.`,{metaMessages:["Check that the primary type is a key in `types`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidPrimaryTypeError"});}},ag=class extends K{constructor({type:e}){super(`Struct type "${e}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"TypedData.InvalidStructTypeError"});}};function LS(s){let{data:e,primaryType:t,types:r}=s,n=[{type:"bytes32"}],i=[r8({primaryType:t,types:r})];for(let a of r[t]??[]){let[o,c]=US({types:r,name:a.name,type:a.type,value:e[a.name]});n.push(o),i.push(c);}return Lr(n,i)}function r8(s){let{primaryType:e,types:t}=s,r=hs(s8({primaryType:e,types:t}));return yt(r)}function US(s){let{types:e,name:t,type:r,value:n}=s;if(e[r]!==void 0)return [{type:"bytes32"},yt(LS({data:n,primaryType:r,types:e}))];if(r==="bytes")return n=`0x${(n.length%2?"0":"")+n.slice(2)}`,[{type:"bytes32"},yt(n,{as:"Hex"})];if(r==="string")return [{type:"bytes32"},yt(Vr(n),{as:"Hex"})];if(r.lastIndexOf("]")===r.length-1){let i=r.slice(0,r.lastIndexOf("[")),a=n.map(o=>US({name:t,type:i,types:e,value:o}));return [{type:"bytes32"},yt(Lr(a.map(([o])=>o),a.map(([,o])=>o)))]}return [{type:r},n]}function HS(s,e=new Set){let{primaryType:t,types:r}=s,i=t.match(/^\w*/u)?.[0];if(e.has(i)||r[i]===void 0)return e;e.add(i);for(let a of r[i])HS({primaryType:a.type,types:r},e);return e}function qO(s){if(s==="address"||s==="bool"||s==="string"||s.startsWith("bytes")||s.startsWith("uint")||s.startsWith("int"))throw new ag({type:s})}var Ln={};ye(Ln,{CredentialCreationFailedError:()=>Dn,CredentialRequestFailedError:()=>_f,createChallenge:()=>a8,createCredential:()=>KO,getAuthenticatorData:()=>o8,getClientDataJSON:()=>c8,getCredentialCreationOptions:()=>u8,getCredentialRequestOptions:()=>l8,getSignPayload:()=>WO,sign:()=>JO,verify:()=>zO});function n8(s){let e=s[4]===0?5:4,t=e+32,r=s[t+2]===0?t+3:t+2,n=BigInt(Ne(s.slice(e,t))),i=BigInt(Ne(s.slice(r)));return {r:n,s:i>PS.CURVE.n/2n?PS.CURVE.n-i:i}}async function i8(s){try{let e=s.getPublicKey();if(!e)throw new Dn;let t=new Uint8Array(e),r=await crypto.subtle.importKey("spki",new Uint8Array(t),{name:"ECDSA",namedCurve:"P-256",hash:"SHA-256"},!0,["verify"]),n=new Uint8Array(await crypto.subtle.exportKey("raw",r));return Dr(n)}catch(e){if(e.message!=="Permission denied to access object")throw e;let t=new Uint8Array(s.attestationObject),r=32,n=88,i=c=>{let u=new Uint8Array([c,n,r]);for(let l=0;l<t.length-u.length;l++)if(u.every((h,m)=>t[l+m]===h))return l+u.length;throw new Dn},a=i(33),o=i(34);return Dr(new Uint8Array([4,...t.slice(a,a+r),...t.slice(o,o+r)]))}}var a8=Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]);async function KO(s){let{createFn:e=window.navigator.credentials.create.bind(window.navigator.credentials),...t}=s,r=u8(t);try{let n=await e(r);if(!n)throw new Dn;let i=n.response,a=await i8(i);return {id:n.id,publicKey:a,raw:n}}catch(n){throw new Dn({cause:n})}}function o8(s={}){let{flag:e=5,rpId:t=window.location.hostname,signCount:r=0}=s,n=If(hs(t)),i=le(e,{size:1}),a=le(r,{size:4});return Je(n,i,a)}function c8(s){let{challenge:e,crossOrigin:t=!1,extraClientData:r,origin:n=window.location.origin}=s;return JSON.stringify({type:"webauthn.get",challenge:TI(e,{url:!0,pad:!1}),origin:n,crossOrigin:t,...r})}function u8(s){let{attestation:e="none",authenticatorSelection:t={residentKey:"preferred",requireResidentKey:!1,userVerification:"required"},challenge:r=a8,excludeCredentialIds:n,extensions:i,name:a,rp:o={id:window.location.hostname,name:window.document.title},user:c}=s,u=c?.name??a;return {publicKey:{attestation:e,authenticatorSelection:t,challenge:typeof r=="string"?et(r):r,...n?{excludeCredentials:n?.map(l=>({id:Df(l),type:"public-key"}))}:{},pubKeyCredParams:[{type:"public-key",alg:-7}],...i&&{extensions:i},rp:o,user:{id:c?.id??yt(Vr(u),{as:"Bytes"}),name:u,displayName:c?.displayName??u}}}}function l8(s){let{credentialId:e,challenge:t,extensions:r,rpId:n=window.location.hostname,userVerification:i="required"}=s;return {publicKey:{...e?{allowCredentials:Array.isArray(e)?e.map(a=>({id:Df(a),type:"public-key"})):[{id:Df(e),type:"public-key"}]}:{},challenge:et(t),...r&&{extensions:r},rpId:n,userVerification:i}}}function WO(s){let{challenge:e,crossOrigin:t,extraClientData:r,flag:n,origin:i,rpId:a,signCount:o,userVerification:c="required"}=s,u=o8({flag:n,rpId:a,signCount:o}),l=c8({challenge:e,crossOrigin:t,extraClientData:r,origin:i}),h=If(hs(l)),m=l.indexOf('"challenge"'),y=l.indexOf('"type"'),g={authenticatorData:u,clientDataJSON:l,challengeIndex:m,typeIndex:y,userVerificationRequired:c==="required"},w=Je(u,h);return {metadata:g,payload:w}}async function JO(s){let{getFn:e=window.navigator.credentials.get.bind(window.navigator.credentials),...t}=s,r=l8(t);try{let n=await e(r);if(!n)throw new _f;let i=n.response,a=String.fromCharCode(...new Uint8Array(i.clientDataJSON)),o=a.indexOf('"challenge"'),c=a.indexOf('"type"'),u=n8(new Uint8Array(i.signature));return {metadata:{authenticatorData:Ne(new Uint8Array(i.authenticatorData)),clientDataJSON:a,challengeIndex:o,typeIndex:c,userVerificationRequired:r.publicKey.userVerification==="required"},signature:u,raw:n}}catch(n){throw new _f({cause:n})}}function zO(s){let{challenge:e,hash:t=!0,metadata:r,publicKey:n,signature:i}=s,{authenticatorData:a,challengeIndex:o,clientDataJSON:c,typeIndex:u,userVerificationRequired:l}=r,h=et(a);if(h.length<37)return !1;let m=h[32];if((m&1)!==1||l&&(m&4)!==4||(m&8)!==8&&(m&16)===16)return !1;if(u!==void 0){let N='"type":"webauthn.get"';if(N!==c.slice(Number(u),N.length+1))return !1}let y=o!==void 0?c.slice(Number(o)).match(/^"challenge":"(.*?)"/):c.match(/"challenge":"(.*?)"/);if(!y)return !1;let[g,w]=y;if(Ne(Df(w))!==e)return !1;let S=If(Vr(c),{as:"Bytes"}),C=jb(h,S);return BS({hash:t,payload:C,publicKey:n,signature:i})}var Dn=class extends K{constructor({cause:e}={}){super("Failed to create credential.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebAuthnP256.CredentialCreationFailedError"});}},_f=class extends K{constructor({cause:e}={}){super("Failed to request credential.",{cause:e}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebAuthnP256.CredentialRequestFailedError"});}};var _c={};ye(_c,{from:()=>MR});var Ve={};ye(Ve,{configFromJson:()=>UR,configToJson:()=>LR,evaluateConfigurationSafety:()=>_R,findSignerLeaf:()=>qf,flatLeavesToTopology:()=>bv,getSigners:()=>DR,getWeight:()=>Gf,hasInvalidValues:()=>Uc,hashConfiguration:()=>Wt,isAnyAddressSubdigestLeaf:()=>Fs,isConfig:()=>Hc,isLeaf:()=>T8,isNestedLeaf:()=>ns,isNode:()=>wt,isNodeLeaf:()=>Pt,isSapientSignerLeaf:()=>Kt,isSignerLeaf:()=>Gt,isSubdigestLeaf:()=>$s,isTopology:()=>Lc,maximumDepth:()=>Kf,mergeTopology:()=>xg,normalizeSignerSignature:()=>HR,replaceAddress:()=>Eg,topologyToFlatLeaves:()=>bg});var Ut={};ye(Ut,{FLAG_ADDRESS:()=>lv,FLAG_BRANCH:()=>hv,FLAG_NESTED:()=>mv,FLAG_NODE:()=>hg,FLAG_SIGNATURE_ANY_ADDRESS_SUBDIGEST:()=>gv,FLAG_SIGNATURE_ERC1271:()=>fv,FLAG_SIGNATURE_ETH_SIGN:()=>pv,FLAG_SIGNATURE_HASH:()=>uv,FLAG_SIGNATURE_SAPIENT:()=>dg,FLAG_SIGNATURE_SAPIENT_COMPACT:()=>yv,FLAG_SUBDIGEST:()=>dv,decodeSignature:()=>x8,encodeChainedSignature:()=>A8,encodeSignature:()=>I8,encodeTopology:()=>Mf,fillLeaves:()=>ug,isRawConfig:()=>yg,isRawLeaf:()=>E8,isRawNestedLeaf:()=>Ff,isRawNode:()=>mg,isRawSignature:()=>v8,isRawSignerLeaf:()=>$f,isRawTopology:()=>pg,isSignatureOfSapientSignerLeaf:()=>kR,isSignedSapientSignerLeaf:()=>wv,isSignedSignerLeaf:()=>wg,parseBranch:()=>gg,rawSignatureFromJson:()=>OR,rawSignatureToJson:()=>PR,recover:()=>ov});var nt={};ye(nt,{DEPLOY:()=>f8,DefaultGuestAddress:()=>XO,EXECUTE:()=>sR,EXECUTE_USER_OP:()=>MS,GET_IMPLEMENTATION:()=>QO,GET_LIMIT_USAGE:()=>oR,IMAGE_HASH:()=>eR,INCREMENT_USAGE_LIMIT:()=>aR,IS_VALID_SIGNATURE:()=>jf,PlaceholderAddress:()=>ZO,READ_ENTRYPOINT:()=>iR,READ_NONCE:()=>tR,READ_NONCE_4337:()=>nR,RECOVER_SAPIENT_SIGNATURE:()=>_S,RECOVER_SAPIENT_SIGNATURE_COMPACT:()=>jS,UPDATE_IMAGE_HASH:()=>rR,ZeroAddress:()=>YO});var YO="0x0000000000000000000000000000000000000000",ZO="0xffff0000ffff0000ffff0000ffff0000ffff0000",XO="0x0000000000006Ac72ed1d192fa28f0058D3F8806",jf=ke.from(["function isValidSignature(bytes32 _hash, bytes memory _signature) public view returns (bytes4 magicValue)"])[0],f8=ke.from(["function deploy(address _mainModule, bytes32 _salt) public payable returns (address _contract)"])[0],QO=ke.from(["function getImplementation() external view returns (address)"])[0],eR=ke.from(["function imageHash() external view returns (bytes32)"])[0],tR=ke.from(["function readNonce(uint256 _space) public view returns (uint256)"])[0],sR=ke.from(["function execute(bytes calldata _payload, bytes calldata _signature) external"])[0],rR=ke.from(["function updateImageHash(bytes32 _imageHash) external"])[0],_S=ke.from(["function recoverSapientSignature((uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external view returns (bytes32)"])[0],jS=ke.from(["function recoverSapientSignatureCompact(bytes32 _digest, bytes calldata _signature) external view returns (bytes32)"])[0],MS=ke.from(["function executeUserOp(bytes calldata _userOp) external"])[0],nR=ke.from(["function getNonce(address _account, uint192 _key) public view returns (uint256)"])[0],iR=ke.from(["function entrypoint() public view returns (address)"])[0],aR=ke.from([{type:"function",name:"incrementUsageLimit",inputs:[{name:"limits",type:"tuple[]",internalType:"struct UsageLimit[]",components:[{name:"usageHash",type:"bytes32",internalType:"bytes32"},{name:"usageAmount",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"}])[0],oR=ke.from(["function getLimitUsage(address wallet, bytes32 usageHash) public view returns (uint256)"])[0];var Mr={};ye(Mr,{InvalidWrappedSignatureError:()=>cg,assert:()=>FS,from:()=>lR,magicBytes:()=>$S,universalSignatureValidatorAbi:()=>uR,universalSignatureValidatorBytecode:()=>cR,unwrap:()=>h8,validate:()=>hR,wrap:()=>fR});var $S="0x6492649264926492649264926492649264926492649264926492649264926492",cR="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",uR=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}];function FS(s){if(lt(s,-32)!==$S)throw new cg(s)}function lR(s){return typeof s=="string"?h8(s):s}function h8(s){FS(s);let[e,t,r]=kc(Hp("address, bytes, bytes"),s);return {data:t,signature:r,to:e}}function fR(s){let{data:e,signature:t,to:r}=s;return Je(Lr(Hp("address, bytes, bytes"),[r,e,t]),$S)}function hR(s){try{return FS(s),!0}catch{return !1}}var cg=class extends K{constructor(e){super(`Value \`${e}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"});}};function qS(s,{to:e,data:t}){let r=v.concat(tt.encode([{type:"address"},{type:"bytes"},{type:"bytes"}],[e,v.from(t),v.from(s)]),Mr.magicBytes);switch(typeof s){case"object":return v.toBytes(r);case"string":return r}}function d8(s){switch(typeof s){case"object":if(f.toHex(s.subarray(-Mr.magicBytes.slice(2).length/2))===Mr.magicBytes){let[e,t,r]=tt.decode([{type:"address"},{type:"bytes"},{type:"bytes"}],s.subarray(0,-Mr.magicBytes.slice(2).length/2));return {signature:v.toBytes(r),erc6492:{to:e,data:v.toBytes(t)}}}else return {signature:s};case"string":if(s.endsWith(Mr.magicBytes.slice(2)))try{let[e,t,r]=tt.decode([{type:"address"},{type:"bytes"},{type:"bytes"}],s.slice(0,-Mr.magicBytes.slice(2).length));return {signature:r,erc6492:{to:e,data:t}}}catch{return {signature:s}}else return {signature:s}}}var we={};ye(we,{BEHAVIOR_ABORT_ON_ERROR:()=>QS,BEHAVIOR_IGNORE_ERROR:()=>ZS,BEHAVIOR_REVERT_ON_ERROR:()=>XS,KIND_CONFIG_UPDATE:()=>zS,KIND_DIGEST:()=>YS,KIND_MESSAGE:()=>JS,KIND_TRANSACTIONS:()=>WS,decode:()=>CR,decodeBehaviorOnError:()=>S8,encode:()=>g8,encode4337Nonce:()=>y8,encodeBehaviorOnError:()=>Dc,encodeSapient:()=>xR,fromAbiFormat:()=>TR,fromCall:()=>yR,fromConfigUpdate:()=>ev,fromDigest:()=>gR,fromMessage:()=>pR,hash:()=>Vc,hashCall:()=>IR,isCalls:()=>wR,isCalls4337_07:()=>vR,isConfigUpdate:()=>SR,isDigest:()=>p8,isMessage:()=>bR,isParented:()=>ER,isRecovery:()=>tv,isSessionImplicitAuthorize:()=>rv,to4337Message:()=>b8,to4337UserOperation:()=>w8,toAbiFormat:()=>iv,toRecovery:()=>sv,toTyped:()=>nv});var xa={};ye(xa,{createJSONReplacer:()=>GS,createJSONReviver:()=>KS,fromJSON:()=>mR,minBytesFor:()=>Es,packRSY:()=>$r,toJSON:()=>dR,unpackRSY:()=>Ea});function Es(s){return Math.ceil(s.toString(16).length/2)}function $r({r:s,s:e,yParity:t}){let r=f.padLeft(f.fromNumber(s),32),n=f.padLeft(f.fromNumber(e),32);return t%2===1&&(n[0]|=128),f.concat(r,n)}function Ea(s){let e=f.toBigInt(s.slice(0,32)),t=s.slice(32,64),r=t[0]&128?1:0,n=new Uint8Array(t);n[0]=n[0]&127;let i=f.toBigInt(n);return {r:e,s:i,yParity:r}}function GS(s){return (e,t)=>typeof t=="bigint"?{__bigint:"0x"+t.toString(16)}:t instanceof Uint8Array?{__uint8array:Array.from(t)}:s?s(e,t):t}function KS(s){return (e,t)=>{if(t&&typeof t=="object"&&"__bigint"in t&&Object.keys(t).length===1){let r=t.__bigint;if(typeof r=="string"&&r.startsWith("0x"))return BigInt(r)}if(t&&typeof t=="object"&&"__uint8array"in t&&Object.keys(t).length===1){let r=t.__uint8array;if(Array.isArray(r))return new Uint8Array(r)}return s?s(e,t):t}}function dR(s,e,t){let r=e instanceof Function?GS(e):GS();return JSON.stringify(s,r,t)}function mR(s,e){let t=e?KS(e):KS();return JSON.parse(s,t)}var WS=0,JS=1,zS=2,YS=3,ZS=0,XS=1,QS=2;function pR(s){return {type:"message",message:s}}function ev(s){return {type:"config-update",imageHash:s}}function gR(s){return {type:"digest",digest:s}}function yR(s,e,t){return {type:"call",nonce:s,space:e,calls:t}}function wR(s){return s.type==="call"}function bR(s){return s.type==="message"}function SR(s){return s.type==="config-update"}function p8(s){return s.type==="digest"}function tv(s){return rv(s)?!1:s.recovery===!0}function vR(s){return s.type==="call_4337_07"}function ER(s){return "parentWallets"in s}function sv(s){return tv(s)?s:{...s,recovery:!0}}function rv(s){return s.type==="session-implicit-authorize"}function g8(s,e){let t=s.calls.length,r=Es(s.nonce);if(r>15)throw new Error("Nonce is too large");let n=0;s.space===0n&&(n|=1),n|=r<<1,t===1&&(n|=16);let i=0;if(t!==1)if(t<256)i=1;else if(t<65536)i=2,n|=32;else throw new Error("Too many calls");let a=f.fromNumber(n,{size:1});if(s.space!==0n){let o=f.padLeft(f.fromNumber(s.space),20);a=f.concat(a,o);}if(r>0){let o=f.padLeft(f.fromNumber(s.nonce),r);a=f.concat(a,o);}t!==1&&(i===1?a=f.concat(a,f.fromNumber(t,{size:1})):a=f.concat(a,f.fromNumber(t,{size:2})));for(let o of s.calls){let c=0;if(e&&P.isEqual(o.to,e)&&(c|=1),o.value!==0n&&(c|=2),o.data&&o.data.length>0&&(c|=4),o.gasLimit!==0n&&(c|=8),o.delegateCall&&(c|=16),o.onlyFallback&&(c|=32),c|=Dc(o.behaviorOnError)<<6,a=f.concat(a,f.fromNumber(c,{size:1})),!(c&1)){let u=f.fromHex(o.to);if(u.length!==20)throw new Error(`Invalid 'to' address: ${o.to}`);a=f.concat(a,u);}if(c&2){let u=f.padLeft(f.fromNumber(o.value),32);a=f.concat(a,u);}if(c&4){let u=f.fromHex(o.data).length;if(u>16777215)throw new Error("Data too large");let l=f.fromNumber(u,{size:3});a=f.concat(a,l,f.fromHex(o.data));}if(c&8){let u=f.padLeft(f.fromNumber(o.gasLimit),32);a=f.concat(a,u);}}return a}function xR(s,e){let t={kind:0,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};switch(e.type){case"call":t.kind=0,t.calls=e.calls.map(r=>({...r,data:r.data,behaviorOnError:BigInt(Dc(r.behaviorOnError))})),t.space=e.space,t.nonce=e.nonce;break;case"message":t.kind=1,t.message=e.message;break;case"config-update":t.kind=2,t.imageHash=e.imageHash;break;case"digest":t.kind=3,t.digest=e.digest;break}return t}function Vc(s,e,t){if(p8(t))return f.fromHex(t.digest);if(rv(t))return kt.hash(t.attestation);let r=nv(s,e,t);return f.fromHex(Uf(r))}function AR(s,e,t){return tv(s)?{name:"Sequence Wallet - Recovery Mode",version:"1",chainId:Number(t),verifyingContract:e}:{name:"Sequence Wallet",version:"3",chainId:Number(t),verifyingContract:e}}function y8(s,e){if(s>6277101735386680763835789423207666416102355444464034512895n)throw new RangeError("key exceeds 192 bits");if(e>18446744073709551615n)throw new RangeError("seq exceeds 64 bits");return s<<64n|e}function nv(s,e,t){let r=AR(t,s,e);switch(t.type){case"call":{let n={Calls:[{name:"calls",type:"Call[]"},{name:"space",type:"uint256"},{name:"nonce",type:"uint256"},{name:"wallets",type:"address[]"}],Call:[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"gasLimit",type:"uint256"},{name:"delegateCall",type:"bool"},{name:"onlyFallback",type:"bool"},{name:"behaviorOnError",type:"uint256"}]},i={calls:t.calls.map(a=>({to:a.to,value:a.value.toString(),data:a.data,gasLimit:a.gasLimit.toString(),delegateCall:a.delegateCall,onlyFallback:a.onlyFallback,behaviorOnError:BigInt(Dc(a.behaviorOnError)).toString()})),space:t.space.toString(),nonce:t.nonce.toString(),wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Calls",message:i}}case"message":{let n={Message:[{name:"message",type:"bytes"},{name:"wallets",type:"address[]"}]},i={message:t.message,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Message",message:i}}case"config-update":{let n={ConfigUpdate:[{name:"imageHash",type:"bytes32"},{name:"wallets",type:"address[]"}]},i={imageHash:t.imageHash,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"ConfigUpdate",message:i}}case"digest":throw new Error("Digest does not support typed data - Use message instead");case"session-implicit-authorize":throw new Error("Payload does not support typed data");case"call_4337_07":{let n={type:"message",message:b8(t,s,e)};return nv(s,e,n)}}}function w8(s,e,t){let r={type:"call",space:0n,nonce:0n,calls:s.calls},n=v.fromBytes(g8(r));return {sender:e,nonce:y8(s.space,s.nonce),callData:se.encodeData(MS,[n]),callGasLimit:s.callGasLimit,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,preVerificationGas:s.preVerificationGas,verificationGasLimit:s.verificationGasLimit,factory:s.factory,factoryData:s.factoryData,paymaster:s.paymaster,paymasterData:s.paymasterData,paymasterPostOpGasLimit:s.paymasterPostOpGasLimit,paymasterVerificationGasLimit:s.paymasterVerificationGasLimit,signature:t}}function b8(s,e,t){let r=w8(s,e),n=v.concat(v.padLeft(v.fromNumber(r.verificationGasLimit),16),v.padLeft(v.fromNumber(r.callGasLimit),16)),i=v.concat(v.padLeft(v.fromNumber(r.maxPriorityFeePerGas),16),v.padLeft(v.fromNumber(r.maxFeePerGas),16)),a=ee.keccak256(r.factory&&r.factoryData?v.concat(r.factory,r.factoryData):"0x"),o=ee.keccak256(r.paymaster?v.concat(r.paymaster,v.padLeft(v.fromNumber(r.paymasterVerificationGasLimit||0),16),v.padLeft(v.fromNumber(r.paymasterPostOpGasLimit||0),16),r.paymasterData||"0x"):"0x"),c=tt.encode([{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[r.sender,r.nonce,a,ee.keccak256(r.callData),n,r.preVerificationGas,i,o]);return tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"}],[ee.keccak256(c),s.entrypoint,BigInt(t)])}function Dc(s){switch(s){case"ignore":return ZS;case"revert":return XS;case"abort":return QS}}function IR(s){let e=ee.keccak256(f.fromString("Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)"));return ee.keccak256(tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"uint256"},{type:"bool"},{type:"bool"},{type:"uint256"}],[v.from(e),v.from(s.to),s.value,v.from(ee.keccak256(s.data)),s.gasLimit,s.delegateCall,s.onlyFallback,BigInt(Dc(s.behaviorOnError))]))}function CR(s,e){let t=0;if(s.length<1)throw new Error("Invalid packed data: missing globalFlag");let r=f.toNumber(s.slice(t,t+1));t+=1;let n=(r&1)===1,i=0n;if(!n){if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for space");i=f.toBigInt(s.slice(t,t+20)),t+=20;}let a=r>>1&7,o=0n;if(a>0){if(t+a>s.length)throw new Error("Invalid packed data: not enough bytes for nonce");o=f.toBigInt(s.slice(t,t+a)),t+=a;}let c=1;if(!((r&16)===16)){let m=(r&32)===32?2:1;if(t+m>s.length)throw new Error("Invalid packed data: not enough bytes for callsCount");c=f.toNumber(s.slice(t,t+m)),t+=m;}let l=[];for(let h=0;h<c;h++){if(t+1>s.length)throw new Error("Invalid packed data: missing call flags");let m=f.toNumber(s.slice(t,t+1));t+=1;let y;if((m&1)===1){if(!e)throw new Error('Missing "self" address for toSelf call');y=e;}else {if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for address");y=f.toHex(s.slice(t,t+20)),t+=20;}let g=0n;if((m&2)===2){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for value");g=f.toBigInt(s.slice(t,t+32)),t+=32;}let w=f.fromHex("0x");if((m&4)===4){if(t+3>s.length)throw new Error("Invalid packed data: not enough bytes for data length");let I=f.toNumber(s.slice(t,t+3));if(t+=3,t+I>s.length)throw new Error("Invalid packed data: not enough bytes for call data");w=s.slice(t,t+I),t+=I;}let S=0n;if((m&8)===8){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for gasLimit");S=f.toBigInt(s.slice(t,t+32)),t+=32;}let C=(m&16)===16,N=(m&32)===32,x=(m&192)>>6,E=S8(x);l.push({to:y,value:g,data:f.toHex(w),gasLimit:S,delegateCall:C,onlyFallback:N,behaviorOnError:E});}return {type:"call",space:i,nonce:o,calls:l}}function S8(s){switch(s){case 0:return "ignore";case 1:return "revert";case 2:return "abort";default:throw new Error(`Invalid behaviorOnError value: ${s}`)}}function NR(s){switch(s){case ZS:return "ignore";case XS:return "revert";case QS:return "abort";default:throw new Error(`Unknown behavior: ${s}`)}}function TR(s){if(s.kind===WS)return {type:"call",nonce:s.nonce,space:s.space,calls:s.calls.map(e=>({to:P.from(e.to),value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:NR(Number(e.behaviorOnError))})),parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===JS)return {type:"message",message:s.message,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===zS)return {type:"config-update",imageHash:s.imageHash,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===YS)return {type:"digest",digest:s.digest,parentWallets:s.parentWallets.map(e=>P.from(e))};throw new Error("Not implemented")}function iv(s){if(s.type==="call")return {kind:WS,noChainId:!1,calls:s.calls.map(e=>({to:e.to,value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:BigInt(Dc(e.behaviorOnError))})),space:s.space,nonce:s.nonce,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="message")return {kind:JS,noChainId:!1,calls:[],space:0n,nonce:0n,message:s.message,imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="config-update")return {kind:zS,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:s.imageHash,digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="digest")return {kind:YS,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:s.digest,parentWallets:s.parentWallets??[]};throw new Error("Invalid payload type")}var uv=0,lv=1,fv=2,hg=3,hv=4,dv=5,mv=6,pv=7,gv=8,dg=9,yv=10;function kR(s){return "type"in s&&(s.type==="sapient_compact"||s.type==="sapient")&&typeof s=="object"&&"address"in s&&"data"in s}function v8(s){return typeof s=="object"&&s&&typeof s.noChainId=="boolean"&&(s.checkpointerData===void 0||f.validate(s.checkpointerData))&&yg(s.configuration)&&(s.suffix===void 0||Array.isArray(s.suffix)&&s.suffix.every(e=>v8(e)&&e.checkpointerData===void 0))}function yg(s){return s&&typeof s=="object"&&typeof s.threshold=="bigint"&&typeof s.checkpoint=="bigint"&&pg(s.topology)&&(s.checkpointer===void 0||P.validate(s.checkpointer))}function $f(s){return typeof s=="object"&&"weight"in s&&"signature"in s}function wg(s){return Gt(s)&&"signature"in s}function wv(s){return Kt(s)&&"signature"in s}function mg(s){return Array.isArray(s)&&s.length===2&&(pg(s[0])||Lc(s[0]))&&(pg(s[1])||Lc(s[1]))}function pg(s){return mg(s)||E8(s)}function E8(s){return typeof s=="object"&&"weight"in s&&!("tree"in s)}function Ff(s){return typeof s=="object"&&"tree"in s&&"weight"in s&&"threshold"in s}function x8(s){let{signature:e,erc6492:t}=d8(s);if(e.length<1)throw new Error("Signature is empty");let r=e[0],n=1,i=(r&2)===2,a,o;if((r&64)===64){if(n+20>e.length)throw new Error("Not enough bytes for checkpointer address");if(a=f.toHex(e.slice(n,n+20)),n+=20,n+3>e.length)throw new Error("Not enough bytes for checkpointer data size");let w=f.toNumber(e.slice(n,n+3));if(n+=3,n+w>e.length)throw new Error("Not enough bytes for checkpointer data");o=e.slice(n,n+w),n+=w;}let c=(r&28)>>2;if(n+c>e.length)throw new Error("Not enough bytes for checkpoint");let u=f.toBigInt(e.slice(n,n+c));n+=c;let l=((r&32)>>5)+1;if(n+l>e.length)throw new Error("Not enough bytes for threshold");let h=f.toBigInt(e.slice(n,n+l));if(n+=l,(r&1)===1){let w=[];for(;n<e.length;){if(n+3>e.length)throw new Error("Not enough bytes for chained subsignature size");let S=f.toNumber(e.subarray(n,n+3));if(n+=3,n+S>e.length)throw new Error("Not enough bytes for chained subsignature");let C=x8(e.subarray(n,n+S));if(n+=S,C.checkpointerData)throw new Error("Chained subsignature has checkpointer data");w.push({...C,checkpointerData:void 0});}if(w.length===0)throw new Error("Chained signature has no subsignatures");return {...w[0],suffix:w.slice(1),erc6492:t}}let{nodes:m,leftover:y}=gg(e.slice(n));if(y.length!==0)throw new Error("Leftover bytes in signature");let g=av(m);return {noChainId:i,checkpointerData:o,configuration:{threshold:h,checkpoint:u,topology:g,checkpointer:a},erc6492:t}}function gg(s){let e=[],t=0;for(;t<s.length;){let r=s[t];t++;let n=(r&240)>>4;if(n===uv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for dynamic weight");i=s[t],t++;}if(t+64>s.length)throw new Error("Not enough bytes for hash signature (r + yParityAndS)");let a=Ea(s.slice(t,t+64));t+=64,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"hash",...a}});continue}if(n===lv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for address weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for address leaf");let a=f.toHex(s.slice(t,t+20));t+=20,e.push({type:"signer",address:a,weight:BigInt(i)});continue}if(n===fv){let i=r&3;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for ERC1271 weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for ERC1271 signer address");let a=f.toHex(s.slice(t,t+20));t+=20;let o=(r&12)>>2;if(t+o>s.length)throw new Error("Not enough bytes for ERC1271 sizeSize");let c=f.toNumber(s.slice(t,t+o));if(t+=o,t+c>s.length)throw new Error("Not enough bytes for ERC1271 data");let u=s.slice(t,t+c);t+=c,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"erc1271",address:a,data:f.toHex(u)}});continue}if(n===hg){if(t+32>s.length)throw new Error("Not enough bytes for node leaf");let i=s.slice(t,t+32);t+=32,e.push(f.toHex(i));continue}if(n===hv){let i=r&15;if(t+i>s.length)throw new Error("Not enough bytes for branch sizeSize");let a=f.toNumber(s.slice(t,t+i));if(t+=i,t+a>s.length)throw new Error("Not enough bytes in sub-branch");let o=s.slice(t,t+a);t+=a;let{nodes:c,leftover:u}=gg(o);if(u.length>0)throw new Error("Leftover bytes in sub-branch");let l=av(c);e.push(l);continue}if(n===dv){if(t+32>s.length)throw new Error("Not enough bytes for subdigest");let i=s.slice(t,t+32);t+=32,e.push({type:"subdigest",digest:f.toHex(i)});continue}if(n===mv){let i=(r&12)>>2;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for nested weight");i=s[t],t++;}let a=r&3;if(a===0){if(t+2>s.length)throw new Error("Not enough bytes for nested threshold");a=f.toNumber(s.slice(t,t+2)),t+=2;}if(t+3>s.length)throw new Error("Not enough bytes for nested sub-tree size");let o=f.toNumber(s.slice(t,t+3));if(t+=3,t+o>s.length)throw new Error("Not enough bytes for nested sub-tree");let c=s.slice(t,t+o);t+=o;let{nodes:u,leftover:l}=gg(c);if(l.length>0)throw new Error("Leftover bytes in nested sub-tree");let h=av(u);e.push({type:"nested",tree:h,weight:BigInt(i),threshold:BigInt(a)});continue}if(n===pv){let i=r&15;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for dynamic weight in eth_sign");i=s[t],t++;}if(t+64>s.length)throw new Error("Not enough bytes for eth_sign signature");let a=Ea(s.slice(t,t+64));t+=64,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{type:"eth_sign",...a}});continue}if(n===gv){if(t+32>s.length)throw new Error("Not enough bytes for any address subdigest");let i=s.slice(t,t+32);t+=32,e.push({type:"any-address-subdigest",digest:f.toHex(i)});continue}if(n===dg||n===yv){let i=r&3;if(i===0){if(t>=s.length)throw new Error("Not enough bytes for sapient weight");i=s[t],t++;}if(t+20>s.length)throw new Error("Not enough bytes for sapient signer address");let a=f.toHex(s.slice(t,t+20));t+=20;let o=(r&12)>>2;if(t+o>s.length)throw new Error("Not enough bytes for sapient signature size");let c=f.toNumber(s.slice(t,t+o));if(t+=o,t+c>s.length)throw new Error("Not enough bytes for sapient signature data");let u=s.slice(t,t+c);t+=c,e.push({type:"unrecovered-signer",weight:BigInt(i),signature:{address:a,data:f.toHex(u),type:n===dg?"sapient":"sapient_compact"}});continue}throw new Error(`Invalid signature flag: 0x${n.toString(16)}`)}return {nodes:e,leftover:s.slice(t)}}function ug(s,e){if(wt(s))return [ug(s[0],e),ug(s[1],e)];if(Gt(s)){let t=e(s);return t?{...s,signature:t}:s}if(Kt(s)){let t=e(s);return t?{...s,signature:t}:s}if($s(s)||Fs(s))return s;if(ns(s))return {...s,tree:ug(s.tree,e)};if(Pt(s))return s;throw new Error("Invalid topology")}function A8(s){let e=1,t=s[s.length-1];t?.configuration.checkpointer&&(e|=64);let r=f.fromNumber(e);if(t?.configuration.checkpointer){r=f.concat(r,f.padLeft(f.fromHex(t.configuration.checkpointer),20));let n=t.checkpointerData?.length??0;if(n>16777215)throw new Error("Checkpointer data too large");let i=f.padLeft(f.fromNumber(n),3);r=f.concat(r,i,t.checkpointerData??f.fromArray([]));}for(let n=0;n<s.length;n++){let i=s[n],a=I8(i,!0,n===s.length-1);if(a.length>16777215)throw new Error("Chained signature too large");let o=f.padLeft(f.fromNumber(a.length),3);r=f.concat(r,o,a);}return r}function I8(s,e,t){let{noChainId:r,checkpointerData:n,configuration:i,suffix:a,erc6492:o}=s;if(a?.length){let w=A8([{...s,suffix:void 0,erc6492:void 0},...a]);return o?qS(w,o):w}let c=0;r&&(c|=2);let u=Es(i.checkpoint);if(u>7)throw new Error("Checkpoint too large");c|=u<<2;let l=Es(i.threshold);if(l=l===0?1:l,l>2)throw new Error("Threshold too large");c|=l==2?32:0,i.checkpointer&&!t&&(c|=64);let h=f.fromNumber(c);if(i.checkpointer&&!t&&(h=f.concat(h,f.padLeft(f.fromHex(i.checkpointer),20)),!e)){let w=n?.length??0;if(w>16777215)throw new Error("Checkpointer data too large");let S=f.padLeft(f.fromNumber(w),3);h=f.concat(h,S,n??f.fromArray([]));}let m=f.padLeft(f.fromNumber(i.checkpoint),u);h=f.concat(h,m);let y=f.padLeft(f.fromNumber(i.threshold),l);h=f.concat(h,y);let g=Mf(i.topology,s);return h=f.concat(h,g),o?qS(h,o):h}function Mf(s,e={}){if(wt(s)||mg(s)){let t=Mf(s[0],e),r=Mf(s[1],e);if(wt(s[1])||mg(s[1])){let i=Es(BigInt(r.length));if(i>15)throw new Error("Branch too large");let a=hv<<4|i;return f.concat(t,f.fromNumber(a),f.padLeft(f.fromNumber(r.length),i),r)}else return f.concat(t,r)}if(ns(s)||Ff(s)){let t=Mf(s.tree,e),r=mv<<4,n=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)r|=Number(s.weight)<<2;else if(s.weight<=255n)n=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");let i=f.fromArray([]);if(s.threshold<=3n&&s.threshold>0n)r|=Number(s.threshold);else if(s.threshold<=65535n)i=f.padLeft(f.fromNumber(Number(s.threshold)),2);else throw new Error("Threshold too large");if(t.length>16777215)throw new Error("Nested tree too large");return f.concat(f.fromNumber(r),n,i,f.padLeft(f.fromNumber(t.length),3),t)}if(Pt(s))return f.concat(f.fromNumber(hg<<4),f.fromHex(s));if(wg(s)||$f(s))if(s.signature.type==="hash"||s.signature.type==="eth_sign"){let t=(s.signature.type==="hash"?uv:pv)<<4,r=f.fromArray([]);if(s.weight<=15n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)r=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");let n=$r(s.signature);return f.concat(f.fromNumber(t),r,n)}else if(s.signature.type==="erc1271"){let t=fv<<4,r=Es(BigInt(s.signature.data.length));if(r>3)throw new Error("Signature too large");t|=r<<2;let n=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)n=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),n,f.padLeft(f.fromHex(s.signature.address),20),f.padLeft(f.fromNumber(f.fromHex(s.signature.data).length),r),f.fromHex(s.signature.data))}else if(s.signature.type==="sapient"||s.signature.type==="sapient_compact"){let t=(s.signature.type==="sapient"?dg:yv)<<4,r=f.fromHex(s.signature.data),n=Es(BigInt(r.length));if(n>3)throw new Error("Signature too large");t|=n<<2;let i=f.fromArray([]);if(s.weight<=3n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)i=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),i,f.padLeft(f.fromHex(s.signature.address),20),f.padLeft(f.fromNumber(r.length),n),r)}else throw new Error(`Invalid signature type: ${s.signature.type}`);if(Gt(s)){let t=lv<<4,r=f.fromArray([]);if(s.weight<=15n&&s.weight>0n)t|=Number(s.weight);else if(s.weight<=255n)r=f.fromNumber(Number(s.weight));else throw new Error("Weight too large");return f.concat(f.fromNumber(t),r,f.padLeft(f.fromHex(s.address),20))}if(Kt(s)){let t=Wt(s);return f.concat(f.fromNumber(hg<<4),t)}if($s(s))return f.concat(f.fromNumber(dv<<4),f.fromHex(s.digest));if(Fs(s))return f.concat(f.fromNumber(gv<<4),f.fromHex(s.digest));throw new Error("Invalid topology")}function av(s){if(s.length===0)throw new Error("Empty signature tree");if(s.length===1)return s[0];let e=s[0];for(let t=1;t<s.length;t++)e=[e,s[t]];return e}function PR(s){return JSON.stringify(C8(s))}function C8(s){return {noChainId:s.noChainId,checkpointerData:s.checkpointerData?f.toHex(s.checkpointerData):void 0,configuration:{threshold:s.configuration.threshold.toString(),checkpoint:s.configuration.checkpoint.toString(),topology:lg(s.configuration.topology),checkpointer:s.configuration.checkpointer},suffix:s.suffix?s.suffix.map(e=>C8(e)):void 0}}function lg(s){if(Array.isArray(s))return [lg(s[0]),lg(s[1])];if(typeof s=="object"&&s!==null&&"type"in s)switch(s.type){case"signer":return {type:"signer",address:s.address,weight:s.weight.toString()};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:s.weight.toString(),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:lg(s.tree),weight:s.weight.toString(),threshold:s.threshold.toString()};case"unrecovered-signer":return {type:"unrecovered-signer",weight:s.weight.toString(),signature:BR(s.signature)};default:throw new Error("Invalid raw topology type")}if(typeof s=="string")return s;throw new Error("Invalid raw topology format")}function BR(s){if(s.type==="eth_sign"||s.type==="hash")return {type:s.type,r:v.fromNumber(s.r,{size:32}),s:v.fromNumber(s.s,{size:32}),yParity:s.yParity};if(s.type==="erc1271")return {type:s.type,address:s.address,data:s.data};if(s.type==="sapient"||s.type==="sapient_compact")return {type:s.type,address:s.address,data:s.data};throw new Error("Unknown signature type in raw signature")}function OR(s){let e=JSON.parse(s);return N8(e)}function N8(s){return {noChainId:s.noChainId,checkpointerData:s.checkpointerData?f.fromHex(s.checkpointerData):void 0,configuration:{threshold:BigInt(s.configuration.threshold),checkpoint:BigInt(s.configuration.checkpoint),topology:fg(s.configuration.topology),checkpointer:s.configuration.checkpointer},suffix:s.suffix?s.suffix.map(e=>N8(e)):void 0}}function fg(s){if(Array.isArray(s)){if(s.length!==2)throw new Error("Invalid raw topology node");return [fg(s[0]),fg(s[1])]}if(typeof s=="object"&&s!==null&&"type"in s)switch(s.type){case"signer":return {type:"signer",address:s.address,weight:BigInt(s.weight)};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:fg(s.tree),weight:BigInt(s.weight),threshold:BigInt(s.threshold)};case"unrecovered-signer":return {type:"unrecovered-signer",weight:BigInt(s.weight),signature:RR(s.signature)};default:throw new Error("Invalid raw topology type")}if(typeof s=="string")return s;throw new Error("Invalid raw topology format")}function RR(s){switch(s.type){case"eth_sign":case"hash":return {type:s.type,r:v.toBigInt(s.r),s:v.toBigInt(s.s),yParity:s.yParity};case"erc1271":return {type:"erc1271",address:s.address,data:s.data};case"sapient":case"sapient_compact":return {type:s.type,address:s.address,data:s.data};default:throw new Error("Invalid signature type in raw signature")}}async function ov(s,e,t,r,n){if(s.suffix?.length){let o=!1,{configuration:c,weight:u}=await ov({...s,suffix:void 0},e,t,r,n);o||=u<c.threshold;for(let l of s.suffix){let h=await ov(l,e,l.noChainId?0:t,ev(f.toHex(Wt(c))),n);o||=h.weight<h.configuration.threshold,o||=h.configuration.checkpoint>=c.checkpoint,c=h.configuration,u=h.weight;}return {configuration:c,weight:o?0n:u}}let{topology:i,weight:a}=await cv(s.configuration.topology,e,t,r,n);return {configuration:{...s.configuration,topology:i},weight:a}}async function cv(s,e,t,r,n){let i=Vc(e,t,r);if($f(s))switch(s.signature.type){case"eth_sign":case"hash":return {topology:{type:"signer",address:Lt.recoverAddress({payload:s.signature.type==="eth_sign"?ee.keccak256(tt.encodePacked(["string","bytes32"],[`Ethereum Signed Message:
|
|
343
|
+
32`,f.toHex(i)])):i,signature:s.signature}),weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};case"erc1271":switch(n?.provider){case void 0:case"assume-invalid":if(n?.throw!==!1)throw new Error(`unable to validate signer ${s.signature.address} erc-1271 signature`);return {topology:{type:"signer",address:s.signature.address,weight:s.weight},weight:0n};case"assume-valid":return {topology:{type:"signer",address:s.signature.address,weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};default:let a="provider"in n.provider?n.provider.provider:n.provider,o="block"in n.provider?n.provider.block:void 0,c={to:s.signature.address,data:se.encodeData(jf,[f.toHex(i),s.signature.data])},u=await a.request({method:"eth_call",params:o===void 0?[c,"latest"]:[c,v.fromNumber(o)]}),l=se.decodeResult(jf,u);if(v.isEqual(l,se.getSelector(jf)))return {topology:{type:"signer",address:s.signature.address,weight:s.weight,signed:!0,signature:s.signature},weight:s.weight};if(n?.throw!==!1)throw new Error(`invalid signer ${s.signature.address} erc-1271 signature`);return {topology:{type:"signer",address:s.signature.address,weight:s.weight},weight:0n}}case"sapient":case"sapient_compact":switch(n?.provider){case void 0:case"assume-invalid":case"assume-valid":throw new Error(`unable to validate sapient signer ${s.signature.address} signature`);default:let a="provider"in n.provider?n.provider.provider:n.provider,o="block"in n.provider?n.provider.block:void 0,c={to:s.signature.address,data:s.signature.type==="sapient"?se.encodeData(_S,[VR(t,r),s.signature.data]):se.encodeData(jS,[f.toHex(i),s.signature.data])},u=await a.request({method:"eth_call",params:o===void 0?[c,"latest"]:[c,v.fromNumber(o)]});return {topology:{type:"sapient-signer",address:s.signature.address,weight:s.weight,imageHash:u,signed:!0,signature:s.signature},weight:s.weight}}}else if(Ff(s)){let{topology:a,weight:o}=await cv(s.tree,e,t,r,n);return {topology:{...s,tree:a},weight:o>=s.threshold?s.weight:0n}}else {if(Gt(s))return {topology:s,weight:0n};if(Kt(s))return {topology:s,weight:0n};if($s(s))return {topology:s,weight:f.isEqual(f.fromHex(s.digest),i)?0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn:0n};if(Fs(s)){let a=Vc(nt.ZeroAddress,t,r);return {topology:s,weight:f.isEqual(f.fromHex(s.digest),a)?0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn:0n}}else {if(Pt(s))return {topology:s,weight:0n};{let[a,o]=await Promise.all(s.map(c=>cv(c,e,t,r,n)));return {topology:[a.topology,o.topology],weight:a.weight+o.weight}}}}}function VR(s,e){switch(e.type){case"call":return {kind:0,noChainId:!s,calls:e.calls.map(t=>({...t,data:t.data,behaviorOnError:t.behaviorOnError==="ignore"?0n:t.behaviorOnError==="revert"?1n:2n})),space:e.space,nonce:e.nonce,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};case"message":return {kind:1,noChainId:!s,calls:[],space:0n,nonce:0n,message:e.message,imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};case"config-update":return {kind:2,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:e.imageHash,digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};case"digest":return {kind:3,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:e.digest,parentWallets:e.parentWallets??[]};default:throw new Error("Invalid payload type")}}function Gt(s){return typeof s=="object"&&s!==null&&s.type==="signer"}function Kt(s){return typeof s=="object"&&s!==null&&s.type==="sapient-signer"}function $s(s){return typeof s=="object"&&s!==null&&s.type==="subdigest"}function Fs(s){return typeof s=="object"&&s!==null&&s.type==="any-address-subdigest"}function Pt(s){return v.validate(s)&&s.length===66}function ns(s){return typeof s=="object"&&s!==null&&s.type==="nested"}function wt(s){return Array.isArray(s)&&s.length===2&&Lc(s[0])&&Lc(s[1])}function Hc(s){return typeof s=="object"&&"threshold"in s&&"checkpoint"in s&&"topology"in s}function T8(s){return Gt(s)||Kt(s)||$s(s)||Fs(s)||Pt(s)||ns(s)}function Lc(s){return wt(s)||T8(s)}function DR(s){let e=new Set,t=new Set,r=!0,n=i=>{wt(i)?(n(i[0]),n(i[1])):Gt(i)?i.weight&&e.add(i.address):Kt(i)?t.add({address:i.address,imageHash:i.imageHash}):Pt(i)?r=!1:ns(i)&&i.weight&&n(i.tree);};return n(Hc(s)?s.topology:s),{signers:Array.from(e),sapientSigners:Array.from(t),isComplete:r}}function qf(s,e){if(Hc(s))return qf(s.topology,e);if(wt(s))return qf(s[0],e)||qf(s[1],e);if(Gt(s)){if(P.isEqual(s.address,e))return s}else if(Kt(s)){if(P.isEqual(s.address,e))return s}else if(ns(s))return qf(s.tree,e)}function Gf(s,e){if(s=yg(s)||Hc(s)?s.topology:s,wg(s))return {weight:s.weight,maxWeight:s.weight};if(Gt(s))return {weight:0n,maxWeight:e(s)?s.weight:0n};if($f(s))return {weight:s.weight,maxWeight:s.weight};if(wv(s))return {weight:s.weight,maxWeight:s.weight};if(Kt(s))return {weight:0n,maxWeight:e(s)?s.weight:0n};if($s(s))return {weight:0n,maxWeight:0n};if(Fs(s))return {weight:0n,maxWeight:0n};if(Ff(s)){let{weight:t,maxWeight:r}=Gf(s.tree,e);return {weight:t>=s.threshold?s.weight:0n,maxWeight:r>=s.threshold?s.weight:0n}}else {if(Pt(s))return {weight:0n,maxWeight:0n};{let[t,r]=[Gf(s[0],e),Gf(s[1],e)];return {weight:t.weight+r.weight,maxWeight:t.maxWeight+r.maxWeight}}}}function Wt(s){if(Hc(s)){let e=Wt(s.topology);return e=ee.keccak256(f.concat(e,f.padLeft(f.fromNumber(s.threshold),32))),e=ee.keccak256(f.concat(e,f.padLeft(f.fromNumber(s.checkpoint),32))),e=ee.keccak256(f.concat(e,f.padLeft(f.fromHex(s.checkpointer??nt.ZeroAddress),32))),e}if(Gt(s))return ee.keccak256(f.concat(f.fromString(`Sequence signer:
|
|
344
|
+
`),f.fromHex(s.address),f.padLeft(f.fromNumber(s.weight),32)));if(Kt(s))return ee.keccak256(f.concat(f.fromString(`Sequence sapient config:
|
|
345
345
|
`),f.fromHex(s.address),f.padLeft(f.fromNumber(s.weight),32),f.padLeft(f.fromHex(s.imageHash),32)));if($s(s))return ee.keccak256(f.concat(f.fromString(`Sequence static digest:
|
|
346
|
-
`),f.fromHex(s.digest)));if(
|
|
346
|
+
`),f.fromHex(s.digest)));if(Fs(s))return ee.keccak256(f.concat(f.fromString(`Sequence any address subdigest:
|
|
347
347
|
`),f.fromHex(s.digest)));if(Pt(s))return f.fromHex(s);if(ns(s))return ee.keccak256(f.concat(f.fromString(`Sequence nested config:
|
|
348
|
-
`),Wt(s.tree),f.padLeft(f.fromNumber(s.threshold),32),f.padLeft(f.fromNumber(s.weight),32)));if(wt(s))return ee.keccak256(f.concat(Wt(s[0]),Wt(s[1])));throw new Error("Invalid topology")}function Sv(s){if(s.length===0)throw new Error("Cannot create topology from empty leaves");return s.length===1?s[0]:s.length===2?[s[0],s[1]]:[Sv(s.slice(0,s.length/2)),Sv(s.slice(s.length/2))]}function Sg(s){return wt(s)?[...Sg(s[0]),...Sg(s[1])]:ns(s)?[...Sg(s.tree)]:[s]}function VR(s){return JSON.stringify({threshold:s.threshold.toString(),checkpoint:s.checkpoint.toString(),topology:vg(s.topology),checkpointer:s.checkpointer})}function DR(s){let e=JSON.parse(s);return {threshold:BigInt(e.threshold),checkpoint:BigInt(e.checkpoint),checkpointer:e.checkpointer,topology:Eg(e.topology)}}function vg(s){if(wt(s))return [vg(s[0]),vg(s[1])];if(Kt(s))return {type:"signer",address:s.address,weight:s.weight.toString()};if(Gt(s))return {type:"sapient-signer",address:s.address,weight:s.weight.toString(),imageHash:s.imageHash};if($s(s))return {type:"subdigest",digest:s.digest};if(qs(s))return {type:"any-address-subdigest",digest:s.digest};if(Pt(s))return s;if(ns(s))return {type:"nested",tree:vg(s.tree),weight:s.weight.toString(),threshold:s.threshold.toString()};throw new Error("Invalid topology")}function Eg(s){if(Array.isArray(s)){if(s.length!==2)throw new Error("Invalid node structure in JSON");return [Eg(s[0]),Eg(s[1])]}if(typeof s=="string")return s;switch(s.type){case"signer":return {type:"signer",address:s.address,weight:BigInt(s.weight)};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:Eg(s.tree),weight:BigInt(s.weight),threshold:BigInt(s.threshold)};default:throw new Error("Invalid type in topology JSON")}}function LR(s){return s instanceof Promise?{signature:s}:typeof s=="object"&&s&&"signature"in s&&s.signature instanceof Promise?s:{signature:Promise.resolve(s)}}function Ag(s,e){if(wt(s)&&wt(e))return [Ag(s[0],e[0]),Ag(s[1],e[1])];if(wt(s)&&!wt(e)){if(!Pt(e))throw new Error("Topology mismatch: cannot merge node with non-node that is not a node leaf");let t=Wt(e);if(!f.isEqual(t,Wt(s)))throw new Error("Topology mismatch: node hash does not match");return s}if(!wt(s)&&wt(e)){if(!Pt(s))throw new Error("Topology mismatch: cannot merge node with non-node that is not a node leaf");let t=Wt(s);if(!f.isEqual(t,Wt(e)))throw new Error("Topology mismatch: node hash does not match");return e}return HR(s,e)}function Uc(s){return Hc(s)?s.threshold>65535n||s.checkpoint>72057594037927935n||Uc(s.topology):wt(s)?Uc(s[0])||Uc(s[1]):ns(s)?Uc(s.tree)||s.weight>255n||s.threshold>65535n:Kt(s)||Gt(s)?s.weight>255n:!1}function Gf(s){return wt(s)?Math.max(Gf(s[0]),Gf(s[1]))+1:ns(s)?Gf(s.tree)+1:0}function UR(s){if(s.threshold===0n)throw new Error("unsafe-threshold-0");if(Uc(s))throw new Error("unsafe-invalid-values");if(Gf(s.topology)>32)throw new Error("unsafe-depth");let{maxWeight:e}=Kf(s.topology,()=>!0);if(e<s.threshold)throw new Error("unsafe-threshold")}function HR(s,e){if(Pt(s)&&Pt(e)){if(!v.isEqual(s,e))throw new Error("Topology mismatch: different node leaves");return s}if(Pt(s)&&!Pt(e)){let t=Wt(e);if(!f.isEqual(t,f.fromHex(s)))throw new Error("Topology mismatch: node leaf hash does not match");return e}if(!Pt(s)&&Pt(e)){let t=Wt(s);if(!f.isEqual(t,f.fromHex(e)))throw new Error("Topology mismatch: node leaf hash does not match");return s}if(Kt(s)&&Kt(e)){if(s.address!==e.address||s.weight!==e.weight)throw new Error("Topology mismatch: signer fields differ");if(!!s.signed!=!!e.signed||!!s.signature!=!!e.signature)throw new Error("Topology mismatch: signer signature fields differ");return s}if(Gt(s)&&Gt(e)){if(s.address!==e.address||s.weight!==e.weight||s.imageHash!==e.imageHash)throw new Error("Topology mismatch: sapient signer fields differ");if(!!s.signed!=!!e.signed||!!s.signature!=!!e.signature)throw new Error("Topology mismatch: sapient signature fields differ");return s}if($s(s)&&$s(e)){if(!f.isEqual(f.fromHex(s.digest),f.fromHex(e.digest)))throw new Error("Topology mismatch: subdigest fields differ");return s}if(qs(s)&&qs(e)){if(!f.isEqual(f.fromHex(s.digest),f.fromHex(e.digest)))throw new Error("Topology mismatch: any-address-subdigest fields differ");return s}if(ns(s)&&ns(e)){if(s.weight!==e.weight||s.threshold!==e.threshold)throw new Error("Topology mismatch: nested leaf fields differ");let t=Ag(s.tree,e.tree);return {type:"nested",weight:s.weight,threshold:s.threshold,tree:t}}throw new Error("Topology mismatch: incompatible leaf types")}function xg(s,e,t){return wt(s)?[xg(s[0],e,t),xg(s[1],e,t)]:ns(s)?{...s,tree:xg(s.tree,e,t)}:(Kt(s)||Gt(s))&&P.isEqual(s.address,e)?{...s,address:t}:s}function _R(s,e){let t=s instanceof Uint8Array?s:Wt(s);return f.toHex(ee.keccak256(f.concat(f.from("0xff"),f.from(e.factory),t,ee.keccak256(f.concat(f.from(e.creationCode),f.padLeft(f.from(e.stage1),32)))),{as:"Bytes"}).subarray(12))}var kt={};ye(kt,{ACCEPT_IMPLICIT_REQUEST_MAGIC_PREFIX:()=>D8,decode:()=>jR,decodeAuthData:()=>O8,encode:()=>P8,encodeAuthData:()=>B8,encodeForJson:()=>R8,fromJson:()=>qR,fromParsed:()=>V8,generateImplicitRequestMagic:()=>FR,hash:()=>MR,toJson:()=>$R});function P8(s){let e=B8(s.authData),t=[f.fromHex(s.approvedSigner,{size:20}),f.padLeft(s.identityType.slice(0,4),4),f.padLeft(s.issuerHash,32),f.padLeft(s.audienceHash,32),f.fromNumber(s.applicationData.length,{size:3}),s.applicationData,e];return f.concat(...t)}function B8(s){return f.concat(f.fromNumber(s.redirectUrl.length,{size:3}),f.fromString(s.redirectUrl),f.fromNumber(s.issuedAt,{size:8}))}function jR(s){let e=f.toHex(s.slice(0,20)),t=s.slice(20,24),r=s.slice(24,56),n=s.slice(56,88),i=f.toNumber(s.slice(88,91)),a=s.slice(91,91+i),o=O8(s.slice(91+i));return {approvedSigner:e,identityType:t,issuerHash:r,audienceHash:n,applicationData:a,authData:o}}function O8(s){let e=f.toNumber(s.slice(0,3)),t=f.toString(s.slice(3,3+e)),r=f.toBigInt(s.slice(3+e,3+e+8));return {redirectUrl:t,issuedAt:r}}function MR(s){return ee.keccak256(P8(s))}function $R(s,e){return JSON.stringify(R8(s),null,e)}function R8(s){return {approvedSigner:s.approvedSigner.toString(),identityType:f.toHex(s.identityType),issuerHash:f.toHex(s.issuerHash),audienceHash:f.toHex(s.audienceHash),applicationData:f.toHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:s.authData.issuedAt.toString()}}}function qR(s){return V8(JSON.parse(s))}function V8(s){return {approvedSigner:P.from(s.approvedSigner),identityType:f.fromHex(s.identityType),issuerHash:f.fromHex(s.issuerHash),audienceHash:f.fromHex(s.audienceHash),applicationData:f.fromHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:BigInt(s.authData.issuedAt)}}}var D8=ee.keccak256(f.fromString("acceptImplicitRequest"));function FR(s,e){return ee.keccak256(f.concat(D8,f.fromHex(e,{size:20}),s.audienceHash,s.issuerHash))}var qr={};ye(qr,{MASK:()=>KR,MAX_PERMISSIONS_COUNT:()=>Ig,MAX_RULES_COUNT:()=>L8,ParameterOperation:()=>vv,abiEncodePermission:()=>zR,decodeSessionPermissions:()=>Cg,encodePermission:()=>U8,encodeSessionPermissions:()=>Wf,encodeSessionPermissionsForJson:()=>Ng,parameterRuleToJson:()=>XR,permissionFromJson:()=>e7,permissionStructAbi:()=>H8,permissionToJson:()=>ZR,sessionPermissionsFromJson:()=>QR,sessionPermissionsFromParsed:()=>Tg,sessionPermissionsToJson:()=>YR});var vv;(function(s){s[s.EQUAL=0]="EQUAL",s[s.NOT_EQUAL=1]="NOT_EQUAL",s[s.GREATER_THAN_OR_EQUAL=2]="GREATER_THAN_OR_EQUAL",s[s.LESS_THAN_OR_EQUAL=3]="LESS_THAN_OR_EQUAL";})(vv||(vv={}));var Ig=2**7-1,L8=2**8-1,KR={SELECTOR:f.padRight(f.fromHex("0xffffffff"),32),ADDRESS:f.padLeft(f.fromHex("0xffffffffffffffffffffffffffffffffffffffff"),32),BOOL:f.padLeft(f.fromHex("0x01"),32),BYTES1:f.padLeft(f.from(Array(1).fill(255)),32),BYTES2:f.padLeft(f.from(Array(2).fill(255)),32),BYTES4:f.padLeft(f.from(Array(4).fill(255)),32),BYTES8:f.padLeft(f.from(Array(8).fill(255)),32),BYTES16:f.padLeft(f.from(Array(16).fill(255)),32),BYTES32:f.padLeft(f.from(Array(32).fill(255)),32),INT8:f.padLeft(f.from(Array(1).fill(255)),32),INT16:f.padLeft(f.from(Array(2).fill(255)),32),INT32:f.padLeft(f.from(Array(4).fill(255)),32),INT64:f.padLeft(f.from(Array(8).fill(255)),32),INT128:f.padLeft(f.from(Array(16).fill(255)),32),INT256:f.padLeft(f.from(Array(32).fill(255)),32),UINT8:f.padLeft(f.from(Array(1).fill(255)),32),UINT16:f.padLeft(f.from(Array(2).fill(255)),32),UINT32:f.padLeft(f.from(Array(4).fill(255)),32),UINT64:f.padLeft(f.from(Array(8).fill(255)),32),UINT128:f.padLeft(f.from(Array(16).fill(255)),32),UINT256:f.padLeft(f.from(Array(32).fill(255)),32)};function Wf(s){if(s.permissions.length>Ig)throw new Error("Too many permissions");let e=s.permissions.map(U8);return f.concat(f.padLeft(f.fromHex(s.signer),20),f.padLeft(f.fromNumber(s.chainId),32),f.padLeft(f.fromNumber(s.valueLimit),32),f.padLeft(f.fromNumber(s.deadline,{size:8}),8),f.fromNumber(s.permissions.length,{size:1}),f.concat(...e))}function U8(s){if(s.rules.length>L8)throw new Error("Too many rules");let e=s.rules.map(GR);return f.concat(f.padLeft(f.fromHex(s.target),20),f.fromNumber(s.rules.length,{size:1}),f.concat(...e))}function GR(s){let e=Number(s.operation)<<1|(s.cumulative?1:0);return f.concat(f.fromNumber(e),f.padLeft(s.value,32),f.padLeft(f.fromNumber(s.offset),32),f.padLeft(s.mask,32))}function Cg(s){let e=f.toHex(s.slice(0,20)),t=f.toNumber(s.slice(20,52)),r=f.toBigInt(s.slice(52,84)),n=f.toBigInt(s.slice(84,92)),i=Number(s[92]),a=[],o=93;for(let c=0;c<i;c++){let{permission:u,consumed:l}=WR(s.slice(o));a.push(u),o+=l;}if(a.length===0)throw new Error("No permissions");return {signer:e,chainId:t,valueLimit:r,deadline:n,permissions:a}}function WR(s){let e=f.toHex(s.slice(0,20)),t=Number(s[20]),r=[],n=21;for(let i=0;i<t;i++){let a=s.slice(n,n+97);r.push(JR(a)),n+=97;}return {permission:{target:e,rules:r},consumed:n}}function JR(s){let e=Number(s[0]),t=(e&1)===1,r=e>>1,n=s.slice(1,33),i=f.toBigInt(s.slice(33,65)),a=s.slice(65,97);return {cumulative:t,operation:r,value:n,offset:i,mask:a}}var H8={internalType:"struct Permission",name:"permission",type:"tuple",components:[{internalType:"address",name:"target",type:"address"},{internalType:"struct ParameterRule[]",name:"rules",type:"tuple[]",components:[{internalType:"bool",name:"cumulative",type:"bool"},{internalType:"enum ParameterOperation",name:"operation",type:"uint8"},{internalType:"bytes32",name:"value",type:"bytes32"},{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"bytes32",name:"mask",type:"bytes32"}]}]};function zR(s){return tt.encode([H8],[{target:s.target,rules:s.rules.map(e=>({cumulative:e.cumulative,operation:e.operation,value:f.toHex(e.value),offset:e.offset,mask:f.toHex(e.mask)}))}])}function YR(s){return JSON.stringify(Ng(s))}function Ng(s){return {signer:s.signer.toString(),chainId:s.chainId.toString(),valueLimit:s.valueLimit.toString(),deadline:s.deadline.toString(),permissions:s.permissions.map(_8)}}function ZR(s){return JSON.stringify(_8(s))}function _8(s){return {target:s.target.toString(),rules:s.rules.map(j8)}}function XR(s){return JSON.stringify(j8(s))}function j8(s){return {cumulative:s.cumulative,operation:s.operation,value:f.toHex(s.value),offset:s.offset.toString(),mask:f.toHex(s.mask)}}function QR(s){return Tg(JSON.parse(s))}function Tg(s){return {signer:P.from(s.signer),chainId:Number(s.chainId),valueLimit:BigInt(s.valueLimit),deadline:BigInt(s.deadline),permissions:s.permissions.map(M8)}}function e7(s){return M8(JSON.parse(s))}function M8(s){return {target:P.from(s.target),rules:s.rules.map(e=>({cumulative:e.cumulative,operation:e.operation,value:f.fromHex(e.value),offset:BigInt(e.offset),mask:f.fromHex(e.mask)}))}}var Bs={};ye(Bs,{SESSIONS_FLAG_BLACKLIST:()=>jc,SESSIONS_FLAG_BRANCH:()=>xv,SESSIONS_FLAG_IDENTITY_SIGNER:()=>Yf,SESSIONS_FLAG_NODE:()=>Ev,SESSIONS_FLAG_PERMISSIONS:()=>zf,addExplicitSession:()=>o7,addIdentitySigner:()=>u7,addToImplicitBlacklist:()=>l7,balanceSessionsTopology:()=>Qf,cleanSessionsTopology:()=>Q8,configurationTreeToSessionsTopology:()=>J8,decodeLeafFromBytes:()=>G8,decodeSessionsTopology:()=>Cv,emptySessionsTopology:()=>eC,encodeLeafToGeneric:()=>Jf,encodeSessionsTopology:()=>Og,getExplicitSigners:()=>r7,getIdentitySigners:()=>Zf,getImplicitBlacklist:()=>s7,getImplicitBlacklistLeaf:()=>Xf,getSessionPermissions:()=>Bg,isCompleteSessionsTopology:()=>Iv,isSessionsTopology:()=>Av,mergeSessionsTopologies:()=>Tv,minimiseSessionsTopology:()=>Rg,removeExplicitSession:()=>a7,removeFromImplicitBlacklist:()=>f7,removeIdentitySigner:()=>c7,sessionsTopologyFromJson:()=>i7,sessionsTopologyToConfigurationTree:()=>W8,sessionsTopologyToJson:()=>n7});var As={};ye(As,{hash:()=>Fs,isBranch:()=>xs,isLeaf:()=>Un,isNode:()=>bt,isTree:()=>$8});function xs(s){return Array.isArray(s)&&s.length>=2&&s.every(e=>$8(e))}function Un(s){return s.type==="leaf"&&f.validate(s.value)}function $8(s){return xs(s)||Un(s)||bt(s)}function bt(s){return v.validate(s)&&v.size(s)===32}function Fs(s){if(xs(s)){let e=s.map(Fs);if(e.length===0)throw new Error("Empty branch");let t=v.toBytes(e[0]);for(let r=1;r<e.length;r++)t=ee.keccak256(f.concat(t,v.toBytes(e[r])));return v.fromBytes(t)}return bt(s)?s:ee.keccak256(s.value,{as:"Hex"})}var zf=0,Ev=1,xv=2,jc=3,Yf=4,q8=32;function hr(s){return v.validate(s)&&v.size(s)===q8}function Ks(s){return typeof s=="object"&&s!==null&&"blacklist"in s}function Gs(s){return typeof s=="object"&&s!==null&&"identitySigner"in s}function Ws(s){return typeof s=="object"&&s!==null&&"signer"in s}function kg(s){return Ks(s)||Gs(s)||Ws(s)}function Js(s){return Array.isArray(s)&&s.length>=2&&s.every(e=>Av(e))}function Av(s){return Js(s)||kg(s)||hr(s)}function Iv(s){if(!Av(s))return !1;let{identitySignerCount:e,blacklistCount:t}=F8(s);return e>=1&&t===1}function F8(s){let e=0,t=0;if(Js(s))for(let r of s){let{identitySignerCount:n,blacklistCount:i}=F8(r);e+=n,t+=i;}return Gs(s)&&e++,Ks(s)&&t++,{identitySignerCount:e,blacklistCount:t}}function Zf(s){return Gs(s)?[s.identitySigner]:Js(s)?s.map(Zf).flat():[]}function s7(s){let e=Xf(s);return e?e.blacklist:null}function Xf(s){if(Ks(s))return s;if(Js(s)){let e=s.map(Xf).filter(t=>t!==null);if(e.length>1)throw new Error("Multiple blacklists");if(e.length===1)return e[0]}return null}function Bg(s,e){if(Ws(s)&&P.isEqual(s.signer,e))return s;if(Js(s))for(let t of s){let r=Bg(t,e);if(r)return r}return null}function r7(s){return K8(s,[])}function K8(s,e){if(Ws(s))return [...e,s.signer];if(Js(s)){let t=[...e];for(let r of s)t.push(...K8(r,e));return t}return e}function Jf(s){if(Ws(s))return {type:"leaf",value:f.concat(f.fromNumber(zf),Wf(s))};if(Ks(s))return {type:"leaf",value:f.concat(f.fromNumber(jc),f.concat(...s.blacklist.map(e=>f.padLeft(f.fromHex(e),20))))};if(Gs(s))return {type:"leaf",value:f.concat(f.fromNumber(Yf),f.padLeft(f.fromHex(s.identitySigner),20))};throw new Error("Invalid leaf")}function G8(s){let e=s[0];if(e===jc){let t=[];for(let r=1;r<s.length;r+=20)t.push(f.toHex(s.slice(r,r+20)));return {type:"implicit-blacklist",blacklist:t}}if(e===Yf)return {type:"identity-signer",identitySigner:f.toHex(s.slice(1,21))};if(e===zf)return {type:"session-permissions",...Cg(s.slice(1))};throw new Error("Invalid leaf")}function W8(s){if(Js(s))return s.map(W8);if(Ks(s)||Gs(s)||Ws(s))return Jf(s);if(hr(s))return s;throw new Error("Invalid topology")}function J8(s){if(xs(s))return s.map(J8);if(bt(s))throw new Error("Unknown in configuration tree");return G8(s.value)}function Og(s){if(Js(s)){let e=[];for(let i of s)e.push(Og(i));let t=f.concat(...e),r=Es(BigInt(t.length));if(r>15)throw new Error("Branch too large");let n=xv<<4|r;return f.concat(f.fromNumber(n),f.padLeft(f.fromNumber(t.length),r),t)}if(Ws(s)){let e=zf<<4,t=Wf(s);return f.concat(f.fromNumber(e),t)}if(hr(s)){let e=Ev<<4;return f.concat(f.fromNumber(e),v.toBytes(s))}if(Ks(s)){let e=f.concat(...s.blacklist.map(r=>f.fromHex(r)));if(s.blacklist.length>=15){if(s.blacklist.length>65535)throw new Error("Blacklist too large");return f.concat(f.fromNumber(jc<<4|15),f.fromNumber(s.blacklist.length,{size:2}),e)}let t=jc<<4|s.blacklist.length;return f.concat(f.fromNumber(t),e)}if(Gs(s)){let e=Yf<<4;return f.concat(f.fromNumber(e),f.padLeft(f.fromHex(s.identitySigner),20))}throw new Error("Invalid topology")}function Cv(s){let{topology:e}=z8(s);return e}function z8(s){if(s.length===0)throw new Error("Empty topology bytes");let e=s[0],t=(e&240)>>4,r=e&15;if(t===xv){if(r===0||r>15)throw new Error("Invalid branch size");let n=1,i=f.toNumber(s.slice(n,n+r));n+=r;let a=s.slice(n,n+i),o=[],c=0;for(;c<a.length;){let{topology:u,pointer:l}=z8(a.slice(c));o.push(u),c+=l;}return {topology:o,pointer:n+i}}else if(t===zf){let n=Cg(s.slice(1)),i=1+Wf(n).length;return {topology:{type:"session-permissions",...n},pointer:i}}else if(t===Ev){let n=q8+1;if(s.length<n)throw new Error("Invalid node length");return {topology:v.fromBytes(s.slice(1,n)),pointer:n}}else if(t===jc){let n=1,i=r;r===15&&(i=f.toNumber(s.slice(n,n+2)),n+=2);let a=[];for(let o=0;o<i;o++){let c=s.slice(n+o*20,n+(o+1)*20);a.push(P.from(v.fromBytes(c)));}return {topology:{type:"implicit-blacklist",blacklist:a},pointer:n+i*20}}else if(t===Yf){if(s.length<21)throw new Error("Invalid identity signer length");return {topology:{type:"identity-signer",identitySigner:P.from(v.fromBytes(s.slice(1,21)))},pointer:21}}else throw new Error(`Invalid topology flag: ${t}`)}function n7(s){return JSON.stringify(Y8(s))}function Y8(s){if(hr(s))return s;if(Ws(s))return Ng(s);if(Ks(s)||Gs(s))return s;if(Js(s))return s.map(e=>Y8(e));throw new Error("Invalid topology")}function i7(s){let e=JSON.parse(s);return Z8(e)}function Z8(s){if(Array.isArray(s))return s.map(t=>Z8(t));if(typeof s=="string"&&v.validate(s)&&v.size(s)===32)return s;if(typeof s=="object"&&s!==null&&"signer"in s&&"valueLimit"in s&&"deadline"in s&&"permissions"in s)return {type:"session-permissions",...Tg(s)};if(typeof s=="object"&&s!==null&&"identitySigner"in s)return {type:"identity-signer",identitySigner:s.identitySigner};if(typeof s=="object"&&s!==null&&"blacklist"in s)return {type:"implicit-blacklist",blacklist:s.blacklist.map(t=>P.from(t))};throw new Error("Invalid topology")}function Nv(s,e){if(kg(s)&&kg(e)){if(s.type===e.type){if(Ws(s)&&Ws(e)){if(P.isEqual(s.signer,e.signer))return null}else if(Ks(s)&&Ks(e)){let t=s.blacklist.filter(r=>!e.blacklist.includes(r));return t.length===0?null:{type:"implicit-blacklist",blacklist:t}}else if(Gs(s)&&Gs(e)&&P.isEqual(s.identitySigner,e.identitySigner))return null}}else if(hr(s)&&hr(e)&&v.isEqual(s,e))return null;if(Js(s)){let t=[];for(let r of s){let n=Nv(r,e);n!=null&&t.push(n);}return t.length===0?null:t.length===1?t[0]:t}return s}function a7(s,e){let t=Bg(s,e);if(!t)return s;let r=Nv(s,t);return r?Qf(r):null}function o7(s,e){if(Bg(s,e.signer))throw new Error("Session already exists");let t=Tv(s,{type:"session-permissions",...e});return Qf(t)}function c7(s,e){let r=Nv(s,{type:"identity-signer",identitySigner:e});return r?Qf(r):null}function u7(s,e){if(Zf(s).some(r=>P.isEqual(r,e)))throw new Error("Identity signer already exists");let t=Tv(s,{type:"identity-signer",identitySigner:e});return Qf(t)}function Tv(s,e){return [s,e]}function X8(s){if(kg(s)||hr(s))return [s];let e=[];for(let t of s)e.push(...X8(t));return e}function Pg(s){if(s.length===1)return s[0];if(s.length===0)throw new Error("Cannot build a topology from an empty list");let e=Math.floor(s.length/2),t=s.slice(0,e),r=s.slice(e),n=Pg(t),i=Pg(r);return [n,i]}function Qf(s){return Pg(X8(s))}function Q8(s,e=BigInt(Math.floor(Date.now()/1e3))){if(hr(s))return s;if(Ws(s))return s.deadline<e?null:s;if(Gs(s)||Ks(s))return s;let t=[];for(let r of s){let n=Q8(r,e);n!==null&&t.push(n);}return t.length===0?null:t.length===1?t[0]:t}function Rg(s,e=[],t=[],r){if(Js(s)){let n=s.map(i=>Rg(i,e,t,r));return n.every(i=>hr(i))?ee.keccak256(f.concat(...n.map(i=>v.toBytes(i))),{as:"Hex"}):n}if(Ws(s))return e.includes(s.signer)?s:Fs(Jf(s));if(Ks(s))return t.length===0?Fs(Jf(s)):s;if(Gs(s))return r&&!P.isEqual(s.identitySigner,r)?Fs(Jf(s)):s;if(hr(s))return s;throw new Error("Invalid topology")}function l7(s,e){let t=Xf(s);if(!t)throw new Error("No blacklist found");let{blacklist:r}=t;return r.some(n=>P.isEqual(n,e))||(r.push(e),r.sort((n,i)=>BigInt(n)<BigInt(i)?-1:1)),s}function f7(s,e){let t=Xf(s);if(!t)throw new Error("No blacklist found");let{blacklist:r}=t,n=r.filter(i=>i!==e);return t.blacklist=n,s}function eC(s){if(!Array.isArray(s))return eC([s]);let e=[{type:"implicit-blacklist",blacklist:[]},...s.map(t=>({type:"identity-signer",identitySigner:t}))];return Pg(e)}var Hn={};ye(Hn,{decodeSessionSignature:()=>p7,encodeSessionCallSignatureForJson:()=>tC,encodeSessionSignature:()=>m7,hashPayloadWithCallIdx:()=>g7,isExplicitSessionCallSignature:()=>Bv,isImplicitSessionCallSignature:()=>Vg,sessionCallSignatureFromJson:()=>d7,sessionCallSignatureFromParsed:()=>sC,sessionCallSignatureToJson:()=>h7});function Vg(s){return "attestation"in s&&"identitySignature"in s&&"sessionSignature"in s}function Bv(s){return "permissionIndex"in s&&"sessionSignature"in s}function h7(s){return JSON.stringify(tC(s))}function tC(s){if(Vg(s))return {attestation:kt.encodeForJson(s.attestation),identitySignature:kv(s.identitySignature),sessionSignature:kv(s.sessionSignature)};if(Bv(s))return {permissionIndex:s.permissionIndex,sessionSignature:kv(s.sessionSignature)};throw new Error("Invalid call signature")}function d7(s){let e=JSON.parse(s);return sC(e)}function sC(s){if(s.attestation)return {attestation:kt.fromParsed(s.attestation),identitySignature:Pv(s.identitySignature),sessionSignature:Pv(s.sessionSignature)};if(s.permissionIndex)return {permissionIndex:s.permissionIndex,sessionSignature:Pv(s.sessionSignature)};throw new Error("Invalid call signature")}function kv(s){return `${s.r.toString()}:${s.s.toString()}:${s.yParity+27}`}function Pv(s){let e=s.split(":");if(e.length!==3)throw new Error("Signature must be in r:s:v format");let[t,r,n]=e;if(!t||!r||!n)throw new Error("Invalid signature format");return {r:f.toBigInt(f.fromHex(t,{size:32})),s:f.toBigInt(f.fromHex(r,{size:32})),yParity:parseInt(n,10)-27}}function m7(s,e,t,r=[],n=[]){let i=[];if(!Iv(e))throw new Error("Incomplete topology");if(!Zf(e).some(l=>P.isEqual(l,t)))throw new Error("Identity signer not found");e=Rg(e,r,n,t);let o=Og(e);if(Es(BigInt(o.length))>3)throw new Error("Session topology is too large");i.push(f.fromNumber(o.length,{size:3}),o);let c=new Map,u=[];if(s.filter(Vg).forEach(l=>{if(l.attestation){let h=kt.toJson(l.attestation);c.has(h)||(c.set(h,u.length),u.push(f.concat(kt.encode(l.attestation),$r(l.identitySignature))));}}),u.length>=128)throw new Error("Too many attestations");i.push(f.fromNumber(u.length,{size:1}),f.concat(...u));for(let l of s)if(Vg(l)){let h=kt.toJson(l.attestation),m=c.get(h);if(m===void 0)throw new Error("Failed to find attestation index");let y=128|m;i.push(f.fromNumber(y,{size:1}),$r(l.sessionSignature));}else if(Bv(l)){if(l.permissionIndex>Ig)throw new Error("Permission index is too large");let h=l.permissionIndex;i.push(f.fromNumber(h,{size:1}),$r(l.sessionSignature));}else throw new Error("Invalid call signature");return f.concat(...i)}function p7(s){let e=0,t=f.toNumber(s.slice(e,e+3));e+=3;let r=s.slice(e,e+t);e+=t;let n=Cv(r),i=f.toNumber(s.slice(e,e+1));e+=1;let a=[],o=[];for(let u=0;u<i;u++){let l=kt.decode(s.slice(e));e+=kt.encode(l).length,a.push(l);let h=Ea(s.slice(e,e+64));e+=64,o.push(h);}let c=[];for(;e<s.length;){let u=s[e];e+=1;let l=Ea(s.slice(e,e+64));if(e+=64,u&128){let h=u&127;if(h>=a.length)throw new Error("Invalid attestation index");c.push({attestation:a[h],identitySignature:o[h],sessionSignature:l});}else {let h=u;c.push({permissionIndex:BigInt(h),sessionSignature:l});}}return {topology:n,callSignatures:c}}function g7(s,e,t,r,n){if(n&&(P.isEqual(n,Oe.Dev1.sessions)||P.isEqual(n,Oe.Dev2.sessions)||P.isEqual(n,Oe.Rc3.sessions))){let c=e.calls[t],u=!P.isEqual(n,Oe.Rc3.sessions);return v.fromBytes(ee.keccak256(f.concat(f.fromNumber(r,{size:32}),f.fromNumber(e.space,{size:32}),f.fromNumber(e.nonce,{size:32}),u?f.from([]):f.fromNumber(t,{size:32}),f.fromHex(we.hashCall(c)))))}let a=e.parentWallets;e.parentWallets&&e.parentWallets.length>0&&e.parentWallets.pop();let o=we.hash(s,r,e);return e.parentWallets=a,v.fromBytes(ee.keccak256(f.concat(o,f.fromNumber(t,{size:32}))))}var Aa={};ye(Aa,{Dev1:()=>rC,Dev2:()=>nC,Dev2_4337:()=>iC,KnownContexts:()=>y7,Rc3:()=>aC,Rc3_4337:()=>oC,Rc4:()=>cC,Rc4_4337:()=>uC,Rc5:()=>lC,Rc5_4337:()=>fC,isKnownContext:()=>w7});var rC={factory:"0xe828630697817291140D6B7A42a2c3b7277bE45a",stage1:"0x2a4fB19F66F1427A5E363Bf1bB3be27b9A9ACC39",stage2:"0xe1299E4456b267123F7Aba29B72C2164ff501BDa",creationCode:"0x603e600e3d39601e805130553df33d3d34601c57363d3d373d363d30545af43d82803e903d91601c57fd5bf3"},nC={factory:"0xFE14B91dE3c5Ca74c4D24608EBcD4B2848aA6010",stage1:"0x300E98ae5bEA4A7291d62Eb0b9feD535E10095dD",stage2:"0x90cb0a8ccf40bEdA60896e408bdc7801033447C6",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},iC={factory:"0xFE14B91dE3c5Ca74c4D24608EBcD4B2848aA6010",stage1:"0x8Ae58FCc0Ee9b32994CA52c9854deb969DC8fa2A",stage2:"0x30f8e3AceAcDEac8a3F28935D87FD58DC5f71ad2",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},aC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x00000000000084fA81809Dd337311297C5594d62",stage2:"0x7438718F9E4b9B834e305A620EEeCf2B9E6eBE79",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},oC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000005A02E3218e820EA45102F84A35C7",stage2:"0x7706aaC0cc2C42C01CE17136F7475b0E46F2ABA1",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},cC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000003DF093bc4257E6dCE45D937EF161",stage2:"0x10bE1Abf3cD0918bb1079ECc6b8220c177F34088",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},uC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000003add039FF84b064B7347Fc23C444",stage2:"0x4B3E5735665057A0A15eE448A7293bC01e3b4De9",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},lC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000001f3C39d61698ab21131a12134454",stage2:"0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},fC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000009caFdeDb6f64Bf5F31a22124B2a8",stage2:"0xcBca3328a731deffE6Ce4c2fb51b585c3c37FB92",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},y7=[{name:"Dev1",development:!0,...rC},{name:"Dev2",development:!0,...nC},{name:"Dev2_4337",development:!0,...iC},{name:"Rc3",development:!0,...aC},{name:"Rc3_4337",development:!0,...oC},{name:"Rc4",development:!1,...cC},{name:"Rc4_4337",development:!1,...uC},{name:"Rc5",development:!1,...lC},{name:"Rc5_4337",development:!1,...fC}];function w7(s){return s.name!==void 0&&s.development!==void 0}var Oe={};ye(Oe,{Dev1:()=>O7,Dev2:()=>R7,Passkeys:()=>Rv,Rc3:()=>V7,Rc4:()=>D7,Rc5:()=>L7,Recovery:()=>Kv});var Rv={};ye(Rv,{decode:()=>x7,encode:()=>v7,fromTree:()=>b7,isValidSignature:()=>E7,metadataNode:()=>hC,metadataTree:()=>Ov,rootFor:()=>S7,toTree:()=>dC});function Ov(s){return typeof s=="object"?{type:"leaf",value:f.fromString(s.credentialId)}:s}function hC(s){return Fs(Ov(s))}function dC(s){let e=v.padLeft(s.x,32),t=v.padLeft(s.y,32),r=v.padLeft(s.requireUserVerification?"0x01":"0x00",32);return s.metadata?[[e,t],[r,Ov(s.metadata)]]:[[e,t],[r,v.padLeft("0x00",32)]]}function b7(s){if(!xs(s)||s.length!==2)throw new Error("Invalid tree");let[e,t]=s;if(!xs(e)||e.length!==2)throw new Error("Invalid tree for x,y");let[r,n]=e;if(!bt(r))throw new Error("Invalid x bytes");if(!bt(n))throw new Error("Invalid y bytes");let i=!1,a;if(xs(t)){if(t.length!==2)throw new Error("Invalid tree for c,metadata");let[o,c]=t;if(!bt(o))throw new Error("Invalid c bytes");if(i=v.toBytes(o)[31]===1,xs(c)){if(c.length!==2)throw new Error("Invalid metadata tree");let[l,h]=c;if(!Un(l))throw new Error("Invalid credentialId leaf");let m=new TextDecoder().decode(l.value);if(!xs(h)||h.length!==2)throw new Error("Invalid sub-branch for name and createdAt");let[y,g]=h;if(!Un(y)||!Un(g))throw new Error("Invalid metadata leaves");a={credentialId:m};}else if(bt(c))a=c;else throw new Error("Invalid metadata node")}else {if(!bt(t))throw new Error("Invalid c bytes");i=v.toBytes(t)[31]===1;}return {requireUserVerification:i,x:r,y:n,metadata:a}}function S7(s){return Fs(dC(s))}function v7(s){let e=s.clientDataJSON.indexOf('"challenge"'),t=s.clientDataJSON.indexOf('"type"'),r=s.authenticatorData.length,n=s.clientDataJSON.length;if(r>65535)throw new Error("Authenticator data size is too large");if(n>65535)throw new Error("Client data JSON size is too large");let i=r<=255?1:2,a=n<=255?1:2,o=e<=255?1:2,c=t<=255?1:2,u=0;u|=s.publicKey.requireUserVerification?1:0,u|=i-1<<1,u|=a-1<<2,u|=o-1<<3,u|=c-1<<4,s.embedMetadata&&(u|=64);let l=f.from([u]);if(s.embedMetadata){if(!s.publicKey.metadata)throw new Error("Metadata is not present in the public key");l=f.concat(l,v.toBytes(hC(s.publicKey.metadata)));}return l=f.concat(l,f.padLeft(f.fromNumber(r),i)),l=f.concat(l,s.authenticatorData),l=f.concat(l,f.padLeft(f.fromNumber(s.clientDataJSON.length),a)),l=f.concat(l,f.from(new TextEncoder().encode(s.clientDataJSON))),l=f.concat(l,f.padLeft(f.fromNumber(e),o)),l=f.concat(l,f.padLeft(f.fromNumber(t),c)),l=f.concat(l,f.padLeft(s.r,32)),l=f.concat(l,f.padLeft(s.s,32)),l=f.concat(l,f.fromHex(s.publicKey.x)),l=f.concat(l,f.fromHex(s.publicKey.y)),l}function E7(s,e){return Ln.verify({challenge:s,publicKey:{x:v.toBigInt(e.publicKey.x),y:v.toBigInt(e.publicKey.y),prefix:4},metadata:{authenticatorData:v.fromBytes(e.authenticatorData),challengeIndex:e.clientDataJSON.indexOf('"challenge"'),clientDataJSON:e.clientDataJSON,typeIndex:e.clientDataJSON.indexOf('"type"'),userVerificationRequired:e.publicKey.requireUserVerification},signature:{r:f.toBigInt(e.r),s:f.toBigInt(e.s)}})}function x7(s){let e=0,t=s[0];if(e+=1,t===void 0)throw new Error("Invalid flags");let r=(t&1)!==0,n=(t>>1&1)+1,i=(t>>2&1)+1,a=(t>>3&1)+1,o=(t>>4&1)+1,c=(t>>6&1)===1;if(t&32)throw new Error("Fallback to abi decode is not supported in this implementation");let u;if(c){let I=f.slice(s,e,e+32);u=v.fromBytes(I),e+=32;}let l=f.toNumber(f.slice(s,e,e+n));e+=n;let h=f.slice(s,e,e+l);e+=l;let m=f.toNumber(f.slice(s,e,e+i));e+=i;let y=f.slice(s,e,e+m);e+=m;let g=new TextDecoder().decode(y),w=f.toNumber(f.slice(s,e,e+a));e+=a;let b=f.toNumber(f.slice(s,e,e+o));e+=o;let C=f.slice(s,e,e+32);e+=32;let N=f.slice(s,e,e+32);e+=32;let x=f.slice(s,e,e+32);e+=32;let E=f.slice(s,e,e+32);return {publicKey:{requireUserVerification:r,x:v.fromBytes(x),y:v.fromBytes(E),metadata:u},r:C,s:N,authenticatorData:h,clientDataJSON:g,challengeIndex:w,typeIndex:b,embedMetadata:c}}var Kv={};ye(Kv,{DOMAIN_NAME:()=>A7,DOMAIN_VERSION:()=>I7,FLAG_BRANCH:()=>qv,FLAG_NODE:()=>$v,FLAG_RECOVERY_LEAF:()=>Mv,QUEUED_PAYLOAD_HASHES:()=>gC,QUEUE_PAYLOAD:()=>mC,TIMESTAMP_FOR_QUEUED_PAYLOAD:()=>pC,TOTAL_QUEUED_PAYLOADS:()=>yC,decodeTopology:()=>C7,encodeCalldata:()=>T7,encodeTopology:()=>Hv,fromGenericTree:()=>jv,fromRecoveryLeaves:()=>_v,getRecoveryLeaves:()=>Lv,hashConfiguration:()=>Dv,hashRecoveryPayload:()=>N7,isBranch:()=>Ia,isRecoveryLeaf:()=>Mc,isTree:()=>Vv,parseBranch:()=>Fv,queuedPayloadHashOf:()=>P7,timestampForQueuedPayload:()=>B7,toGenericTree:()=>Dg,totalQueuedPayloads:()=>k7,trimTopology:()=>Uv});var Mv=1,$v=3,qv=4,eh=f.fromString(`Sequence recovery leaf:
|
|
349
|
-
`),mC=ke.from(["function queuePayload(address _wallet, address _signer, (uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external"])[0],pC=ke.from(["function timestampForQueuedPayload(address _wallet, address _signer, bytes32 _payloadHash) external view returns (uint256)"])[0],gC=ke.from(["function queuedPayloadHashes(address _wallet, address _signer, uint256 _index) external view returns (bytes32)"])[0],yC=ke.from(["function totalQueuedPayloads(address _wallet, address _signer) external view returns (uint256)"])[0];function Mc(s){return typeof s=="object"&&s!==null&&s.type==="leaf"}function Ia(s){return Array.isArray(s)&&s.length===2&&Vv(s[0])&&Vv(s[1])}function Vv(s){return Mc(s)||bt(s)||Ia(s)}var A7="Sequence Wallet - Recovery Mode",I7="1";function Dv(s){return Fs(Dg(s))}function Lv(s){if(Mc(s))return {leaves:[s],isComplete:!0};if(bt(s))return {leaves:[],isComplete:!1};if(Ia(s)){let t=Lv(s[0]),r=Lv(s[1]);return {leaves:[...t.leaves,...r.leaves],isComplete:t.isComplete&&r.isComplete}}else throw new Error("Invalid topology")}function C7(s){let{nodes:e,leftover:t}=Fv(s);if(t.length>0)throw new Error("Leftover bytes in branch");return wC(e)}function Fv(s){if(s.length===0)throw new Error("Empty branch");let e=[],t=0;for(;t<s.length;){let r=s[t];if(r===Mv){if(s.length<t+32)throw new Error("Invalid recovery leaf");let n=P.from(v.fromBytes(s.slice(t+1,t+21))),i=f.toBigInt(s.slice(t+21,t+24)),a=f.toBigInt(s.slice(t+24,t+32));e.push({type:"leaf",signer:n,requiredDeltaTime:i,minTimestamp:a}),t+=32;continue}else if(r===$v){if(s.length<t+33)throw new Error("Invalid node");let n=v.fromBytes(s.slice(t+1,t+33));e.push(n),t+=33;continue}else if(r===qv){if(s.length<t+4)throw new Error("Invalid branch");let n=f.toNumber(s.slice(t+1,t+4));if(s.length<t+4+n)throw new Error("Invalid branch");let i=s.slice(t+4,t+4+n),{nodes:a,leftover:o}=Fv(i);if(o.length>0)throw new Error("Leftover bytes in sub-branch");let c=wC(a);e.push(c),t+=4+n;continue}else throw new Error("Invalid flag")}return {nodes:e,leftover:s.slice(t)}}function Uv(s,e){if(Mc(s))return s.signer===e?s:Dv(s);if(bt(s))return s;if(Ia(s)){let t=Uv(s[0],e),r=Uv(s[1],e);return bt(t)&&bt(r)?Dv(s):[t,r]}throw new Error("Invalid topology")}function Hv(s){if(Ia(s)){let e=Hv(s[0]),t=Hv(s[1]);if(Ia(s[1])){if(t.length>16777215)throw new Error("Branch too large");let n=f.fromNumber(qv),i=f.padLeft(f.fromNumber(t.length),3);return f.concat(e,n,i,t)}else return f.concat(e,t)}if(bt(s)){let e=f.fromNumber($v),t=f.fromHex(s,{size:32});return f.concat(e,t)}if(Mc(s)){let e=f.fromNumber(Mv),t=f.fromHex(s.signer,{size:20});if(s.requiredDeltaTime>16777215n)throw new Error("Required delta time too large");let r=f.padLeft(f.fromNumber(s.requiredDeltaTime),3);if(s.minTimestamp>18446744073709551615n)throw new Error("Min timestamp too large");let n=f.padLeft(f.fromNumber(s.minTimestamp),8);return f.concat(e,t,r,n)}throw new Error("Invalid topology")}function wC(s){if(s.length===0)throw new Error("Empty signature tree");if(s.length===1)return s[0];let e=s[0];for(let t=1;t<s.length;t++)e=[e,s[t]];return e}function _v(s){if(s.length===0)throw new Error("Cannot build a tree with zero leaves");if(s.length===1)return s[0];let e=Math.floor(s.length/2),t=_v(s.slice(0,e)),r=_v(s.slice(e));return [t,r]}function N7(s,e,t,r){let n=rv(s);return v.fromBytes(Vc(e,r?0:t,n))}function Dg(s){if(Mc(s))return {type:"leaf",value:f.concat(eh,f.fromHex(s.signer,{size:20}),f.padLeft(f.fromNumber(s.requiredDeltaTime),32),f.padLeft(f.fromNumber(s.minTimestamp),32))};if(bt(s))return s;if(Ia(s))return [Dg(s[0]),Dg(s[1])];throw new Error("Invalid topology")}function jv(s){if(Un(s)){let e=s.value;if(e.length!==eh.length+84||!f.isEqual(e.slice(0,eh.length),eh))throw new Error("Invalid recovery leaf format");let t=eh.length,r=P.from(v.fromBytes(e.slice(t,t+20))),n=f.toBigInt(e.slice(t+20,t+52)),i=f.toBigInt(e.slice(t+52,t+84));return {type:"leaf",signer:r,requiredDeltaTime:n,minTimestamp:i}}else {if(bt(s))return s;if(xs(s)){if(s.length!==2)throw new Error("Recovery tree only supports binary branches");return [jv(s[0]),jv(s[1])]}else throw new Error("Invalid tree format")}}function T7(s,e,t,r){let n;r.type==="erc1271"?n=r.data:n=f.toHex($r(r));let i=av(e);return se.encodeData(mC,[s,t,i,n])}async function k7(s,e,t,r){let n=await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(yC,[t,r])},"latest"]});return n==="0x"?0n:v.toBigInt(n)}async function P7(s,e,t,r,n){return await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(gC,[t,r,n])},"latest"]})}async function B7(s,e,t,r,n){let i=await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(pC,[t,r,n])},"latest"]});return v.toBigInt(i)}var O7={passkeys:"0x8f26281dB84C18aAeEa8a53F94c835393229d296",recovery:"0xd98da48C4FF9c19742eA5856A277424557C863a6",sessions:"0x06aa3a8F781F2be39b888Ac8a639c754aEe9dA29"},R7={passkeys:"0x4491845806B757D67BE05BbD877Cab101B9bee5C",recovery:"0xdED857b9b5142832634129aFfc1D67cD106b927c",sessions:"0x06aa3a8F781F2be39b888Ac8a639c754aEe9dA29"},V7={passkeys:"0x0000000000dc2d96870dc108c5E15570B715DFD2",recovery:"0x0000000000213697bCA95E7373787a40858a51C7",sessions:"0x0000000000CC58810c33F3a0D78aA1Ed80FaDcD8"},D7={passkeys:"0x0000000000005204F3711851EAD52CC9c241499a",recovery:"0x000000000001FC499c3E177DD56Febb0A4bc15b7",sessions:"0x00000000000030Bcc832F7d657f50D6Be35C92b3"},L7={passkeys:"0x0000000000005204F3711851EAD52CC9c241499a",recovery:"0x000000000000AB36D17eB1150116371520565205",sessions:"0x00000000000030Bcc832F7d657f50D6Be35C92b3"};var th={};ye(th,{ALL:()=>Gv,ChainId:()=>_,NetworkType:()=>de,getNetworkFromChainId:()=>H7,getNetworkFromName:()=>U7});var de;(function(s){s.MAINNET="mainnet",s.TESTNET="testnet";})(de||(de={}));var _={NONE:0,MAINNET:1,SEPOLIA:11155111,POLYGON:137,POLYGON_ZKEVM:1101,POLYGON_AMOY:80002,BSC:56,BSC_TESTNET:97,OPTIMISM:10,OPTIMISM_SEPOLIA:11155420,ARBITRUM:42161,ARBITRUM_SEPOLIA:421614,ARBITRUM_NOVA:42170,AVALANCHE:43114,AVALANCHE_TESTNET:43113,GNOSIS:100,BASE:8453,BASE_SEPOLIA:84532,HOMEVERSE_TESTNET:40875,HOMEVERSE:19011,XAI:660279,XAI_SEPOLIA:37714555429,TELOS:40,TELOS_TESTNET:41,B3:8333,B3_SEPOLIA:1993,APECHAIN:33139,APECHAIN_TESTNET:33111,BLAST:81457,BLAST_SEPOLIA:168587773,SKALE_NEBULA:1482601649,SKALE_NEBULA_TESTNET:37084624,SONEIUM_MINATO:1946,SONEIUM:1868,TOY_TESTNET:21e6,IMMUTABLE_ZKEVM:13371,IMMUTABLE_ZKEVM_TESTNET:13473,ETHERLINK:42793,ETHERLINK_TESTNET:128123,MOONBEAM:1284,MOONBASE_ALPHA:1287,MONAD:143,MONAD_TESTNET:10143,SOMNIA_TESTNET:50312,SOMNIA:5031,INCENTIV_TESTNET_V2:28802,KATANA:747474,SANDBOX_TESTNET:6252,ARC_TESTNET:5042002},Gv=[{chainId:_.MAINNET,type:de.MAINNET,name:"mainnet",title:"Ethereum",rpcUrl:be("mainnet"),logoUrl:Se(_.MAINNET),blockExplorer:{name:"Etherscan",url:"https://etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},{chainId:_.SEPOLIA,type:de.TESTNET,name:"sepolia",title:"Sepolia",rpcUrl:be("sepolia"),logoUrl:Se(_.SEPOLIA),blockExplorer:{name:"Etherscan (Sepolia)",url:"https://sepolia.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.POLYGON,type:de.MAINNET,name:"polygon",title:"Polygon",rpcUrl:be("polygon"),logoUrl:Se(_.POLYGON),blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com/"},nativeCurrency:{symbol:"POL",name:"POL",decimals:18}},{chainId:_.POLYGON_AMOY,type:de.TESTNET,name:"amoy",title:"Polygon Amoy",rpcUrl:be("amoy"),logoUrl:Se(_.POLYGON_AMOY),blockExplorer:{name:"OKLink (Amoy)",url:"https://www.oklink.com/amoy/"},nativeCurrency:{symbol:"aPOL",name:"Amoy POL",decimals:18}},{chainId:_.POLYGON_ZKEVM,type:de.MAINNET,name:"polygon-zkevm",title:"Polygon zkEVM",rpcUrl:be("polygon-zkevm"),logoUrl:Se(_.POLYGON_ZKEVM),blockExplorer:{name:"Polygonscan (zkEVM)",url:"https://zkevm.polygonscan.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BSC,type:de.MAINNET,name:"bsc",title:"BNB Smart Chain",rpcUrl:be("bsc"),logoUrl:Se(_.BSC),blockExplorer:{name:"BSCScan",url:"https://bscscan.com/"},nativeCurrency:{symbol:"BNB",name:"BNB",decimals:18}},{chainId:_.BSC_TESTNET,type:de.TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",rpcUrl:be("bsc-testnet"),logoUrl:Se(_.BSC_TESTNET),blockExplorer:{name:"BSCScan (Testnet)",url:"https://testnet.bscscan.com/"},nativeCurrency:{symbol:"tBNB",name:"Testnet BNB",decimals:18}},{chainId:_.OPTIMISM,type:de.MAINNET,name:"optimism",title:"Optimism",rpcUrl:be("optimism"),logoUrl:Se(_.OPTIMISM),blockExplorer:{name:"Etherscan (Optimism)",url:"https://optimistic.etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.OPTIMISM_SEPOLIA,type:de.TESTNET,name:"optimism-sepolia",title:"Optimism Sepolia",rpcUrl:be("optimism-sepolia"),logoUrl:Se(_.OPTIMISM_SEPOLIA),blockExplorer:{name:"Etherscan (Optimism Sepolia)",url:"https://sepolia-optimistic.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.ARBITRUM,type:de.MAINNET,name:"arbitrum",title:"Arbitrum One",rpcUrl:be("arbitrum"),logoUrl:Se(_.ARBITRUM),blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.ARBITRUM_SEPOLIA,type:de.TESTNET,name:"arbitrum-sepolia",title:"Arbitrum Sepolia",rpcUrl:be("arbitrum-sepolia"),logoUrl:Se(_.ARBITRUM_SEPOLIA),blockExplorer:{name:"Arbiscan (Sepolia Testnet)",url:"https://sepolia.arbiscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.ARBITRUM_NOVA,type:de.MAINNET,name:"arbitrum-nova",title:"Arbitrum Nova",rpcUrl:be("arbitrum-nova"),logoUrl:Se(_.ARBITRUM_NOVA),blockExplorer:{name:"Arbiscan Nova",url:"https://nova.arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.AVALANCHE,type:de.MAINNET,name:"avalanche",title:"Avalanche",rpcUrl:be("avalanche"),logoUrl:Se(_.AVALANCHE),blockExplorer:{name:"Snowtrace",url:"https://subnets.avax.network/c-chain/"},nativeCurrency:{symbol:"AVAX",name:"AVAX",decimals:18}},{chainId:_.AVALANCHE_TESTNET,type:de.TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",rpcUrl:be("avalanche-testnet"),logoUrl:Se(_.AVALANCHE_TESTNET),blockExplorer:{name:"Snowtrace (Testnet)",url:"https://subnets-test.avax.network/c-chain/"},nativeCurrency:{symbol:"tAVAX",name:"Testnet AVAX",decimals:18}},{chainId:_.GNOSIS,type:de.MAINNET,name:"gnosis",title:"Gnosis Chain",rpcUrl:be("gnosis"),logoUrl:Se(_.GNOSIS),blockExplorer:{name:"Gnosis Chain Explorer",url:"https://blockscout.com/xdai/mainnet/"},nativeCurrency:{symbol:"XDAI",name:"XDAI",decimals:18}},{chainId:_.BASE,type:de.MAINNET,name:"base",title:"Base (Coinbase)",rpcUrl:be("base"),logoUrl:Se(_.BASE),blockExplorer:{name:"Base Explorer",url:"https://basescan.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BASE_SEPOLIA,type:de.TESTNET,name:"base-sepolia",title:"Base Sepolia",rpcUrl:be("base-sepolia"),logoUrl:Se(_.BASE_SEPOLIA),blockExplorer:{name:"Base Sepolia Explorer",url:"https://base-sepolia.blockscout.com/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.HOMEVERSE,type:de.MAINNET,name:"homeverse",title:"Oasys Homeverse",rpcUrl:be("homeverse"),logoUrl:Se(_.HOMEVERSE),blockExplorer:{name:"Oasys Homeverse Explorer",url:"https://explorer.oasys.homeverse.games/"},nativeCurrency:{symbol:"OAS",name:"OAS",decimals:18}},{chainId:_.HOMEVERSE_TESTNET,type:de.TESTNET,name:"homeverse-testnet",title:"Oasys Homeverse Testnet",rpcUrl:be("homeverse-testnet"),logoUrl:Se(_.HOMEVERSE_TESTNET),blockExplorer:{name:"Oasys Homeverse Explorer (Testnet)",url:"https://explorer.testnet.oasys.homeverse.games/"},nativeCurrency:{symbol:"tOAS",name:"Testnet OAS",decimals:18}},{chainId:_.XAI,type:de.MAINNET,name:"xai",title:"Xai",rpcUrl:be("xai"),logoUrl:Se(_.XAI),blockExplorer:{name:"Xai Explorer",url:"https://explorer.xai-chain.net/"},nativeCurrency:{symbol:"XAI",name:"XAI",decimals:18}},{chainId:_.XAI_SEPOLIA,type:de.TESTNET,name:"xai-sepolia",title:"Xai Sepolia",rpcUrl:be("xai-sepolia"),logoUrl:Se(_.XAI_SEPOLIA),blockExplorer:{name:"Xai Sepolia Explorer",url:"https://testnet-explorer-v2.xai-chain.net/"},nativeCurrency:{symbol:"sXAI",name:"Sepolia XAI",decimals:18}},{chainId:_.B3,type:de.MAINNET,name:"b3",title:"B3",rpcUrl:be("b3"),logoUrl:Se(_.B3),blockExplorer:{name:"B3 Explorer",url:"https://explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.B3_SEPOLIA,type:de.TESTNET,name:"b3-sepolia",title:"B3 Sepolia",rpcUrl:be("b3-sepolia"),logoUrl:Se(_.B3_SEPOLIA),blockExplorer:{name:"B3 Sepolia Explorer",url:"https://sepolia.explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.APECHAIN,type:de.MAINNET,name:"apechain",title:"APE Chain",rpcUrl:be("apechain"),logoUrl:Se(_.APECHAIN),blockExplorer:{name:"APE Chain Explorer",url:"https://apechain.calderaexplorer.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:_.APECHAIN_TESTNET,type:de.TESTNET,name:"apechain-testnet",title:"APE Chain Testnet",rpcUrl:be("apechain-testnet"),logoUrl:Se(_.APECHAIN_TESTNET),blockExplorer:{name:"APE Chain Explorer",url:"https://curtis.explorer.caldera.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:_.BLAST,type:de.MAINNET,name:"blast",title:"Blast",rpcUrl:be("blast"),logoUrl:Se(_.BLAST),blockExplorer:{name:"Blast Explorer",url:"https://blastscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BLAST_SEPOLIA,type:de.TESTNET,name:"blast-sepolia",title:"Blast Sepolia",rpcUrl:be("blast-sepolia"),logoUrl:Se(_.BLAST_SEPOLIA),blockExplorer:{name:"Blast Sepolia Explorer",url:"https://sepolia.blastexplorer.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.TELOS,type:de.MAINNET,name:"telos",title:"Telos",rpcUrl:be("telos"),logoUrl:Se(_.TELOS),blockExplorer:{name:"Telos Explorer",url:"https://explorer.telos.net/network/"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:_.TELOS_TESTNET,type:de.TESTNET,name:"telos-testnet",title:"Telos Testnet",rpcUrl:be("telos-testnet"),logoUrl:Se(_.TELOS_TESTNET),blockExplorer:{name:"Telos Testnet Explorer",url:"https://explorer-test.telos.net/network"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:_.SKALE_NEBULA,type:de.MAINNET,name:"skale-nebula",title:"SKALE Nebula Gaming Hub",rpcUrl:be("skale-nebula"),logoUrl:Se(_.SKALE_NEBULA),blockExplorer:{name:"SKALE Nebula Gaming Hub Explorer",url:"https://green-giddy-denebola.explorer.mainnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:_.SKALE_NEBULA_TESTNET,type:de.TESTNET,name:"skale-nebula-testnet",title:"SKALE Nebula Gaming Hub Testnet",rpcUrl:be("skale-nebula-testnet"),logoUrl:Se(_.SKALE_NEBULA_TESTNET),blockExplorer:{name:"SKALE Nebula Gaming Hub Testnet Explorer",url:"https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:_.SONEIUM,type:de.MAINNET,name:"soneium",title:"Soneium",rpcUrl:be("soneium"),logoUrl:Se(_.SONEIUM),blockExplorer:{name:"Soneium Explorer",url:"https://soneium.blockscout.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.SONEIUM_MINATO,type:de.TESTNET,name:"soneium-minato",title:"Soneium Minato (Testnet)",rpcUrl:be("soneium-minato"),logoUrl:Se(_.SONEIUM_MINATO),blockExplorer:{name:"Soneium Minato Explorer",url:"https://explorer-testnet.soneium.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.TOY_TESTNET,type:de.TESTNET,name:"toy-testnet",title:"TOY (Testnet)",rpcUrl:be("toy-testnet"),logoUrl:Se(_.TOY_TESTNET),blockExplorer:{name:"TOY Testnet Explorer",url:"https://toy-chain-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"TOY",name:"TOY",decimals:18}},{chainId:_.IMMUTABLE_ZKEVM,type:de.MAINNET,name:"immutable-zkevm",title:"Immutable zkEVM",rpcUrl:be("immutable-zkevm"),logoUrl:Se(_.IMMUTABLE_ZKEVM),blockExplorer:{name:"Immutable zkEVM Explorer",url:"https://explorer.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:_.IMMUTABLE_ZKEVM_TESTNET,type:de.TESTNET,name:"immutable-zkevm-testnet",title:"Immutable zkEVM Testnet",rpcUrl:be("immutable-zkevm-testnet"),logoUrl:Se(_.IMMUTABLE_ZKEVM_TESTNET),blockExplorer:{name:"Immutable zkEVM Testnet Explorer",url:"https://explorer.testnet.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:_.MOONBEAM,type:de.MAINNET,name:"moonbeam",title:"Moonbeam",rpcUrl:be("moonbeam"),logoUrl:Se(_.MOONBEAM),blockExplorer:{name:"Moonscan",url:"https://moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:_.MOONBASE_ALPHA,type:de.TESTNET,name:"moonbase-alpha",title:"Moonbase Alpha",rpcUrl:be("moonbase-alpha"),logoUrl:Se(_.MOONBASE_ALPHA),blockExplorer:{name:"Moonscan (Moonbase Alpha)",url:"https://moonbase.moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:_.ETHERLINK,type:de.MAINNET,name:"etherlink",title:"Etherlink",rpcUrl:be("etherlink"),logoUrl:Se(_.ETHERLINK),blockExplorer:{name:"Etherlink Explorer",url:"https://explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:_.ETHERLINK_TESTNET,type:de.TESTNET,name:"etherlink-testnet",title:"Etherlink Testnet",rpcUrl:be("etherlink-testnet"),logoUrl:Se(_.ETHERLINK_TESTNET),blockExplorer:{name:"Etherlink Testnet Explorer",url:"https://testnet.explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:_.MONAD,type:de.MAINNET,name:"monad",title:"Monad",rpcUrl:be("monad"),logoUrl:Se(_.MONAD),blockExplorer:{name:"Monad Explorer",url:"https://mainnet-beta.monvision.io/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:_.MONAD_TESTNET,type:de.TESTNET,name:"monad-testnet",title:"Monad Testnet",rpcUrl:be("monad-testnet"),logoUrl:Se(_.MONAD_TESTNET),blockExplorer:{name:"Monad Testnet Explorer",url:"https://testnet.monadexplorer.com/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:_.SOMNIA,type:de.MAINNET,name:"somnia",title:"Somnia",rpcUrl:be("somnia"),logoUrl:Se(_.SOMNIA),blockExplorer:{name:"Somnia Explorer",url:"https://mainnet.somnia.w3us.site/"},nativeCurrency:{symbol:"SOMI",name:"SOMI",decimals:18}},{chainId:_.SOMNIA_TESTNET,type:de.TESTNET,name:"somnia-testnet",title:"Somnia Testnet",rpcUrl:be("somnia-testnet"),logoUrl:Se(_.SOMNIA_TESTNET),blockExplorer:{name:"Somnia Testnet Explorer",url:"https://somnia-testnet.socialscan.io/"},nativeCurrency:{symbol:"STT",name:"STT",decimals:18}},{chainId:_.INCENTIV_TESTNET_V2,type:de.TESTNET,name:"incentiv-testnet-v2",title:"Incentiv Testnet",rpcUrl:be("incentiv-testnet-v2"),logoUrl:Se(_.INCENTIV_TESTNET_V2),blockExplorer:{name:"Incentiv Testnet Explorer",url:"https://explorer.testnet.incentiv.net/"},nativeCurrency:{symbol:"TCENT",name:"TCENT",decimals:18}},{chainId:_.KATANA,type:de.MAINNET,name:"katana",title:"Katana",rpcUrl:be("katana"),logoUrl:Se(_.KATANA),blockExplorer:{name:"Katana Explorer",url:"https://katanascan.com/"},nativeCurrency:{symbol:"ETH",name:"ETH",decimals:18}},{chainId:_.SANDBOX_TESTNET,type:de.TESTNET,name:"sandbox-testnet",title:"Sandbox Testnet",rpcUrl:be("sandbox-testnet"),logoUrl:Se(_.SANDBOX_TESTNET),blockExplorer:{name:"Sandbox Testnet Explorer",url:"https://sandbox-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"SAND",name:"SAND",decimals:18}},{chainId:_.ARC_TESTNET,type:de.TESTNET,name:"arc-testnet",title:"Arc Testnet",rpcUrl:be("arc-testnet"),logoUrl:Se(_.ARC_TESTNET),blockExplorer:{name:"Arc Testnet Explorer",url:"https://1jr2dw1zdqvyes8u.blockscout.com/"},nativeCurrency:{symbol:"USDC",name:"USDC",decimals:6}}];function be(s){return `https://nodes.sequence.app/${s}`}function Se(s){return `https://assets.sequence.info/images/networks/medium/${s}.webp`}function U7(s){return Gv.find(e=>e.name===s)}function H7(s){return Gv.find(e=>e.chainId===Number(s))}var bC="$";function SC(s,e){var t="",r=e&&e.include,n=e&&e.exclude;n&&typeof n=="string"&&(n=[n]),r&&r.sort();var i=new WeakMap,a=e&&e.allowCircular,o=e&&e.filterUndefined,c=e&&e.undefinedInArrayToNull;return u(s,bC),t;function u(l,h){if(l===null||typeof l!="object"||l.toJSON!=null)t+=JSON.stringify(l);else if(Array.isArray(l)){var m=i.get(l);if(m!==void 0&&h.startsWith(m)){if(!a)throw new Error("Circular reference detected");t+='"[Circular:'+m+']"';return}i.set(l,h),t+="[";var y=!1;l.forEach(function(C,N){y&&(t+=","),y=!0,c&&C===void 0&&(C=null),u(C,h+"["+N+"]");}),t+="]";}else {var m=i.get(l);if(m!==void 0&&h.startsWith(m)){if(!a)throw new Error("Circular reference detected");t+='"[Circular:'+m+']"';return}i.set(l,h),t+="{";var g=!1,w=function(N){n&&n.includes(N)||(g&&(t+=","),g=!0,t+=JSON.stringify(N),t+=":",u(l[N],h+"."+N));};if(h===bC&&r)r.forEach(function(N){l.hasOwnProperty(N)&&w(N);});else {var b=Object.keys(l);o&&(b=b.filter(function(N){return l[N]!==void 0})),b.sort(),b.forEach(function(N){w(N);});}t+="}";}}}function Lg(s,e){return SC(s,{allowCircular:e,filterUndefined:!0,undefinedInArrayToNull:!0})}var _7="Webrpc",j7="webrpc@v0.23.1;gen-typescript@v0.16.3;identity-instrument@v0.1.0";var dr;(function(s){s.WebCrypto_Secp256r1="WebCrypto_Secp256r1",s.Ethereum_Secp256k1="Ethereum_Secp256k1";})(dr||(dr={}));var Fr;(function(s){s.Email="Email",s.OIDC="OIDC";})(Fr||(Fr={}));var qc;(function(s){s.OTP="OTP",s.IDToken="IDToken",s.AccessToken="AccessToken",s.AuthCode="AuthCode",s.AuthCodePKCE="AuthCodePKCE";})(qc||(qc={}));var Ug=class{hostname;fetch;path="/rpc/IdentityInstrument/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}commitVerifier=(e,t,r)=>this.fetch(this.url("CommitVerifier"),Wv(e,t,r)).then(n=>Jv(n).then(i=>({verifier:i.verifier,loginHint:i.loginHint,challenge:i.challenge})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})});completeAuth=(e,t,r)=>this.fetch(this.url("CompleteAuth"),Wv(e,t,r)).then(n=>Jv(n).then(i=>({signer:i.signer,identity:i.identity})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})});sign=(e,t,r)=>this.fetch(this.url("Sign"),Wv(e,t,r)).then(n=>Jv(n).then(i=>({signature:i.signature})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})})},Wv=(s={},e={},t=null)=>{let r={...e,"Content-Type":"application/json"};return r[_7]=j7,{method:"POST",headers:r,body:JSON.stringify(s||{}),signal:t}},Jv=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){let n="";throw r instanceof Error&&(n=r.message),Hg.new({status:s.status,cause:`JSON.parse(): ${n}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (M7[r]||Ke).new(t)}return t}),Ke=class s extends Error{name;code;message;status;cause;msg;constructor(e,t,r,n,i){super(r),this.name=e||"WebrpcError",this.code=typeof t=="number"?t:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof n=="number"?n:0,this.cause=i,Object.setPrototypeOf(this,s.prototype);}static new(e){return new this(e.error,e.code,e.message||e.msg,e.status,e.cause)}},zv=class s extends Ke{constructor(e="WebrpcEndpoint",t=0,r="endpoint error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},$c=class s extends Ke{constructor(e="WebrpcRequestFailed",t=-1,r="request failed",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Yv=class s extends Ke{constructor(e="WebrpcBadRoute",t=-2,r="bad route",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Zv=class s extends Ke{constructor(e="WebrpcBadMethod",t=-3,r="bad method",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Xv=class s extends Ke{constructor(e="WebrpcBadRequest",t=-4,r="bad request",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Hg=class s extends Ke{constructor(e="WebrpcBadResponse",t=-5,r="bad response",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Qv=class s extends Ke{constructor(e="WebrpcServerPanic",t=-6,r="server panic",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},eE=class s extends Ke{constructor(e="WebrpcInternalError",t=-7,r="internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},tE=class s extends Ke{constructor(e="WebrpcClientDisconnected",t=-8,r="client disconnected",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},sE=class s extends Ke{constructor(e="WebrpcStreamLost",t=-9,r="stream lost",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},rE=class s extends Ke{constructor(e="WebrpcStreamFinished",t=-10,r="stream finished",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},nE=class s extends Ke{constructor(e="InternalError",t=7100,r="Internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},iE=class s extends Ke{constructor(e="EncryptionError",t=7101,r="Encryption error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},aE=class s extends Ke{constructor(e="DatabaseError",t=7102,r="Database error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},oE=class s extends Ke{constructor(e="DataIntegrityError",t=7103,r="Data integrity error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},cE=class s extends Ke{constructor(e="IdentityProviderError",t=7104,r="Identity provider error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},uE=class s extends Ke{constructor(e="InvalidRequest",t=7200,r="The request was invalid",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},lE=class s extends Ke{constructor(e="InvalidSignature",t=7201,r="The signature was invalid",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},fE=class s extends Ke{constructor(e="KeyNotFound",t=7202,r="The authentication key was not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},hE=class s extends Ke{constructor(e="KeyExpired",t=7203,r="The authentication key expired",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},dE=class s extends Ke{constructor(e="SignerNotFound",t=7204,r="The signer was not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},mE=class s extends Ke{constructor(e="ProofVerificationFailed",t=7002,r="The authentication proof could not be verified",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},pE=class s extends Ke{constructor(e="AnswerIncorrect",t=7003,r="The provided answer is incorrect",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},gE=class s extends Ke{constructor(e="ChallengeExpired",t=7004,r="The challenge has expired",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},yE=class s extends Ke{constructor(e="TooManyAttempts",t=7005,r="Too many attempts",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},wE=class s extends Ke{constructor(e="OAuthError",t=7006,r="Failed to exchange OAuth credentials",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},bE=class s extends Ke{constructor(e="AccessError",t=7007,r="Access error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},vC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.InternalError="InternalError",s.EncryptionError="EncryptionError",s.DatabaseError="DatabaseError",s.DataIntegrityError="DataIntegrityError",s.IdentityProviderError="IdentityProviderError",s.InvalidRequest="InvalidRequest",s.InvalidSignature="InvalidSignature",s.KeyNotFound="KeyNotFound",s.KeyExpired="KeyExpired",s.SignerNotFound="SignerNotFound",s.ProofVerificationFailed="ProofVerificationFailed",s.AnswerIncorrect="AnswerIncorrect",s.ChallengeExpired="ChallengeExpired",s.TooManyAttempts="TooManyAttempts",s.OAuthError="OAuthError",s.AccessError="AccessError";})(vC||(vC={}));var EC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.InternalError=7100]="InternalError",s[s.EncryptionError=7101]="EncryptionError",s[s.DatabaseError=7102]="DatabaseError",s[s.DataIntegrityError=7103]="DataIntegrityError",s[s.IdentityProviderError=7104]="IdentityProviderError",s[s.InvalidRequest=7200]="InvalidRequest",s[s.InvalidSignature=7201]="InvalidSignature",s[s.KeyNotFound=7202]="KeyNotFound",s[s.KeyExpired=7203]="KeyExpired",s[s.SignerNotFound=7204]="SignerNotFound",s[s.ProofVerificationFailed=7002]="ProofVerificationFailed",s[s.AnswerIncorrect=7003]="AnswerIncorrect",s[s.ChallengeExpired=7004]="ChallengeExpired",s[s.TooManyAttempts=7005]="TooManyAttempts",s[s.OAuthError=7006]="OAuthError",s[s.AccessError=7007]="AccessError";})(EC||(EC={}));var M7={0:zv,[-1]:$c,[-2]:Yv,[-3]:Zv,[-4]:Xv,[-5]:Hg,[-6]:Qv,[-7]:eE,[-8]:tE,[-9]:sE,[-10]:rE,7100:nE,7101:iE,7102:aE,7103:oE,7104:cE,7200:uE,7201:lE,7202:fE,7203:hE,7204:dE,7002:mE,7003:pE,7004:gE,7005:yE,7006:wE,7007:bE};var Ca=class extends Error{};Ca.prototype.name="InvalidTokenError";function $7(s){return decodeURIComponent(atob(s).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}function q7(s){let e=s.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return $7(e)}catch{return atob(e)}}function AC(s,e){if(typeof s!="string")throw new Ca("Invalid token specified: must be a string");e||(e={});let t=e.header===!0?0:1,r=s.split(".")[t];if(typeof r!="string")throw new Ca(`Invalid token specified: missing part #${t+1}`);let n;try{n=q7(r);}catch(i){throw new Ca(`Invalid token specified: invalid base64 for part #${t+1} (${i.message})`)}try{return JSON.parse(n)}catch(i){throw new Ca(`Invalid token specified: invalid json for part #${t+1} (${i.message})`)}}var SE=class{},_g=class extends SE{issuer;audience;idToken;handle="";exp="";constructor(e,t,r){super(),this.issuer=e,this.audience=t,this.idToken=r;let n=AC(this.idToken),i=ee.keccak256(new TextEncoder().encode(this.idToken));this.handle=v.fromBytes(i),this.exp=n.exp?.toString()??"";}getCommitParams(){return {authMode:qc.IDToken,identityType:Fr.OIDC,handle:this.handle,metadata:{iss:this.issuer,aud:this.audience,exp:this.exp}}}getCompleteParams(){return {authMode:qc.IDToken,identityType:Fr.OIDC,verifier:this.handle,answer:this.idToken}}};var sh=class{scope;rpc;constructor(e,t,r=window.fetch){this.rpc=new Ug(e.endsWith("/")?e.slice(0,-1):e,r),this.scope=t;}async commitVerifier(e,t){let r={...t.getCommitParams(),scope:this.scope},n=await e.sign(f.fromString(Lg(r)));return this.rpc.commitVerifier({params:r,authKey:{address:e.address,keyType:e.keyType},signature:n})}async completeAuth(e,t){let r={...t.getCompleteParams(),signerType:dr.Ethereum_Secp256k1,scope:this.scope},n=await e.sign(f.fromString(Lg(r)));return this.rpc.completeAuth({params:r,authKey:{address:e.address,keyType:e.keyType},signature:n})}async sign(e,t){let r={scope:this.scope,signer:{address:e.signer,keyType:dr.Ethereum_Secp256k1},digest:v.fromBytes(t),nonce:v.fromNumber(Date.now())},n=await this.rpc.sign({params:r,authKey:{address:e.address,keyType:e.keyType},signature:await e.sign(f.fromString(Lg(r)))});return v.assert(n.signature),n.signature}};function vE(s){return {address:s.address,keyType:dr.WebCrypto_Secp256r1,signer:s.identitySigner,async sign(e){let t=await window.crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},s.privateKey,new Uint8Array(e));return v.fromBytes(new Uint8Array(t))}}}var jg=class{identityInstrument;authKey;constructor(e,t){this.identityInstrument=e,this.authKey=t;}get address(){if(!P.validate(this.authKey.identitySigner))throw new Error("No signer address found");return P.checksum(this.authKey.identitySigner)}async sign(e,t,r){let n=we.hash(e,t,r);return this.signDigest(n)}async signDigest(e){let t=await this.identityInstrument.sign(vE(this.authKey),e);return {type:"hash",...Tt.fromHex(t)}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,signer:this.address,timestamp:Date.now(),...r}))),i=await this.sign(t,0,n);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};function IC(s){return typeof s=="object"&&"signature"in s&&"imageHash"in s}var Fc={};ye(Fc,{Cached:()=>ME,Local:()=>HE,Remote:()=>jE,Sequence:()=>ch,getWalletsFor:()=>X7,multiplex:()=>l9,normalizeAddressKeys:()=>mr});var HE={};ye(HE,{IndexedDbStore:()=>LE,MemoryStore:()=>nh,Provider:()=>UE});var nh=class{configs=new Map;counterfactualWallets=new Map;payloads=new Map;signerSubdigests=new Map;signatures=new Map;sapientSignerSubdigests=new Map;sapientSignatures=new Map;trees=new Map;deepCopy(e){if(typeof structuredClone=="function")return structuredClone(e);if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(r=>this.deepCopy(r));if(e instanceof Map)return new Map(Array.from(e,([r,n])=>[this.deepCopy(r),this.deepCopy(n)]));if(e instanceof Set)return new Set(Array.from(e,r=>this.deepCopy(r)));let t={};for(let[r,n]of Object.entries(e))t[r]=this.deepCopy(n);return t}getSignatureKey(e,t){return `${e.toLowerCase()}-${t.toLowerCase()}`}getSapientSignatureKey(e,t,r){return `${e.toLowerCase()}-${r.toLowerCase()}-${t.toLowerCase()}`}async loadConfig(e){let t=this.configs.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveConfig(e,t){this.configs.set(e.toLowerCase(),this.deepCopy(t));}async loadCounterfactualWallet(e){let t=this.counterfactualWallets.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveCounterfactualWallet(e,t,r){this.counterfactualWallets.set(e.toLowerCase(),this.deepCopy({imageHash:t,context:r}));}async loadPayloadOfSubdigest(e){let t=this.payloads.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async savePayloadOfSubdigest(e,t){this.payloads.set(e.toLowerCase(),this.deepCopy(t));}async loadSubdigestsOfSigner(e){let t=this.signerSubdigests.get(e.toLowerCase());return t?Array.from(t).map(r=>r):[]}async loadSignatureOfSubdigest(e,t){let r=this.getSignatureKey(e,t),n=this.signatures.get(r);return n?this.deepCopy(n):void 0}async saveSignatureOfSubdigest(e,t,r){let n=this.getSignatureKey(e,t);this.signatures.set(n,this.deepCopy(r));let i=e.toLowerCase(),a=t.toLowerCase();this.signerSubdigests.has(i)||this.signerSubdigests.set(i,new Set),this.signerSubdigests.get(i).add(a);}async loadSubdigestsOfSapientSigner(e,t){let r=`${e.toLowerCase()}-${t.toLowerCase()}`,n=this.sapientSignerSubdigests.get(r);return n?Array.from(n).map(i=>i):[]}async loadSapientSignatureOfSubdigest(e,t,r){let n=this.getSapientSignatureKey(e,t,r),i=this.sapientSignatures.get(n);return i?this.deepCopy(i):void 0}async saveSapientSignatureOfSubdigest(e,t,r,n){let i=this.getSapientSignatureKey(e,t,r);this.sapientSignatures.set(i,this.deepCopy(n));let a=`${e.toLowerCase()}-${r.toLowerCase()}`,o=t.toLowerCase();this.sapientSignerSubdigests.has(a)||this.sapientSignerSubdigests.set(a,new Set),this.sapientSignerSubdigests.get(a).add(o);}async loadTree(e){let t=this.trees.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveTree(e,t){this.trees.set(e.toLowerCase(),this.deepCopy(t));}};var zs={};ye(zs,{Guard:()=>VE,Passkey:()=>NE,Pk:()=>IE,Session:()=>BE,SessionManager:()=>OE,isSapientSigner:()=>DE,isSigner:()=>Z7});var IE={};ye(IE,{Encrypted:()=>xE,MemoryPkStore:()=>_n,Pk:()=>AE});var xE={};ye(xE,{EncryptedPkStore:()=>Mg,EncryptedPksDb:()=>EE});var EE=class{localStorageKeyPrefix;tableName;dbName="pk-db";dbVersion=1;constructor(e="e_pk_key_",t="e_pk"){this.localStorageKeyPrefix=e,this.tableName=t;}computeDbKey(e){return `pk_${e.toLowerCase()}`}openDB(){return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(this.tableName)||n.createObjectStore(this.tableName);},r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error);})}async putData(e,t){let r=await this.openDB();return new Promise((n,i)=>{let c=r.transaction(this.tableName,"readwrite").objectStore(this.tableName).put(t,e);c.onsuccess=()=>n(),c.onerror=()=>i(c.error);})}async getData(e){let t=await this.openDB();return new Promise((r,n)=>{let o=t.transaction(this.tableName,"readonly").objectStore(this.tableName).get(e);o.onsuccess=()=>r(o.result),o.onerror=()=>n(o.error);})}async getAllData(){let e=await this.openDB();return new Promise((t,r)=>{let a=e.transaction(this.tableName,"readonly").objectStore(this.tableName).getAll();a.onsuccess=()=>t(a.result),a.onerror=()=>r(a.error);})}async generateAndStore(){let e=await window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),t=v.random(32),r=Lt.getPublicKey({privateKey:t}),n=P.fromPublicKey(r),i=this.localStorageKeyPrefix+n,a=await window.crypto.subtle.exportKey("jwk",e);window.localStorage.setItem(i,JSON.stringify(a));let c=new TextEncoder().encode(t),u=window.crypto.getRandomValues(new Uint8Array(12)),l=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:u},e,c),h={iv:u,data:l,keyPointer:i,address:n,publicKey:r},m=this.computeDbKey(n);return await this.putData(m,h),h}async getEncryptedEntry(e){let t=this.computeDbKey(e);return this.getData(t)}async getEncryptedPkStore(e){let t=await this.getEncryptedEntry(e);if(t)return new Mg(t)}async listAddresses(){return (await this.getAllData()).map(t=>t.address)}async remove(e){let t=this.computeDbKey(e);await this.putData(t,void 0);let r=this.localStorageKeyPrefix+e;window.localStorage.removeItem(r);}},Mg=class{encrypted;constructor(e){this.encrypted=e;}address(){return this.encrypted.address}publicKey(){return this.encrypted.publicKey}async signDigest(e){let t=window.localStorage.getItem(this.encrypted.keyPointer);if(!t)throw new Error("Encryption key not found in localStorage");let r=JSON.parse(t),n=await window.crypto.subtle.importKey("jwk",r,{name:"AES-GCM"},!1,["decrypt"]),i=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:this.encrypted.iv},n,this.encrypted.data),o=new TextDecoder().decode(i);return Lt.sign({payload:e,privateKey:o})}};var _n=class{privateKey;constructor(e){this.privateKey=e;}address(){return P.fromPublicKey(this.publicKey())}publicKey(){return Lt.getPublicKey({privateKey:this.privateKey})}signDigest(e){return Promise.resolve(Lt.sign({payload:e,privateKey:this.privateKey}))}},AE=class{privateKey;address;pubKey;constructor(e){this.privateKey=typeof e=="string"?new _n(e):e,this.pubKey=this.privateKey.publicKey(),this.address=this.privateKey.address();}async sign(e,t,r){let n=we.hash(e,t,r);return this.signDigest(n)}async signDigest(e){return {...await this.privateKey.signDigest(e),type:"hash"}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,signer:this.address,timestamp:Date.now(),...r}))),i=await this.sign(t,0,n);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};var NE={};ye(NE,{Passkey:()=>CE,isWitnessMessage:()=>CC});function CC(s){return typeof s=="object"&&s!==null&&"action"in s&&s.action==="consent-to-be-part-of-wallet"}var CE=class s{credentialId;publicKey;address;imageHash;embedMetadata;metadata;constructor(e){this.address=e.extensions.passkeys,this.publicKey=e.publicKey,this.credentialId=e.credentialId,this.embedMetadata=e.embedMetadata??!1,this.imageHash=Oe.Passkeys.rootFor(e.publicKey),this.metadata=e.metadata;}static async loadFromWitness(e,t,r,n){let i=await e.getWitnessForSapient(r,t.passkeys,n);if(!i)throw new Error("Witness for wallet not found");let a=i.payload;if(!we.isMessage(a))throw new Error("Witness payload is not a message");let o=JSON.parse(v.toString(a.message));if(!CC(o))throw new Error("Witness payload is not a witness message");let c=o.publicKey.metadata||o.metadata;if(typeof c=="string"||!c)throw new Error("Metadata does not contain credential id");let u=Oe.Passkeys.decode(f.fromHex(i.signature.data));return new s({credentialId:c.credentialId,extensions:t,publicKey:o.publicKey,embedMetadata:u.embedMetadata,metadata:c})}static async create(e,t){let r=t?.credentialName??`Sequence (${Date.now()})`,n=await Ln.createCredential({user:{name:r}}),i=v.fromNumber(n.publicKey.x),a=v.fromNumber(n.publicKey.y),o={credentialId:n.id},c=new s({credentialId:n.id,extensions:e,publicKey:{requireUserVerification:t?.requireUserVerification??!0,x:i,y:a,metadata:t?.embedMetadata?o:void 0},embedMetadata:t?.embedMetadata,metadata:o});return t?.stateProvider&&await t.stateProvider.saveTree(Oe.Passkeys.toTree(c.publicKey)),c}static async find(e,t){let r=await Ln.sign({challenge:v.random(32)});if(!r.raw)throw new Error("No credential returned");let n=f.fromHex(r.metadata.authenticatorData),i=ee.sha256(f.fromString(r.metadata.clientDataJSON),{as:"Bytes"}),a=f.concat(n,i),o=ee.sha256(a,{as:"Bytes"}),c=Oc.recoverPublicKey({payload:o,signature:{r:BigInt(r.signature.r),s:BigInt(r.signature.s),yParity:0}}),u=Oc.recoverPublicKey({payload:o,signature:{r:BigInt(r.signature.r),s:BigInt(r.signature.s),yParity:1}}),l={x:v.fromNumber(c.x),y:v.fromNumber(c.y)},h={x:v.fromNumber(u.x),y:v.fromNumber(u.y)},m={credentialId:r.raw.id},y=[Oe.Passkeys.rootFor({...l,requireUserVerification:!0}),Oe.Passkeys.rootFor({...l,requireUserVerification:!1}),Oe.Passkeys.rootFor({...l,requireUserVerification:!0,metadata:m}),Oe.Passkeys.rootFor({...l,requireUserVerification:!1,metadata:m}),Oe.Passkeys.rootFor({...h,requireUserVerification:!0}),Oe.Passkeys.rootFor({...h,requireUserVerification:!1}),Oe.Passkeys.rootFor({...h,requireUserVerification:!0,metadata:m}),Oe.Passkeys.rootFor({...h,requireUserVerification:!1,metadata:m})],w=(await Promise.all(y.map(async b=>{let C=await e.getWalletsForSapient(t.passkeys,b);return Object.keys(C).map(N=>({wallet:P.from(N),imageHash:b}))}))).flat().filter((b,C,N)=>N.findIndex(x=>P.isEqual(x.wallet,b.wallet)&&x.imageHash===b.imageHash)===C);if(w.length!==0)return w.length>1&&console.warn("Multiple signers found for passkey",w),s.loadFromWitness(e,t,w[0].wallet,w[0].imageHash)}async signSapient(e,t,r,n){if(this.imageHash!==n)throw new Error("Unexpected image hash");let i=v.fromBytes(we.hash(e,t,r)),a=await Ln.sign({challenge:i,credentialId:this.credentialId,userVerification:this.publicKey.requireUserVerification?"required":"discouraged"}),o=f.fromHex(a.metadata.authenticatorData),c=f.fromNumber(a.signature.r),u=f.fromNumber(a.signature.s),l=Oe.Passkeys.encode({publicKey:this.publicKey,r:c,s:u,authenticatorData:o,clientDataJSON:a.metadata.clientDataJSON,embedMetadata:this.embedMetadata});return {address:this.address,data:f.toHex(l),type:"sapient_compact"}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,publicKey:this.publicKey,metadata:this.metadata,timestamp:Date.now(),...r}))),i=await this.signSapient(t,0,n,this.imageHash);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};var BE={};ye(BE,{Explicit:()=>TE,Implicit:()=>kE,isExplicitSessionSigner:()=>$g,isImplicitSessionSigner:()=>PE});var NC="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",TE=class{_privateKey;address;sessionPermissions;constructor(e,t){this._privateKey=typeof e=="string"?new _n(e):e,this.address=this._privateKey.address(),this.sessionPermissions={...t,signer:this.address};}isValid(e,t){if(this.sessionPermissions.deadline<=BigInt(Math.floor(Date.now()/1e3)))return {isValid:!1,invalidReason:"Expired"};if(this.sessionPermissions.chainId!==0&&this.sessionPermissions.chainId!==t)return {isValid:!1,invalidReason:"Chain ID mismatch"};let r=Bs.getSessionPermissions(e,this.address);if(!r)return {isValid:!1,invalidReason:"Permission not found"};if(r.deadline!==this.sessionPermissions.deadline||r.chainId!==this.sessionPermissions.chainId||r.valueLimit!==this.sessionPermissions.valueLimit||r.permissions.length!==this.sessionPermissions.permissions.length)return {isValid:!1,invalidReason:"Permission mismatch"};for(let[n,i]of r.permissions.entries()){let a=this.sessionPermissions.permissions[n];if(!P.isEqual(i.target,a.target)||i.rules.length!==a.rules.length)return {isValid:!1,invalidReason:"Permission rule mismatch"};for(let[o,c]of i.rules.entries()){let u=a.rules[o];if(c.cumulative!==u.cumulative||c.operation!==u.operation||!f.isEqual(c.value,u.value)||c.offset!==u.offset||!f.isEqual(c.mask,u.mask))return {isValid:!1,invalidReason:"Permission rule mismatch"}}}return {isValid:!0}}async findSupportedPermission(e,t,r,n,i){if(!(this.sessionPermissions.chainId!==0&&this.sessionPermissions.chainId!==t)){if(r.value!==0n){if(!i)throw new Error("Value transaction validation requires a provider");let a=ee.keccak256(tt.encode([{type:"address",name:"signer"},{type:"address",name:"valueTrackingAddress"}],[this.address,NC])),{usageAmount:o}=await this.readCurrentUsageLimit(e,n,a,i),c=f.fromNumber(o+r.value,{size:32});if(f.toBigInt(c)>this.sessionPermissions.valueLimit)return}for(let a of this.sessionPermissions.permissions)if(await this.validatePermission(a,r,e,n,i))return a}}getPermissionUsageHash(e,t){let r={target:e.target,rules:e.rules.map(n=>({cumulative:n.cumulative,operation:n.operation,value:f.toHex(n.value),offset:n.offset,mask:f.toHex(n.mask)}))};return ee.keccak256(tt.encode([{type:"address",name:"signer"},qr.permissionStructAbi,{type:"uint256",name:"ruleIndex"}],[this.address,r,BigInt(t)]))}getValueUsageHash(){return ee.keccak256(tt.encode([{type:"address",name:"signer"},{type:"address",name:"valueTrackingAddress"}],[this.address,NC]))}async validatePermission(e,t,r,n,i){if(!P.isEqual(e.target,t.to))return !1;for(let[a,o]of e.rules.entries()){let u=f.padRight(f.fromHex(t.data).slice(Number(o.offset),Number(o.offset)+32),32).map((l,h)=>l&o.mask[h]);if(o.cumulative)if(i){let{usageAmount:l}=await this.readCurrentUsageLimit(r,n,this.getPermissionUsageHash(e,a),i);u=f.fromNumber(l+f.toBigInt(u),{size:32});}else throw new Error("Cumulative rules require a provider");if(o.operation===qr.ParameterOperation.EQUAL&&!f.isEqual(u,o.value)||o.operation===qr.ParameterOperation.LESS_THAN_OR_EQUAL&&f.toBigInt(u)>f.toBigInt(o.value)||o.operation===qr.ParameterOperation.NOT_EQUAL&&f.isEqual(u,o.value)||o.operation===qr.ParameterOperation.GREATER_THAN_OR_EQUAL&&f.toBigInt(u)<f.toBigInt(o.value))return !1}return !0}async supportedCall(e,t,r,n,i){return P.isEqual(r.to,n)&&v.size(r.data)>4&&v.isEqual(v.slice(r.data,0,4),se.getSelector(nt.INCREMENT_USAGE_LIMIT))?!0:!!await this.findSupportedPermission(e,t,r,n,i)}async signCall(e,t,r,n,i,a){let o=r.calls[n],c;if(P.isEqual(o.to,i)&&v.size(o.data)>4&&v.isEqual(v.slice(o.data,0,4),se.getSelector(nt.INCREMENT_USAGE_LIMIT)))c=0;else {let h=await this.findSupportedPermission(e,t,o,i,a);if(!h)throw new Error("Invalid permission");if(c=this.sessionPermissions.permissions.indexOf(h),c===-1)throw new Error("Invalid permission")}let u=Hn.hashPayloadWithCallIdx(e,r,n,t,i),l=await this._privateKey.signDigest(f.fromHex(u));return {permissionIndex:BigInt(c),sessionSignature:l}}async readCurrentUsageLimit(e,t,r,n){let i=se.encodeData(nt.GET_LIMIT_USAGE,[e,r]),a=await n.request({method:"eth_call",params:[{to:t,data:i},"latest"]}),o=se.decodeResult(nt.GET_LIMIT_USAGE,a);return {usageHash:r,usageAmount:o}}async prepareIncrements(e,t,r,n,i){let a=[],o=this.getValueUsageHash(),u=(await this.readCurrentUsageLimit(e,n,o,i)).usageAmount;for(let h of r){let m=await this.findSupportedPermission(e,t,h,n,i);if(m){for(let[y,g]of m.rules.entries()){if(!g.cumulative)continue;let b=f.padRight(f.fromHex(h.data).slice(Number(g.offset),Number(g.offset)+32),32).map((x,E)=>x&g.mask[E]);if(f.toBigInt(b)===0n)continue;let C=this.getPermissionUsageHash(m,y),N=a.find(x=>v.isEqual(x.usageHash,C));N?N.increment+=f.toBigInt(b):a.push({usageHash:C,increment:f.toBigInt(b)});}u+=h.value;}}if(a.length===0&&u===0n)return [];let l=await Promise.all(a.map(async({usageHash:h,increment:m})=>{if(m===0n)return null;let y=await this.readCurrentUsageLimit(e,n,h,i);if(v.isEqual(h,o)&&y.usageAmount+m>this.sessionPermissions.valueLimit)throw new Error("Value transaction validation failed");return {usageHash:h,usageAmount:y.usageAmount+m}})).then(h=>h.filter(m=>m!==null));return u>0n&&l.push({usageHash:o,usageAmount:u}),l}};var kE=class{_attestation;_sessionManager;_privateKey;_identitySignature;address;constructor(e,t,r,n){if(this._attestation=t,this._sessionManager=n,this._privateKey=typeof e=="string"?new _n(e):e,this.address=this._privateKey.address(),this._attestation.approvedSigner!==this.address)throw new Error("Invalid attestation");if(this._attestation.authData.issuedAt>BigInt(Math.floor(Date.now()/1e3)))throw new Error("Attestation issued in the future");this._identitySignature=typeof r=="string"?Tt.fromHex(r):r;}get identitySigner(){let e=kt.hash(this._attestation),t=Lt.recoverPublicKey({payload:e,signature:this._identitySignature});return P.fromPublicKey(t)}isValid(e,t){let r=Bs.getIdentitySigners(e),n=this.identitySigner;return r.some(a=>P.isEqual(a,n))?Bs.getImplicitBlacklist(e)?.some(a=>P.isEqual(a,this.address))?{isValid:!1,invalidReason:"Blacklisted"}:{isValid:!0}:{isValid:!1,invalidReason:"Identity signer not found"}}async supportedCall(e,t,r,n,i){if(!i)throw new Error("Provider is required");try{let a=se.encodeData(TC,[e,{approvedSigner:this._attestation.approvedSigner,identityType:f.toHex(this._attestation.identityType),issuerHash:f.toHex(this._attestation.issuerHash),audienceHash:f.toHex(this._attestation.audienceHash),applicationData:f.toHex(this._attestation.applicationData),authData:this._attestation.authData},{to:r.to,value:r.value,data:r.data,gasLimit:r.gasLimit,delegateCall:r.delegateCall,onlyFallback:r.onlyFallback,behaviorOnError:BigInt(we.encodeBehaviorOnError(r.behaviorOnError))}]),o=await i.request({method:"eth_call",params:[{from:this._sessionManager,to:r.to,data:a},"latest"]}),c=v.from(se.decodeResult(TC,o)),u=f.toHex(kt.generateImplicitRequestMagic(this._attestation,e));return c===u}catch{return !1}}async signCall(e,t,r,n,i,a){let o=r.calls[n];if(!await this.supportedCall(e,t,o,i,a))throw new Error("Unsupported call");let u=Hn.hashPayloadWithCallIdx(e,r,n,t,i),l=await this._privateKey.signDigest(f.fromHex(u));return {attestation:this._attestation,identitySignature:this._identitySignature,sessionSignature:l}}},TC={type:"function",name:"acceptImplicitRequest",inputs:[{name:"wallet",type:"address",internalType:"address"},{name:"attestation",type:"tuple",internalType:"struct Attestation",components:[{name:"approvedSigner",type:"address",internalType:"address"},{name:"identityType",type:"bytes4",internalType:"bytes4"},{name:"issuerHash",type:"bytes32",internalType:"bytes32"},{name:"audienceHash",type:"bytes32",internalType:"bytes32"},{name:"applicationData",type:"bytes",internalType:"bytes"},{internalType:"struct AuthData",name:"authData",type:"tuple",components:[{internalType:"string",name:"redirectUrl",type:"string"},{internalType:"uint64",name:"issuedAt",type:"uint64"}]}]},{name:"call",type:"tuple",internalType:"struct Payload.Call",components:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"},{name:"gasLimit",type:"uint256",internalType:"uint256"},{name:"delegateCall",type:"bool",internalType:"bool"},{name:"onlyFallback",type:"bool",internalType:"bool"},{name:"behaviorOnError",type:"uint256",internalType:"uint256"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"};function $g(s){return "prepareIncrements"in s}function PE(s){return "identitySigner"in s}var F7=2n**80n-1n,OE=class s{wallet;stateProvider;address;_implicitSigners;_explicitSigners;_provider;constructor(e,t){this.wallet=e,this.stateProvider=t.stateProvider??e.stateProvider,this.address=t.sessionManagerAddress,this._implicitSigners=t.implicitSigners??[],this._explicitSigners=t.explicitSigners??[],this._provider=t.provider;}get imageHash(){return this.getImageHash()}async getImageHash(){let{configuration:e}=await this.wallet.getStatus(),t=Ve.findSignerLeaf(e,this.address);if(!(!t||!Ve.isSapientSignerLeaf(t)))return t.imageHash}get topology(){return this.getTopology()}async getTopology(){let e=await this.imageHash;if(!e)throw new Error(`Session configuration not found for image hash ${e}`);let t=await this.stateProvider.getTree(e);if(!t)throw new Error(`Session configuration not found for image hash ${e}`);return Bs.configurationTreeToSessionsTopology(t)}withProvider(e){return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:this._implicitSigners,explicitSigners:this._explicitSigners,provider:e})}withImplicitSigner(e){let t=[...this._implicitSigners,e];return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:t,explicitSigners:this._explicitSigners,provider:this._provider})}withExplicitSigner(e){let t=[...this._explicitSigners,e];return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:this._implicitSigners,explicitSigners:t,provider:this._provider})}async listSignerValidity(e){let t=await this.topology,r=new Map;for(let n of this._implicitSigners)r.set(n.address,n.isValid(t,e));for(let n of this._explicitSigners)r.set(n.address,n.isValid(t,e));return Array.from(r.entries()).map(([n,{isValid:i,invalidReason:a}])=>({signer:n,isValid:i,invalidReason:a}))}async findSignersForCalls(e,t,r){let n=await this.topology;if(Bs.getIdentitySigners(n).length===0)throw new Error("Identity signers not found");let a=[...this._implicitSigners,...this._explicitSigners];if(a.length===0)throw new Error("No signers match the topology");let o=[];for(let c of r){let u=!1,l;for(let h of a){try{if(u=await h.supportedCall(e,t,c,this.address,this._provider),u){let m=h.isValid(n,t);m.invalidReason==="Expired"&&(l=h),u=m.isValid;}}catch(m){console.error("findSignersForCalls error",m);continue}if(u){o.push(h);break}}if(!u)throw l?new Error(`Signer supporting call is expired: ${l.address}`):new Error(`No signer supported for call. Call: to=${c.to}, data=${c.data}, value=${c.value}, `)}return o}async prepareIncrement(e,t,r){if(r.length===0)throw new Error("No calls provided");let n=await this.findSignersForCalls(e,t,r),i=new Map;n.forEach((u,l)=>{let h=r[l],m=i.get(u)||[];i.set(u,[...m,h]);});let a=(await Promise.all(Array.from(i.entries()).map(async([u,l])=>$g(u)?u.prepareIncrements(e,t,l,this.address,this._provider):[]))).flat();if(a.length===0)return null;if(a.filter((u,l,h)=>l===h.findIndex(m=>m.usageHash===u.usageHash)).length!==a.length)throw new Error("Repeated usage hashes");let c=se.encodeData(nt.INCREMENT_USAGE_LIMIT,[a]);return {to:this.address,data:c,value:0n,delegateCall:!1,onlyFallback:!1,behaviorOnError:"revert",gasLimit:0n}}async signSapient(e,t,r,n){if(!P.isEqual(e,this.wallet.address))throw new Error("Wallet address mismatch");if(await this.imageHash!==n)throw new Error("Unexpected image hash");if(!we.isCalls(r)||r.calls.length===0)throw new Error("Only calls are supported");if(r.space>F7)throw new Error(`Space ${r.space} is too large`);let i=await this.findSignersForCalls(e,t,r.calls);if(i.length!==r.calls.length)throw new Error("No signer supported for call");let a=await Promise.all(i.map(async(m,y)=>{try{return m.signCall(e,t,r,y,this.address,this._provider)}catch(g){throw console.error("signSapient error",g),g}})),o=await this.prepareIncrement(e,t,r.calls);if(o){let m;if(P.isEqual(this.address,Oe.Dev1.sessions)||P.isEqual(this.address,Oe.Dev2.sessions)?m=r.calls[r.calls.length-1]:m=r.calls[0],!P.isEqual(o.to,m.to)||!v.isEqual(o.data,m.data))throw new Error("Actual increment call does not match expected increment call")}let c=[],u=[],l;if(await Promise.all(i.map(async m=>{let y=await m.address;if($g(m))c.find(g=>P.isEqual(g,y))||c.push(y);else if(PE(m)&&!u.find(g=>P.isEqual(g,y))){if(u.push(y),!l)l=m.identitySigner;else if(!P.isEqual(l,m.identitySigner))throw new Error("Multiple implicit signers with different identity signers")}})),!l){let m=Bs.getIdentitySigners(await this.topology);if(m.length===0)throw new Error("No identity signers found");l=m[0];}let h=Hn.encodeSessionSignature(a,await this.topology,l,c,u);return {type:"sapient",address:this.address,data:v.from(h)}}async isValidSapientSignature(e,t,r,n){if(!we.isCalls(r))return !1;if(!this._provider)throw new Error("Provider not set");let i=we.encodeSapient(t,r),a=se.encodeData(nt.RECOVER_SAPIENT_SIGNATURE,[i,n.data]);try{let o=await this._provider.request({method:"eth_call",params:[{from:e,to:this.address,data:a},"pending"]});return v.from(se.decodeResult(nt.RECOVER_SAPIENT_SIGNATURE,o))===await this.imageHash}catch(o){return console.error("recoverSapientSignature error",o),!1}}};var jn;(function(s){s.Calls="Calls",s.Message="Message",s.ConfigUpdate="ConfigUpdate",s.SessionImplicitAuthorize="SessionImplicitAuthorize";})(jn||(jn={}));var Mn;(function(s){s.Hash="Hash",s.Sapient="Sapient",s.EthSign="EthSign",s.Erc1271="Erc1271";})(Mn||(Mn={}));var kC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.Unauthorized="Unauthorized",s.PermissionDenied="PermissionDenied",s.SessionExpired="SessionExpired",s.MethodNotFound="MethodNotFound",s.RequestConflict="RequestConflict",s.Aborted="Aborted",s.Geoblocked="Geoblocked",s.RateLimited="RateLimited",s.InvalidArgument="InvalidArgument",s.Unavailable="Unavailable",s.QueryFailed="QueryFailed",s.ValidationFailed="ValidationFailed",s.NotFound="NotFound",s.RequiresTOTP="RequiresTOTP",s.RequiresPIN="RequiresPIN";})(kC||(kC={}));var PC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.Unauthorized=1e3]="Unauthorized",s[s.PermissionDenied=1001]="PermissionDenied",s[s.SessionExpired=1002]="SessionExpired",s[s.MethodNotFound=1003]="MethodNotFound",s[s.RequestConflict=1004]="RequestConflict",s[s.Aborted=1005]="Aborted",s[s.Geoblocked=1006]="Geoblocked",s[s.RateLimited=1007]="RateLimited",s[s.InvalidArgument=2001]="InvalidArgument",s[s.Unavailable=2002]="Unavailable",s[s.QueryFailed=2003]="QueryFailed",s[s.ValidationFailed=2004]="ValidationFailed",s[s.NotFound=3e3]="NotFound",s[s.RequiresTOTP=6600]="RequiresTOTP",s[s.RequiresPIN=6601]="RequiresPIN";})(PC||(PC={}));var VE=class{guard;address;constructor(e){this.guard=e,this.address=this.guard.address;}async signEnvelope(e,t){let r={...e.payload,parentWallets:void 0},n=J7(e.payload),{message:i,digest:a}=z7(e.wallet,e.chainId,r),o=e.signatures.map(Y7),c=await this.guard.signPayload(e.wallet,e.chainId,n,a,i,o,t?{id:t.id,token:t.code,resetAuth:t.resetAuth}:void 0);return {address:this.guard.address,signature:{type:"hash",...c}}}};function J7(s){switch(s.type){case"call":return jn.Calls;case"message":return jn.Message;case"config-update":return jn.ConfigUpdate;case"session-implicit-authorize":return jn.SessionImplicitAuthorize}throw new Error(`Payload type not supported by Guard: ${s.type}`)}function z7(s,e,t){if(we.isSessionImplicitAuthorize(t))return {message:f.fromString(kt.toJson(t.attestation)),digest:ee.keccak256(kt.encode(t.attestation))};let r=we.toTyped(s,e,t);return {message:f.fromString(Hf.serialize(r)),digest:f.fromHex(Hf.getSignPayload(r))}}function Y7(s){if(IC(s))return {type:Mn.Sapient,address:s.signature.address,imageHash:s.imageHash,data:s.signature.data};if(s.signature.type=="erc1271")return {type:Mn.Erc1271,address:s.signature.address,data:s.signature.data};let e={eth_sign:Mn.EthSign,hash:Mn.Hash}[s.signature.type];if(!e)throw new Error(`Signature type not supported by Guard: ${s.signature.type}`);return {type:e,address:s.address,data:Tt.toHex(s.signature)}}function DE(s){return "signSapient"in s}function Z7(s){return "sign"in s}async function X7(s,e){let t=await Q7(s,e);return Object.entries(t).map(([r,{chainId:n,payload:i,signature:a}])=>(v.assert(r),{wallet:r,chainId:n,payload:i,signature:a}))}async function Q7(s,e){if(DE(e)){let[t,r]=await Promise.all([e.address,e.imageHash]);return r?s.getWalletsForSapient(t,r):(console.warn("Sapient signer has no imageHash"),{})}else return s.getWallets(await e.address)}function mr(s){return Object.fromEntries(Object.entries(s).map(([e,t])=>[P.checksum(e),t]))}var qg="configs",Fg="counterfactualWallets",Kg="payloads",ih="signerSubdigests",Gg="signatures",ah="sapientSignerSubdigests",Wg="sapientSignatures",Jg="trees",LE=class{_db=null;dbName;constructor(e="sequence-indexeddb"){this.dbName=e;}async openDB(){return this._db?this._db:new Promise((e,t)=>{let r=indexedDB.open(this.dbName,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(qg)||n.createObjectStore(qg),n.objectStoreNames.contains(Fg)||n.createObjectStore(Fg),n.objectStoreNames.contains(Kg)||n.createObjectStore(Kg),n.objectStoreNames.contains(ih)||n.createObjectStore(ih),n.objectStoreNames.contains(Gg)||n.createObjectStore(Gg),n.objectStoreNames.contains(ah)||n.createObjectStore(ah),n.objectStoreNames.contains(Wg)||n.createObjectStore(Wg),n.objectStoreNames.contains(Jg)||n.createObjectStore(Jg);},r.onsuccess=()=>{this._db=r.result,e(this._db);},r.onerror=()=>{t(r.error);};})}async get(e,t){let r=await this.openDB();return new Promise((n,i)=>{let c=r.transaction(e,"readonly").objectStore(e).get(t);c.onsuccess=()=>n(c.result),c.onerror=()=>i(c.error);})}async put(e,t,r){let n=await this.openDB();return new Promise((i,a)=>{let u=n.transaction(e,"readwrite").objectStore(e).put(r,t);u.onsuccess=()=>i(),u.onerror=()=>a(u.error);})}async getSet(e,t){let r=await this.get(e,t)||new Set;return Array.isArray(r)?new Set(r):r}async putSet(e,t,r){await this.put(e,t,Array.from(r));}getSignatureKey(e,t){return `${e.toLowerCase()}-${t.toLowerCase()}`}getSapientSignatureKey(e,t,r){return `${e.toLowerCase()}-${r.toLowerCase()}-${t.toLowerCase()}`}async loadConfig(e){return this.get(qg,e.toLowerCase())}async saveConfig(e,t){await this.put(qg,e.toLowerCase(),t);}async loadCounterfactualWallet(e){return this.get(Fg,e.toLowerCase())}async saveCounterfactualWallet(e,t,r){await this.put(Fg,e.toLowerCase(),{imageHash:t,context:r});}async loadPayloadOfSubdigest(e){return this.get(Kg,e.toLowerCase())}async savePayloadOfSubdigest(e,t){await this.put(Kg,e.toLowerCase(),t);}async loadSubdigestsOfSigner(e){let t=await this.getSet(ih,e.toLowerCase());return Array.from(t)}async loadSignatureOfSubdigest(e,t){let r=this.getSignatureKey(e,t);return this.get(Gg,r.toLowerCase())}async saveSignatureOfSubdigest(e,t,r){let n=this.getSignatureKey(e,t);await this.put(Gg,n.toLowerCase(),r);let i=e.toLowerCase(),a=t.toLowerCase(),o=await this.getSet(ih,i);o.add(a),await this.putSet(ih,i,o);}async loadSubdigestsOfSapientSigner(e,t){let r=`${e.toLowerCase()}-${t.toLowerCase()}`,n=await this.getSet(ah,r);return Array.from(n)}async loadSapientSignatureOfSubdigest(e,t,r){let n=this.getSapientSignatureKey(e,t,r);return this.get(Wg,n.toLowerCase())}async saveSapientSignatureOfSubdigest(e,t,r,n){let i=this.getSapientSignatureKey(e,t,r).toLowerCase();await this.put(Wg,i,n);let a=`${e.toLowerCase()}-${r.toLowerCase()}`,o=t.toLowerCase(),c=await this.getSet(ah,a);c.add(o),await this.putSet(ah,a,c);}async loadTree(e){return this.get(Jg,e.toLowerCase())}async saveTree(e,t){await this.put(Jg,e.toLowerCase(),t);}};var UE=class{store;extensions;constructor(e=new nh,t=Oe.Rc5){this.store=e,this.extensions=t;}getConfiguration(e){return this.store.loadConfig(e)}async saveWallet(e,t){await this.saveConfig(e);let r=Ve.hashConfiguration(e);await this.saveCounterfactualWallet(_c.from(r,t),v.fromBytes(r),t);}async saveConfig(e){let t=f.toHex(Ve.hashConfiguration(e)),r=await this.store.loadConfig(t);if(r){let n=Ve.mergeTopology(r.topology,e.topology);return this.store.saveConfig(t,{...r,topology:n})}else return this.store.saveConfig(t,e)}saveCounterfactualWallet(e,t,r){this.store.saveCounterfactualWallet(e,t,r);}getDeploy(e){return this.store.loadCounterfactualWallet(e)}async getWalletsGeneric(e,t){let r=await Promise.all(e.map(i=>this.store.loadPayloadOfSubdigest(i))),n={};for(let i of r){if(!i)continue;let a=P.checksum(i.wallet);if(n[a])continue;let o=v.fromBytes(we.hash(a,i.chainId,i.content)),c=await t(o);c&&(n[a]={chainId:i.chainId,payload:i.content,signature:c});}return n}async getWallets(e){return mr(await this.getWalletsGeneric(await this.store.loadSubdigestsOfSigner(e),t=>this.store.loadSignatureOfSubdigest(e,t)))}async getWalletsForSapient(e,t){return mr(await this.getWalletsGeneric(await this.store.loadSubdigestsOfSapientSigner(e,t),r=>this.store.loadSapientSignatureOfSubdigest(e,r,t)))}getWitnessFor(e,t){let r=P.checksum(e);return this.getWallets(t).then(n=>n[r])}getWitnessForSapient(e,t,r){let n=P.checksum(e);return this.getWalletsForSapient(t,r).then(i=>i[n])}async saveWitnesses(e,t,r,n){let i=v.fromBytes(we.hash(e,t,r));await Promise.all([this.saveSignature(i,n),this.store.savePayloadOfSubdigest(i,{content:r,chainId:t,wallet:e})]);}async getConfigurationUpdates(e,t,r){let n=await this.store.loadConfig(t);if(!n)return [];let{signers:i,sapientSigners:a}=Ve.getSigners(n),o=await Promise.all([...i.map(g=>this.store.loadSubdigestsOfSigner(g)),...a.map(g=>this.store.loadSubdigestsOfSapientSigner(g.address,g.imageHash))]),c=[...new Set(o.flat())],u=await Promise.all(c.map(g=>this.store.loadPayloadOfSubdigest(g))),l=await Promise.all(u.filter(g=>g?.content&&we.isConfigUpdate(g.content)).map(async g=>({payload:g,nextImageHash:g.content.imageHash,config:await this.store.loadConfig(g.content.imageHash)}))),h,m=l.filter(g=>g.config&&g.config.checkpoint>n.checkpoint).sort((g,w)=>g.config.checkpoint>w.config.checkpoint?r?.allUpdates?1:-1:r?.allUpdates?-1:1);for(let g of m){if(h){if(r?.allUpdates){if(g.config.checkpoint<=h.checkpoint)continue}else if(g.config.checkpoint<=h.checkpoint)continue}let w=v.fromBytes(we.hash(e,g.payload.chainId,g.payload.content)),b=await Promise.all([...i.map(async x=>({signer:x,signature:await this.store.loadSignatureOfSubdigest(x,w)})),...a.map(async x=>({signer:x.address,imageHash:x.imageHash,signature:await this.store.loadSapientSignatureOfSubdigest(x.address,w,x.imageHash)}))]),C=0n,N=Ut.fillLeaves(n.topology,x=>{if(Ve.isSapientSignerLeaf(x)){let I=b.find(({signer:D,imageHash:K})=>K&&P.isEqual(D,x.address)&&K===x.imageHash)?.signature;if(I)return C+=x.weight,I}let E=b.find(({signer:I})=>P.isEqual(I,x.address))?.signature;if(E)return C+=x.weight,E});C<n.threshold||(h={nextImageHash:g.nextImageHash,checkpoint:g.config.checkpoint,signature:{noChainId:!0,configuration:{threshold:n.threshold,checkpoint:n.checkpoint,topology:N}}});}if(!h)return [];let y=await this.getConfigurationUpdates(e,h.nextImageHash,{allUpdates:!0});return [{imageHash:h.nextImageHash,signature:h.signature},...y]}async saveUpdate(e,t,r){let i={type:"config-update",imageHash:f.toHex(Ve.hashConfiguration(t))},a=we.hash(e,0,i);await this.store.savePayloadOfSubdigest(v.fromBytes(a),{content:i,chainId:0,wallet:e}),await this.saveConfig(t),await this.saveSignature(v.fromBytes(a),r.configuration.topology);}async saveSignature(e,t){if(Ut.isRawNode(t)){await Promise.all([this.saveSignature(e,t[0]),this.saveSignature(e,t[1])]);return}if(Ut.isRawNestedLeaf(t))return this.saveSignature(e,t.tree);if(Ut.isRawSignerLeaf(t)){let r=t.signature.type;if(r==="eth_sign"||r==="hash"){let n=Lt.recoverAddress({payload:r==="eth_sign"?Xp.getSignPayload(e):e,signature:t.signature});return this.store.saveSignatureOfSubdigest(n,e,t.signature)}if(Ut.isSignatureOfSapientSignerLeaf(t.signature))switch(t.signature.address.toLowerCase()){case this.extensions.passkeys.toLowerCase():let n=Oe.Passkeys.decode(f.fromHex(t.signature.data));if(!Oe.Passkeys.isValidSignature(e,n))throw new Error("Invalid passkey signature");return this.store.saveSapientSignatureOfSubdigest(t.signature.address,e,Oe.Passkeys.rootFor(n.publicKey),t.signature);default:throw new Error(`Unsupported sapient signer: ${t.signature.address}`)}}}getTree(e){return this.store.loadTree(e)}saveTree(e){return this.store.saveTree(As.hash(e),e)}saveConfiguration(e){return this.store.saveConfig(f.toHex(Ve.hashConfiguration(e)),e)}saveDeploy(e,t){return this.store.saveCounterfactualWallet(_c.from(f.fromHex(e),t),e,t)}async getPayload(e){let t=await this.store.loadPayloadOfSubdigest(e);return t?{chainId:t.chainId,payload:t.content,wallet:t.wallet}:void 0}savePayload(e,t,r){let n=v.fromBytes(we.hash(e,r,t));return this.store.savePayloadOfSubdigest(n,{content:t,chainId:r,wallet:e})}};var jE={};ye(jE,{DevHttpProvider:()=>_E});var _E=class{baseUrl;constructor(e){this.baseUrl=e.endsWith("/")?e.slice(0,-1):e;}async request(e,t,r){let n=`${this.baseUrl}${t}`,i={method:e,headers:{}};r&&e==="POST"&&(i.headers={"Content-Type":"application/json"},i.body=xa.toJSON(r));let a;try{a=await fetch(n,i);}catch(o){throw console.error(`Network error during ${e} request to ${n}:`,o),o}if(!a.ok){let o={message:`HTTP error! Status: ${a.status}`};try{let c=await a.text(),u=await xa.fromJSON(c);o={...o,...u};}catch{try{let u=await a.text();o.body=u;}catch{}}throw console.error("HTTP Request Failed:",o),new Error(o.message||`Request failed for ${e} ${t} with status ${a.status}`)}try{if(a.status===204)return;if(a.status===201&&e==="POST"){if((await a.clone().text()).trim()==="")return;let l=await a.text();return await xa.fromJSON(l)}if((await a.clone().text()).trim()==="")return;{let u=await a.text();return await xa.fromJSON(u)}}catch(o){console.error(`Error processing response body for ${e} ${n}:`,o);try{let c=await a.text();throw new Error(`Failed to parse JSON response from server. Status: ${a.status}. Body: "${c}". Original error: ${o instanceof Error?o.message:String(o)}`)}catch{throw new Error(`Failed to parse JSON response from server and could not read response body as text. Status: ${a.status}. Original error: ${o instanceof Error?o.message:String(o)}`)}}}async getConfiguration(e){return await this.request("GET",`/configuration/${e}`)}async getDeploy(e){return this.request("GET",`/deploy/${e}`)}async getWallets(e){return this.request("GET",`/wallets/signer/${e}`)}async getWalletsForSapient(e,t){return this.request("GET",`/wallets/sapient/${e}/${t}`)}async getWitnessFor(e,t){return this.request("GET",`/witness/${e}/signer/${t}`)}async getWitnessForSapient(e,t,r){return this.request("GET",`/witness/sapient/${e}/${t}/${r}`)}async getConfigurationUpdates(e,t,r){let n=r?.allUpdates?"?allUpdates=true":"";return this.request("GET",`/configuration-updates/${e}/from/${t}${n}`)}async getTree(e){return this.request("GET",`/tree/${e}`)}async saveWallet(e,t){await this.request("POST","/wallet",{deployConfiguration:e,context:t});}async saveWitnesses(e,t,r,n){await this.request("POST","/witnesses",{wallet:e,chainId:t,payload:r,signatures:n});}async saveUpdate(e,t,r){await this.request("POST","/update",{wallet:e,configuration:t,signature:r});}async saveTree(e){await this.request("POST","/tree",{tree:e});}saveConfiguration(e){return this.request("POST","/configuration",{config:e})}saveDeploy(e,t){return this.request("POST","/deploy",{imageHash:e,context:t})}async getPayload(e){return this.request("GET",`/payload/${e}`)}async savePayload(e,t,r){return this.request("POST","/payload",{wallet:e,payload:t,chainId:r})}};var ME=class{args;constructor(e){this.args=e;}async getConfiguration(e){let t=await this.args.cache.getConfiguration(e);if(t)return t;let r=await this.args.source.getConfiguration(e);return r&&await this.args.cache.saveConfiguration(r),r}async getDeploy(e){let t=await this.args.cache.getDeploy(e);if(t)return t;let r=await this.args.source.getDeploy(e);return r&&await this.args.cache.saveDeploy(r.imageHash,r.context),r}async getWallets(e){let t=mr(await this.args.cache.getWallets(e)),r=mr(await this.args.source.getWallets(e)),n={...t,...r};for(let[i,a]of Object.entries(n))P.assert(i),r[i]||await this.args.source.saveWitnesses(i,a.chainId,a.payload,{type:"unrecovered-signer",weight:1n,signature:a.signature}),t[i]||await this.args.cache.saveWitnesses(i,a.chainId,a.payload,{type:"unrecovered-signer",weight:1n,signature:a.signature});return n}async getWalletsForSapient(e,t){let r=await this.args.cache.getWalletsForSapient(e,t),n=await this.args.source.getWalletsForSapient(e,t),i={...r,...n};for(let[a,o]of Object.entries(i)){let c=P.from(a);n[c]||await this.args.source.saveWitnesses(c,o.chainId,o.payload,{type:"unrecovered-signer",weight:1n,signature:o.signature}),r[c]||await this.args.cache.saveWitnesses(c,o.chainId,o.payload,{type:"unrecovered-signer",weight:1n,signature:o.signature});}return i}async getWitnessFor(e,t){let r=await this.args.cache.getWitnessFor(e,t);if(r)return r;let n=await this.args.source.getWitnessFor(e,t);return n&&await this.args.cache.saveWitnesses(e,n.chainId,n.payload,{type:"unrecovered-signer",weight:1n,signature:n.signature}),n}async getWitnessForSapient(e,t,r){let n=await this.args.cache.getWitnessForSapient(e,t,r);if(n)return n;let i=await this.args.source.getWitnessForSapient(e,t,r);return i&&await this.args.cache.saveWitnesses(e,i.chainId,i.payload,{type:"unrecovered-signer",weight:1n,signature:i.signature}),i}async getConfigurationUpdates(e,t,r){return this.args.source.getConfigurationUpdates(e,t,r)}async getTree(e){let t=await this.args.cache.getTree(e);if(t)return t;let r=await this.args.source.getTree(e);return r&&await this.args.cache.saveTree(r),r}saveWallet(e,t){return this.args.source.saveWallet(e,t)}saveWitnesses(e,t,r,n){return this.args.source.saveWitnesses(e,t,r,n)}saveUpdate(e,t,r){return this.args.source.saveUpdate(e,t,r)}saveTree(e){return this.args.source.saveTree(e)}saveConfiguration(e){return this.args.source.saveConfiguration(e)}saveDeploy(e,t){return this.args.source.saveDeploy(e,t)}async getPayload(e){let t=await this.args.cache.getPayload(e);if(t)return t;let r=await this.args.source.getPayload(e);return r&&await this.args.cache.savePayload(r.wallet,r.payload,r.chainId),r}savePayload(e,t,r){return this.args.source.savePayload(e,t,r)}};var ch={};ye(ch,{Provider:()=>sx});var e9="Webrpc",t9="webrpc@v0.22.1;gen-typescript@v0.16.2;sessions@v0.0.1";var RC;(function(s){s.Transactions="Transactions",s.Message="Message",s.ConfigUpdate="ConfigUpdate",s.Digest="Digest";})(RC||(RC={}));var ze;(function(s){s.EIP712="EIP712",s.EthSign="EthSign",s.EIP1271="EIP1271",s.Sapient="Sapient",s.SapientCompact="SapientCompact";})(ze||(ze={}));var zg=class{hostname;fetch;path="/rpc/Sessions/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}ping=(e,t)=>this.fetch(this.url("Ping"),St({},e,t)).then(r=>vt(r).then(n=>({})),r=>{throw ht.new({cause:`fetch(): ${r.message||""}`})});config=(e,t,r)=>this.fetch(this.url("Config"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,config:i.config})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});tree=(e,t,r)=>this.fetch(this.url("Tree"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,tree:i.tree})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});payload=(e,t,r)=>this.fetch(this.url("Payload"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,payload:i.payload,wallet:i.wallet,chainID:i.chainID})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});wallets=(e,t,r)=>this.fetch(this.url("Wallets"),St(e,t,r)).then(n=>vt(n).then(i=>({wallets:i.wallets,cursor:i.cursor})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});deployHash=(e,t,r)=>this.fetch(this.url("DeployHash"),St(e,t,r)).then(n=>vt(n).then(i=>({deployHash:i.deployHash,context:i.context})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});witness=(e,t,r)=>this.fetch(this.url("Witness"),St(e,t,r)).then(n=>vt(n).then(i=>({witness:i.witness})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});configUpdates=(e,t,r)=>this.fetch(this.url("ConfigUpdates"),St(e,t,r)).then(n=>vt(n).then(i=>({updates:i.updates})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});migrations=(e,t,r)=>this.fetch(this.url("Migrations"),St(e,t,r)).then(n=>vt(n).then(i=>({migrations:i.migrations})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveConfig=(e,t,r)=>this.fetch(this.url("SaveConfig"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveTree=(e,t,r)=>this.fetch(this.url("SaveTree"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});savePayload=(e,t,r)=>this.fetch(this.url("SavePayload"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveWallet=(e,t,r)=>this.fetch(this.url("SaveWallet"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignature=(e,t,r)=>this.fetch(this.url("SaveSignature"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignature2=(e,t,r)=>this.fetch(this.url("SaveSignature2"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures2=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures2"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures3=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures3"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveMigration=(e,t,r)=>this.fetch(this.url("SaveMigration"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})})},St=(s={},e={},t=null)=>{let r={...e,"Content-Type":"application/json"};return r[e9]=t9,{method:"POST",headers:r,body:JSON.stringify(s||{}),signal:t}},vt=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){let n="";throw r instanceof Error&&(n=r.message),Yg.new({status:s.status,cause:`JSON.parse(): ${n}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (s9[r]||Jt).new(t)}return t}),Jt=class s extends Error{name;code;message;status;cause;msg;constructor(e,t,r,n,i){super(r),this.name=e||"WebrpcError",this.code=typeof t=="number"?t:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof n=="number"?n:0,this.cause=i,Object.setPrototypeOf(this,s.prototype);}static new(e){return new this(e.error,e.code,e.message||e.msg,e.status,e.cause)}},$E=class s extends Jt{constructor(e="WebrpcEndpoint",t=0,r="endpoint error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},ht=class s extends Jt{constructor(e="WebrpcRequestFailed",t=-1,r="request failed",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},qE=class s extends Jt{constructor(e="WebrpcBadRoute",t=-2,r="bad route",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},FE=class s extends Jt{constructor(e="WebrpcBadMethod",t=-3,r="bad method",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},KE=class s extends Jt{constructor(e="WebrpcBadRequest",t=-4,r="bad request",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Yg=class s extends Jt{constructor(e="WebrpcBadResponse",t=-5,r="bad response",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},GE=class s extends Jt{constructor(e="WebrpcServerPanic",t=-6,r="server panic",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},WE=class s extends Jt{constructor(e="WebrpcInternalError",t=-7,r="internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},JE=class s extends Jt{constructor(e="WebrpcClientDisconnected",t=-8,r="client disconnected",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},zE=class s extends Jt{constructor(e="WebrpcStreamLost",t=-9,r="stream lost",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},YE=class s extends Jt{constructor(e="WebrpcStreamFinished",t=-10,r="stream finished",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},ZE=class s extends Jt{constructor(e="InvalidArgument",t=1,r="invalid argument",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},XE=class s extends Jt{constructor(e="NotFound",t=2,r="not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},VC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.InvalidArgument="InvalidArgument",s.NotFound="NotFound";})(VC||(VC={}));var DC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.InvalidArgument=1]="InvalidArgument",s[s.NotFound=2]="NotFound";})(DC||(DC={}));var s9={0:$E,[-1]:ht,[-2]:qE,[-3]:FE,[-4]:KE,[-5]:Yg,[-6]:GE,[-7]:WE,[-8]:JE,[-9]:zE,[-10]:YE,1:ZE,2:XE};var sx=class{service;constructor(e="https://keymachine.sequence.app"){this.service=new zg(e,fetch);}async getConfiguration(e){let{version:t,config:r}=await this.service.config({imageHash:e});if(t!==3)throw new Error(`invalid configuration version ${t}, expected version 3`);return i9(r)}async getDeploy(e){let{deployHash:t,context:r}=await this.service.deployHash({wallet:e});return v.assert(t),P.assert(r.factory),P.assert(r.mainModule),P.assert(r.mainModuleUpgradable),v.assert(r.walletCreationCode),{imageHash:t,context:{factory:r.factory,stage1:r.mainModule,stage2:r.mainModuleUpgradable,creationCode:r.walletCreationCode}}}async getWallets(e){let t=await this.service.wallets({signer:e}),r=mr(t.wallets);return Object.fromEntries(Object.entries(r).map(([n,i])=>{switch(P.assert(n),v.assert(i.signature),i.type){case ze.EIP712:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"hash",...Tt.from(i.signature)}}];case ze.EthSign:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"eth_sign",...Tt.from(i.signature)}}];case ze.EIP1271:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"erc1271",address:e,data:i.signature}}];case ze.Sapient:throw new Error(`unexpected sapient signature by ${e}`);case ze.SapientCompact:throw new Error(`unexpected compact sapient signature by ${e}`)}}))}async getWalletsForSapient(e,t){let r=await this.service.wallets({signer:e,sapientHash:t}),n=mr(r.wallets);return Object.fromEntries(Object.entries(n).map(([i,a])=>{switch(P.assert(i),v.assert(a.signature),a.type){case ze.EIP712:throw new Error(`unexpected eip-712 signature by ${e}`);case ze.EthSign:throw new Error(`unexpected eth_sign signature by ${e}`);case ze.EIP1271:throw new Error(`unexpected erc-1271 signature by ${e}`);case ze.Sapient:return [i,{chainId:Number(a.chainID),payload:Ys(a.payload),signature:{type:"sapient",address:e,data:a.signature}}];case ze.SapientCompact:return [i,{chainId:Number(a.chainID),payload:Ys(a.payload),signature:{type:"sapient_compact",address:e,data:a.signature}}]}}))}async getWitnessFor(e,t){try{let{witness:r}=await this.service.witness({signer:t,wallet:e});switch(v.assert(r.signature),r.type){case ze.EIP712:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"hash",...Tt.from(r.signature)}};case ze.EthSign:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"eth_sign",...Tt.from(r.signature)}};case ze.EIP1271:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"erc1271",address:t,data:r.signature}};case ze.Sapient:throw new Error(`unexpected sapient signature by ${t}`);case ze.SapientCompact:throw new Error(`unexpected compact sapient signature by ${t}`)}}catch{}}async getWitnessForSapient(e,t,r){try{let{witness:n}=await this.service.witness({signer:t,wallet:e,sapientHash:r});switch(v.assert(n.signature),n.type){case ze.EIP712:throw new Error(`unexpected eip-712 signature by ${t}`);case ze.EthSign:throw new Error(`unexpected eth_sign signature by ${t}`);case ze.EIP1271:throw new Error(`unexpected erc-1271 signature by ${t}`);case ze.Sapient:return {chainId:Number(n.chainID),payload:Ys(n.payload),signature:{type:"sapient",address:t,data:n.signature}};case ze.SapientCompact:return {chainId:Number(n.chainID),payload:Ys(n.payload),signature:{type:"sapient_compact",address:t,data:n.signature}}}}catch{}}async getConfigurationUpdates(e,t,r){let{updates:n}=await this.service.configUpdates({wallet:e,fromImageHash:t,allUpdates:r?.allUpdates});return Promise.all(n.map(async({toImageHash:i,signature:a})=>{v.assert(i),v.assert(a);let o=Ut.decodeSignature(v.toBytes(a)),{configuration:c}=await Ut.recover(o,e,0,we.fromConfigUpdate(i),{provider:n9});return {imageHash:i,signature:{...o,configuration:c}}}))}async getTree(e){let{version:t,tree:r}=await this.service.tree({imageHash:e});if(t!==3)throw new Error(`invalid tree version ${t}, expected version 3`);return HC(r)}async getPayload(e){let{version:t,payload:r,wallet:n,chainID:i}=await this.service.payload({digest:e});if(t!==3)throw new Error(`invalid payload version ${t}, expected version 3`);return P.assert(n),{payload:Ys(r),wallet:n,chainId:Number(i)}}async saveWallet(e,t){await this.service.saveWallet({version:3,deployConfig:ex(e),context:{version:3,factory:t.factory,mainModule:t.stage1,mainModuleUpgradable:t.stage2,guestModule:nt.DefaultGuestAddress,walletCreationCode:t.creationCode}});}async saveWitnesses(e,t,r,n){await this.service.saveSignerSignatures3({wallet:e,payload:tx(r),chainID:t.toString(),signatures:oh(n).map(i=>{switch(i.type){case"hash":return {type:ze.EIP712,signature:Tt.toHex(Tt.from(i))};case"eth_sign":return {type:ze.EthSign,signature:Tt.toHex(Tt.from(i))};case"erc1271":return {type:ze.EIP1271,signer:i.address,signature:i.data,referenceChainID:t.toString()};case"sapient":return {type:ze.Sapient,signer:i.address,signature:i.data,referenceChainID:t.toString()};case"sapient_compact":return {type:ze.SapientCompact,signer:i.address,signature:i.data,referenceChainID:t.toString()}}})});}async saveUpdate(e,t,r){await this.service.saveSignature2({wallet:e,payload:tx(we.fromConfigUpdate(f.toHex(Ve.hashConfiguration(t)))),chainID:"0",signature:f.toHex(Ut.encodeSignature(r)),toConfig:ex(t)});}async saveTree(e){await this.service.saveTree({version:3,tree:UC(e)});}async saveConfiguration(e){await this.service.saveConfig({version:3,config:ex(e)});}async saveDeploy(e,t){}async savePayload(e,t,r){await this.service.savePayload({version:3,payload:tx(t),wallet:e,chainID:r.toString()});}},r9=[Oe.Dev1.passkeys,Oe.Dev2.passkeys,Oe.Rc3.passkeys,Oe.Rc4.passkeys,Oe.Rc5.passkeys].map(P.checksum),LC="function recoverSapientSignatureCompact(bytes32 _digest, bytes _signature) view returns (bytes32)",QE=se.from(LC),rx=class{request=async e=>{switch(e.method){case"eth_call":if(!e.params||!Array.isArray(e.params)||e.params.length===0)throw new Error("eth_call requires transaction parameters");let t=e.params[0];if(!t.data?.startsWith(se.getSelector(QE)))throw new Error(`unknown selector ${t.data?.slice(0,10)}, expected selector ${se.getSelector(QE)} for ${LC}`);if(!r9.includes(t.to?P.checksum(t.to):"0x"))throw new Error(`unknown passkey signer ${t.to}`);let[r,n]=se.decodeData(QE,t.data),i=Oe.Passkeys.decode(v.toBytes(n));if(Oe.Passkeys.isValidSignature(r,i))return Oe.Passkeys.rootFor(i.publicKey);throw new Error(`invalid passkey signature ${n} for digest ${r}`);default:throw new Error(`method ${e.method} not implemented`)}};on=e=>{throw new Error(`unable to listen for ${e}: not implemented`)};removeListener=e=>{throw new Error(`unable to remove listener for ${e}: not implemented`)}},n9=new rx;function ex(s){return {threshold:pr(s.threshold),checkpoint:pr(s.checkpoint),checkpointer:s.checkpointer,tree:Zg(s.topology)}}function i9(s){return s.checkpointer!==void 0&&P.assert(s.checkpointer),{threshold:BigInt(s.threshold),checkpoint:BigInt(s.checkpoint),checkpointer:s.checkpointer,topology:Xg(s.tree)}}function Zg(s){if(Ve.isNode(s))return [Zg(s[0]),Zg(s[1])];if(Ve.isSignerLeaf(s))return {weight:pr(s.weight),address:s.address};if(Ve.isSapientSignerLeaf(s))return {weight:pr(s.weight),address:s.address,imageHash:s.imageHash};if(Ve.isSubdigestLeaf(s))return {subdigest:s.digest};if(Ve.isAnyAddressSubdigestLeaf(s))return {subdigest:s.digest,isAnyAddress:!0};if(Ve.isNestedLeaf(s))return {weight:pr(s.weight),threshold:pr(s.threshold),tree:Zg(s.tree)};if(Ve.isNodeLeaf(s))return s;throw new Error(`unknown topology '${JSON.stringify(s)}'`)}function Xg(s){switch(typeof s){case"string":return v.assert(s),s;case"object":if(s instanceof Array)return [Xg(s[0]),Xg(s[1])];if("weight"in s){if("address"in s)return P.assert(s.address),s.imageHash?(v.assert(s.imageHash),{type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash}):{type:"signer",address:s.address,weight:BigInt(s.weight)};if("tree"in s)return {type:"nested",weight:BigInt(s.weight),threshold:BigInt(s.threshold),tree:Xg(s.tree)}}if("subdigest"in s)return v.assert(s.subdigest),{type:s.isAnyAddress?"any-address-subdigest":"subdigest",digest:s.subdigest}}throw new Error(`unknown config tree '${JSON.stringify(s)}'`)}function tx(s){if(we.isCalls(s))return {type:"call",space:pr(s.space),nonce:pr(s.nonce),calls:s.calls.map(a9)};if(we.isMessage(s))return {type:"message",message:s.message};if(we.isConfigUpdate(s))return {type:"config-update",imageHash:s.imageHash};if(we.isDigest(s))return {type:"digest",digest:s.digest};throw new Error(`unknown payload '${JSON.stringify(s)}'`)}function Ys(s){switch(s.type){case"call":return {type:"call",space:BigInt(s.space),nonce:BigInt(s.nonce),calls:s.calls.map(o9)};case"message":return v.assert(s.message),{type:"message",message:s.message};case"config-update":return v.assert(s.imageHash),{type:"config-update",imageHash:s.imageHash};case"digest":return v.assert(s.digest),{type:"digest",digest:s.digest}}}function a9(s){return {to:s.to,value:pr(s.value),data:s.data,gasLimit:pr(s.gasLimit),delegateCall:s.delegateCall,onlyFallback:s.onlyFallback,behaviorOnError:s.behaviorOnError}}function o9(s){return P.assert(s.to),v.assert(s.data),{to:s.to,value:BigInt(s.value),data:s.data,gasLimit:BigInt(s.gasLimit),delegateCall:s.delegateCall,onlyFallback:s.onlyFallback,behaviorOnError:s.behaviorOnError}}function UC(s){if(As.isBranch(s))return s.map(UC);if(As.isLeaf(s))return {data:f.toHex(s.value)};if(As.isNode(s))return s;throw new Error(`unknown tree '${JSON.stringify(s)}'`)}function HC(s){switch(typeof s){case"string":return v.assert(s),s;case"object":if(s instanceof Array)return s.map(HC);if("data"in s)return v.assert(s.data),{type:"leaf",value:v.toBytes(s.data)}}throw new Error(`unknown tree '${JSON.stringify(s)}'`)}function pr(s){return s<Number.MIN_SAFE_INTEGER||s>Number.MAX_SAFE_INTEGER?s.toString():Number(s)}function oh(s){if(Ut.isRawNode(s))return [...oh(s[0]),...oh(s[1])];if(Ut.isRawSignerLeaf(s))return [s.signature];if(Ve.isNestedLeaf(s))return oh(s.tree);if(Ut.isRawNestedLeaf(s))return oh(s.tree);if(Ve.isSignerLeaf(s))return s.signature?[s.signature]:[];if(Ve.isSapientSignerLeaf(s))return s.signature?[s.signature]:[];if(Ve.isSubdigestLeaf(s))return [];if(Ve.isAnyAddressSubdigestLeaf(s))return [];if(Ve.isNodeLeaf(s))return [];throw new Error(`unknown topology '${JSON.stringify(s)}'`)}function c9(s,e){return typeof e=="bigint"?e.toString():e instanceof Uint8Array?v.fromBytes(e):e}function Qg(s){return JSON.stringify(s,c9,2)}function e1(s){if(typeof s=="bigint")return s.toString();if(s instanceof Uint8Array)return v.fromBytes(s);if(typeof s=="string")return s.toLowerCase();if(Array.isArray(s))return s.map(e1);if(s&&typeof s=="object"){let e=[];for(let t of Object.keys(s).filter(r=>s[r]!==void 0).sort())e.push([t.toLowerCase(),e1(s[t])]);return e}return s}function u9(s,e){return JSON.stringify(e1(s))===JSON.stringify(e1(e))}function l9(s,e){let t={get(r,n,i){let a=s[n];return typeof a!="function"?Reflect.get(s,n):async(...o)=>{let c=String(n),u=Qg(o),l;try{l=await a.apply(s,o);}catch(m){let y=Math.floor(1e6*Math.random()).toString().padStart(6,"0");throw console.trace(`[${y}] calling ${c}: ${u}
|
|
350
|
-
[${y}] warning: reference ${c} threw:`,m),m}let h=
|
|
348
|
+
`),Wt(s.tree),f.padLeft(f.fromNumber(s.threshold),32),f.padLeft(f.fromNumber(s.weight),32)));if(wt(s))return ee.keccak256(f.concat(Wt(s[0]),Wt(s[1])));throw new Error("Invalid topology")}function bv(s){if(s.length===0)throw new Error("Cannot create topology from empty leaves");return s.length===1?s[0]:s.length===2?[s[0],s[1]]:[bv(s.slice(0,s.length/2)),bv(s.slice(s.length/2))]}function bg(s){return wt(s)?[...bg(s[0]),...bg(s[1])]:ns(s)?[...bg(s.tree)]:[s]}function LR(s){return JSON.stringify({threshold:s.threshold.toString(),checkpoint:s.checkpoint.toString(),topology:Sg(s.topology),checkpointer:s.checkpointer})}function UR(s){let e=JSON.parse(s);return {threshold:BigInt(e.threshold),checkpoint:BigInt(e.checkpoint),checkpointer:e.checkpointer,topology:vg(e.topology)}}function Sg(s){if(wt(s))return [Sg(s[0]),Sg(s[1])];if(Gt(s))return {type:"signer",address:s.address,weight:s.weight.toString()};if(Kt(s))return {type:"sapient-signer",address:s.address,weight:s.weight.toString(),imageHash:s.imageHash};if($s(s))return {type:"subdigest",digest:s.digest};if(Fs(s))return {type:"any-address-subdigest",digest:s.digest};if(Pt(s))return s;if(ns(s))return {type:"nested",tree:Sg(s.tree),weight:s.weight.toString(),threshold:s.threshold.toString()};throw new Error("Invalid topology")}function vg(s){if(Array.isArray(s)){if(s.length!==2)throw new Error("Invalid node structure in JSON");return [vg(s[0]),vg(s[1])]}if(typeof s=="string")return s;switch(s.type){case"signer":return {type:"signer",address:s.address,weight:BigInt(s.weight)};case"sapient-signer":return {type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash};case"subdigest":return {type:"subdigest",digest:s.digest};case"any-address-subdigest":return {type:"any-address-subdigest",digest:s.digest};case"nested":return {type:"nested",tree:vg(s.tree),weight:BigInt(s.weight),threshold:BigInt(s.threshold)};default:throw new Error("Invalid type in topology JSON")}}function HR(s){return s instanceof Promise?{signature:s}:typeof s=="object"&&s&&"signature"in s&&s.signature instanceof Promise?s:{signature:Promise.resolve(s)}}function xg(s,e){if(wt(s)&&wt(e))return [xg(s[0],e[0]),xg(s[1],e[1])];if(wt(s)&&!wt(e)){if(!Pt(e))throw new Error("Topology mismatch: cannot merge node with non-node that is not a node leaf");let t=Wt(e);if(!f.isEqual(t,Wt(s)))throw new Error("Topology mismatch: node hash does not match");return s}if(!wt(s)&&wt(e)){if(!Pt(s))throw new Error("Topology mismatch: cannot merge node with non-node that is not a node leaf");let t=Wt(s);if(!f.isEqual(t,Wt(e)))throw new Error("Topology mismatch: node hash does not match");return e}return jR(s,e)}function Uc(s){return Hc(s)?s.threshold>65535n||s.checkpoint>72057594037927935n||Uc(s.topology):wt(s)?Uc(s[0])||Uc(s[1]):ns(s)?Uc(s.tree)||s.weight>255n||s.threshold>65535n:Gt(s)||Kt(s)?s.weight>255n:!1}function Kf(s){return wt(s)?Math.max(Kf(s[0]),Kf(s[1]))+1:ns(s)?Kf(s.tree)+1:0}function _R(s){if(s.threshold===0n)throw new Error("unsafe-threshold-0");if(Uc(s))throw new Error("unsafe-invalid-values");if(Kf(s.topology)>32)throw new Error("unsafe-depth");let{maxWeight:e}=Gf(s.topology,()=>!0);if(e<s.threshold)throw new Error("unsafe-threshold")}function jR(s,e){if(Pt(s)&&Pt(e)){if(!v.isEqual(s,e))throw new Error("Topology mismatch: different node leaves");return s}if(Pt(s)&&!Pt(e)){let t=Wt(e);if(!f.isEqual(t,f.fromHex(s)))throw new Error("Topology mismatch: node leaf hash does not match");return e}if(!Pt(s)&&Pt(e)){let t=Wt(s);if(!f.isEqual(t,f.fromHex(e)))throw new Error("Topology mismatch: node leaf hash does not match");return s}if(Gt(s)&&Gt(e)){if(s.address!==e.address||s.weight!==e.weight)throw new Error("Topology mismatch: signer fields differ");if(!!s.signed!=!!e.signed||!!s.signature!=!!e.signature)throw new Error("Topology mismatch: signer signature fields differ");return s}if(Kt(s)&&Kt(e)){if(s.address!==e.address||s.weight!==e.weight||s.imageHash!==e.imageHash)throw new Error("Topology mismatch: sapient signer fields differ");if(!!s.signed!=!!e.signed||!!s.signature!=!!e.signature)throw new Error("Topology mismatch: sapient signature fields differ");return s}if($s(s)&&$s(e)){if(!f.isEqual(f.fromHex(s.digest),f.fromHex(e.digest)))throw new Error("Topology mismatch: subdigest fields differ");return s}if(Fs(s)&&Fs(e)){if(!f.isEqual(f.fromHex(s.digest),f.fromHex(e.digest)))throw new Error("Topology mismatch: any-address-subdigest fields differ");return s}if(ns(s)&&ns(e)){if(s.weight!==e.weight||s.threshold!==e.threshold)throw new Error("Topology mismatch: nested leaf fields differ");let t=xg(s.tree,e.tree);return {type:"nested",weight:s.weight,threshold:s.threshold,tree:t}}throw new Error("Topology mismatch: incompatible leaf types")}function Eg(s,e,t){return wt(s)?[Eg(s[0],e,t),Eg(s[1],e,t)]:ns(s)?{...s,tree:Eg(s.tree,e,t)}:(Gt(s)||Kt(s))&&P.isEqual(s.address,e)?{...s,address:t}:s}function MR(s,e){let t=s instanceof Uint8Array?s:Wt(s);return f.toHex(ee.keccak256(f.concat(f.from("0xff"),f.from(e.factory),t,ee.keccak256(f.concat(f.from(e.creationCode),f.padLeft(f.from(e.stage1),32)))),{as:"Bytes"}).subarray(12))}var kt={};ye(kt,{ACCEPT_IMPLICIT_REQUEST_MAGIC_PREFIX:()=>V8,decode:()=>$R,decodeAuthData:()=>B8,encode:()=>k8,encodeAuthData:()=>P8,encodeForJson:()=>O8,fromJson:()=>GR,fromParsed:()=>R8,generateImplicitRequestMagic:()=>KR,hash:()=>FR,toJson:()=>qR});function k8(s){let e=P8(s.authData),t=[f.fromHex(s.approvedSigner,{size:20}),f.padLeft(s.identityType.slice(0,4),4),f.padLeft(s.issuerHash,32),f.padLeft(s.audienceHash,32),f.fromNumber(s.applicationData.length,{size:3}),s.applicationData,e];return f.concat(...t)}function P8(s){return f.concat(f.fromNumber(s.redirectUrl.length,{size:3}),f.fromString(s.redirectUrl),f.fromNumber(s.issuedAt,{size:8}))}function $R(s){let e=f.toHex(s.slice(0,20)),t=s.slice(20,24),r=s.slice(24,56),n=s.slice(56,88),i=f.toNumber(s.slice(88,91)),a=s.slice(91,91+i),o=B8(s.slice(91+i));return {approvedSigner:e,identityType:t,issuerHash:r,audienceHash:n,applicationData:a,authData:o}}function B8(s){let e=f.toNumber(s.slice(0,3)),t=f.toString(s.slice(3,3+e)),r=f.toBigInt(s.slice(3+e,3+e+8));return {redirectUrl:t,issuedAt:r}}function FR(s){return ee.keccak256(k8(s))}function qR(s,e){return JSON.stringify(O8(s),null,e)}function O8(s){return {approvedSigner:s.approvedSigner.toString(),identityType:f.toHex(s.identityType),issuerHash:f.toHex(s.issuerHash),audienceHash:f.toHex(s.audienceHash),applicationData:f.toHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:s.authData.issuedAt.toString()}}}function GR(s){return R8(JSON.parse(s))}function R8(s){return {approvedSigner:P.from(s.approvedSigner),identityType:f.fromHex(s.identityType),issuerHash:f.fromHex(s.issuerHash),audienceHash:f.fromHex(s.audienceHash),applicationData:f.fromHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:BigInt(s.authData.issuedAt)}}}var V8=ee.keccak256(f.fromString("acceptImplicitRequest"));function KR(s,e){return ee.keccak256(f.concat(V8,f.fromHex(e,{size:20}),s.audienceHash,s.issuerHash))}var Fr={};ye(Fr,{MASK:()=>WR,MAX_PERMISSIONS_COUNT:()=>Ag,MAX_RULES_COUNT:()=>D8,ParameterOperation:()=>Sv,abiEncodePermission:()=>ZR,decodeSessionPermissions:()=>Ig,encodePermission:()=>L8,encodeSessionPermissions:()=>Wf,encodeSessionPermissionsForJson:()=>Cg,parameterRuleToJson:()=>e7,permissionFromJson:()=>s7,permissionStructAbi:()=>U8,permissionToJson:()=>QR,sessionPermissionsFromJson:()=>t7,sessionPermissionsFromParsed:()=>Ng,sessionPermissionsToJson:()=>XR});var Sv;(function(s){s[s.EQUAL=0]="EQUAL",s[s.NOT_EQUAL=1]="NOT_EQUAL",s[s.GREATER_THAN_OR_EQUAL=2]="GREATER_THAN_OR_EQUAL",s[s.LESS_THAN_OR_EQUAL=3]="LESS_THAN_OR_EQUAL";})(Sv||(Sv={}));var Ag=2**7-1,D8=2**8-1,WR={SELECTOR:f.padRight(f.fromHex("0xffffffff"),32),ADDRESS:f.padLeft(f.fromHex("0xffffffffffffffffffffffffffffffffffffffff"),32),BOOL:f.padLeft(f.fromHex("0x01"),32),BYTES1:f.padLeft(f.from(Array(1).fill(255)),32),BYTES2:f.padLeft(f.from(Array(2).fill(255)),32),BYTES4:f.padLeft(f.from(Array(4).fill(255)),32),BYTES8:f.padLeft(f.from(Array(8).fill(255)),32),BYTES16:f.padLeft(f.from(Array(16).fill(255)),32),BYTES32:f.padLeft(f.from(Array(32).fill(255)),32),INT8:f.padLeft(f.from(Array(1).fill(255)),32),INT16:f.padLeft(f.from(Array(2).fill(255)),32),INT32:f.padLeft(f.from(Array(4).fill(255)),32),INT64:f.padLeft(f.from(Array(8).fill(255)),32),INT128:f.padLeft(f.from(Array(16).fill(255)),32),INT256:f.padLeft(f.from(Array(32).fill(255)),32),UINT8:f.padLeft(f.from(Array(1).fill(255)),32),UINT16:f.padLeft(f.from(Array(2).fill(255)),32),UINT32:f.padLeft(f.from(Array(4).fill(255)),32),UINT64:f.padLeft(f.from(Array(8).fill(255)),32),UINT128:f.padLeft(f.from(Array(16).fill(255)),32),UINT256:f.padLeft(f.from(Array(32).fill(255)),32)};function Wf(s){if(s.permissions.length>Ag)throw new Error("Too many permissions");let e=s.permissions.map(L8);return f.concat(f.padLeft(f.fromHex(s.signer),20),f.padLeft(f.fromNumber(s.chainId),32),f.padLeft(f.fromNumber(s.valueLimit),32),f.padLeft(f.fromNumber(s.deadline,{size:8}),8),f.fromNumber(s.permissions.length,{size:1}),f.concat(...e))}function L8(s){if(s.rules.length>D8)throw new Error("Too many rules");let e=s.rules.map(JR);return f.concat(f.padLeft(f.fromHex(s.target),20),f.fromNumber(s.rules.length,{size:1}),f.concat(...e))}function JR(s){let e=Number(s.operation)<<1|(s.cumulative?1:0);return f.concat(f.fromNumber(e),f.padLeft(s.value,32),f.padLeft(f.fromNumber(s.offset),32),f.padLeft(s.mask,32))}function Ig(s){let e=f.toHex(s.slice(0,20)),t=f.toNumber(s.slice(20,52)),r=f.toBigInt(s.slice(52,84)),n=f.toBigInt(s.slice(84,92)),i=Number(s[92]),a=[],o=93;for(let c=0;c<i;c++){let{permission:u,consumed:l}=zR(s.slice(o));a.push(u),o+=l;}if(a.length===0)throw new Error("No permissions");return {signer:e,chainId:t,valueLimit:r,deadline:n,permissions:a}}function zR(s){let e=f.toHex(s.slice(0,20)),t=Number(s[20]),r=[],n=21;for(let i=0;i<t;i++){let a=s.slice(n,n+97);r.push(YR(a)),n+=97;}return {permission:{target:e,rules:r},consumed:n}}function YR(s){let e=Number(s[0]),t=(e&1)===1,r=e>>1,n=s.slice(1,33),i=f.toBigInt(s.slice(33,65)),a=s.slice(65,97);return {cumulative:t,operation:r,value:n,offset:i,mask:a}}var U8={internalType:"struct Permission",name:"permission",type:"tuple",components:[{internalType:"address",name:"target",type:"address"},{internalType:"struct ParameterRule[]",name:"rules",type:"tuple[]",components:[{internalType:"bool",name:"cumulative",type:"bool"},{internalType:"enum ParameterOperation",name:"operation",type:"uint8"},{internalType:"bytes32",name:"value",type:"bytes32"},{internalType:"uint256",name:"offset",type:"uint256"},{internalType:"bytes32",name:"mask",type:"bytes32"}]}]};function ZR(s){return tt.encode([U8],[{target:s.target,rules:s.rules.map(e=>({cumulative:e.cumulative,operation:e.operation,value:f.toHex(e.value),offset:e.offset,mask:f.toHex(e.mask)}))}])}function XR(s){return JSON.stringify(Cg(s))}function Cg(s){return {signer:s.signer.toString(),chainId:s.chainId.toString(),valueLimit:s.valueLimit.toString(),deadline:s.deadline.toString(),permissions:s.permissions.map(H8)}}function QR(s){return JSON.stringify(H8(s))}function H8(s){return {target:s.target.toString(),rules:s.rules.map(_8)}}function e7(s){return JSON.stringify(_8(s))}function _8(s){return {cumulative:s.cumulative,operation:s.operation,value:f.toHex(s.value),offset:s.offset.toString(),mask:f.toHex(s.mask)}}function t7(s){return Ng(JSON.parse(s))}function Ng(s){return {signer:P.from(s.signer),chainId:Number(s.chainId),valueLimit:BigInt(s.valueLimit),deadline:BigInt(s.deadline),permissions:s.permissions.map(j8)}}function s7(s){return j8(JSON.parse(s))}function j8(s){return {target:P.from(s.target),rules:s.rules.map(e=>({cumulative:e.cumulative,operation:e.operation,value:f.fromHex(e.value),offset:BigInt(e.offset),mask:f.fromHex(e.mask)}))}}var Bs={};ye(Bs,{SESSIONS_FLAG_BLACKLIST:()=>jc,SESSIONS_FLAG_BRANCH:()=>Ev,SESSIONS_FLAG_IDENTITY_SIGNER:()=>Yf,SESSIONS_FLAG_NODE:()=>vv,SESSIONS_FLAG_PERMISSIONS:()=>zf,addExplicitSession:()=>u7,addIdentitySigner:()=>f7,addToImplicitBlacklist:()=>h7,balanceSessionsTopology:()=>Qf,cleanSessionsTopology:()=>X8,configurationTreeToSessionsTopology:()=>W8,decodeLeafFromBytes:()=>G8,decodeSessionsTopology:()=>Iv,emptySessionsTopology:()=>Q8,encodeLeafToGeneric:()=>Jf,encodeSessionsTopology:()=>Bg,getExplicitSigners:()=>i7,getIdentitySigners:()=>Zf,getImplicitBlacklist:()=>n7,getImplicitBlacklistLeaf:()=>Xf,getSessionPermissions:()=>Pg,isCompleteSessionsTopology:()=>Av,isSessionsTopology:()=>xv,mergeSessionsTopologies:()=>Nv,minimiseSessionsTopology:()=>Og,removeExplicitSession:()=>c7,removeFromImplicitBlacklist:()=>d7,removeIdentitySigner:()=>l7,sessionsTopologyFromJson:()=>o7,sessionsTopologyToConfigurationTree:()=>K8,sessionsTopologyToJson:()=>a7});var As={};ye(As,{hash:()=>qs,isBranch:()=>xs,isLeaf:()=>Un,isNode:()=>bt,isTree:()=>M8});function xs(s){return Array.isArray(s)&&s.length>=2&&s.every(e=>M8(e))}function Un(s){return s.type==="leaf"&&f.validate(s.value)}function M8(s){return xs(s)||Un(s)||bt(s)}function bt(s){return v.validate(s)&&v.size(s)===32}function qs(s){if(xs(s)){let e=s.map(qs);if(e.length===0)throw new Error("Empty branch");let t=v.toBytes(e[0]);for(let r=1;r<e.length;r++)t=ee.keccak256(f.concat(t,v.toBytes(e[r])));return v.fromBytes(t)}return bt(s)?s:ee.keccak256(s.value,{as:"Hex"})}var zf=0,vv=1,Ev=2,jc=3,Yf=4,$8=32;function hr(s){return v.validate(s)&&v.size(s)===$8}function Gs(s){return typeof s=="object"&&s!==null&&"blacklist"in s}function Ks(s){return typeof s=="object"&&s!==null&&"identitySigner"in s}function Ws(s){return typeof s=="object"&&s!==null&&"signer"in s}function Tg(s){return Gs(s)||Ks(s)||Ws(s)}function Js(s){return Array.isArray(s)&&s.length>=2&&s.every(e=>xv(e))}function xv(s){return Js(s)||Tg(s)||hr(s)}function Av(s){if(!xv(s))return !1;let{identitySignerCount:e,blacklistCount:t}=F8(s);return e>=1&&t===1}function F8(s){let e=0,t=0;if(Js(s))for(let r of s){let{identitySignerCount:n,blacklistCount:i}=F8(r);e+=n,t+=i;}return Ks(s)&&e++,Gs(s)&&t++,{identitySignerCount:e,blacklistCount:t}}function Zf(s){return Ks(s)?[s.identitySigner]:Js(s)?s.map(Zf).flat():[]}function n7(s){let e=Xf(s);return e?e.blacklist:null}function Xf(s){if(Gs(s))return s;if(Js(s)){let e=s.map(Xf).filter(t=>t!==null);if(e.length>1)throw new Error("Multiple blacklists");if(e.length===1)return e[0]}return null}function Pg(s,e){if(Ws(s)&&P.isEqual(s.signer,e))return s;if(Js(s))for(let t of s){let r=Pg(t,e);if(r)return r}return null}function i7(s){return q8(s,[])}function q8(s,e){if(Ws(s))return [...e,s.signer];if(Js(s)){let t=[...e];for(let r of s)t.push(...q8(r,e));return t}return e}function Jf(s){if(Ws(s))return {type:"leaf",value:f.concat(f.fromNumber(zf),Wf(s))};if(Gs(s))return {type:"leaf",value:f.concat(f.fromNumber(jc),f.concat(...s.blacklist.map(e=>f.padLeft(f.fromHex(e),20))))};if(Ks(s))return {type:"leaf",value:f.concat(f.fromNumber(Yf),f.padLeft(f.fromHex(s.identitySigner),20))};throw new Error("Invalid leaf")}function G8(s){let e=s[0];if(e===jc){let t=[];for(let r=1;r<s.length;r+=20)t.push(f.toHex(s.slice(r,r+20)));return {type:"implicit-blacklist",blacklist:t}}if(e===Yf)return {type:"identity-signer",identitySigner:f.toHex(s.slice(1,21))};if(e===zf)return {type:"session-permissions",...Ig(s.slice(1))};throw new Error("Invalid leaf")}function K8(s){if(Js(s))return s.map(K8);if(Gs(s)||Ks(s)||Ws(s))return Jf(s);if(hr(s))return s;throw new Error("Invalid topology")}function W8(s){if(xs(s))return s.map(W8);if(bt(s))throw new Error("Unknown in configuration tree");return G8(s.value)}function Bg(s){if(Js(s)){let e=[];for(let i of s)e.push(Bg(i));let t=f.concat(...e),r=Es(BigInt(t.length));if(r>15)throw new Error("Branch too large");let n=Ev<<4|r;return f.concat(f.fromNumber(n),f.padLeft(f.fromNumber(t.length),r),t)}if(Ws(s)){let e=zf<<4,t=Wf(s);return f.concat(f.fromNumber(e),t)}if(hr(s)){let e=vv<<4;return f.concat(f.fromNumber(e),v.toBytes(s))}if(Gs(s)){let e=f.concat(...s.blacklist.map(r=>f.fromHex(r)));if(s.blacklist.length>=15){if(s.blacklist.length>65535)throw new Error("Blacklist too large");return f.concat(f.fromNumber(jc<<4|15),f.fromNumber(s.blacklist.length,{size:2}),e)}let t=jc<<4|s.blacklist.length;return f.concat(f.fromNumber(t),e)}if(Ks(s)){let e=Yf<<4;return f.concat(f.fromNumber(e),f.padLeft(f.fromHex(s.identitySigner),20))}throw new Error("Invalid topology")}function Iv(s){let{topology:e}=J8(s);return e}function J8(s){if(s.length===0)throw new Error("Empty topology bytes");let e=s[0],t=(e&240)>>4,r=e&15;if(t===Ev){if(r===0||r>15)throw new Error("Invalid branch size");let n=1,i=f.toNumber(s.slice(n,n+r));n+=r;let a=s.slice(n,n+i),o=[],c=0;for(;c<a.length;){let{topology:u,pointer:l}=J8(a.slice(c));o.push(u),c+=l;}return {topology:o,pointer:n+i}}else if(t===zf){let n=Ig(s.slice(1)),i=1+Wf(n).length;return {topology:{type:"session-permissions",...n},pointer:i}}else if(t===vv){let n=$8+1;if(s.length<n)throw new Error("Invalid node length");return {topology:v.fromBytes(s.slice(1,n)),pointer:n}}else if(t===jc){let n=1,i=r;r===15&&(i=f.toNumber(s.slice(n,n+2)),n+=2);let a=[];for(let o=0;o<i;o++){let c=s.slice(n+o*20,n+(o+1)*20);a.push(P.from(v.fromBytes(c)));}return {topology:{type:"implicit-blacklist",blacklist:a},pointer:n+i*20}}else if(t===Yf){if(s.length<21)throw new Error("Invalid identity signer length");return {topology:{type:"identity-signer",identitySigner:P.from(v.fromBytes(s.slice(1,21)))},pointer:21}}else throw new Error(`Invalid topology flag: ${t}`)}function a7(s){return JSON.stringify(z8(s))}function z8(s){if(hr(s))return s;if(Ws(s))return Cg(s);if(Gs(s)||Ks(s))return s;if(Js(s))return s.map(e=>z8(e));throw new Error("Invalid topology")}function o7(s){let e=JSON.parse(s);return Y8(e)}function Y8(s){if(Array.isArray(s))return s.map(t=>Y8(t));if(typeof s=="string"&&v.validate(s)&&v.size(s)===32)return s;if(typeof s=="object"&&s!==null&&"signer"in s&&"valueLimit"in s&&"deadline"in s&&"permissions"in s)return {type:"session-permissions",...Ng(s)};if(typeof s=="object"&&s!==null&&"identitySigner"in s)return {type:"identity-signer",identitySigner:s.identitySigner};if(typeof s=="object"&&s!==null&&"blacklist"in s)return {type:"implicit-blacklist",blacklist:s.blacklist.map(t=>P.from(t))};throw new Error("Invalid topology")}function Cv(s,e){if(Tg(s)&&Tg(e)){if(s.type===e.type){if(Ws(s)&&Ws(e)){if(P.isEqual(s.signer,e.signer))return null}else if(Gs(s)&&Gs(e)){let t=s.blacklist.filter(r=>!e.blacklist.includes(r));return t.length===0?null:{type:"implicit-blacklist",blacklist:t}}else if(Ks(s)&&Ks(e)&&P.isEqual(s.identitySigner,e.identitySigner))return null}}else if(hr(s)&&hr(e)&&v.isEqual(s,e))return null;if(Js(s)){let t=[];for(let r of s){let n=Cv(r,e);n!=null&&t.push(n);}return t.length===0?null:t.length===1?t[0]:t}return s}function c7(s,e){let t=Pg(s,e);if(!t)return s;let r=Cv(s,t);return r?Qf(r):null}function u7(s,e){if(Pg(s,e.signer))throw new Error("Session already exists");let t=Nv(s,{type:"session-permissions",...e});return Qf(t)}function l7(s,e){let r=Cv(s,{type:"identity-signer",identitySigner:e});return r?Qf(r):null}function f7(s,e){if(Zf(s).some(r=>P.isEqual(r,e)))throw new Error("Identity signer already exists");let t=Nv(s,{type:"identity-signer",identitySigner:e});return Qf(t)}function Nv(s,e){return [s,e]}function Z8(s){if(Tg(s)||hr(s))return [s];let e=[];for(let t of s)e.push(...Z8(t));return e}function kg(s){if(s.length===1)return s[0];if(s.length===0)throw new Error("Cannot build a topology from an empty list");let e=Math.floor(s.length/2),t=s.slice(0,e),r=s.slice(e),n=kg(t),i=kg(r);return [n,i]}function Qf(s){return kg(Z8(s))}function X8(s,e=BigInt(Math.floor(Date.now()/1e3))){if(hr(s))return s;if(Ws(s))return s.deadline<e?null:s;if(Ks(s)||Gs(s))return s;let t=[];for(let r of s){let n=X8(r,e);n!==null&&t.push(n);}return t.length===0?null:t.length===1?t[0]:t}function Og(s,e=[],t=[],r){if(Js(s)){let n=s.map(i=>Og(i,e,t,r));return n.every(i=>hr(i))?ee.keccak256(f.concat(...n.map(i=>v.toBytes(i))),{as:"Hex"}):n}if(Ws(s))return e.includes(s.signer)?s:qs(Jf(s));if(Gs(s))return t.length===0?qs(Jf(s)):s;if(Ks(s))return r&&!P.isEqual(s.identitySigner,r)?qs(Jf(s)):s;if(hr(s))return s;throw new Error("Invalid topology")}function h7(s,e){let t=Xf(s);if(!t)throw new Error("No blacklist found");let{blacklist:r}=t;return r.some(n=>P.isEqual(n,e))||(r.push(e),r.sort((n,i)=>BigInt(n)<BigInt(i)?-1:1)),s}function d7(s,e){let t=Xf(s);if(!t)throw new Error("No blacklist found");let{blacklist:r}=t,n=r.filter(i=>i!==e);return t.blacklist=n,s}function Q8(s){if(!Array.isArray(s))return Q8([s]);let e=[{type:"implicit-blacklist",blacklist:[]},...s.map(t=>({type:"identity-signer",identitySigner:t}))];return kg(e)}var Hn={};ye(Hn,{decodeSessionSignature:()=>y7,encodeSessionCallSignatureForJson:()=>eC,encodeSessionSignature:()=>g7,hashPayloadWithCallIdx:()=>w7,isExplicitSessionCallSignature:()=>Pv,isImplicitSessionCallSignature:()=>Rg,sessionCallSignatureFromJson:()=>p7,sessionCallSignatureFromParsed:()=>tC,sessionCallSignatureToJson:()=>m7});function Rg(s){return "attestation"in s&&"identitySignature"in s&&"sessionSignature"in s}function Pv(s){return "permissionIndex"in s&&"sessionSignature"in s}function m7(s){return JSON.stringify(eC(s))}function eC(s){if(Rg(s))return {attestation:kt.encodeForJson(s.attestation),identitySignature:Tv(s.identitySignature),sessionSignature:Tv(s.sessionSignature)};if(Pv(s))return {permissionIndex:s.permissionIndex,sessionSignature:Tv(s.sessionSignature)};throw new Error("Invalid call signature")}function p7(s){let e=JSON.parse(s);return tC(e)}function tC(s){if(s.attestation)return {attestation:kt.fromParsed(s.attestation),identitySignature:kv(s.identitySignature),sessionSignature:kv(s.sessionSignature)};if(s.permissionIndex)return {permissionIndex:s.permissionIndex,sessionSignature:kv(s.sessionSignature)};throw new Error("Invalid call signature")}function Tv(s){return `${s.r.toString()}:${s.s.toString()}:${s.yParity+27}`}function kv(s){let e=s.split(":");if(e.length!==3)throw new Error("Signature must be in r:s:v format");let[t,r,n]=e;if(!t||!r||!n)throw new Error("Invalid signature format");return {r:f.toBigInt(f.fromHex(t,{size:32})),s:f.toBigInt(f.fromHex(r,{size:32})),yParity:parseInt(n,10)-27}}function g7(s,e,t,r=[],n=[]){let i=[];if(!Av(e))throw new Error("Incomplete topology");if(!Zf(e).some(l=>P.isEqual(l,t)))throw new Error("Identity signer not found");e=Og(e,r,n,t);let o=Bg(e);if(Es(BigInt(o.length))>3)throw new Error("Session topology is too large");i.push(f.fromNumber(o.length,{size:3}),o);let c=new Map,u=[];if(s.filter(Rg).forEach(l=>{if(l.attestation){let h=kt.toJson(l.attestation);c.has(h)||(c.set(h,u.length),u.push(f.concat(kt.encode(l.attestation),$r(l.identitySignature))));}}),u.length>=128)throw new Error("Too many attestations");i.push(f.fromNumber(u.length,{size:1}),f.concat(...u));for(let l of s)if(Rg(l)){let h=kt.toJson(l.attestation),m=c.get(h);if(m===void 0)throw new Error("Failed to find attestation index");let y=128|m;i.push(f.fromNumber(y,{size:1}),$r(l.sessionSignature));}else if(Pv(l)){if(l.permissionIndex>Ag)throw new Error("Permission index is too large");let h=l.permissionIndex;i.push(f.fromNumber(h,{size:1}),$r(l.sessionSignature));}else throw new Error("Invalid call signature");return f.concat(...i)}function y7(s){let e=0,t=f.toNumber(s.slice(e,e+3));e+=3;let r=s.slice(e,e+t);e+=t;let n=Iv(r),i=f.toNumber(s.slice(e,e+1));e+=1;let a=[],o=[];for(let u=0;u<i;u++){let l=kt.decode(s.slice(e));e+=kt.encode(l).length,a.push(l);let h=Ea(s.slice(e,e+64));e+=64,o.push(h);}let c=[];for(;e<s.length;){let u=s[e];e+=1;let l=Ea(s.slice(e,e+64));if(e+=64,u&128){let h=u&127;if(h>=a.length)throw new Error("Invalid attestation index");c.push({attestation:a[h],identitySignature:o[h],sessionSignature:l});}else {let h=u;c.push({permissionIndex:BigInt(h),sessionSignature:l});}}return {topology:n,callSignatures:c}}function w7(s,e,t,r,n){if(n&&(P.isEqual(n,Oe.Dev1.sessions)||P.isEqual(n,Oe.Dev2.sessions)||P.isEqual(n,Oe.Rc3.sessions))){let c=e.calls[t],u=!P.isEqual(n,Oe.Rc3.sessions);return v.fromBytes(ee.keccak256(f.concat(f.fromNumber(r,{size:32}),f.fromNumber(e.space,{size:32}),f.fromNumber(e.nonce,{size:32}),u?f.from([]):f.fromNumber(t,{size:32}),f.fromHex(we.hashCall(c)))))}let a=e.parentWallets;e.parentWallets&&e.parentWallets.length>0&&e.parentWallets.pop();let o=we.hash(s,r,e);return e.parentWallets=a,v.fromBytes(ee.keccak256(f.concat(o,f.fromNumber(t,{size:32}))))}var Aa={};ye(Aa,{Dev1:()=>sC,Dev2:()=>rC,Dev2_4337:()=>nC,KnownContexts:()=>b7,Rc3:()=>iC,Rc3_4337:()=>aC,Rc4:()=>oC,Rc4_4337:()=>cC,Rc5:()=>uC,Rc5_4337:()=>lC,isKnownContext:()=>S7});var sC={factory:"0xe828630697817291140D6B7A42a2c3b7277bE45a",stage1:"0x2a4fB19F66F1427A5E363Bf1bB3be27b9A9ACC39",stage2:"0xe1299E4456b267123F7Aba29B72C2164ff501BDa",creationCode:"0x603e600e3d39601e805130553df33d3d34601c57363d3d373d363d30545af43d82803e903d91601c57fd5bf3"},rC={factory:"0xFE14B91dE3c5Ca74c4D24608EBcD4B2848aA6010",stage1:"0x300E98ae5bEA4A7291d62Eb0b9feD535E10095dD",stage2:"0x90cb0a8ccf40bEdA60896e408bdc7801033447C6",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},nC={factory:"0xFE14B91dE3c5Ca74c4D24608EBcD4B2848aA6010",stage1:"0x8Ae58FCc0Ee9b32994CA52c9854deb969DC8fa2A",stage2:"0x30f8e3AceAcDEac8a3F28935D87FD58DC5f71ad2",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},iC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x00000000000084fA81809Dd337311297C5594d62",stage2:"0x7438718F9E4b9B834e305A620EEeCf2B9E6eBE79",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},aC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000005A02E3218e820EA45102F84A35C7",stage2:"0x7706aaC0cc2C42C01CE17136F7475b0E46F2ABA1",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},oC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000003DF093bc4257E6dCE45D937EF161",stage2:"0x10bE1Abf3cD0918bb1079ECc6b8220c177F34088",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},cC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000003add039FF84b064B7347Fc23C444",stage2:"0x4B3E5735665057A0A15eE448A7293bC01e3b4De9",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},uC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000001f3C39d61698ab21131a12134454",stage2:"0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3"},lC={factory:"0x00000000000018A77519fcCCa060c2537c9D6d3F",stage1:"0x0000000000009caFdeDb6f64Bf5F31a22124B2a8",stage2:"0xcBca3328a731deffE6Ce4c2fb51b585c3c37FB92",creationCode:"0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3",capabilities:{erc4337:{entrypoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032"}}},b7=[{name:"Dev1",development:!0,...sC},{name:"Dev2",development:!0,...rC},{name:"Dev2_4337",development:!0,...nC},{name:"Rc3",development:!0,...iC},{name:"Rc3_4337",development:!0,...aC},{name:"Rc4",development:!1,...oC},{name:"Rc4_4337",development:!1,...cC},{name:"Rc5",development:!1,...uC},{name:"Rc5_4337",development:!1,...lC}];function S7(s){return s.name!==void 0&&s.development!==void 0}var Oe={};ye(Oe,{Dev1:()=>V7,Dev2:()=>D7,Passkeys:()=>Ov,Rc3:()=>L7,Rc4:()=>U7,Rc5:()=>H7,Recovery:()=>qv});var Ov={};ye(Ov,{decode:()=>I7,encode:()=>x7,fromTree:()=>v7,isValidSignature:()=>A7,metadataNode:()=>fC,metadataTree:()=>Bv,rootFor:()=>E7,toTree:()=>hC});function Bv(s){return typeof s=="object"?{type:"leaf",value:f.fromString(s.credentialId)}:s}function fC(s){return qs(Bv(s))}function hC(s){let e=v.padLeft(s.x,32),t=v.padLeft(s.y,32),r=v.padLeft(s.requireUserVerification?"0x01":"0x00",32);return s.metadata?[[e,t],[r,Bv(s.metadata)]]:[[e,t],[r,v.padLeft("0x00",32)]]}function v7(s){if(!xs(s)||s.length!==2)throw new Error("Invalid tree");let[e,t]=s;if(!xs(e)||e.length!==2)throw new Error("Invalid tree for x,y");let[r,n]=e;if(!bt(r))throw new Error("Invalid x bytes");if(!bt(n))throw new Error("Invalid y bytes");let i=!1,a;if(xs(t)){if(t.length!==2)throw new Error("Invalid tree for c,metadata");let[o,c]=t;if(!bt(o))throw new Error("Invalid c bytes");if(i=v.toBytes(o)[31]===1,xs(c)){if(c.length!==2)throw new Error("Invalid metadata tree");let[l,h]=c;if(!Un(l))throw new Error("Invalid credentialId leaf");let m=new TextDecoder().decode(l.value);if(!xs(h)||h.length!==2)throw new Error("Invalid sub-branch for name and createdAt");let[y,g]=h;if(!Un(y)||!Un(g))throw new Error("Invalid metadata leaves");a={credentialId:m};}else if(bt(c))a=c;else throw new Error("Invalid metadata node")}else {if(!bt(t))throw new Error("Invalid c bytes");i=v.toBytes(t)[31]===1;}return {requireUserVerification:i,x:r,y:n,metadata:a}}function E7(s){return qs(hC(s))}function x7(s){let e=s.clientDataJSON.indexOf('"challenge"'),t=s.clientDataJSON.indexOf('"type"'),r=s.authenticatorData.length,n=s.clientDataJSON.length;if(r>65535)throw new Error("Authenticator data size is too large");if(n>65535)throw new Error("Client data JSON size is too large");let i=r<=255?1:2,a=n<=255?1:2,o=e<=255?1:2,c=t<=255?1:2,u=0;u|=s.publicKey.requireUserVerification?1:0,u|=i-1<<1,u|=a-1<<2,u|=o-1<<3,u|=c-1<<4,s.embedMetadata&&(u|=64);let l=f.from([u]);if(s.embedMetadata){if(!s.publicKey.metadata)throw new Error("Metadata is not present in the public key");l=f.concat(l,v.toBytes(fC(s.publicKey.metadata)));}return l=f.concat(l,f.padLeft(f.fromNumber(r),i)),l=f.concat(l,s.authenticatorData),l=f.concat(l,f.padLeft(f.fromNumber(s.clientDataJSON.length),a)),l=f.concat(l,f.from(new TextEncoder().encode(s.clientDataJSON))),l=f.concat(l,f.padLeft(f.fromNumber(e),o)),l=f.concat(l,f.padLeft(f.fromNumber(t),c)),l=f.concat(l,f.padLeft(s.r,32)),l=f.concat(l,f.padLeft(s.s,32)),l=f.concat(l,f.fromHex(s.publicKey.x)),l=f.concat(l,f.fromHex(s.publicKey.y)),l}function A7(s,e){return Ln.verify({challenge:s,publicKey:{x:v.toBigInt(e.publicKey.x),y:v.toBigInt(e.publicKey.y),prefix:4},metadata:{authenticatorData:v.fromBytes(e.authenticatorData),challengeIndex:e.clientDataJSON.indexOf('"challenge"'),clientDataJSON:e.clientDataJSON,typeIndex:e.clientDataJSON.indexOf('"type"'),userVerificationRequired:e.publicKey.requireUserVerification},signature:{r:f.toBigInt(e.r),s:f.toBigInt(e.s)}})}function I7(s){let e=0,t=s[0];if(e+=1,t===void 0)throw new Error("Invalid flags");let r=(t&1)!==0,n=(t>>1&1)+1,i=(t>>2&1)+1,a=(t>>3&1)+1,o=(t>>4&1)+1,c=(t>>6&1)===1;if(t&32)throw new Error("Fallback to abi decode is not supported in this implementation");let u;if(c){let I=f.slice(s,e,e+32);u=v.fromBytes(I),e+=32;}let l=f.toNumber(f.slice(s,e,e+n));e+=n;let h=f.slice(s,e,e+l);e+=l;let m=f.toNumber(f.slice(s,e,e+i));e+=i;let y=f.slice(s,e,e+m);e+=m;let g=new TextDecoder().decode(y),w=f.toNumber(f.slice(s,e,e+a));e+=a;let S=f.toNumber(f.slice(s,e,e+o));e+=o;let C=f.slice(s,e,e+32);e+=32;let N=f.slice(s,e,e+32);e+=32;let x=f.slice(s,e,e+32);e+=32;let E=f.slice(s,e,e+32);return {publicKey:{requireUserVerification:r,x:v.fromBytes(x),y:v.fromBytes(E),metadata:u},r:C,s:N,authenticatorData:h,clientDataJSON:g,challengeIndex:w,typeIndex:S,embedMetadata:c}}var qv={};ye(qv,{DOMAIN_NAME:()=>C7,DOMAIN_VERSION:()=>N7,FLAG_BRANCH:()=>$v,FLAG_NODE:()=>Mv,FLAG_RECOVERY_LEAF:()=>jv,QUEUED_PAYLOAD_HASHES:()=>pC,QUEUE_PAYLOAD:()=>dC,TIMESTAMP_FOR_QUEUED_PAYLOAD:()=>mC,TOTAL_QUEUED_PAYLOADS:()=>gC,decodeTopology:()=>T7,encodeCalldata:()=>P7,encodeTopology:()=>Uv,fromGenericTree:()=>_v,fromRecoveryLeaves:()=>Hv,getRecoveryLeaves:()=>Dv,hashConfiguration:()=>Vv,hashRecoveryPayload:()=>k7,isBranch:()=>Ia,isRecoveryLeaf:()=>Mc,isTree:()=>Rv,parseBranch:()=>Fv,queuedPayloadHashOf:()=>O7,timestampForQueuedPayload:()=>R7,toGenericTree:()=>Vg,totalQueuedPayloads:()=>B7,trimTopology:()=>Lv});var jv=1,Mv=3,$v=4,eh=f.fromString(`Sequence recovery leaf:
|
|
349
|
+
`),dC=ke.from(["function queuePayload(address _wallet, address _signer, (uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external"])[0],mC=ke.from(["function timestampForQueuedPayload(address _wallet, address _signer, bytes32 _payloadHash) external view returns (uint256)"])[0],pC=ke.from(["function queuedPayloadHashes(address _wallet, address _signer, uint256 _index) external view returns (bytes32)"])[0],gC=ke.from(["function totalQueuedPayloads(address _wallet, address _signer) external view returns (uint256)"])[0];function Mc(s){return typeof s=="object"&&s!==null&&s.type==="leaf"}function Ia(s){return Array.isArray(s)&&s.length===2&&Rv(s[0])&&Rv(s[1])}function Rv(s){return Mc(s)||bt(s)||Ia(s)}var C7="Sequence Wallet - Recovery Mode",N7="1";function Vv(s){return qs(Vg(s))}function Dv(s){if(Mc(s))return {leaves:[s],isComplete:!0};if(bt(s))return {leaves:[],isComplete:!1};if(Ia(s)){let t=Dv(s[0]),r=Dv(s[1]);return {leaves:[...t.leaves,...r.leaves],isComplete:t.isComplete&&r.isComplete}}else throw new Error("Invalid topology")}function T7(s){let{nodes:e,leftover:t}=Fv(s);if(t.length>0)throw new Error("Leftover bytes in branch");return yC(e)}function Fv(s){if(s.length===0)throw new Error("Empty branch");let e=[],t=0;for(;t<s.length;){let r=s[t];if(r===jv){if(s.length<t+32)throw new Error("Invalid recovery leaf");let n=P.from(v.fromBytes(s.slice(t+1,t+21))),i=f.toBigInt(s.slice(t+21,t+24)),a=f.toBigInt(s.slice(t+24,t+32));e.push({type:"leaf",signer:n,requiredDeltaTime:i,minTimestamp:a}),t+=32;continue}else if(r===Mv){if(s.length<t+33)throw new Error("Invalid node");let n=v.fromBytes(s.slice(t+1,t+33));e.push(n),t+=33;continue}else if(r===$v){if(s.length<t+4)throw new Error("Invalid branch");let n=f.toNumber(s.slice(t+1,t+4));if(s.length<t+4+n)throw new Error("Invalid branch");let i=s.slice(t+4,t+4+n),{nodes:a,leftover:o}=Fv(i);if(o.length>0)throw new Error("Leftover bytes in sub-branch");let c=yC(a);e.push(c),t+=4+n;continue}else throw new Error("Invalid flag")}return {nodes:e,leftover:s.slice(t)}}function Lv(s,e){if(Mc(s))return s.signer===e?s:Vv(s);if(bt(s))return s;if(Ia(s)){let t=Lv(s[0],e),r=Lv(s[1],e);return bt(t)&&bt(r)?Vv(s):[t,r]}throw new Error("Invalid topology")}function Uv(s){if(Ia(s)){let e=Uv(s[0]),t=Uv(s[1]);if(Ia(s[1])){if(t.length>16777215)throw new Error("Branch too large");let n=f.fromNumber($v),i=f.padLeft(f.fromNumber(t.length),3);return f.concat(e,n,i,t)}else return f.concat(e,t)}if(bt(s)){let e=f.fromNumber(Mv),t=f.fromHex(s,{size:32});return f.concat(e,t)}if(Mc(s)){let e=f.fromNumber(jv),t=f.fromHex(s.signer,{size:20});if(s.requiredDeltaTime>16777215n)throw new Error("Required delta time too large");let r=f.padLeft(f.fromNumber(s.requiredDeltaTime),3);if(s.minTimestamp>18446744073709551615n)throw new Error("Min timestamp too large");let n=f.padLeft(f.fromNumber(s.minTimestamp),8);return f.concat(e,t,r,n)}throw new Error("Invalid topology")}function yC(s){if(s.length===0)throw new Error("Empty signature tree");if(s.length===1)return s[0];let e=s[0];for(let t=1;t<s.length;t++)e=[e,s[t]];return e}function Hv(s){if(s.length===0)throw new Error("Cannot build a tree with zero leaves");if(s.length===1)return s[0];let e=Math.floor(s.length/2),t=Hv(s.slice(0,e)),r=Hv(s.slice(e));return [t,r]}function k7(s,e,t,r){let n=sv(s);return v.fromBytes(Vc(e,r?0:t,n))}function Vg(s){if(Mc(s))return {type:"leaf",value:f.concat(eh,f.fromHex(s.signer,{size:20}),f.padLeft(f.fromNumber(s.requiredDeltaTime),32),f.padLeft(f.fromNumber(s.minTimestamp),32))};if(bt(s))return s;if(Ia(s))return [Vg(s[0]),Vg(s[1])];throw new Error("Invalid topology")}function _v(s){if(Un(s)){let e=s.value;if(e.length!==eh.length+84||!f.isEqual(e.slice(0,eh.length),eh))throw new Error("Invalid recovery leaf format");let t=eh.length,r=P.from(v.fromBytes(e.slice(t,t+20))),n=f.toBigInt(e.slice(t+20,t+52)),i=f.toBigInt(e.slice(t+52,t+84));return {type:"leaf",signer:r,requiredDeltaTime:n,minTimestamp:i}}else {if(bt(s))return s;if(xs(s)){if(s.length!==2)throw new Error("Recovery tree only supports binary branches");return [_v(s[0]),_v(s[1])]}else throw new Error("Invalid tree format")}}function P7(s,e,t,r){let n;r.type==="erc1271"?n=r.data:n=f.toHex($r(r));let i=iv(e);return se.encodeData(dC,[s,t,i,n])}async function B7(s,e,t,r){let n=await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(gC,[t,r])},"latest"]});return n==="0x"?0n:v.toBigInt(n)}async function O7(s,e,t,r,n){return await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(pC,[t,r,n])},"latest"]})}async function R7(s,e,t,r,n){let i=await s.request({method:"eth_call",params:[{to:e,data:se.encodeData(mC,[t,r,n])},"latest"]});return v.toBigInt(i)}var V7={passkeys:"0x8f26281dB84C18aAeEa8a53F94c835393229d296",recovery:"0xd98da48C4FF9c19742eA5856A277424557C863a6",sessions:"0x06aa3a8F781F2be39b888Ac8a639c754aEe9dA29"},D7={passkeys:"0x4491845806B757D67BE05BbD877Cab101B9bee5C",recovery:"0xdED857b9b5142832634129aFfc1D67cD106b927c",sessions:"0x06aa3a8F781F2be39b888Ac8a639c754aEe9dA29"},L7={passkeys:"0x0000000000dc2d96870dc108c5E15570B715DFD2",recovery:"0x0000000000213697bCA95E7373787a40858a51C7",sessions:"0x0000000000CC58810c33F3a0D78aA1Ed80FaDcD8"},U7={passkeys:"0x0000000000005204F3711851EAD52CC9c241499a",recovery:"0x000000000001FC499c3E177DD56Febb0A4bc15b7",sessions:"0x00000000000030Bcc832F7d657f50D6Be35C92b3"},H7={passkeys:"0x0000000000005204F3711851EAD52CC9c241499a",recovery:"0x000000000000AB36D17eB1150116371520565205",sessions:"0x00000000000030Bcc832F7d657f50D6Be35C92b3"};var th={};ye(th,{ALL:()=>Gv,ChainId:()=>_,NetworkType:()=>de,getNetworkFromChainId:()=>j7,getNetworkFromName:()=>_7});var de;(function(s){s.MAINNET="mainnet",s.TESTNET="testnet";})(de||(de={}));var _={NONE:0,MAINNET:1,SEPOLIA:11155111,POLYGON:137,POLYGON_ZKEVM:1101,POLYGON_AMOY:80002,BSC:56,BSC_TESTNET:97,OPTIMISM:10,OPTIMISM_SEPOLIA:11155420,ARBITRUM:42161,ARBITRUM_SEPOLIA:421614,ARBITRUM_NOVA:42170,AVALANCHE:43114,AVALANCHE_TESTNET:43113,GNOSIS:100,BASE:8453,BASE_SEPOLIA:84532,HOMEVERSE_TESTNET:40875,HOMEVERSE:19011,XAI:660279,XAI_SEPOLIA:37714555429,TELOS:40,TELOS_TESTNET:41,B3:8333,B3_SEPOLIA:1993,APECHAIN:33139,APECHAIN_TESTNET:33111,BLAST:81457,BLAST_SEPOLIA:168587773,SKALE_NEBULA:1482601649,SKALE_NEBULA_TESTNET:37084624,SONEIUM_MINATO:1946,SONEIUM:1868,TOY_TESTNET:21e6,IMMUTABLE_ZKEVM:13371,IMMUTABLE_ZKEVM_TESTNET:13473,ETHERLINK:42793,ETHERLINK_TESTNET:128123,MOONBEAM:1284,MOONBASE_ALPHA:1287,MONAD:143,MONAD_TESTNET:10143,SOMNIA_TESTNET:50312,SOMNIA:5031,INCENTIV_TESTNET_V2:28802,KATANA:747474,SANDBOX_TESTNET:6252,ARC_TESTNET:5042002},Gv=[{chainId:_.MAINNET,type:de.MAINNET,name:"mainnet",title:"Ethereum",rpcUrl:be("mainnet"),logoUrl:Se(_.MAINNET),blockExplorer:{name:"Etherscan",url:"https://etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},{chainId:_.SEPOLIA,type:de.TESTNET,name:"sepolia",title:"Sepolia",rpcUrl:be("sepolia"),logoUrl:Se(_.SEPOLIA),blockExplorer:{name:"Etherscan (Sepolia)",url:"https://sepolia.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.POLYGON,type:de.MAINNET,name:"polygon",title:"Polygon",rpcUrl:be("polygon"),logoUrl:Se(_.POLYGON),blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com/"},nativeCurrency:{symbol:"POL",name:"POL",decimals:18}},{chainId:_.POLYGON_AMOY,type:de.TESTNET,name:"amoy",title:"Polygon Amoy",rpcUrl:be("amoy"),logoUrl:Se(_.POLYGON_AMOY),blockExplorer:{name:"OKLink (Amoy)",url:"https://www.oklink.com/amoy/"},nativeCurrency:{symbol:"aPOL",name:"Amoy POL",decimals:18}},{chainId:_.POLYGON_ZKEVM,type:de.MAINNET,name:"polygon-zkevm",title:"Polygon zkEVM",rpcUrl:be("polygon-zkevm"),logoUrl:Se(_.POLYGON_ZKEVM),blockExplorer:{name:"Polygonscan (zkEVM)",url:"https://zkevm.polygonscan.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BSC,type:de.MAINNET,name:"bsc",title:"BNB Smart Chain",rpcUrl:be("bsc"),logoUrl:Se(_.BSC),blockExplorer:{name:"BSCScan",url:"https://bscscan.com/"},nativeCurrency:{symbol:"BNB",name:"BNB",decimals:18}},{chainId:_.BSC_TESTNET,type:de.TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",rpcUrl:be("bsc-testnet"),logoUrl:Se(_.BSC_TESTNET),blockExplorer:{name:"BSCScan (Testnet)",url:"https://testnet.bscscan.com/"},nativeCurrency:{symbol:"tBNB",name:"Testnet BNB",decimals:18}},{chainId:_.OPTIMISM,type:de.MAINNET,name:"optimism",title:"Optimism",rpcUrl:be("optimism"),logoUrl:Se(_.OPTIMISM),blockExplorer:{name:"Etherscan (Optimism)",url:"https://optimistic.etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.OPTIMISM_SEPOLIA,type:de.TESTNET,name:"optimism-sepolia",title:"Optimism Sepolia",rpcUrl:be("optimism-sepolia"),logoUrl:Se(_.OPTIMISM_SEPOLIA),blockExplorer:{name:"Etherscan (Optimism Sepolia)",url:"https://sepolia-optimistic.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.ARBITRUM,type:de.MAINNET,name:"arbitrum",title:"Arbitrum One",rpcUrl:be("arbitrum"),logoUrl:Se(_.ARBITRUM),blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.ARBITRUM_SEPOLIA,type:de.TESTNET,name:"arbitrum-sepolia",title:"Arbitrum Sepolia",rpcUrl:be("arbitrum-sepolia"),logoUrl:Se(_.ARBITRUM_SEPOLIA),blockExplorer:{name:"Arbiscan (Sepolia Testnet)",url:"https://sepolia.arbiscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.ARBITRUM_NOVA,type:de.MAINNET,name:"arbitrum-nova",title:"Arbitrum Nova",rpcUrl:be("arbitrum-nova"),logoUrl:Se(_.ARBITRUM_NOVA),blockExplorer:{name:"Arbiscan Nova",url:"https://nova.arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.AVALANCHE,type:de.MAINNET,name:"avalanche",title:"Avalanche",rpcUrl:be("avalanche"),logoUrl:Se(_.AVALANCHE),blockExplorer:{name:"Snowtrace",url:"https://subnets.avax.network/c-chain/"},nativeCurrency:{symbol:"AVAX",name:"AVAX",decimals:18}},{chainId:_.AVALANCHE_TESTNET,type:de.TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",rpcUrl:be("avalanche-testnet"),logoUrl:Se(_.AVALANCHE_TESTNET),blockExplorer:{name:"Snowtrace (Testnet)",url:"https://subnets-test.avax.network/c-chain/"},nativeCurrency:{symbol:"tAVAX",name:"Testnet AVAX",decimals:18}},{chainId:_.GNOSIS,type:de.MAINNET,name:"gnosis",title:"Gnosis Chain",rpcUrl:be("gnosis"),logoUrl:Se(_.GNOSIS),blockExplorer:{name:"Gnosis Chain Explorer",url:"https://blockscout.com/xdai/mainnet/"},nativeCurrency:{symbol:"XDAI",name:"XDAI",decimals:18}},{chainId:_.BASE,type:de.MAINNET,name:"base",title:"Base (Coinbase)",rpcUrl:be("base"),logoUrl:Se(_.BASE),blockExplorer:{name:"Base Explorer",url:"https://basescan.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BASE_SEPOLIA,type:de.TESTNET,name:"base-sepolia",title:"Base Sepolia",rpcUrl:be("base-sepolia"),logoUrl:Se(_.BASE_SEPOLIA),blockExplorer:{name:"Base Sepolia Explorer",url:"https://base-sepolia.blockscout.com/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:_.HOMEVERSE,type:de.MAINNET,name:"homeverse",title:"Oasys Homeverse",rpcUrl:be("homeverse"),logoUrl:Se(_.HOMEVERSE),blockExplorer:{name:"Oasys Homeverse Explorer",url:"https://explorer.oasys.homeverse.games/"},nativeCurrency:{symbol:"OAS",name:"OAS",decimals:18}},{chainId:_.HOMEVERSE_TESTNET,type:de.TESTNET,name:"homeverse-testnet",title:"Oasys Homeverse Testnet",rpcUrl:be("homeverse-testnet"),logoUrl:Se(_.HOMEVERSE_TESTNET),blockExplorer:{name:"Oasys Homeverse Explorer (Testnet)",url:"https://explorer.testnet.oasys.homeverse.games/"},nativeCurrency:{symbol:"tOAS",name:"Testnet OAS",decimals:18}},{chainId:_.XAI,type:de.MAINNET,name:"xai",title:"Xai",rpcUrl:be("xai"),logoUrl:Se(_.XAI),blockExplorer:{name:"Xai Explorer",url:"https://explorer.xai-chain.net/"},nativeCurrency:{symbol:"XAI",name:"XAI",decimals:18}},{chainId:_.XAI_SEPOLIA,type:de.TESTNET,name:"xai-sepolia",title:"Xai Sepolia",rpcUrl:be("xai-sepolia"),logoUrl:Se(_.XAI_SEPOLIA),blockExplorer:{name:"Xai Sepolia Explorer",url:"https://testnet-explorer-v2.xai-chain.net/"},nativeCurrency:{symbol:"sXAI",name:"Sepolia XAI",decimals:18}},{chainId:_.B3,type:de.MAINNET,name:"b3",title:"B3",rpcUrl:be("b3"),logoUrl:Se(_.B3),blockExplorer:{name:"B3 Explorer",url:"https://explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.B3_SEPOLIA,type:de.TESTNET,name:"b3-sepolia",title:"B3 Sepolia",rpcUrl:be("b3-sepolia"),logoUrl:Se(_.B3_SEPOLIA),blockExplorer:{name:"B3 Sepolia Explorer",url:"https://sepolia.explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.APECHAIN,type:de.MAINNET,name:"apechain",title:"APE Chain",rpcUrl:be("apechain"),logoUrl:Se(_.APECHAIN),blockExplorer:{name:"APE Chain Explorer",url:"https://apechain.calderaexplorer.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:_.APECHAIN_TESTNET,type:de.TESTNET,name:"apechain-testnet",title:"APE Chain Testnet",rpcUrl:be("apechain-testnet"),logoUrl:Se(_.APECHAIN_TESTNET),blockExplorer:{name:"APE Chain Explorer",url:"https://curtis.explorer.caldera.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:_.BLAST,type:de.MAINNET,name:"blast",title:"Blast",rpcUrl:be("blast"),logoUrl:Se(_.BLAST),blockExplorer:{name:"Blast Explorer",url:"https://blastscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.BLAST_SEPOLIA,type:de.TESTNET,name:"blast-sepolia",title:"Blast Sepolia",rpcUrl:be("blast-sepolia"),logoUrl:Se(_.BLAST_SEPOLIA),blockExplorer:{name:"Blast Sepolia Explorer",url:"https://sepolia.blastexplorer.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.TELOS,type:de.MAINNET,name:"telos",title:"Telos",rpcUrl:be("telos"),logoUrl:Se(_.TELOS),blockExplorer:{name:"Telos Explorer",url:"https://explorer.telos.net/network/"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:_.TELOS_TESTNET,type:de.TESTNET,name:"telos-testnet",title:"Telos Testnet",rpcUrl:be("telos-testnet"),logoUrl:Se(_.TELOS_TESTNET),blockExplorer:{name:"Telos Testnet Explorer",url:"https://explorer-test.telos.net/network"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:_.SKALE_NEBULA,type:de.MAINNET,name:"skale-nebula",title:"SKALE Nebula Gaming Hub",rpcUrl:be("skale-nebula"),logoUrl:Se(_.SKALE_NEBULA),blockExplorer:{name:"SKALE Nebula Gaming Hub Explorer",url:"https://green-giddy-denebola.explorer.mainnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:_.SKALE_NEBULA_TESTNET,type:de.TESTNET,name:"skale-nebula-testnet",title:"SKALE Nebula Gaming Hub Testnet",rpcUrl:be("skale-nebula-testnet"),logoUrl:Se(_.SKALE_NEBULA_TESTNET),blockExplorer:{name:"SKALE Nebula Gaming Hub Testnet Explorer",url:"https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:_.SONEIUM,type:de.MAINNET,name:"soneium",title:"Soneium",rpcUrl:be("soneium"),logoUrl:Se(_.SONEIUM),blockExplorer:{name:"Soneium Explorer",url:"https://soneium.blockscout.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.SONEIUM_MINATO,type:de.TESTNET,name:"soneium-minato",title:"Soneium Minato (Testnet)",rpcUrl:be("soneium-minato"),logoUrl:Se(_.SONEIUM_MINATO),blockExplorer:{name:"Soneium Minato Explorer",url:"https://explorer-testnet.soneium.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:_.TOY_TESTNET,type:de.TESTNET,name:"toy-testnet",title:"TOY (Testnet)",rpcUrl:be("toy-testnet"),logoUrl:Se(_.TOY_TESTNET),blockExplorer:{name:"TOY Testnet Explorer",url:"https://toy-chain-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"TOY",name:"TOY",decimals:18}},{chainId:_.IMMUTABLE_ZKEVM,type:de.MAINNET,name:"immutable-zkevm",title:"Immutable zkEVM",rpcUrl:be("immutable-zkevm"),logoUrl:Se(_.IMMUTABLE_ZKEVM),blockExplorer:{name:"Immutable zkEVM Explorer",url:"https://explorer.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:_.IMMUTABLE_ZKEVM_TESTNET,type:de.TESTNET,name:"immutable-zkevm-testnet",title:"Immutable zkEVM Testnet",rpcUrl:be("immutable-zkevm-testnet"),logoUrl:Se(_.IMMUTABLE_ZKEVM_TESTNET),blockExplorer:{name:"Immutable zkEVM Testnet Explorer",url:"https://explorer.testnet.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:_.MOONBEAM,type:de.MAINNET,name:"moonbeam",title:"Moonbeam",rpcUrl:be("moonbeam"),logoUrl:Se(_.MOONBEAM),blockExplorer:{name:"Moonscan",url:"https://moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:_.MOONBASE_ALPHA,type:de.TESTNET,name:"moonbase-alpha",title:"Moonbase Alpha",rpcUrl:be("moonbase-alpha"),logoUrl:Se(_.MOONBASE_ALPHA),blockExplorer:{name:"Moonscan (Moonbase Alpha)",url:"https://moonbase.moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:_.ETHERLINK,type:de.MAINNET,name:"etherlink",title:"Etherlink",rpcUrl:be("etherlink"),logoUrl:Se(_.ETHERLINK),blockExplorer:{name:"Etherlink Explorer",url:"https://explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:_.ETHERLINK_TESTNET,type:de.TESTNET,name:"etherlink-testnet",title:"Etherlink Testnet",rpcUrl:be("etherlink-testnet"),logoUrl:Se(_.ETHERLINK_TESTNET),blockExplorer:{name:"Etherlink Testnet Explorer",url:"https://testnet.explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:_.MONAD,type:de.MAINNET,name:"monad",title:"Monad",rpcUrl:be("monad"),logoUrl:Se(_.MONAD),blockExplorer:{name:"Monad Explorer",url:"https://mainnet-beta.monvision.io/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:_.MONAD_TESTNET,type:de.TESTNET,name:"monad-testnet",title:"Monad Testnet",rpcUrl:be("monad-testnet"),logoUrl:Se(_.MONAD_TESTNET),blockExplorer:{name:"Monad Testnet Explorer",url:"https://testnet.monadexplorer.com/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:_.SOMNIA,type:de.MAINNET,name:"somnia",title:"Somnia",rpcUrl:be("somnia"),logoUrl:Se(_.SOMNIA),blockExplorer:{name:"Somnia Explorer",url:"https://mainnet.somnia.w3us.site/"},nativeCurrency:{symbol:"SOMI",name:"SOMI",decimals:18}},{chainId:_.SOMNIA_TESTNET,type:de.TESTNET,name:"somnia-testnet",title:"Somnia Testnet",rpcUrl:be("somnia-testnet"),logoUrl:Se(_.SOMNIA_TESTNET),blockExplorer:{name:"Somnia Testnet Explorer",url:"https://somnia-testnet.socialscan.io/"},nativeCurrency:{symbol:"STT",name:"STT",decimals:18}},{chainId:_.INCENTIV_TESTNET_V2,type:de.TESTNET,name:"incentiv-testnet-v2",title:"Incentiv Testnet",rpcUrl:be("incentiv-testnet-v2"),logoUrl:Se(_.INCENTIV_TESTNET_V2),blockExplorer:{name:"Incentiv Testnet Explorer",url:"https://explorer.testnet.incentiv.net/"},nativeCurrency:{symbol:"TCENT",name:"TCENT",decimals:18}},{chainId:_.KATANA,type:de.MAINNET,name:"katana",title:"Katana",rpcUrl:be("katana"),logoUrl:Se(_.KATANA),blockExplorer:{name:"Katana Explorer",url:"https://katanascan.com/"},nativeCurrency:{symbol:"ETH",name:"ETH",decimals:18}},{chainId:_.SANDBOX_TESTNET,type:de.TESTNET,name:"sandbox-testnet",title:"Sandbox Testnet",rpcUrl:be("sandbox-testnet"),logoUrl:Se(_.SANDBOX_TESTNET),blockExplorer:{name:"Sandbox Testnet Explorer",url:"https://sandbox-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"SAND",name:"SAND",decimals:18}},{chainId:_.ARC_TESTNET,type:de.TESTNET,name:"arc-testnet",title:"Arc Testnet",rpcUrl:be("arc-testnet"),logoUrl:Se(_.ARC_TESTNET),blockExplorer:{name:"Arc Testnet Explorer",url:"https://1jr2dw1zdqvyes8u.blockscout.com/"},nativeCurrency:{symbol:"USDC",name:"USDC",decimals:6}}];function be(s){return `https://nodes.sequence.app/${s}`}function Se(s){return `https://assets.sequence.info/images/networks/medium/${s}.webp`}function _7(s){return Gv.find(e=>e.name===s)}function j7(s){return Gv.find(e=>e.chainId===Number(s))}var wC="$";function bC(s,e){var t="",r=e&&e.include,n=e&&e.exclude;n&&typeof n=="string"&&(n=[n]),r&&r.sort();var i=new WeakMap,a=e&&e.allowCircular,o=e&&e.filterUndefined,c=e&&e.undefinedInArrayToNull;return u(s,wC),t;function u(l,h){if(l===null||typeof l!="object"||l.toJSON!=null)t+=JSON.stringify(l);else if(Array.isArray(l)){var m=i.get(l);if(m!==void 0&&h.startsWith(m)){if(!a)throw new Error("Circular reference detected");t+='"[Circular:'+m+']"';return}i.set(l,h),t+="[";var y=!1;l.forEach(function(C,N){y&&(t+=","),y=!0,c&&C===void 0&&(C=null),u(C,h+"["+N+"]");}),t+="]";}else {var m=i.get(l);if(m!==void 0&&h.startsWith(m)){if(!a)throw new Error("Circular reference detected");t+='"[Circular:'+m+']"';return}i.set(l,h),t+="{";var g=!1,w=function(N){n&&n.includes(N)||(g&&(t+=","),g=!0,t+=JSON.stringify(N),t+=":",u(l[N],h+"."+N));};if(h===wC&&r)r.forEach(function(N){l.hasOwnProperty(N)&&w(N);});else {var S=Object.keys(l);o&&(S=S.filter(function(N){return l[N]!==void 0})),S.sort(),S.forEach(function(N){w(N);});}t+="}";}}}function Dg(s,e){return bC(s,{allowCircular:e,filterUndefined:!0,undefinedInArrayToNull:!0})}var M7="Webrpc",$7="webrpc@v0.23.1;gen-typescript@v0.16.3;identity-instrument@v0.1.0";var dr;(function(s){s.WebCrypto_Secp256r1="WebCrypto_Secp256r1",s.Ethereum_Secp256k1="Ethereum_Secp256k1";})(dr||(dr={}));var qr;(function(s){s.Email="Email",s.OIDC="OIDC";})(qr||(qr={}));var Fc;(function(s){s.OTP="OTP",s.IDToken="IDToken",s.AccessToken="AccessToken",s.AuthCode="AuthCode",s.AuthCodePKCE="AuthCodePKCE";})(Fc||(Fc={}));var Lg=class{hostname;fetch;path="/rpc/IdentityInstrument/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}commitVerifier=(e,t,r)=>this.fetch(this.url("CommitVerifier"),Kv(e,t,r)).then(n=>Wv(n).then(i=>({verifier:i.verifier,loginHint:i.loginHint,challenge:i.challenge})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})});completeAuth=(e,t,r)=>this.fetch(this.url("CompleteAuth"),Kv(e,t,r)).then(n=>Wv(n).then(i=>({signer:i.signer,identity:i.identity})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})});sign=(e,t,r)=>this.fetch(this.url("Sign"),Kv(e,t,r)).then(n=>Wv(n).then(i=>({signature:i.signature})),n=>{throw $c.new({cause:`fetch(): ${n.message||""}`})})},Kv=(s={},e={},t=null)=>{let r={...e,"Content-Type":"application/json"};return r[M7]=$7,{method:"POST",headers:r,body:JSON.stringify(s||{}),signal:t}},Wv=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){let n="";throw r instanceof Error&&(n=r.message),Ug.new({status:s.status,cause:`JSON.parse(): ${n}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (F7[r]||Ge).new(t)}return t}),Ge=class s extends Error{name;code;message;status;cause;msg;constructor(e,t,r,n,i){super(r),this.name=e||"WebrpcError",this.code=typeof t=="number"?t:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof n=="number"?n:0,this.cause=i,Object.setPrototypeOf(this,s.prototype);}static new(e){return new this(e.error,e.code,e.message||e.msg,e.status,e.cause)}},Jv=class s extends Ge{constructor(e="WebrpcEndpoint",t=0,r="endpoint error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},$c=class s extends Ge{constructor(e="WebrpcRequestFailed",t=-1,r="request failed",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},zv=class s extends Ge{constructor(e="WebrpcBadRoute",t=-2,r="bad route",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Yv=class s extends Ge{constructor(e="WebrpcBadMethod",t=-3,r="bad method",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Zv=class s extends Ge{constructor(e="WebrpcBadRequest",t=-4,r="bad request",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Ug=class s extends Ge{constructor(e="WebrpcBadResponse",t=-5,r="bad response",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Xv=class s extends Ge{constructor(e="WebrpcServerPanic",t=-6,r="server panic",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},Qv=class s extends Ge{constructor(e="WebrpcInternalError",t=-7,r="internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},eE=class s extends Ge{constructor(e="WebrpcClientDisconnected",t=-8,r="client disconnected",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},tE=class s extends Ge{constructor(e="WebrpcStreamLost",t=-9,r="stream lost",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},sE=class s extends Ge{constructor(e="WebrpcStreamFinished",t=-10,r="stream finished",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},rE=class s extends Ge{constructor(e="InternalError",t=7100,r="Internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},nE=class s extends Ge{constructor(e="EncryptionError",t=7101,r="Encryption error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},iE=class s extends Ge{constructor(e="DatabaseError",t=7102,r="Database error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},aE=class s extends Ge{constructor(e="DataIntegrityError",t=7103,r="Data integrity error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},oE=class s extends Ge{constructor(e="IdentityProviderError",t=7104,r="Identity provider error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},cE=class s extends Ge{constructor(e="InvalidRequest",t=7200,r="The request was invalid",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},uE=class s extends Ge{constructor(e="InvalidSignature",t=7201,r="The signature was invalid",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},lE=class s extends Ge{constructor(e="KeyNotFound",t=7202,r="The authentication key was not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},fE=class s extends Ge{constructor(e="KeyExpired",t=7203,r="The authentication key expired",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},hE=class s extends Ge{constructor(e="SignerNotFound",t=7204,r="The signer was not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},dE=class s extends Ge{constructor(e="ProofVerificationFailed",t=7002,r="The authentication proof could not be verified",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},mE=class s extends Ge{constructor(e="AnswerIncorrect",t=7003,r="The provided answer is incorrect",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},pE=class s extends Ge{constructor(e="ChallengeExpired",t=7004,r="The challenge has expired",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},gE=class s extends Ge{constructor(e="TooManyAttempts",t=7005,r="Too many attempts",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},yE=class s extends Ge{constructor(e="OAuthError",t=7006,r="Failed to exchange OAuth credentials",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},wE=class s extends Ge{constructor(e="AccessError",t=7007,r="Access error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},SC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.InternalError="InternalError",s.EncryptionError="EncryptionError",s.DatabaseError="DatabaseError",s.DataIntegrityError="DataIntegrityError",s.IdentityProviderError="IdentityProviderError",s.InvalidRequest="InvalidRequest",s.InvalidSignature="InvalidSignature",s.KeyNotFound="KeyNotFound",s.KeyExpired="KeyExpired",s.SignerNotFound="SignerNotFound",s.ProofVerificationFailed="ProofVerificationFailed",s.AnswerIncorrect="AnswerIncorrect",s.ChallengeExpired="ChallengeExpired",s.TooManyAttempts="TooManyAttempts",s.OAuthError="OAuthError",s.AccessError="AccessError";})(SC||(SC={}));var vC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.InternalError=7100]="InternalError",s[s.EncryptionError=7101]="EncryptionError",s[s.DatabaseError=7102]="DatabaseError",s[s.DataIntegrityError=7103]="DataIntegrityError",s[s.IdentityProviderError=7104]="IdentityProviderError",s[s.InvalidRequest=7200]="InvalidRequest",s[s.InvalidSignature=7201]="InvalidSignature",s[s.KeyNotFound=7202]="KeyNotFound",s[s.KeyExpired=7203]="KeyExpired",s[s.SignerNotFound=7204]="SignerNotFound",s[s.ProofVerificationFailed=7002]="ProofVerificationFailed",s[s.AnswerIncorrect=7003]="AnswerIncorrect",s[s.ChallengeExpired=7004]="ChallengeExpired",s[s.TooManyAttempts=7005]="TooManyAttempts",s[s.OAuthError=7006]="OAuthError",s[s.AccessError=7007]="AccessError";})(vC||(vC={}));var F7={0:Jv,[-1]:$c,[-2]:zv,[-3]:Yv,[-4]:Zv,[-5]:Ug,[-6]:Xv,[-7]:Qv,[-8]:eE,[-9]:tE,[-10]:sE,7100:rE,7101:nE,7102:iE,7103:aE,7104:oE,7200:cE,7201:uE,7202:lE,7203:fE,7204:hE,7002:dE,7003:mE,7004:pE,7005:gE,7006:yE,7007:wE};var Ca=class extends Error{};Ca.prototype.name="InvalidTokenError";function q7(s){return decodeURIComponent(atob(s).replace(/(.)/g,(e,t)=>{let r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r}))}function G7(s){let e=s.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return q7(e)}catch{return atob(e)}}function xC(s,e){if(typeof s!="string")throw new Ca("Invalid token specified: must be a string");e||(e={});let t=e.header===!0?0:1,r=s.split(".")[t];if(typeof r!="string")throw new Ca(`Invalid token specified: missing part #${t+1}`);let n;try{n=G7(r);}catch(i){throw new Ca(`Invalid token specified: invalid base64 for part #${t+1} (${i.message})`)}try{return JSON.parse(n)}catch(i){throw new Ca(`Invalid token specified: invalid json for part #${t+1} (${i.message})`)}}var bE=class{},Hg=class extends bE{issuer;audience;idToken;handle="";exp="";constructor(e,t,r){super(),this.issuer=e,this.audience=t,this.idToken=r;let n=xC(this.idToken),i=ee.keccak256(new TextEncoder().encode(this.idToken));this.handle=v.fromBytes(i),this.exp=n.exp?.toString()??"";}getCommitParams(){return {authMode:Fc.IDToken,identityType:qr.OIDC,handle:this.handle,metadata:{iss:this.issuer,aud:this.audience,exp:this.exp}}}getCompleteParams(){return {authMode:Fc.IDToken,identityType:qr.OIDC,verifier:this.handle,answer:this.idToken}}};var sh=class{scope;rpc;constructor(e,t,r=window.fetch){this.rpc=new Lg(e.endsWith("/")?e.slice(0,-1):e,r),this.scope=t;}async commitVerifier(e,t){let r={...t.getCommitParams(),scope:this.scope},n=await e.sign(f.fromString(Dg(r)));return this.rpc.commitVerifier({params:r,authKey:{address:e.address,keyType:e.keyType},signature:n})}async completeAuth(e,t){let r={...t.getCompleteParams(),signerType:dr.Ethereum_Secp256k1,scope:this.scope},n=await e.sign(f.fromString(Dg(r)));return this.rpc.completeAuth({params:r,authKey:{address:e.address,keyType:e.keyType},signature:n})}async sign(e,t){let r={scope:this.scope,signer:{address:e.signer,keyType:dr.Ethereum_Secp256k1},digest:v.fromBytes(t),nonce:v.fromNumber(Date.now())},n=await this.rpc.sign({params:r,authKey:{address:e.address,keyType:e.keyType},signature:await e.sign(f.fromString(Dg(r)))});return v.assert(n.signature),n.signature}};function SE(s){return {address:s.address,keyType:dr.WebCrypto_Secp256r1,signer:s.identitySigner,async sign(e){let t=await window.crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},s.privateKey,new Uint8Array(e));return v.fromBytes(new Uint8Array(t))}}}var _g=class{identityInstrument;authKey;constructor(e,t){this.identityInstrument=e,this.authKey=t;}get address(){if(!P.validate(this.authKey.identitySigner))throw new Error("No signer address found");return P.checksum(this.authKey.identitySigner)}async sign(e,t,r){let n=we.hash(e,t,r);return this.signDigest(n)}async signDigest(e){let t=await this.identityInstrument.sign(SE(this.authKey),e);return {type:"hash",...Tt.fromHex(t)}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,signer:this.address,timestamp:Date.now(),...r}))),i=await this.sign(t,0,n);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};function AC(s){return typeof s=="object"&&"signature"in s&&"imageHash"in s}var qc={};ye(qc,{Cached:()=>jE,Local:()=>UE,Remote:()=>_E,Sequence:()=>ch,getWalletsFor:()=>e9,multiplex:()=>h9,normalizeAddressKeys:()=>mr});var UE={};ye(UE,{IndexedDbStore:()=>DE,MemoryStore:()=>nh,Provider:()=>LE});var nh=class{configs=new Map;counterfactualWallets=new Map;payloads=new Map;signerSubdigests=new Map;signatures=new Map;sapientSignerSubdigests=new Map;sapientSignatures=new Map;trees=new Map;deepCopy(e){if(typeof structuredClone=="function")return structuredClone(e);if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e))return e.map(r=>this.deepCopy(r));if(e instanceof Map)return new Map(Array.from(e,([r,n])=>[this.deepCopy(r),this.deepCopy(n)]));if(e instanceof Set)return new Set(Array.from(e,r=>this.deepCopy(r)));let t={};for(let[r,n]of Object.entries(e))t[r]=this.deepCopy(n);return t}getSignatureKey(e,t){return `${e.toLowerCase()}-${t.toLowerCase()}`}getSapientSignatureKey(e,t,r){return `${e.toLowerCase()}-${r.toLowerCase()}-${t.toLowerCase()}`}async loadConfig(e){let t=this.configs.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveConfig(e,t){this.configs.set(e.toLowerCase(),this.deepCopy(t));}async loadCounterfactualWallet(e){let t=this.counterfactualWallets.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveCounterfactualWallet(e,t,r){this.counterfactualWallets.set(e.toLowerCase(),this.deepCopy({imageHash:t,context:r}));}async loadPayloadOfSubdigest(e){let t=this.payloads.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async savePayloadOfSubdigest(e,t){this.payloads.set(e.toLowerCase(),this.deepCopy(t));}async loadSubdigestsOfSigner(e){let t=this.signerSubdigests.get(e.toLowerCase());return t?Array.from(t).map(r=>r):[]}async loadSignatureOfSubdigest(e,t){let r=this.getSignatureKey(e,t),n=this.signatures.get(r);return n?this.deepCopy(n):void 0}async saveSignatureOfSubdigest(e,t,r){let n=this.getSignatureKey(e,t);this.signatures.set(n,this.deepCopy(r));let i=e.toLowerCase(),a=t.toLowerCase();this.signerSubdigests.has(i)||this.signerSubdigests.set(i,new Set),this.signerSubdigests.get(i).add(a);}async loadSubdigestsOfSapientSigner(e,t){let r=`${e.toLowerCase()}-${t.toLowerCase()}`,n=this.sapientSignerSubdigests.get(r);return n?Array.from(n).map(i=>i):[]}async loadSapientSignatureOfSubdigest(e,t,r){let n=this.getSapientSignatureKey(e,t,r),i=this.sapientSignatures.get(n);return i?this.deepCopy(i):void 0}async saveSapientSignatureOfSubdigest(e,t,r,n){let i=this.getSapientSignatureKey(e,t,r);this.sapientSignatures.set(i,this.deepCopy(n));let a=`${e.toLowerCase()}-${r.toLowerCase()}`,o=t.toLowerCase();this.sapientSignerSubdigests.has(a)||this.sapientSignerSubdigests.set(a,new Set),this.sapientSignerSubdigests.get(a).add(o);}async loadTree(e){let t=this.trees.get(e.toLowerCase());return t?this.deepCopy(t):void 0}async saveTree(e,t){this.trees.set(e.toLowerCase(),this.deepCopy(t));}};var zs={};ye(zs,{Guard:()=>RE,Passkey:()=>CE,Pk:()=>AE,Session:()=>PE,SessionManager:()=>BE,isSapientSigner:()=>VE,isSigner:()=>Q7});var AE={};ye(AE,{Encrypted:()=>EE,MemoryPkStore:()=>_n,Pk:()=>xE});var EE={};ye(EE,{EncryptedPkStore:()=>jg,EncryptedPksDb:()=>vE});var vE=class{localStorageKeyPrefix;tableName;dbName="pk-db";dbVersion=1;constructor(e="e_pk_key_",t="e_pk"){this.localStorageKeyPrefix=e,this.tableName=t;}computeDbKey(e){return `pk_${e.toLowerCase()}`}openDB(){return new Promise((e,t)=>{let r=indexedDB.open(this.dbName,this.dbVersion);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains(this.tableName)||n.createObjectStore(this.tableName);},r.onsuccess=()=>e(r.result),r.onerror=()=>t(r.error);})}async putData(e,t){let r=await this.openDB();return new Promise((n,i)=>{let c=r.transaction(this.tableName,"readwrite").objectStore(this.tableName).put(t,e);c.onsuccess=()=>n(),c.onerror=()=>i(c.error);})}async getData(e){let t=await this.openDB();return new Promise((r,n)=>{let o=t.transaction(this.tableName,"readonly").objectStore(this.tableName).get(e);o.onsuccess=()=>r(o.result),o.onerror=()=>n(o.error);})}async getAllData(){let e=await this.openDB();return new Promise((t,r)=>{let a=e.transaction(this.tableName,"readonly").objectStore(this.tableName).getAll();a.onsuccess=()=>t(a.result),a.onerror=()=>r(a.error);})}async generateAndStore(){let e=await window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),t=v.random(32),r=Lt.getPublicKey({privateKey:t}),n=P.fromPublicKey(r),i=this.localStorageKeyPrefix+n,a=await window.crypto.subtle.exportKey("jwk",e);window.localStorage.setItem(i,JSON.stringify(a));let c=new TextEncoder().encode(t),u=window.crypto.getRandomValues(new Uint8Array(12)),l=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:u},e,c),h={iv:u,data:l,keyPointer:i,address:n,publicKey:r},m=this.computeDbKey(n);return await this.putData(m,h),h}async getEncryptedEntry(e){let t=this.computeDbKey(e);return this.getData(t)}async getEncryptedPkStore(e){let t=await this.getEncryptedEntry(e);if(t)return new jg(t)}async listAddresses(){return (await this.getAllData()).map(t=>t.address)}async remove(e){let t=this.computeDbKey(e);await this.putData(t,void 0);let r=this.localStorageKeyPrefix+e;window.localStorage.removeItem(r);}},jg=class{encrypted;constructor(e){this.encrypted=e;}address(){return this.encrypted.address}publicKey(){return this.encrypted.publicKey}async signDigest(e){let t=window.localStorage.getItem(this.encrypted.keyPointer);if(!t)throw new Error("Encryption key not found in localStorage");let r=JSON.parse(t),n=await window.crypto.subtle.importKey("jwk",r,{name:"AES-GCM"},!1,["decrypt"]),i=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:this.encrypted.iv},n,this.encrypted.data),o=new TextDecoder().decode(i);return Lt.sign({payload:e,privateKey:o})}};var _n=class{privateKey;constructor(e){this.privateKey=e;}address(){return P.fromPublicKey(this.publicKey())}publicKey(){return Lt.getPublicKey({privateKey:this.privateKey})}signDigest(e){return Promise.resolve(Lt.sign({payload:e,privateKey:this.privateKey}))}},xE=class{privateKey;address;pubKey;constructor(e){this.privateKey=typeof e=="string"?new _n(e):e,this.pubKey=this.privateKey.publicKey(),this.address=this.privateKey.address();}async sign(e,t,r){let n=we.hash(e,t,r);return this.signDigest(n)}async signDigest(e){return {...await this.privateKey.signDigest(e),type:"hash"}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,signer:this.address,timestamp:Date.now(),...r}))),i=await this.sign(t,0,n);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};var CE={};ye(CE,{Passkey:()=>IE,isWitnessMessage:()=>IC});function IC(s){return typeof s=="object"&&s!==null&&"action"in s&&s.action==="consent-to-be-part-of-wallet"}var IE=class s{credentialId;publicKey;address;imageHash;embedMetadata;metadata;constructor(e){this.address=e.extensions.passkeys,this.publicKey=e.publicKey,this.credentialId=e.credentialId,this.embedMetadata=e.embedMetadata??!1,this.imageHash=Oe.Passkeys.rootFor(e.publicKey),this.metadata=e.metadata;}static async loadFromWitness(e,t,r,n){let i=await e.getWitnessForSapient(r,t.passkeys,n);if(!i)throw new Error("Witness for wallet not found");let a=i.payload;if(!we.isMessage(a))throw new Error("Witness payload is not a message");let o=JSON.parse(v.toString(a.message));if(!IC(o))throw new Error("Witness payload is not a witness message");let c=o.publicKey.metadata||o.metadata;if(typeof c=="string"||!c)throw new Error("Metadata does not contain credential id");let u=Oe.Passkeys.decode(f.fromHex(i.signature.data));return new s({credentialId:c.credentialId,extensions:t,publicKey:o.publicKey,embedMetadata:u.embedMetadata,metadata:c})}static async create(e,t){let r=t?.credentialName??`Sequence (${Date.now()})`,n=await Ln.createCredential({user:{name:r}}),i=v.fromNumber(n.publicKey.x),a=v.fromNumber(n.publicKey.y),o={credentialId:n.id},c=new s({credentialId:n.id,extensions:e,publicKey:{requireUserVerification:t?.requireUserVerification??!0,x:i,y:a,metadata:t?.embedMetadata?o:void 0},embedMetadata:t?.embedMetadata,metadata:o});return t?.stateProvider&&await t.stateProvider.saveTree(Oe.Passkeys.toTree(c.publicKey)),c}static async find(e,t){let r=await Ln.sign({challenge:v.random(32)});if(!r.raw)throw new Error("No credential returned");let n=f.fromHex(r.metadata.authenticatorData),i=ee.sha256(f.fromString(r.metadata.clientDataJSON),{as:"Bytes"}),a=f.concat(n,i),o=ee.sha256(a,{as:"Bytes"}),c=Oc.recoverPublicKey({payload:o,signature:{r:BigInt(r.signature.r),s:BigInt(r.signature.s),yParity:0}}),u=Oc.recoverPublicKey({payload:o,signature:{r:BigInt(r.signature.r),s:BigInt(r.signature.s),yParity:1}}),l={x:v.fromNumber(c.x),y:v.fromNumber(c.y)},h={x:v.fromNumber(u.x),y:v.fromNumber(u.y)},m={credentialId:r.raw.id},y=[Oe.Passkeys.rootFor({...l,requireUserVerification:!0}),Oe.Passkeys.rootFor({...l,requireUserVerification:!1}),Oe.Passkeys.rootFor({...l,requireUserVerification:!0,metadata:m}),Oe.Passkeys.rootFor({...l,requireUserVerification:!1,metadata:m}),Oe.Passkeys.rootFor({...h,requireUserVerification:!0}),Oe.Passkeys.rootFor({...h,requireUserVerification:!1}),Oe.Passkeys.rootFor({...h,requireUserVerification:!0,metadata:m}),Oe.Passkeys.rootFor({...h,requireUserVerification:!1,metadata:m})],w=(await Promise.all(y.map(async S=>{let C=await e.getWalletsForSapient(t.passkeys,S);return Object.keys(C).map(N=>({wallet:P.from(N),imageHash:S}))}))).flat().filter((S,C,N)=>N.findIndex(x=>P.isEqual(x.wallet,S.wallet)&&x.imageHash===S.imageHash)===C);if(w.length!==0)return w.length>1&&console.warn("Multiple signers found for passkey",w),s.loadFromWitness(e,t,w[0].wallet,w[0].imageHash)}async signSapient(e,t,r,n){if(this.imageHash!==n)throw new Error("Unexpected image hash");let i=v.fromBytes(we.hash(e,t,r)),a=await Ln.sign({challenge:i,credentialId:this.credentialId,userVerification:this.publicKey.requireUserVerification?"required":"discouraged"}),o=f.fromHex(a.metadata.authenticatorData),c=f.fromNumber(a.signature.r),u=f.fromNumber(a.signature.s),l=Oe.Passkeys.encode({publicKey:this.publicKey,r:c,s:u,authenticatorData:o,clientDataJSON:a.metadata.clientDataJSON,embedMetadata:this.embedMetadata});return {address:this.address,data:f.toHex(l),type:"sapient_compact"}}async witness(e,t,r){let n=we.fromMessage(v.fromString(JSON.stringify({action:"consent-to-be-part-of-wallet",wallet:t,publicKey:this.publicKey,metadata:this.metadata,timestamp:Date.now(),...r}))),i=await this.signSapient(t,0,n,this.imageHash);await e.saveWitnesses(t,0,n,{type:"unrecovered-signer",weight:1n,signature:i});}};var PE={};ye(PE,{Explicit:()=>NE,Implicit:()=>TE,isExplicitSessionSigner:()=>Mg,isImplicitSessionSigner:()=>kE});var CC="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",NE=class{_privateKey;address;sessionPermissions;constructor(e,t){this._privateKey=typeof e=="string"?new _n(e):e,this.address=this._privateKey.address(),this.sessionPermissions={...t,signer:this.address};}isValid(e,t){if(this.sessionPermissions.deadline<=BigInt(Math.floor(Date.now()/1e3)))return {isValid:!1,invalidReason:"Expired"};if(this.sessionPermissions.chainId!==0&&this.sessionPermissions.chainId!==t)return {isValid:!1,invalidReason:"Chain ID mismatch"};let r=Bs.getSessionPermissions(e,this.address);if(!r)return {isValid:!1,invalidReason:"Permission not found"};if(r.deadline!==this.sessionPermissions.deadline||r.chainId!==this.sessionPermissions.chainId||r.valueLimit!==this.sessionPermissions.valueLimit||r.permissions.length!==this.sessionPermissions.permissions.length)return {isValid:!1,invalidReason:"Permission mismatch"};for(let[n,i]of r.permissions.entries()){let a=this.sessionPermissions.permissions[n];if(!P.isEqual(i.target,a.target)||i.rules.length!==a.rules.length)return {isValid:!1,invalidReason:"Permission rule mismatch"};for(let[o,c]of i.rules.entries()){let u=a.rules[o];if(c.cumulative!==u.cumulative||c.operation!==u.operation||!f.isEqual(c.value,u.value)||c.offset!==u.offset||!f.isEqual(c.mask,u.mask))return {isValid:!1,invalidReason:"Permission rule mismatch"}}}return {isValid:!0}}async findSupportedPermission(e,t,r,n,i){if(!(this.sessionPermissions.chainId!==0&&this.sessionPermissions.chainId!==t)){if(r.value!==0n){if(!i)throw new Error("Value transaction validation requires a provider");let a=ee.keccak256(tt.encode([{type:"address",name:"signer"},{type:"address",name:"valueTrackingAddress"}],[this.address,CC])),{usageAmount:o}=await this.readCurrentUsageLimit(e,n,a,i),c=f.fromNumber(o+r.value,{size:32});if(f.toBigInt(c)>this.sessionPermissions.valueLimit)return}for(let a of this.sessionPermissions.permissions)if(await this.validatePermission(a,r,e,n,i))return a}}getPermissionUsageHash(e,t){let r={target:e.target,rules:e.rules.map(n=>({cumulative:n.cumulative,operation:n.operation,value:f.toHex(n.value),offset:n.offset,mask:f.toHex(n.mask)}))};return ee.keccak256(tt.encode([{type:"address",name:"signer"},Fr.permissionStructAbi,{type:"uint256",name:"ruleIndex"}],[this.address,r,BigInt(t)]))}getValueUsageHash(){return ee.keccak256(tt.encode([{type:"address",name:"signer"},{type:"address",name:"valueTrackingAddress"}],[this.address,CC]))}async validatePermission(e,t,r,n,i){if(!P.isEqual(e.target,t.to))return !1;for(let[a,o]of e.rules.entries()){let u=f.padRight(f.fromHex(t.data).slice(Number(o.offset),Number(o.offset)+32),32).map((l,h)=>l&o.mask[h]);if(o.cumulative)if(i){let{usageAmount:l}=await this.readCurrentUsageLimit(r,n,this.getPermissionUsageHash(e,a),i);u=f.fromNumber(l+f.toBigInt(u),{size:32});}else throw new Error("Cumulative rules require a provider");if(o.operation===Fr.ParameterOperation.EQUAL&&!f.isEqual(u,o.value)||o.operation===Fr.ParameterOperation.LESS_THAN_OR_EQUAL&&f.toBigInt(u)>f.toBigInt(o.value)||o.operation===Fr.ParameterOperation.NOT_EQUAL&&f.isEqual(u,o.value)||o.operation===Fr.ParameterOperation.GREATER_THAN_OR_EQUAL&&f.toBigInt(u)<f.toBigInt(o.value))return !1}return !0}async supportedCall(e,t,r,n,i){return P.isEqual(r.to,n)&&v.size(r.data)>4&&v.isEqual(v.slice(r.data,0,4),se.getSelector(nt.INCREMENT_USAGE_LIMIT))?!0:!!await this.findSupportedPermission(e,t,r,n,i)}async signCall(e,t,r,n,i,a){let o=r.calls[n],c;if(P.isEqual(o.to,i)&&v.size(o.data)>4&&v.isEqual(v.slice(o.data,0,4),se.getSelector(nt.INCREMENT_USAGE_LIMIT)))c=0;else {let h=await this.findSupportedPermission(e,t,o,i,a);if(!h)throw new Error("Invalid permission");if(c=this.sessionPermissions.permissions.indexOf(h),c===-1)throw new Error("Invalid permission")}let u=Hn.hashPayloadWithCallIdx(e,r,n,t,i),l=await this._privateKey.signDigest(f.fromHex(u));return {permissionIndex:BigInt(c),sessionSignature:l}}async readCurrentUsageLimit(e,t,r,n){let i=se.encodeData(nt.GET_LIMIT_USAGE,[e,r]),a=await n.request({method:"eth_call",params:[{to:t,data:i},"latest"]}),o=se.decodeResult(nt.GET_LIMIT_USAGE,a);return {usageHash:r,usageAmount:o}}async prepareIncrements(e,t,r,n,i){let a=[],o=this.getValueUsageHash(),u=(await this.readCurrentUsageLimit(e,n,o,i)).usageAmount;for(let h of r){let m=await this.findSupportedPermission(e,t,h,n,i);if(m){for(let[y,g]of m.rules.entries()){if(!g.cumulative)continue;let S=f.padRight(f.fromHex(h.data).slice(Number(g.offset),Number(g.offset)+32),32).map((x,E)=>x&g.mask[E]);if(f.toBigInt(S)===0n)continue;let C=this.getPermissionUsageHash(m,y),N=a.find(x=>v.isEqual(x.usageHash,C));N?N.increment+=f.toBigInt(S):a.push({usageHash:C,increment:f.toBigInt(S)});}u+=h.value;}}if(a.length===0&&u===0n)return [];let l=await Promise.all(a.map(async({usageHash:h,increment:m})=>{if(m===0n)return null;let y=await this.readCurrentUsageLimit(e,n,h,i);if(v.isEqual(h,o)&&y.usageAmount+m>this.sessionPermissions.valueLimit)throw new Error("Value transaction validation failed");return {usageHash:h,usageAmount:y.usageAmount+m}})).then(h=>h.filter(m=>m!==null));return u>0n&&l.push({usageHash:o,usageAmount:u}),l}};var TE=class{_attestation;_sessionManager;_privateKey;_identitySignature;address;constructor(e,t,r,n){if(this._attestation=t,this._sessionManager=n,this._privateKey=typeof e=="string"?new _n(e):e,this.address=this._privateKey.address(),this._attestation.approvedSigner!==this.address)throw new Error("Invalid attestation");if(this._attestation.authData.issuedAt>BigInt(Math.floor(Date.now()/1e3)))throw new Error("Attestation issued in the future");this._identitySignature=typeof r=="string"?Tt.fromHex(r):r;}get identitySigner(){let e=kt.hash(this._attestation),t=Lt.recoverPublicKey({payload:e,signature:this._identitySignature});return P.fromPublicKey(t)}isValid(e,t){let r=Bs.getIdentitySigners(e),n=this.identitySigner;return r.some(a=>P.isEqual(a,n))?Bs.getImplicitBlacklist(e)?.some(a=>P.isEqual(a,this.address))?{isValid:!1,invalidReason:"Blacklisted"}:{isValid:!0}:{isValid:!1,invalidReason:"Identity signer not found"}}async supportedCall(e,t,r,n,i){if(!i)throw new Error("Provider is required");try{let a=se.encodeData(NC,[e,{approvedSigner:this._attestation.approvedSigner,identityType:f.toHex(this._attestation.identityType),issuerHash:f.toHex(this._attestation.issuerHash),audienceHash:f.toHex(this._attestation.audienceHash),applicationData:f.toHex(this._attestation.applicationData),authData:this._attestation.authData},{to:r.to,value:r.value,data:r.data,gasLimit:r.gasLimit,delegateCall:r.delegateCall,onlyFallback:r.onlyFallback,behaviorOnError:BigInt(we.encodeBehaviorOnError(r.behaviorOnError))}]),o=await i.request({method:"eth_call",params:[{from:this._sessionManager,to:r.to,data:a},"latest"]}),c=v.from(se.decodeResult(NC,o)),u=f.toHex(kt.generateImplicitRequestMagic(this._attestation,e));return c===u}catch{return !1}}async signCall(e,t,r,n,i,a){let o=r.calls[n];if(!await this.supportedCall(e,t,o,i,a))throw new Error("Unsupported call");let u=Hn.hashPayloadWithCallIdx(e,r,n,t,i),l=await this._privateKey.signDigest(f.fromHex(u));return {attestation:this._attestation,identitySignature:this._identitySignature,sessionSignature:l}}},NC={type:"function",name:"acceptImplicitRequest",inputs:[{name:"wallet",type:"address",internalType:"address"},{name:"attestation",type:"tuple",internalType:"struct Attestation",components:[{name:"approvedSigner",type:"address",internalType:"address"},{name:"identityType",type:"bytes4",internalType:"bytes4"},{name:"issuerHash",type:"bytes32",internalType:"bytes32"},{name:"audienceHash",type:"bytes32",internalType:"bytes32"},{name:"applicationData",type:"bytes",internalType:"bytes"},{internalType:"struct AuthData",name:"authData",type:"tuple",components:[{internalType:"string",name:"redirectUrl",type:"string"},{internalType:"uint64",name:"issuedAt",type:"uint64"}]}]},{name:"call",type:"tuple",internalType:"struct Payload.Call",components:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"},{name:"gasLimit",type:"uint256",internalType:"uint256"},{name:"delegateCall",type:"bool",internalType:"bool"},{name:"onlyFallback",type:"bool",internalType:"bool"},{name:"behaviorOnError",type:"uint256",internalType:"uint256"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"};function Mg(s){return "prepareIncrements"in s}function kE(s){return "identitySigner"in s}var K7=2n**80n-1n,BE=class s{wallet;stateProvider;address;_implicitSigners;_explicitSigners;_provider;constructor(e,t){this.wallet=e,this.stateProvider=t.stateProvider??e.stateProvider,this.address=t.sessionManagerAddress,this._implicitSigners=t.implicitSigners??[],this._explicitSigners=t.explicitSigners??[],this._provider=t.provider;}get imageHash(){return this.getImageHash()}async getImageHash(){let{configuration:e}=await this.wallet.getStatus(),t=Ve.findSignerLeaf(e,this.address);if(!(!t||!Ve.isSapientSignerLeaf(t)))return t.imageHash}get topology(){return this.getTopology()}async getTopology(){let e=await this.imageHash;if(!e)throw new Error(`Session configuration not found for image hash ${e}`);let t=await this.stateProvider.getTree(e);if(!t)throw new Error(`Session configuration not found for image hash ${e}`);return Bs.configurationTreeToSessionsTopology(t)}withProvider(e){return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:this._implicitSigners,explicitSigners:this._explicitSigners,provider:e})}withImplicitSigner(e){let t=[...this._implicitSigners,e];return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:t,explicitSigners:this._explicitSigners,provider:this._provider})}withExplicitSigner(e){let t=[...this._explicitSigners,e];return new s(this.wallet,{sessionManagerAddress:this.address,stateProvider:this.stateProvider,implicitSigners:this._implicitSigners,explicitSigners:t,provider:this._provider})}async listSignerValidity(e){let t=await this.topology,r=new Map;for(let n of this._implicitSigners)r.set(n.address,n.isValid(t,e));for(let n of this._explicitSigners)r.set(n.address,n.isValid(t,e));return Array.from(r.entries()).map(([n,{isValid:i,invalidReason:a}])=>({signer:n,isValid:i,invalidReason:a}))}async findSignersForCalls(e,t,r){let n=await this.topology;if(Bs.getIdentitySigners(n).length===0)throw new Error("Identity signers not found");let a=[...this._implicitSigners,...this._explicitSigners];if(a.length===0)throw new Error("No signers match the topology");let o=[];for(let c of r){let u=!1,l;for(let h of a){try{if(u=await h.supportedCall(e,t,c,this.address,this._provider),u){let m=h.isValid(n,t);m.invalidReason==="Expired"&&(l=h),u=m.isValid;}}catch(m){console.error("findSignersForCalls error",m);continue}if(u){o.push(h);break}}if(!u)throw l?new Error(`Signer supporting call is expired: ${l.address}`):new Error(`No signer supported for call. Call: to=${c.to}, data=${c.data}, value=${c.value}, `)}return o}async prepareIncrement(e,t,r){if(r.length===0)throw new Error("No calls provided");let n=await this.findSignersForCalls(e,t,r),i=new Map;n.forEach((u,l)=>{let h=r[l],m=i.get(u)||[];i.set(u,[...m,h]);});let a=(await Promise.all(Array.from(i.entries()).map(async([u,l])=>Mg(u)?u.prepareIncrements(e,t,l,this.address,this._provider):[]))).flat();if(a.length===0)return null;if(a.filter((u,l,h)=>l===h.findIndex(m=>m.usageHash===u.usageHash)).length!==a.length)throw new Error("Repeated usage hashes");let c=se.encodeData(nt.INCREMENT_USAGE_LIMIT,[a]);return {to:this.address,data:c,value:0n,delegateCall:!1,onlyFallback:!1,behaviorOnError:"revert",gasLimit:0n}}async signSapient(e,t,r,n){if(!P.isEqual(e,this.wallet.address))throw new Error("Wallet address mismatch");if(await this.imageHash!==n)throw new Error("Unexpected image hash");if(!we.isCalls(r)||r.calls.length===0)throw new Error("Only calls are supported");if(r.space>K7)throw new Error(`Space ${r.space} is too large`);let i=await this.findSignersForCalls(e,t,r.calls);if(i.length!==r.calls.length)throw new Error("No signer supported for call");let a=await Promise.all(i.map(async(m,y)=>{try{return m.signCall(e,t,r,y,this.address,this._provider)}catch(g){throw console.error("signSapient error",g),g}})),o=await this.prepareIncrement(e,t,r.calls);if(o){let m;if(P.isEqual(this.address,Oe.Dev1.sessions)||P.isEqual(this.address,Oe.Dev2.sessions)?m=r.calls[r.calls.length-1]:m=r.calls[0],!P.isEqual(o.to,m.to)||!v.isEqual(o.data,m.data))throw new Error("Actual increment call does not match expected increment call")}let c=[],u=[],l;if(await Promise.all(i.map(async m=>{let y=await m.address;if(Mg(m))c.find(g=>P.isEqual(g,y))||c.push(y);else if(kE(m)&&!u.find(g=>P.isEqual(g,y))){if(u.push(y),!l)l=m.identitySigner;else if(!P.isEqual(l,m.identitySigner))throw new Error("Multiple implicit signers with different identity signers")}})),!l){let m=Bs.getIdentitySigners(await this.topology);if(m.length===0)throw new Error("No identity signers found");l=m[0];}let h=Hn.encodeSessionSignature(a,await this.topology,l,c,u);return {type:"sapient",address:this.address,data:v.from(h)}}async isValidSapientSignature(e,t,r,n){if(!we.isCalls(r))return !1;if(!this._provider)throw new Error("Provider not set");let i=we.encodeSapient(t,r),a=se.encodeData(nt.RECOVER_SAPIENT_SIGNATURE,[i,n.data]);try{let o=await this._provider.request({method:"eth_call",params:[{from:e,to:this.address,data:a},"pending"]});return v.from(se.decodeResult(nt.RECOVER_SAPIENT_SIGNATURE,o))===await this.imageHash}catch(o){return console.error("recoverSapientSignature error",o),!1}}};var jn;(function(s){s.Calls="Calls",s.Message="Message",s.ConfigUpdate="ConfigUpdate",s.SessionImplicitAuthorize="SessionImplicitAuthorize";})(jn||(jn={}));var Mn;(function(s){s.Hash="Hash",s.Sapient="Sapient",s.EthSign="EthSign",s.Erc1271="Erc1271";})(Mn||(Mn={}));var TC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.Unauthorized="Unauthorized",s.PermissionDenied="PermissionDenied",s.SessionExpired="SessionExpired",s.MethodNotFound="MethodNotFound",s.RequestConflict="RequestConflict",s.Aborted="Aborted",s.Geoblocked="Geoblocked",s.RateLimited="RateLimited",s.InvalidArgument="InvalidArgument",s.Unavailable="Unavailable",s.QueryFailed="QueryFailed",s.ValidationFailed="ValidationFailed",s.NotFound="NotFound",s.RequiresTOTP="RequiresTOTP",s.RequiresPIN="RequiresPIN";})(TC||(TC={}));var kC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.Unauthorized=1e3]="Unauthorized",s[s.PermissionDenied=1001]="PermissionDenied",s[s.SessionExpired=1002]="SessionExpired",s[s.MethodNotFound=1003]="MethodNotFound",s[s.RequestConflict=1004]="RequestConflict",s[s.Aborted=1005]="Aborted",s[s.Geoblocked=1006]="Geoblocked",s[s.RateLimited=1007]="RateLimited",s[s.InvalidArgument=2001]="InvalidArgument",s[s.Unavailable=2002]="Unavailable",s[s.QueryFailed=2003]="QueryFailed",s[s.ValidationFailed=2004]="ValidationFailed",s[s.NotFound=3e3]="NotFound",s[s.RequiresTOTP=6600]="RequiresTOTP",s[s.RequiresPIN=6601]="RequiresPIN";})(kC||(kC={}));var RE=class{guard;address;constructor(e){this.guard=e,this.address=this.guard.address;}async signEnvelope(e,t){let r={...e.payload,parentWallets:void 0},n=Y7(e.payload),{message:i,digest:a}=Z7(e.wallet,e.chainId,r),o=e.signatures.map(X7),c=await this.guard.signPayload(e.wallet,e.chainId,n,a,i,o,t?{id:t.id,token:t.code,resetAuth:t.resetAuth}:void 0);return {address:this.guard.address,signature:{type:"hash",...c}}}};function Y7(s){switch(s.type){case"call":return jn.Calls;case"message":return jn.Message;case"config-update":return jn.ConfigUpdate;case"session-implicit-authorize":return jn.SessionImplicitAuthorize}throw new Error(`Payload type not supported by Guard: ${s.type}`)}function Z7(s,e,t){if(we.isSessionImplicitAuthorize(t))return {message:f.fromString(kt.toJson(t.attestation)),digest:ee.keccak256(kt.encode(t.attestation))};let r=we.toTyped(s,e,t);return {message:f.fromString(Hf.serialize(r)),digest:f.fromHex(Hf.getSignPayload(r))}}function X7(s){if(AC(s))return {type:Mn.Sapient,address:s.signature.address,imageHash:s.imageHash,data:s.signature.data};if(s.signature.type=="erc1271")return {type:Mn.Erc1271,address:s.signature.address,data:s.signature.data};let e={eth_sign:Mn.EthSign,hash:Mn.Hash}[s.signature.type];if(!e)throw new Error(`Signature type not supported by Guard: ${s.signature.type}`);return {type:e,address:s.address,data:Tt.toHex(s.signature)}}function VE(s){return "signSapient"in s}function Q7(s){return "sign"in s}async function e9(s,e){let t=await t9(s,e);return Object.entries(t).map(([r,{chainId:n,payload:i,signature:a}])=>(v.assert(r),{wallet:r,chainId:n,payload:i,signature:a}))}async function t9(s,e){if(VE(e)){let[t,r]=await Promise.all([e.address,e.imageHash]);return r?s.getWalletsForSapient(t,r):(console.warn("Sapient signer has no imageHash"),{})}else return s.getWallets(await e.address)}function mr(s){return Object.fromEntries(Object.entries(s).map(([e,t])=>[P.checksum(e),t]))}var $g="configs",Fg="counterfactualWallets",qg="payloads",ih="signerSubdigests",Gg="signatures",ah="sapientSignerSubdigests",Kg="sapientSignatures",Wg="trees",DE=class{_db=null;dbName;constructor(e="sequence-indexeddb"){this.dbName=e;}async openDB(){return this._db?this._db:new Promise((e,t)=>{let r=indexedDB.open(this.dbName,1);r.onupgradeneeded=()=>{let n=r.result;n.objectStoreNames.contains($g)||n.createObjectStore($g),n.objectStoreNames.contains(Fg)||n.createObjectStore(Fg),n.objectStoreNames.contains(qg)||n.createObjectStore(qg),n.objectStoreNames.contains(ih)||n.createObjectStore(ih),n.objectStoreNames.contains(Gg)||n.createObjectStore(Gg),n.objectStoreNames.contains(ah)||n.createObjectStore(ah),n.objectStoreNames.contains(Kg)||n.createObjectStore(Kg),n.objectStoreNames.contains(Wg)||n.createObjectStore(Wg);},r.onsuccess=()=>{this._db=r.result,e(this._db);},r.onerror=()=>{t(r.error);};})}async get(e,t){let r=await this.openDB();return new Promise((n,i)=>{let c=r.transaction(e,"readonly").objectStore(e).get(t);c.onsuccess=()=>n(c.result),c.onerror=()=>i(c.error);})}async put(e,t,r){let n=await this.openDB();return new Promise((i,a)=>{let u=n.transaction(e,"readwrite").objectStore(e).put(r,t);u.onsuccess=()=>i(),u.onerror=()=>a(u.error);})}async getSet(e,t){let r=await this.get(e,t)||new Set;return Array.isArray(r)?new Set(r):r}async putSet(e,t,r){await this.put(e,t,Array.from(r));}getSignatureKey(e,t){return `${e.toLowerCase()}-${t.toLowerCase()}`}getSapientSignatureKey(e,t,r){return `${e.toLowerCase()}-${r.toLowerCase()}-${t.toLowerCase()}`}async loadConfig(e){return this.get($g,e.toLowerCase())}async saveConfig(e,t){await this.put($g,e.toLowerCase(),t);}async loadCounterfactualWallet(e){return this.get(Fg,e.toLowerCase())}async saveCounterfactualWallet(e,t,r){await this.put(Fg,e.toLowerCase(),{imageHash:t,context:r});}async loadPayloadOfSubdigest(e){return this.get(qg,e.toLowerCase())}async savePayloadOfSubdigest(e,t){await this.put(qg,e.toLowerCase(),t);}async loadSubdigestsOfSigner(e){let t=await this.getSet(ih,e.toLowerCase());return Array.from(t)}async loadSignatureOfSubdigest(e,t){let r=this.getSignatureKey(e,t);return this.get(Gg,r.toLowerCase())}async saveSignatureOfSubdigest(e,t,r){let n=this.getSignatureKey(e,t);await this.put(Gg,n.toLowerCase(),r);let i=e.toLowerCase(),a=t.toLowerCase(),o=await this.getSet(ih,i);o.add(a),await this.putSet(ih,i,o);}async loadSubdigestsOfSapientSigner(e,t){let r=`${e.toLowerCase()}-${t.toLowerCase()}`,n=await this.getSet(ah,r);return Array.from(n)}async loadSapientSignatureOfSubdigest(e,t,r){let n=this.getSapientSignatureKey(e,t,r);return this.get(Kg,n.toLowerCase())}async saveSapientSignatureOfSubdigest(e,t,r,n){let i=this.getSapientSignatureKey(e,t,r).toLowerCase();await this.put(Kg,i,n);let a=`${e.toLowerCase()}-${r.toLowerCase()}`,o=t.toLowerCase(),c=await this.getSet(ah,a);c.add(o),await this.putSet(ah,a,c);}async loadTree(e){return this.get(Wg,e.toLowerCase())}async saveTree(e,t){await this.put(Wg,e.toLowerCase(),t);}};var LE=class{store;extensions;constructor(e=new nh,t=Oe.Rc5){this.store=e,this.extensions=t;}getConfiguration(e){return this.store.loadConfig(e)}async saveWallet(e,t){await this.saveConfig(e);let r=Ve.hashConfiguration(e);await this.saveCounterfactualWallet(_c.from(r,t),v.fromBytes(r),t);}async saveConfig(e){let t=f.toHex(Ve.hashConfiguration(e)),r=await this.store.loadConfig(t);if(r){let n=Ve.mergeTopology(r.topology,e.topology);return this.store.saveConfig(t,{...r,topology:n})}else return this.store.saveConfig(t,e)}saveCounterfactualWallet(e,t,r){this.store.saveCounterfactualWallet(e,t,r);}getDeploy(e){return this.store.loadCounterfactualWallet(e)}async getWalletsGeneric(e,t){let r=await Promise.all(e.map(i=>this.store.loadPayloadOfSubdigest(i))),n={};for(let i of r){if(!i)continue;let a=P.checksum(i.wallet);if(n[a])continue;let o=v.fromBytes(we.hash(a,i.chainId,i.content)),c=await t(o);c&&(n[a]={chainId:i.chainId,payload:i.content,signature:c});}return n}async getWallets(e){return mr(await this.getWalletsGeneric(await this.store.loadSubdigestsOfSigner(e),t=>this.store.loadSignatureOfSubdigest(e,t)))}async getWalletsForSapient(e,t){return mr(await this.getWalletsGeneric(await this.store.loadSubdigestsOfSapientSigner(e,t),r=>this.store.loadSapientSignatureOfSubdigest(e,r,t)))}getWitnessFor(e,t){let r=P.checksum(e);return this.getWallets(t).then(n=>n[r])}getWitnessForSapient(e,t,r){let n=P.checksum(e);return this.getWalletsForSapient(t,r).then(i=>i[n])}async saveWitnesses(e,t,r,n){let i=v.fromBytes(we.hash(e,t,r));await Promise.all([this.saveSignature(i,n),this.store.savePayloadOfSubdigest(i,{content:r,chainId:t,wallet:e})]);}async getConfigurationUpdates(e,t,r){let n=await this.store.loadConfig(t);if(!n)return [];let{signers:i,sapientSigners:a}=Ve.getSigners(n),o=await Promise.all([...i.map(g=>this.store.loadSubdigestsOfSigner(g)),...a.map(g=>this.store.loadSubdigestsOfSapientSigner(g.address,g.imageHash))]),c=[...new Set(o.flat())],u=await Promise.all(c.map(g=>this.store.loadPayloadOfSubdigest(g))),l=await Promise.all(u.filter(g=>g?.content&&we.isConfigUpdate(g.content)).map(async g=>({payload:g,nextImageHash:g.content.imageHash,config:await this.store.loadConfig(g.content.imageHash)}))),h,m=l.filter(g=>g.config&&g.config.checkpoint>n.checkpoint).sort((g,w)=>g.config.checkpoint>w.config.checkpoint?r?.allUpdates?1:-1:r?.allUpdates?-1:1);for(let g of m){if(h){if(r?.allUpdates){if(g.config.checkpoint<=h.checkpoint)continue}else if(g.config.checkpoint<=h.checkpoint)continue}let w=v.fromBytes(we.hash(e,g.payload.chainId,g.payload.content)),S=await Promise.all([...i.map(async x=>({signer:x,signature:await this.store.loadSignatureOfSubdigest(x,w)})),...a.map(async x=>({signer:x.address,imageHash:x.imageHash,signature:await this.store.loadSapientSignatureOfSubdigest(x.address,w,x.imageHash)}))]),C=0n,N=Ut.fillLeaves(n.topology,x=>{if(Ve.isSapientSignerLeaf(x)){let I=S.find(({signer:D,imageHash:G})=>G&&P.isEqual(D,x.address)&&G===x.imageHash)?.signature;if(I)return C+=x.weight,I}let E=S.find(({signer:I})=>P.isEqual(I,x.address))?.signature;if(E)return C+=x.weight,E});C<n.threshold||(h={nextImageHash:g.nextImageHash,checkpoint:g.config.checkpoint,signature:{noChainId:!0,configuration:{threshold:n.threshold,checkpoint:n.checkpoint,topology:N}}});}if(!h)return [];let y=await this.getConfigurationUpdates(e,h.nextImageHash,{allUpdates:!0});return [{imageHash:h.nextImageHash,signature:h.signature},...y]}async saveUpdate(e,t,r){let i={type:"config-update",imageHash:f.toHex(Ve.hashConfiguration(t))},a=we.hash(e,0,i);await this.store.savePayloadOfSubdigest(v.fromBytes(a),{content:i,chainId:0,wallet:e}),await this.saveConfig(t),await this.saveSignature(v.fromBytes(a),r.configuration.topology);}async saveSignature(e,t){if(Ut.isRawNode(t)){await Promise.all([this.saveSignature(e,t[0]),this.saveSignature(e,t[1])]);return}if(Ut.isRawNestedLeaf(t))return this.saveSignature(e,t.tree);if(Ut.isRawSignerLeaf(t)){let r=t.signature.type;if(r==="eth_sign"||r==="hash"){let n=Lt.recoverAddress({payload:r==="eth_sign"?Zp.getSignPayload(e):e,signature:t.signature});return this.store.saveSignatureOfSubdigest(n,e,t.signature)}if(Ut.isSignatureOfSapientSignerLeaf(t.signature))switch(t.signature.address.toLowerCase()){case this.extensions.passkeys.toLowerCase():let n=Oe.Passkeys.decode(f.fromHex(t.signature.data));if(!Oe.Passkeys.isValidSignature(e,n))throw new Error("Invalid passkey signature");return this.store.saveSapientSignatureOfSubdigest(t.signature.address,e,Oe.Passkeys.rootFor(n.publicKey),t.signature);default:throw new Error(`Unsupported sapient signer: ${t.signature.address}`)}}}getTree(e){return this.store.loadTree(e)}saveTree(e){return this.store.saveTree(As.hash(e),e)}saveConfiguration(e){return this.store.saveConfig(f.toHex(Ve.hashConfiguration(e)),e)}saveDeploy(e,t){return this.store.saveCounterfactualWallet(_c.from(f.fromHex(e),t),e,t)}async getPayload(e){let t=await this.store.loadPayloadOfSubdigest(e);return t?{chainId:t.chainId,payload:t.content,wallet:t.wallet}:void 0}savePayload(e,t,r){let n=v.fromBytes(we.hash(e,r,t));return this.store.savePayloadOfSubdigest(n,{content:t,chainId:r,wallet:e})}};var _E={};ye(_E,{DevHttpProvider:()=>HE});var HE=class{baseUrl;constructor(e){this.baseUrl=e.endsWith("/")?e.slice(0,-1):e;}async request(e,t,r){let n=`${this.baseUrl}${t}`,i={method:e,headers:{}};r&&e==="POST"&&(i.headers={"Content-Type":"application/json"},i.body=xa.toJSON(r));let a;try{a=await fetch(n,i);}catch(o){throw console.error(`Network error during ${e} request to ${n}:`,o),o}if(!a.ok){let o={message:`HTTP error! Status: ${a.status}`};try{let c=await a.text(),u=await xa.fromJSON(c);o={...o,...u};}catch{try{let u=await a.text();o.body=u;}catch{}}throw console.error("HTTP Request Failed:",o),new Error(o.message||`Request failed for ${e} ${t} with status ${a.status}`)}try{if(a.status===204)return;if(a.status===201&&e==="POST"){if((await a.clone().text()).trim()==="")return;let l=await a.text();return await xa.fromJSON(l)}if((await a.clone().text()).trim()==="")return;{let u=await a.text();return await xa.fromJSON(u)}}catch(o){console.error(`Error processing response body for ${e} ${n}:`,o);try{let c=await a.text();throw new Error(`Failed to parse JSON response from server. Status: ${a.status}. Body: "${c}". Original error: ${o instanceof Error?o.message:String(o)}`)}catch{throw new Error(`Failed to parse JSON response from server and could not read response body as text. Status: ${a.status}. Original error: ${o instanceof Error?o.message:String(o)}`)}}}async getConfiguration(e){return await this.request("GET",`/configuration/${e}`)}async getDeploy(e){return this.request("GET",`/deploy/${e}`)}async getWallets(e){return this.request("GET",`/wallets/signer/${e}`)}async getWalletsForSapient(e,t){return this.request("GET",`/wallets/sapient/${e}/${t}`)}async getWitnessFor(e,t){return this.request("GET",`/witness/${e}/signer/${t}`)}async getWitnessForSapient(e,t,r){return this.request("GET",`/witness/sapient/${e}/${t}/${r}`)}async getConfigurationUpdates(e,t,r){let n=r?.allUpdates?"?allUpdates=true":"";return this.request("GET",`/configuration-updates/${e}/from/${t}${n}`)}async getTree(e){return this.request("GET",`/tree/${e}`)}async saveWallet(e,t){await this.request("POST","/wallet",{deployConfiguration:e,context:t});}async saveWitnesses(e,t,r,n){await this.request("POST","/witnesses",{wallet:e,chainId:t,payload:r,signatures:n});}async saveUpdate(e,t,r){await this.request("POST","/update",{wallet:e,configuration:t,signature:r});}async saveTree(e){await this.request("POST","/tree",{tree:e});}saveConfiguration(e){return this.request("POST","/configuration",{config:e})}saveDeploy(e,t){return this.request("POST","/deploy",{imageHash:e,context:t})}async getPayload(e){return this.request("GET",`/payload/${e}`)}async savePayload(e,t,r){return this.request("POST","/payload",{wallet:e,payload:t,chainId:r})}};var jE=class{args;constructor(e){this.args=e;}async getConfiguration(e){let t=await this.args.cache.getConfiguration(e);if(t)return t;let r=await this.args.source.getConfiguration(e);return r&&await this.args.cache.saveConfiguration(r),r}async getDeploy(e){let t=await this.args.cache.getDeploy(e);if(t)return t;let r=await this.args.source.getDeploy(e);return r&&await this.args.cache.saveDeploy(r.imageHash,r.context),r}async getWallets(e){let t=mr(await this.args.cache.getWallets(e)),r=mr(await this.args.source.getWallets(e)),n={...t,...r};for(let[i,a]of Object.entries(n))P.assert(i),r[i]||await this.args.source.saveWitnesses(i,a.chainId,a.payload,{type:"unrecovered-signer",weight:1n,signature:a.signature}),t[i]||await this.args.cache.saveWitnesses(i,a.chainId,a.payload,{type:"unrecovered-signer",weight:1n,signature:a.signature});return n}async getWalletsForSapient(e,t){let r=await this.args.cache.getWalletsForSapient(e,t),n=await this.args.source.getWalletsForSapient(e,t),i={...r,...n};for(let[a,o]of Object.entries(i)){let c=P.from(a);n[c]||await this.args.source.saveWitnesses(c,o.chainId,o.payload,{type:"unrecovered-signer",weight:1n,signature:o.signature}),r[c]||await this.args.cache.saveWitnesses(c,o.chainId,o.payload,{type:"unrecovered-signer",weight:1n,signature:o.signature});}return i}async getWitnessFor(e,t){let r=await this.args.cache.getWitnessFor(e,t);if(r)return r;let n=await this.args.source.getWitnessFor(e,t);return n&&await this.args.cache.saveWitnesses(e,n.chainId,n.payload,{type:"unrecovered-signer",weight:1n,signature:n.signature}),n}async getWitnessForSapient(e,t,r){let n=await this.args.cache.getWitnessForSapient(e,t,r);if(n)return n;let i=await this.args.source.getWitnessForSapient(e,t,r);return i&&await this.args.cache.saveWitnesses(e,i.chainId,i.payload,{type:"unrecovered-signer",weight:1n,signature:i.signature}),i}async getConfigurationUpdates(e,t,r){return this.args.source.getConfigurationUpdates(e,t,r)}async getTree(e){let t=await this.args.cache.getTree(e);if(t)return t;let r=await this.args.source.getTree(e);return r&&await this.args.cache.saveTree(r),r}saveWallet(e,t){return this.args.source.saveWallet(e,t)}saveWitnesses(e,t,r,n){return this.args.source.saveWitnesses(e,t,r,n)}saveUpdate(e,t,r){return this.args.source.saveUpdate(e,t,r)}saveTree(e){return this.args.source.saveTree(e)}saveConfiguration(e){return this.args.source.saveConfiguration(e)}saveDeploy(e,t){return this.args.source.saveDeploy(e,t)}async getPayload(e){let t=await this.args.cache.getPayload(e);if(t)return t;let r=await this.args.source.getPayload(e);return r&&await this.args.cache.savePayload(r.wallet,r.payload,r.chainId),r}savePayload(e,t,r){return this.args.source.savePayload(e,t,r)}};var ch={};ye(ch,{Provider:()=>tx});var s9="Webrpc",r9="webrpc@v0.22.1;gen-typescript@v0.16.2;sessions@v0.0.1";var OC;(function(s){s.Transactions="Transactions",s.Message="Message",s.ConfigUpdate="ConfigUpdate",s.Digest="Digest";})(OC||(OC={}));var ze;(function(s){s.EIP712="EIP712",s.EthSign="EthSign",s.EIP1271="EIP1271",s.Sapient="Sapient",s.SapientCompact="SapientCompact";})(ze||(ze={}));var Jg=class{hostname;fetch;path="/rpc/Sessions/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}ping=(e,t)=>this.fetch(this.url("Ping"),St({},e,t)).then(r=>vt(r).then(n=>({})),r=>{throw ht.new({cause:`fetch(): ${r.message||""}`})});config=(e,t,r)=>this.fetch(this.url("Config"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,config:i.config})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});tree=(e,t,r)=>this.fetch(this.url("Tree"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,tree:i.tree})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});payload=(e,t,r)=>this.fetch(this.url("Payload"),St(e,t,r)).then(n=>vt(n).then(i=>({version:i.version,payload:i.payload,wallet:i.wallet,chainID:i.chainID})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});wallets=(e,t,r)=>this.fetch(this.url("Wallets"),St(e,t,r)).then(n=>vt(n).then(i=>({wallets:i.wallets,cursor:i.cursor})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});deployHash=(e,t,r)=>this.fetch(this.url("DeployHash"),St(e,t,r)).then(n=>vt(n).then(i=>({deployHash:i.deployHash,context:i.context})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});witness=(e,t,r)=>this.fetch(this.url("Witness"),St(e,t,r)).then(n=>vt(n).then(i=>({witness:i.witness})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});configUpdates=(e,t,r)=>this.fetch(this.url("ConfigUpdates"),St(e,t,r)).then(n=>vt(n).then(i=>({updates:i.updates})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});migrations=(e,t,r)=>this.fetch(this.url("Migrations"),St(e,t,r)).then(n=>vt(n).then(i=>({migrations:i.migrations})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveConfig=(e,t,r)=>this.fetch(this.url("SaveConfig"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveTree=(e,t,r)=>this.fetch(this.url("SaveTree"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});savePayload=(e,t,r)=>this.fetch(this.url("SavePayload"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveWallet=(e,t,r)=>this.fetch(this.url("SaveWallet"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignature=(e,t,r)=>this.fetch(this.url("SaveSignature"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignature2=(e,t,r)=>this.fetch(this.url("SaveSignature2"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures2=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures2"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveSignerSignatures3=(e,t,r)=>this.fetch(this.url("SaveSignerSignatures3"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})});saveMigration=(e,t,r)=>this.fetch(this.url("SaveMigration"),St(e,t,r)).then(n=>vt(n).then(i=>({})),n=>{throw ht.new({cause:`fetch(): ${n.message||""}`})})},St=(s={},e={},t=null)=>{let r={...e,"Content-Type":"application/json"};return r[s9]=r9,{method:"POST",headers:r,body:JSON.stringify(s||{}),signal:t}},vt=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){let n="";throw r instanceof Error&&(n=r.message),zg.new({status:s.status,cause:`JSON.parse(): ${n}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (n9[r]||Jt).new(t)}return t}),Jt=class s extends Error{name;code;message;status;cause;msg;constructor(e,t,r,n,i){super(r),this.name=e||"WebrpcError",this.code=typeof t=="number"?t:0,this.message=r||`endpoint error ${this.code}`,this.msg=this.message,this.status=typeof n=="number"?n:0,this.cause=i,Object.setPrototypeOf(this,s.prototype);}static new(e){return new this(e.error,e.code,e.message||e.msg,e.status,e.cause)}},ME=class s extends Jt{constructor(e="WebrpcEndpoint",t=0,r="endpoint error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},ht=class s extends Jt{constructor(e="WebrpcRequestFailed",t=-1,r="request failed",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},$E=class s extends Jt{constructor(e="WebrpcBadRoute",t=-2,r="bad route",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},FE=class s extends Jt{constructor(e="WebrpcBadMethod",t=-3,r="bad method",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},qE=class s extends Jt{constructor(e="WebrpcBadRequest",t=-4,r="bad request",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},zg=class s extends Jt{constructor(e="WebrpcBadResponse",t=-5,r="bad response",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},GE=class s extends Jt{constructor(e="WebrpcServerPanic",t=-6,r="server panic",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},KE=class s extends Jt{constructor(e="WebrpcInternalError",t=-7,r="internal error",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},WE=class s extends Jt{constructor(e="WebrpcClientDisconnected",t=-8,r="client disconnected",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},JE=class s extends Jt{constructor(e="WebrpcStreamLost",t=-9,r="stream lost",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},zE=class s extends Jt{constructor(e="WebrpcStreamFinished",t=-10,r="stream finished",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},YE=class s extends Jt{constructor(e="InvalidArgument",t=1,r="invalid argument",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},ZE=class s extends Jt{constructor(e="NotFound",t=2,r="not found",n=0,i){super(e,t,r,n,i),Object.setPrototypeOf(this,s.prototype);}},RC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientDisconnected="WebrpcClientDisconnected",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.InvalidArgument="InvalidArgument",s.NotFound="NotFound";})(RC||(RC={}));var VC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientDisconnected=-8]="WebrpcClientDisconnected",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.InvalidArgument=1]="InvalidArgument",s[s.NotFound=2]="NotFound";})(VC||(VC={}));var n9={0:ME,[-1]:ht,[-2]:$E,[-3]:FE,[-4]:qE,[-5]:zg,[-6]:GE,[-7]:KE,[-8]:WE,[-9]:JE,[-10]:zE,1:YE,2:ZE};var tx=class{service;constructor(e="https://keymachine.sequence.app"){this.service=new Jg(e,fetch);}async getConfiguration(e){let{version:t,config:r}=await this.service.config({imageHash:e});if(t!==3)throw new Error(`invalid configuration version ${t}, expected version 3`);return o9(r)}async getDeploy(e){let{deployHash:t,context:r}=await this.service.deployHash({wallet:e});return v.assert(t),P.assert(r.factory),P.assert(r.mainModule),P.assert(r.mainModuleUpgradable),v.assert(r.walletCreationCode),{imageHash:t,context:{factory:r.factory,stage1:r.mainModule,stage2:r.mainModuleUpgradable,creationCode:r.walletCreationCode}}}async getWallets(e){let t=await this.service.wallets({signer:e}),r=mr(t.wallets);return Object.fromEntries(Object.entries(r).map(([n,i])=>{switch(P.assert(n),v.assert(i.signature),i.type){case ze.EIP712:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"hash",...Tt.from(i.signature)}}];case ze.EthSign:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"eth_sign",...Tt.from(i.signature)}}];case ze.EIP1271:return [n,{chainId:Number(i.chainID),payload:Ys(i.payload),signature:{type:"erc1271",address:e,data:i.signature}}];case ze.Sapient:throw new Error(`unexpected sapient signature by ${e}`);case ze.SapientCompact:throw new Error(`unexpected compact sapient signature by ${e}`)}}))}async getWalletsForSapient(e,t){let r=await this.service.wallets({signer:e,sapientHash:t}),n=mr(r.wallets);return Object.fromEntries(Object.entries(n).map(([i,a])=>{switch(P.assert(i),v.assert(a.signature),a.type){case ze.EIP712:throw new Error(`unexpected eip-712 signature by ${e}`);case ze.EthSign:throw new Error(`unexpected eth_sign signature by ${e}`);case ze.EIP1271:throw new Error(`unexpected erc-1271 signature by ${e}`);case ze.Sapient:return [i,{chainId:Number(a.chainID),payload:Ys(a.payload),signature:{type:"sapient",address:e,data:a.signature}}];case ze.SapientCompact:return [i,{chainId:Number(a.chainID),payload:Ys(a.payload),signature:{type:"sapient_compact",address:e,data:a.signature}}]}}))}async getWitnessFor(e,t){try{let{witness:r}=await this.service.witness({signer:t,wallet:e});switch(v.assert(r.signature),r.type){case ze.EIP712:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"hash",...Tt.from(r.signature)}};case ze.EthSign:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"eth_sign",...Tt.from(r.signature)}};case ze.EIP1271:return {chainId:Number(r.chainID),payload:Ys(r.payload),signature:{type:"erc1271",address:t,data:r.signature}};case ze.Sapient:throw new Error(`unexpected sapient signature by ${t}`);case ze.SapientCompact:throw new Error(`unexpected compact sapient signature by ${t}`)}}catch{}}async getWitnessForSapient(e,t,r){try{let{witness:n}=await this.service.witness({signer:t,wallet:e,sapientHash:r});switch(v.assert(n.signature),n.type){case ze.EIP712:throw new Error(`unexpected eip-712 signature by ${t}`);case ze.EthSign:throw new Error(`unexpected eth_sign signature by ${t}`);case ze.EIP1271:throw new Error(`unexpected erc-1271 signature by ${t}`);case ze.Sapient:return {chainId:Number(n.chainID),payload:Ys(n.payload),signature:{type:"sapient",address:t,data:n.signature}};case ze.SapientCompact:return {chainId:Number(n.chainID),payload:Ys(n.payload),signature:{type:"sapient_compact",address:t,data:n.signature}}}}catch{}}async getConfigurationUpdates(e,t,r){let{updates:n}=await this.service.configUpdates({wallet:e,fromImageHash:t,allUpdates:r?.allUpdates});return Promise.all(n.map(async({toImageHash:i,signature:a})=>{v.assert(i),v.assert(a);let o=Ut.decodeSignature(v.toBytes(a)),{configuration:c}=await Ut.recover(o,e,0,we.fromConfigUpdate(i),{provider:a9});return {imageHash:i,signature:{...o,configuration:c}}}))}async getTree(e){let{version:t,tree:r}=await this.service.tree({imageHash:e});if(t!==3)throw new Error(`invalid tree version ${t}, expected version 3`);return UC(r)}async getPayload(e){let{version:t,payload:r,wallet:n,chainID:i}=await this.service.payload({digest:e});if(t!==3)throw new Error(`invalid payload version ${t}, expected version 3`);return P.assert(n),{payload:Ys(r),wallet:n,chainId:Number(i)}}async saveWallet(e,t){await this.service.saveWallet({version:3,deployConfig:QE(e),context:{version:3,factory:t.factory,mainModule:t.stage1,mainModuleUpgradable:t.stage2,guestModule:nt.DefaultGuestAddress,walletCreationCode:t.creationCode}});}async saveWitnesses(e,t,r,n){await this.service.saveSignerSignatures3({wallet:e,payload:ex(r),chainID:t.toString(),signatures:oh(n).map(i=>{switch(i.type){case"hash":return {type:ze.EIP712,signature:Tt.toHex(Tt.from(i))};case"eth_sign":return {type:ze.EthSign,signature:Tt.toHex(Tt.from(i))};case"erc1271":return {type:ze.EIP1271,signer:i.address,signature:i.data,referenceChainID:t.toString()};case"sapient":return {type:ze.Sapient,signer:i.address,signature:i.data,referenceChainID:t.toString()};case"sapient_compact":return {type:ze.SapientCompact,signer:i.address,signature:i.data,referenceChainID:t.toString()}}})});}async saveUpdate(e,t,r){await this.service.saveSignature2({wallet:e,payload:ex(we.fromConfigUpdate(f.toHex(Ve.hashConfiguration(t)))),chainID:"0",signature:f.toHex(Ut.encodeSignature(r)),toConfig:QE(t)});}async saveTree(e){await this.service.saveTree({version:3,tree:LC(e)});}async saveConfiguration(e){await this.service.saveConfig({version:3,config:QE(e)});}async saveDeploy(e,t){}async savePayload(e,t,r){await this.service.savePayload({version:3,payload:ex(t),wallet:e,chainID:r.toString()});}},i9=[Oe.Dev1.passkeys,Oe.Dev2.passkeys,Oe.Rc3.passkeys,Oe.Rc4.passkeys,Oe.Rc5.passkeys].map(P.checksum),DC="function recoverSapientSignatureCompact(bytes32 _digest, bytes _signature) view returns (bytes32)",XE=se.from(DC),sx=class{request=async e=>{switch(e.method){case"eth_call":if(!e.params||!Array.isArray(e.params)||e.params.length===0)throw new Error("eth_call requires transaction parameters");let t=e.params[0];if(!t.data?.startsWith(se.getSelector(XE)))throw new Error(`unknown selector ${t.data?.slice(0,10)}, expected selector ${se.getSelector(XE)} for ${DC}`);if(!i9.includes(t.to?P.checksum(t.to):"0x"))throw new Error(`unknown passkey signer ${t.to}`);let[r,n]=se.decodeData(XE,t.data),i=Oe.Passkeys.decode(v.toBytes(n));if(Oe.Passkeys.isValidSignature(r,i))return Oe.Passkeys.rootFor(i.publicKey);throw new Error(`invalid passkey signature ${n} for digest ${r}`);default:throw new Error(`method ${e.method} not implemented`)}};on=e=>{throw new Error(`unable to listen for ${e}: not implemented`)};removeListener=e=>{throw new Error(`unable to remove listener for ${e}: not implemented`)}},a9=new sx;function QE(s){return {threshold:pr(s.threshold),checkpoint:pr(s.checkpoint),checkpointer:s.checkpointer,tree:Yg(s.topology)}}function o9(s){return s.checkpointer!==void 0&&P.assert(s.checkpointer),{threshold:BigInt(s.threshold),checkpoint:BigInt(s.checkpoint),checkpointer:s.checkpointer,topology:Zg(s.tree)}}function Yg(s){if(Ve.isNode(s))return [Yg(s[0]),Yg(s[1])];if(Ve.isSignerLeaf(s))return {weight:pr(s.weight),address:s.address};if(Ve.isSapientSignerLeaf(s))return {weight:pr(s.weight),address:s.address,imageHash:s.imageHash};if(Ve.isSubdigestLeaf(s))return {subdigest:s.digest};if(Ve.isAnyAddressSubdigestLeaf(s))return {subdigest:s.digest,isAnyAddress:!0};if(Ve.isNestedLeaf(s))return {weight:pr(s.weight),threshold:pr(s.threshold),tree:Yg(s.tree)};if(Ve.isNodeLeaf(s))return s;throw new Error(`unknown topology '${JSON.stringify(s)}'`)}function Zg(s){switch(typeof s){case"string":return v.assert(s),s;case"object":if(s instanceof Array)return [Zg(s[0]),Zg(s[1])];if("weight"in s){if("address"in s)return P.assert(s.address),s.imageHash?(v.assert(s.imageHash),{type:"sapient-signer",address:s.address,weight:BigInt(s.weight),imageHash:s.imageHash}):{type:"signer",address:s.address,weight:BigInt(s.weight)};if("tree"in s)return {type:"nested",weight:BigInt(s.weight),threshold:BigInt(s.threshold),tree:Zg(s.tree)}}if("subdigest"in s)return v.assert(s.subdigest),{type:s.isAnyAddress?"any-address-subdigest":"subdigest",digest:s.subdigest}}throw new Error(`unknown config tree '${JSON.stringify(s)}'`)}function ex(s){if(we.isCalls(s))return {type:"call",space:pr(s.space),nonce:pr(s.nonce),calls:s.calls.map(c9)};if(we.isMessage(s))return {type:"message",message:s.message};if(we.isConfigUpdate(s))return {type:"config-update",imageHash:s.imageHash};if(we.isDigest(s))return {type:"digest",digest:s.digest};throw new Error(`unknown payload '${JSON.stringify(s)}'`)}function Ys(s){switch(s.type){case"call":return {type:"call",space:BigInt(s.space),nonce:BigInt(s.nonce),calls:s.calls.map(u9)};case"message":return v.assert(s.message),{type:"message",message:s.message};case"config-update":return v.assert(s.imageHash),{type:"config-update",imageHash:s.imageHash};case"digest":return v.assert(s.digest),{type:"digest",digest:s.digest}}}function c9(s){return {to:s.to,value:pr(s.value),data:s.data,gasLimit:pr(s.gasLimit),delegateCall:s.delegateCall,onlyFallback:s.onlyFallback,behaviorOnError:s.behaviorOnError}}function u9(s){return P.assert(s.to),v.assert(s.data),{to:s.to,value:BigInt(s.value),data:s.data,gasLimit:BigInt(s.gasLimit),delegateCall:s.delegateCall,onlyFallback:s.onlyFallback,behaviorOnError:s.behaviorOnError}}function LC(s){if(As.isBranch(s))return s.map(LC);if(As.isLeaf(s))return {data:f.toHex(s.value)};if(As.isNode(s))return s;throw new Error(`unknown tree '${JSON.stringify(s)}'`)}function UC(s){switch(typeof s){case"string":return v.assert(s),s;case"object":if(s instanceof Array)return s.map(UC);if("data"in s)return v.assert(s.data),{type:"leaf",value:v.toBytes(s.data)}}throw new Error(`unknown tree '${JSON.stringify(s)}'`)}function pr(s){return s<Number.MIN_SAFE_INTEGER||s>Number.MAX_SAFE_INTEGER?s.toString():Number(s)}function oh(s){if(Ut.isRawNode(s))return [...oh(s[0]),...oh(s[1])];if(Ut.isRawSignerLeaf(s))return [s.signature];if(Ve.isNestedLeaf(s))return oh(s.tree);if(Ut.isRawNestedLeaf(s))return oh(s.tree);if(Ve.isSignerLeaf(s))return s.signature?[s.signature]:[];if(Ve.isSapientSignerLeaf(s))return s.signature?[s.signature]:[];if(Ve.isSubdigestLeaf(s))return [];if(Ve.isAnyAddressSubdigestLeaf(s))return [];if(Ve.isNodeLeaf(s))return [];throw new Error(`unknown topology '${JSON.stringify(s)}'`)}function l9(s,e){return typeof e=="bigint"?e.toString():e instanceof Uint8Array?v.fromBytes(e):e}function Xg(s){return JSON.stringify(s,l9,2)}function Qg(s){if(typeof s=="bigint")return s.toString();if(s instanceof Uint8Array)return v.fromBytes(s);if(typeof s=="string")return s.toLowerCase();if(Array.isArray(s))return s.map(Qg);if(s&&typeof s=="object"){let e=[];for(let t of Object.keys(s).filter(r=>s[r]!==void 0).sort())e.push([t.toLowerCase(),Qg(s[t])]);return e}return s}function f9(s,e){return JSON.stringify(Qg(s))===JSON.stringify(Qg(e))}function h9(s,e){let t={get(r,n,i){let a=s[n];return typeof a!="function"?Reflect.get(s,n):async(...o)=>{let c=String(n),u=Xg(o),l;try{l=await a.apply(s,o);}catch(m){let y=Math.floor(1e6*Math.random()).toString().padStart(6,"0");throw console.trace(`[${y}] calling ${c}: ${u}
|
|
350
|
+
[${y}] warning: reference ${c} threw:`,m),m}let h=Xg(l);return await Promise.all(Object.entries(e).map(async([m,y])=>{let g=y[n];if(typeof g!="function"){let C=Math.floor(1e6*Math.random()).toString().padStart(6,"0");console.trace(`[${C}] calling ${c}: ${u}
|
|
351
351
|
[${C}] reference returned: ${h}
|
|
352
352
|
[${C}] warning: ${m} has no ${c}`);return}let w;try{w=g.apply(y,o),w=await Promise.resolve(w);}catch(C){let N=Math.floor(1e6*Math.random()).toString().padStart(6,"0");console.trace(`[${N}] calling ${c}: ${u}
|
|
353
353
|
[${N}] reference returned: ${h}
|
|
354
|
-
[${N}] warning: ${m} ${c} threw:`,C);return}let
|
|
355
|
-
[${
|
|
356
|
-
[${
|
|
357
|
-
[${
|
|
358
|
-
[${
|
|
359
|
-
[${b}] warning: ${m} ${c} does not match reference`);})),l}}};return new Proxy(s,t)}({knownContexts:Aa.KnownContexts,stateProvider:new ch.Provider,guest:nt.DefaultGuestAddress});var fh={};ye(fh,{EIP1193ProviderAdapter:()=>Pa,EIP6963:()=>o2,LocalRelayer:()=>ka,PkRelayer:()=>s2,RpcRelayer:()=>t2,SequenceRelayer:()=>r2,getChain:()=>yN,isRelayer:()=>IV});var Et;(function(s){s.UNKNOWN="UNKNOWN",s.DROPPED="DROPPED",s.QUEUED="QUEUED",s.SENT="SENT",s.SUCCEEDED="SUCCEEDED",s.PARTIALLY_FAILED="PARTIALLY_FAILED",s.FAILED="FAILED",s.PENDING_PRECONDITION="PENDING_PRECONDITION";})(Et||(Et={}));var jC;(function(s){s.SEND="SEND",s.RECEIVE="RECEIVE",s.BRIDGE_DEPOSIT="BRIDGE_DEPOSIT",s.BRIDGE_WITHDRAW="BRIDGE_WITHDRAW",s.BURN="BURN",s.UNKNOWN="UNKNOWN";})(jC||(jC={}));var MC;(function(s){s.SKIPPED="SKIPPED",s.SUCCEEDED="SUCCEEDED",s.FAILED="FAILED",s.ABORTED="ABORTED",s.REVERTED="REVERTED",s.NOT_ENOUGH_GAS="NOT_ENOUGH_GAS";})(MC||(MC={}));var t1;(function(s){s.UNKNOWN="UNKNOWN",s.ERC20_TOKEN="ERC20_TOKEN",s.ERC1155_TOKEN="ERC1155_TOKEN";})(t1||(t1={}));var $C;(function(s){s.DESC="DESC",s.ASC="ASC";})($C||($C={}));var Kc=class{hostname;fetch;path="/rpc/Relayer/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}queryKey={ping:()=>["Relayer","ping"],version:()=>["Relayer","version"],runtimeStatus:()=>["Relayer","runtimeStatus"],getSequenceContext:()=>["Relayer","getSequenceContext"],getChainID:()=>["Relayer","getChainID"],sendMetaTxn:e=>["Relayer","sendMetaTxn",e],getMetaTxnNonce:e=>["Relayer","getMetaTxnNonce",e],getMetaTxnReceipt:e=>["Relayer","getMetaTxnReceipt",e],simulate:e=>["Relayer","simulate",e],simulateV3:e=>["Relayer","simulateV3",e],updateMetaTxnGasLimits:e=>["Relayer","updateMetaTxnGasLimits",e],feeTokens:()=>["Relayer","feeTokens"],feeOptions:e=>["Relayer","feeOptions",e],getMetaTxnNetworkFeeOptions:e=>["Relayer","getMetaTxnNetworkFeeOptions",e],getMetaTransactions:e=>["Relayer","getMetaTransactions",e],getTransactionCost:e=>["Relayer","getTransactionCost",e],sentTransactions:e=>["Relayer","sentTransactions",e],pendingTransactions:e=>["Relayer","pendingTransactions",e],getGasTank:e=>["Relayer","getGasTank",e],addGasTank:e=>["Relayer","addGasTank",e],updateGasTank:e=>["Relayer","updateGasTank",e],nextGasTankBalanceAdjustmentNonce:e=>["Relayer","nextGasTankBalanceAdjustmentNonce",e],adjustGasTankBalance:e=>["Relayer","adjustGasTankBalance",e],getGasTankBalanceAdjustment:e=>["Relayer","getGasTankBalanceAdjustment",e],listGasTankBalanceAdjustments:e=>["Relayer","listGasTankBalanceAdjustments",e],listGasSponsors:e=>["Relayer","listGasSponsors",e],getGasSponsor:e=>["Relayer","getGasSponsor",e],addGasSponsor:e=>["Relayer","addGasSponsor",e],updateGasSponsor:e=>["Relayer","updateGasSponsor",e],removeGasSponsor:e=>["Relayer","removeGasSponsor",e],addressGasSponsors:e=>["Relayer","addressGasSponsors",e],getProjectBalance:e=>["Relayer","getProjectBalance",e],adjustProjectBalance:e=>["Relayer","adjustProjectBalance",e]};ping=(e,t)=>this.fetch(this.url("Ping"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"PingReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});version=(e,t)=>this.fetch(this.url("Version"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"VersionReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});runtimeStatus=(e,t)=>this.fetch(this.url("RuntimeStatus"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"RuntimeStatusReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});getSequenceContext=(e,t)=>this.fetch(this.url("GetSequenceContext"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"GetSequenceContextReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});getChainID=(e,t)=>this.fetch(this.url("GetChainID"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"GetChainIDReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});sendMetaTxn=(e,t,r)=>this.fetch(this.url("SendMetaTxn"),Me(st(e,"SendMetaTxnArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"SendMetaTxnReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnNonce=(e,t,r)=>this.fetch(this.url("GetMetaTxnNonce"),Me(st(e,"GetMetaTxnNonceArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetMetaTxnNonceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnReceipt=(e,t,r)=>this.fetch(this.url("GetMetaTxnReceipt"),Me(st(e,"GetMetaTxnReceiptArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetMetaTxnReceiptReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});simulate=(e,t,r)=>this.fetch(this.url("Simulate"),Me(st(e,"SimulateArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"SimulateReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});simulateV3=(e,t,r)=>this.fetch(this.url("SimulateV3"),Me(st(e,"SimulateV3Args"),t,r)).then(n=>$e(n).then(i=>qe(i,"SimulateV3Return")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateMetaTxnGasLimits=(e,t,r)=>this.fetch(this.url("UpdateMetaTxnGasLimits"),Me(st(e,"UpdateMetaTxnGasLimitsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"UpdateMetaTxnGasLimitsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});feeTokens=(e,t)=>this.fetch(this.url("FeeTokens"),Me("{}",e,t)).then(r=>$e(r).then(n=>qe(n,"FeeTokensReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});feeOptions=(e,t,r)=>this.fetch(this.url("FeeOptions"),Me(st(e,"FeeOptionsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"FeeOptionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnNetworkFeeOptions=(e,t,r)=>this.fetch(this.url("GetMetaTxnNetworkFeeOptions"),Me(st(e,"GetMetaTxnNetworkFeeOptionsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetMetaTxnNetworkFeeOptionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTransactions=(e,t,r)=>this.fetch(this.url("GetMetaTransactions"),Me(st(e,"GetMetaTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetMetaTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getTransactionCost=(e,t,r)=>this.fetch(this.url("GetTransactionCost"),Me(st(e,"GetTransactionCostArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetTransactionCostReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});sentTransactions=(e,t,r)=>this.fetch(this.url("SentTransactions"),Me(st(e,"SentTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"SentTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});pendingTransactions=(e,t,r)=>this.fetch(this.url("PendingTransactions"),Me(st(e,"PendingTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"PendingTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasTank=(e,t,r)=>this.fetch(this.url("GetGasTank"),Me(st(e,"GetGasTankArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addGasTank=(e,t,r)=>this.fetch(this.url("AddGasTank"),Me(st(e,"AddGasTankArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"AddGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateGasTank=(e,t,r)=>this.fetch(this.url("UpdateGasTank"),Me(st(e,"UpdateGasTankArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"UpdateGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});nextGasTankBalanceAdjustmentNonce=(e,t,r)=>this.fetch(this.url("NextGasTankBalanceAdjustmentNonce"),Me(st(e,"NextGasTankBalanceAdjustmentNonceArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"NextGasTankBalanceAdjustmentNonceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});adjustGasTankBalance=(e,t,r)=>this.fetch(this.url("AdjustGasTankBalance"),Me(st(e,"AdjustGasTankBalanceArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"AdjustGasTankBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasTankBalanceAdjustment=(e,t,r)=>this.fetch(this.url("GetGasTankBalanceAdjustment"),Me(st(e,"GetGasTankBalanceAdjustmentArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetGasTankBalanceAdjustmentReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});listGasTankBalanceAdjustments=(e,t,r)=>this.fetch(this.url("ListGasTankBalanceAdjustments"),Me(st(e,"ListGasTankBalanceAdjustmentsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"ListGasTankBalanceAdjustmentsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});listGasSponsors=(e,t,r)=>this.fetch(this.url("ListGasSponsors"),Me(st(e,"ListGasSponsorsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"ListGasSponsorsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasSponsor=(e,t,r)=>this.fetch(this.url("GetGasSponsor"),Me(st(e,"GetGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addGasSponsor=(e,t,r)=>this.fetch(this.url("AddGasSponsor"),Me(st(e,"AddGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"AddGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateGasSponsor=(e,t,r)=>this.fetch(this.url("UpdateGasSponsor"),Me(st(e,"UpdateGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"UpdateGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});removeGasSponsor=(e,t,r)=>this.fetch(this.url("RemoveGasSponsor"),Me(st(e,"RemoveGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"RemoveGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addressGasSponsors=(e,t,r)=>this.fetch(this.url("AddressGasSponsors"),Me(st(e,"AddressGasSponsorsArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"AddressGasSponsorsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getProjectBalance=(e,t,r)=>this.fetch(this.url("GetProjectBalance"),Me(st(e,"GetProjectBalanceArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"GetProjectBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});adjustProjectBalance=(e,t,r)=>this.fetch(this.url("AdjustProjectBalance"),Me(st(e,"AdjustProjectBalanceArgs"),t,r)).then(n=>$e(n).then(i=>qe(i,"AdjustProjectBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})})},Me=(s="{}",e={},t=null)=>({method:"POST",headers:{...e,"Content-Type":"application/json"},body:s,signal:t}),$e=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){throw Ta.new({status:s.status,cause:`JSON.parse(): ${r instanceof Error?r.message:String(r)}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (d9[r]||Pe).new(t)}return t}),KC={SendMetaTxnArgs:[["preconditions","TransactionPrecondition[]"]],TransactionPrecondition:["minAmount"],Transactions:[["preconditions","TransactionPrecondition[]"]]};function nx(s,e){if(e==null||typeof e!="object")return e;let t=KC[s]||[];if(!t.length)return e;for(let r of t){if(Array.isArray(r)){let[n,i]=r;if(n.endsWith("[]")){let a=n.slice(0,-2),o=e[a];if(Array.isArray(o))for(let c=0;c<o.length;c++)o[c]=nx(i,o[c]);}else e[n]&&(e[n]=nx(i,e[n]));continue}if(r.endsWith("[]")){let n=r.slice(0,-2),i=e[n];if(Array.isArray(i))for(let a=0;a<i.length;a++)typeof i[a]=="bigint"&&(i[a]=i[a].toString());continue}typeof e[r]=="bigint"&&(e[r]=e[r].toString());}return e}function ix(s,e){if(e==null||typeof e!="object")return e;let t=KC[s]||[];if(!t.length)return e;for(let r of t){if(Array.isArray(r)){let[i,a]=r;if(i.endsWith("[]")){let o=i.slice(0,-2),c=e[o];if(Array.isArray(c))for(let u=0;u<c.length;u++)c[u]=ix(a,c[u]);}else e[i]&&(e[i]=ix(a,e[i]));continue}if(r.endsWith("[]")){let i=r.slice(0,-2),a=e[i];if(Array.isArray(a))for(let o=0;o<a.length;o++){let c=a[o];if(typeof c=="string")try{a[o]=BigInt(c);}catch{throw Ta.new({cause:`Invalid bigint value for ${i}[${o}]: ${c}`})}}continue}let n=e[r];if(typeof n=="string")try{e[r]=BigInt(n);}catch{throw Ta.new({cause:`Invalid bigint value for ${r}: ${n}`})}}return e}var st=(s,e="")=>JSON.stringify(nx(e,s)),qe=(s,e="")=>{let t=s;if(typeof s=="string")try{t=JSON.parse(s);}catch(r){throw Ta.new({cause:`JsonDecode: JSON.parse failed: ${r.message}`})}return ix(e,t)},Pe=class s extends Error{code;status;constructor(e={}){super(e.message),this.name=e.name||"WebrpcEndpointError",this.code=typeof e.code=="number"?e.code:0,this.message=e.message||"endpoint error",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}static new(e){return new this({message:e.message,code:e.code,status:e.status,cause:e.cause})}},ax=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcEndpoint",this.code=typeof e.code=="number"?e.code:0,this.message=e.message||"endpoint error",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},De=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcRequestFailed",this.code=typeof e.code=="number"?e.code:-1,this.message=e.message||"request failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},ox=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadRoute",this.code=typeof e.code=="number"?e.code:-2,this.message=e.message||"bad route",this.status=typeof e.status=="number"?e.status:404,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},cx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadMethod",this.code=typeof e.code=="number"?e.code:-3,this.message=e.message||"bad method",this.status=typeof e.status=="number"?e.status:405,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},ux=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadRequest",this.code=typeof e.code=="number"?e.code:-4,this.message=e.message||"bad request",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ta=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadResponse",this.code=typeof e.code=="number"?e.code:-5,this.message=e.message||"bad response",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},lx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcServerPanic",this.code=typeof e.code=="number"?e.code:-6,this.message=e.message||"server panic",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},fx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcInternalError",this.code=typeof e.code=="number"?e.code:-7,this.message=e.message||"internal error",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},hx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcClientAborted",this.code=typeof e.code=="number"?e.code:-8,this.message=e.message||"request aborted by client",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},dx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcStreamLost",this.code=typeof e.code=="number"?e.code:-9,this.message=e.message||"stream lost",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},mx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcStreamFinished",this.code=typeof e.code=="number"?e.code:-10,this.message=e.message||"stream finished",this.status=typeof e.status=="number"?e.status:200,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},px=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Unauthorized",this.code=typeof e.code=="number"?e.code:1e3,this.message=e.message||"Unauthorized access",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},gx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"PermissionDenied",this.code=typeof e.code=="number"?e.code:1001,this.message=e.message||"Permission denied",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},yx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"SessionExpired",this.code=typeof e.code=="number"?e.code:1002,this.message=e.message||"Session expired",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},wx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"MethodNotFound",this.code=typeof e.code=="number"?e.code:1003,this.message=e.message||"Method not found",this.status=typeof e.status=="number"?e.status:404,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},bx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"RequestConflict",this.code=typeof e.code=="number"?e.code:1004,this.message=e.message||"Conflict with target resource",this.status=typeof e.status=="number"?e.status:409,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Sx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Aborted",this.code=typeof e.code=="number"?e.code:1005,this.message=e.message||"Request aborted",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},vx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Geoblocked",this.code=typeof e.code=="number"?e.code:1006,this.message=e.message||"Geoblocked region",this.status=typeof e.status=="number"?e.status:451,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ex=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"RateLimited",this.code=typeof e.code=="number"?e.code:1007,this.message=e.message||"Rate-limited. Please slow down.",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},xx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"ProjectNotFound",this.code=typeof e.code=="number"?e.code:1008,this.message=e.message||"Project not found",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ax=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AccessKeyNotFound",this.code=typeof e.code=="number"?e.code:1101,this.message=e.message||"Access key not found",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ix=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AccessKeyMismatch",this.code=typeof e.code=="number"?e.code:1102,this.message=e.message||"Access key mismatch",this.status=typeof e.status=="number"?e.status:409,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Cx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidOrigin",this.code=typeof e.code=="number"?e.code:1103,this.message=e.message||"Invalid origin for Access Key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Nx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidService",this.code=typeof e.code=="number"?e.code:1104,this.message=e.message||"Service not enabled for Access key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Tx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"UnauthorizedUser",this.code=typeof e.code=="number"?e.code:1105,this.message=e.message||"Unauthorized user",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},kx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QuotaExceeded",this.code=typeof e.code=="number"?e.code:1200,this.message=e.message||"Quota request exceeded",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Px=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QuotaRateLimit",this.code=typeof e.code=="number"?e.code:1201,this.message=e.message||"Quota rate limit exceeded",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Bx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NoDefaultKey",this.code=typeof e.code=="number"?e.code:1300,this.message=e.message||"No default access key found",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ox=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"MaxAccessKeys",this.code=typeof e.code=="number"?e.code:1301,this.message=e.message||"Access keys limit reached",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Rx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AtLeastOneKey",this.code=typeof e.code=="number"?e.code:1302,this.message=e.message||"You need at least one Access Key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Vx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Timeout",this.code=typeof e.code=="number"?e.code:1900,this.message=e.message||"Request timed out",this.status=typeof e.status=="number"?e.status:408,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Dx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidArgument",this.code=typeof e.code=="number"?e.code:2001,this.message=e.message||"Invalid argument",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Lx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Unavailable",this.code=typeof e.code=="number"?e.code:2002,this.message=e.message||"Unavailable resource",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ux=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QueryFailed",this.code=typeof e.code=="number"?e.code:2003,this.message=e.message||"Query failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Hx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NotFound",this.code=typeof e.code=="number"?e.code:3e3,this.message=e.message||"Resource not found",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},_x=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InsufficientFee",this.code=typeof e.code=="number"?e.code:3004,this.message=e.message||"Insufficient fee",this.status=typeof e.status=="number"?e.status:402,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},jx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NotEnoughBalance",this.code=typeof e.code=="number"?e.code:3005,this.message=e.message||"Not enough balance",this.status=typeof e.status=="number"?e.status:402,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Mx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"SimulationFailed",this.code=typeof e.code=="number"?e.code:3006,this.message=e.message||"Simulation failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},qC;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientAborted="WebrpcClientAborted",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.Unauthorized="Unauthorized",s.PermissionDenied="PermissionDenied",s.SessionExpired="SessionExpired",s.MethodNotFound="MethodNotFound",s.RequestConflict="RequestConflict",s.Aborted="Aborted",s.Geoblocked="Geoblocked",s.RateLimited="RateLimited",s.ProjectNotFound="ProjectNotFound",s.AccessKeyNotFound="AccessKeyNotFound",s.AccessKeyMismatch="AccessKeyMismatch",s.InvalidOrigin="InvalidOrigin",s.InvalidService="InvalidService",s.UnauthorizedUser="UnauthorizedUser",s.QuotaExceeded="QuotaExceeded",s.QuotaRateLimit="QuotaRateLimit",s.NoDefaultKey="NoDefaultKey",s.MaxAccessKeys="MaxAccessKeys",s.AtLeastOneKey="AtLeastOneKey",s.Timeout="Timeout",s.InvalidArgument="InvalidArgument",s.Unavailable="Unavailable",s.QueryFailed="QueryFailed",s.NotFound="NotFound",s.InsufficientFee="InsufficientFee",s.NotEnoughBalance="NotEnoughBalance",s.SimulationFailed="SimulationFailed";})(qC||(qC={}));var FC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientAborted=-8]="WebrpcClientAborted",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.Unauthorized=1e3]="Unauthorized",s[s.PermissionDenied=1001]="PermissionDenied",s[s.SessionExpired=1002]="SessionExpired",s[s.MethodNotFound=1003]="MethodNotFound",s[s.RequestConflict=1004]="RequestConflict",s[s.Aborted=1005]="Aborted",s[s.Geoblocked=1006]="Geoblocked",s[s.RateLimited=1007]="RateLimited",s[s.ProjectNotFound=1008]="ProjectNotFound",s[s.AccessKeyNotFound=1101]="AccessKeyNotFound",s[s.AccessKeyMismatch=1102]="AccessKeyMismatch",s[s.InvalidOrigin=1103]="InvalidOrigin",s[s.InvalidService=1104]="InvalidService",s[s.UnauthorizedUser=1105]="UnauthorizedUser",s[s.QuotaExceeded=1200]="QuotaExceeded",s[s.QuotaRateLimit=1201]="QuotaRateLimit",s[s.NoDefaultKey=1300]="NoDefaultKey",s[s.MaxAccessKeys=1301]="MaxAccessKeys",s[s.AtLeastOneKey=1302]="AtLeastOneKey",s[s.Timeout=1900]="Timeout",s[s.InvalidArgument=2001]="InvalidArgument",s[s.Unavailable=2002]="Unavailable",s[s.QueryFailed=2003]="QueryFailed",s[s.NotFound=3e3]="NotFound",s[s.InsufficientFee=3004]="InsufficientFee",s[s.NotEnoughBalance=3005]="NotEnoughBalance",s[s.SimulationFailed=3006]="SimulationFailed";})(FC||(FC={}));var d9={0:ax,[-1]:De,[-2]:ox,[-3]:cx,[-4]:ux,[-5]:Ta,[-6]:lx,[-7]:fx,[-8]:hx,[-9]:dx,[-10]:mx,1e3:px,1001:gx,1002:yx,1003:wx,1004:bx,1005:Sx,1006:vx,1007:Ex,1008:xx,1101:Ax,1102:Ix,1103:Cx,1104:Nx,1105:Tx,1200:kx,1201:Px,1300:Bx,1301:Ox,1302:Rx,1900:Vx,2001:Dx,2002:Lx,2003:Ux,3e3:Hx,3004:_x,3005:jx,3006:Mx};var Gr={};ye(Gr,{DEPLOY:()=>WC,DefaultGuestAddress:()=>y9,EXECUTE:()=>v9,EXECUTE_USER_OP:()=>$x,GET_IMPLEMENTATION:()=>w9,GET_LIMIT_USAGE:()=>C9,IMAGE_HASH:()=>b9,INCREMENT_USAGE_LIMIT:()=>I9,IS_VALID_SIGNATURE:()=>GC,PlaceholderAddress:()=>g9,READ_ENTRYPOINT:()=>A9,READ_NONCE:()=>S9,READ_NONCE_4337:()=>x9,RECOVER_SAPIENT_SIGNATURE:()=>JC,RECOVER_SAPIENT_SIGNATURE_COMPACT:()=>zC,UPDATE_IMAGE_HASH:()=>E9,ZeroAddress:()=>p9});var p9="0x0000000000000000000000000000000000000000",g9="0xffff0000ffff0000ffff0000ffff0000ffff0000",y9="0x0000000000006Ac72ed1d192fa28f0058D3F8806",GC=ke.from(["function isValidSignature(bytes32 _hash, bytes memory _signature) public view returns (bytes4 magicValue)"])[0],WC=ke.from(["function deploy(address _mainModule, bytes32 _salt) public payable returns (address _contract)"])[0],w9=ke.from(["function getImplementation() external view returns (address)"])[0],b9=ke.from(["function imageHash() external view returns (bytes32)"])[0],S9=ke.from(["function readNonce(uint256 _space) public view returns (uint256)"])[0],v9=ke.from(["function execute(bytes calldata _payload, bytes calldata _signature) external"])[0],E9=ke.from(["function updateImageHash(bytes32 _imageHash) external"])[0],JC=ke.from(["function recoverSapientSignature((uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external view returns (bytes32)"])[0],zC=ke.from(["function recoverSapientSignatureCompact(bytes32 _digest, bytes calldata _signature) external view returns (bytes32)"])[0],$x=ke.from(["function executeUserOp(bytes calldata _userOp) external"])[0],x9=ke.from(["function getNonce(address _account, uint192 _key) public view returns (uint256)"])[0],A9=ke.from(["function entrypoint() public view returns (address)"])[0],I9=ke.from([{type:"function",name:"incrementUsageLimit",inputs:[{name:"limits",type:"tuple[]",internalType:"struct UsageLimit[]",components:[{name:"usageHash",type:"bytes32",internalType:"bytes32"},{name:"usageAmount",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"}])[0],C9=ke.from(["function getLimitUsage(address wallet, bytes32 usageHash) public view returns (uint256)"])[0];var gr={};ye(gr,{BEHAVIOR_ABORT_ON_ERROR:()=>zx,BEHAVIOR_IGNORE_ERROR:()=>Wx,BEHAVIOR_REVERT_ON_ERROR:()=>Jx,KIND_CONFIG_UPDATE:()=>Kx,KIND_DIGEST:()=>Gx,KIND_MESSAGE:()=>Fx,KIND_TRANSACTIONS:()=>qx,decode:()=>j9,decodeBehaviorOnError:()=>rN,encode:()=>QC,encode4337Nonce:()=>eN,encodeBehaviorOnError:()=>Gc,encodeSapient:()=>U9,fromAbiFormat:()=>$9,fromCall:()=>B9,fromConfigUpdate:()=>YC,fromDigest:()=>P9,fromMessage:()=>k9,hash:()=>Xx,hashCall:()=>_9,isCalls:()=>O9,isCalls4337_07:()=>D9,isConfigUpdate:()=>V9,isDigest:()=>ZC,isMessage:()=>R9,isParented:()=>L9,isRecovery:()=>Yx,isSessionImplicitAuthorize:()=>Zx,to4337Message:()=>sN,to4337UserOperation:()=>tN,toAbiFormat:()=>nN,toRecovery:()=>XC,toTyped:()=>Qx});function uh(s){return Math.ceil(s.toString(16).length/2)}var qx=0,Fx=1,Kx=2,Gx=3,Wx=0,Jx=1,zx=2;function k9(s){return {type:"message",message:s}}function YC(s){return {type:"config-update",imageHash:s}}function P9(s){return {type:"digest",digest:s}}function B9(s,e,t){return {type:"call",nonce:s,space:e,calls:t}}function O9(s){return s.type==="call"}function R9(s){return s.type==="message"}function V9(s){return s.type==="config-update"}function ZC(s){return s.type==="digest"}function Yx(s){return Zx(s)?!1:s.recovery===!0}function D9(s){return s.type==="call_4337_07"}function L9(s){return "parentWallets"in s}function XC(s){return Yx(s)?s:{...s,recovery:!0}}function Zx(s){return s.type==="session-implicit-authorize"}function QC(s,e){let t=s.calls.length,r=uh(s.nonce);if(r>15)throw new Error("Nonce is too large");let n=0;s.space===0n&&(n|=1),n|=r<<1,t===1&&(n|=16);let i=0;if(t!==1)if(t<256)i=1;else if(t<65536)i=2,n|=32;else throw new Error("Too many calls");let a=f.fromNumber(n,{size:1});if(s.space!==0n){let o=f.padLeft(f.fromNumber(s.space),20);a=f.concat(a,o);}if(r>0){let o=f.padLeft(f.fromNumber(s.nonce),r);a=f.concat(a,o);}t!==1&&(i===1?a=f.concat(a,f.fromNumber(t,{size:1})):a=f.concat(a,f.fromNumber(t,{size:2})));for(let o of s.calls){let c=0;if(e&&P.isEqual(o.to,e)&&(c|=1),o.value!==0n&&(c|=2),o.data&&o.data.length>0&&(c|=4),o.gasLimit!==0n&&(c|=8),o.delegateCall&&(c|=16),o.onlyFallback&&(c|=32),c|=Gc(o.behaviorOnError)<<6,a=f.concat(a,f.fromNumber(c,{size:1})),!(c&1)){let u=f.fromHex(o.to);if(u.length!==20)throw new Error(`Invalid 'to' address: ${o.to}`);a=f.concat(a,u);}if(c&2){let u=f.padLeft(f.fromNumber(o.value),32);a=f.concat(a,u);}if(c&4){let u=f.fromHex(o.data).length;if(u>16777215)throw new Error("Data too large");let l=f.fromNumber(u,{size:3});a=f.concat(a,l,f.fromHex(o.data));}if(c&8){let u=f.padLeft(f.fromNumber(o.gasLimit),32);a=f.concat(a,u);}}return a}function U9(s,e){let t={kind:0,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};switch(e.type){case"call":t.kind=0,t.calls=e.calls.map(r=>({...r,data:r.data,behaviorOnError:BigInt(Gc(r.behaviorOnError))})),t.space=e.space,t.nonce=e.nonce;break;case"message":t.kind=1,t.message=e.message;break;case"config-update":t.kind=2,t.imageHash=e.imageHash;break;case"digest":t.kind=3,t.digest=e.digest;break}return t}function Xx(s,e,t){if(ZC(t))return f.fromHex(t.digest);if(Zx(t))return lh.hash(t.attestation);let r=Qx(s,e,t);return f.fromHex(Uf(r))}function H9(s,e,t){return Yx(s)?{name:"Sequence Wallet - Recovery Mode",version:"1",chainId:Number(t),verifyingContract:e}:{name:"Sequence Wallet",version:"3",chainId:Number(t),verifyingContract:e}}function eN(s,e){if(s>6277101735386680763835789423207666416102355444464034512895n)throw new RangeError("key exceeds 192 bits");if(e>18446744073709551615n)throw new RangeError("seq exceeds 64 bits");return s<<64n|e}function Qx(s,e,t){let r=H9(t,s,e);switch(t.type){case"call":{let n={Calls:[{name:"calls",type:"Call[]"},{name:"space",type:"uint256"},{name:"nonce",type:"uint256"},{name:"wallets",type:"address[]"}],Call:[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"gasLimit",type:"uint256"},{name:"delegateCall",type:"bool"},{name:"onlyFallback",type:"bool"},{name:"behaviorOnError",type:"uint256"}]},i={calls:t.calls.map(a=>({to:a.to,value:a.value.toString(),data:a.data,gasLimit:a.gasLimit.toString(),delegateCall:a.delegateCall,onlyFallback:a.onlyFallback,behaviorOnError:BigInt(Gc(a.behaviorOnError)).toString()})),space:t.space.toString(),nonce:t.nonce.toString(),wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Calls",message:i}}case"message":{let n={Message:[{name:"message",type:"bytes"},{name:"wallets",type:"address[]"}]},i={message:t.message,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Message",message:i}}case"config-update":{let n={ConfigUpdate:[{name:"imageHash",type:"bytes32"},{name:"wallets",type:"address[]"}]},i={imageHash:t.imageHash,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"ConfigUpdate",message:i}}case"digest":throw new Error("Digest does not support typed data - Use message instead");case"session-implicit-authorize":throw new Error("Payload does not support typed data");case"call_4337_07":{let n={type:"message",message:sN(t,s,e)};return Qx(s,e,n)}}}function tN(s,e,t){let r={type:"call",space:0n,nonce:0n,calls:s.calls},n=v.fromBytes(QC(r));return {sender:e,nonce:eN(s.space,s.nonce),callData:se.encodeData($x,[n]),callGasLimit:s.callGasLimit,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,preVerificationGas:s.preVerificationGas,verificationGasLimit:s.verificationGasLimit,factory:s.factory,factoryData:s.factoryData,paymaster:s.paymaster,paymasterData:s.paymasterData,paymasterPostOpGasLimit:s.paymasterPostOpGasLimit,paymasterVerificationGasLimit:s.paymasterVerificationGasLimit,signature:t}}function sN(s,e,t){let r=tN(s,e),n=v.concat(v.padLeft(v.fromNumber(r.verificationGasLimit),16),v.padLeft(v.fromNumber(r.callGasLimit),16)),i=v.concat(v.padLeft(v.fromNumber(r.maxPriorityFeePerGas),16),v.padLeft(v.fromNumber(r.maxFeePerGas),16)),a=ee.keccak256(r.factory&&r.factoryData?v.concat(r.factory,r.factoryData):"0x"),o=ee.keccak256(r.paymaster?v.concat(r.paymaster,v.padLeft(v.fromNumber(r.paymasterVerificationGasLimit||0),16),v.padLeft(v.fromNumber(r.paymasterPostOpGasLimit||0),16),r.paymasterData||"0x"):"0x"),c=tt.encode([{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[r.sender,r.nonce,a,ee.keccak256(r.callData),n,r.preVerificationGas,i,o]);return tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"}],[ee.keccak256(c),s.entrypoint,BigInt(t)])}function Gc(s){switch(s){case"ignore":return Wx;case"revert":return Jx;case"abort":return zx}}function _9(s){let e=ee.keccak256(f.fromString("Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)"));return ee.keccak256(tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"uint256"},{type:"bool"},{type:"bool"},{type:"uint256"}],[v.from(e),v.from(s.to),s.value,v.from(ee.keccak256(s.data)),s.gasLimit,s.delegateCall,s.onlyFallback,BigInt(Gc(s.behaviorOnError))]))}function j9(s,e){let t=0;if(s.length<1)throw new Error("Invalid packed data: missing globalFlag");let r=f.toNumber(s.slice(t,t+1));t+=1;let n=(r&1)===1,i=0n;if(!n){if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for space");i=f.toBigInt(s.slice(t,t+20)),t+=20;}let a=r>>1&7,o=0n;if(a>0){if(t+a>s.length)throw new Error("Invalid packed data: not enough bytes for nonce");o=f.toBigInt(s.slice(t,t+a)),t+=a;}let c=1;if(!((r&16)===16)){let m=(r&32)===32?2:1;if(t+m>s.length)throw new Error("Invalid packed data: not enough bytes for callsCount");c=f.toNumber(s.slice(t,t+m)),t+=m;}let l=[];for(let h=0;h<c;h++){if(t+1>s.length)throw new Error("Invalid packed data: missing call flags");let m=f.toNumber(s.slice(t,t+1));t+=1;let y;if((m&1)===1){if(!e)throw new Error('Missing "self" address for toSelf call');y=e;}else {if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for address");y=f.toHex(s.slice(t,t+20)),t+=20;}let g=0n;if((m&2)===2){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for value");g=f.toBigInt(s.slice(t,t+32)),t+=32;}let w=f.fromHex("0x");if((m&4)===4){if(t+3>s.length)throw new Error("Invalid packed data: not enough bytes for data length");let I=f.toNumber(s.slice(t,t+3));if(t+=3,t+I>s.length)throw new Error("Invalid packed data: not enough bytes for call data");w=s.slice(t,t+I),t+=I;}let b=0n;if((m&8)===8){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for gasLimit");b=f.toBigInt(s.slice(t,t+32)),t+=32;}let C=(m&16)===16,N=(m&32)===32,x=(m&192)>>6,E=rN(x);l.push({to:y,value:g,data:f.toHex(w),gasLimit:b,delegateCall:C,onlyFallback:N,behaviorOnError:E});}return {type:"call",space:i,nonce:o,calls:l}}function rN(s){switch(s){case 0:return "ignore";case 1:return "revert";case 2:return "abort";default:throw new Error(`Invalid behaviorOnError value: ${s}`)}}function M9(s){switch(s){case Wx:return "ignore";case Jx:return "revert";case zx:return "abort";default:throw new Error(`Unknown behavior: ${s}`)}}function $9(s){if(s.kind===qx)return {type:"call",nonce:s.nonce,space:s.space,calls:s.calls.map(e=>({to:P.from(e.to),value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:M9(Number(e.behaviorOnError))})),parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===Fx)return {type:"message",message:s.message,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===Kx)return {type:"config-update",imageHash:s.imageHash,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===Gx)return {type:"digest",digest:s.digest,parentWallets:s.parentWallets.map(e=>P.from(e))};throw new Error("Not implemented")}function nN(s){if(s.type==="call")return {kind:qx,noChainId:!1,calls:s.calls.map(e=>({to:e.to,value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:BigInt(Gc(e.behaviorOnError))})),space:s.space,nonce:s.nonce,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="message")return {kind:Fx,noChainId:!1,calls:[],space:0n,nonce:0n,message:s.message,imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="config-update")return {kind:Kx,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:s.imageHash,digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="digest")return {kind:Gx,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:s.digest,parentWallets:s.parentWallets??[]};throw new Error("Invalid payload type")}var lh={};ye(lh,{ACCEPT_IMPLICIT_REQUEST_MAGIC_PREFIX:()=>fN,decode:()=>J9,decodeAuthData:()=>cN,encode:()=>aN,encodeAuthData:()=>oN,encodeForJson:()=>uN,fromJson:()=>Z9,fromParsed:()=>lN,generateImplicitRequestMagic:()=>X9,hash:()=>z9,toJson:()=>Y9});function aN(s){let e=oN(s.authData),t=[f.fromHex(s.approvedSigner,{size:20}),f.padLeft(s.identityType.slice(0,4),4),f.padLeft(s.issuerHash,32),f.padLeft(s.audienceHash,32),f.fromNumber(s.applicationData.length,{size:3}),s.applicationData,e];return f.concat(...t)}function oN(s){return f.concat(f.fromNumber(s.redirectUrl.length,{size:3}),f.fromString(s.redirectUrl),f.fromNumber(s.issuedAt,{size:8}))}function J9(s){let e=f.toHex(s.slice(0,20)),t=s.slice(20,24),r=s.slice(24,56),n=s.slice(56,88),i=f.toNumber(s.slice(88,91)),a=s.slice(91,91+i),o=cN(s.slice(91+i));return {approvedSigner:e,identityType:t,issuerHash:r,audienceHash:n,applicationData:a,authData:o}}function cN(s){let e=f.toNumber(s.slice(0,3)),t=f.toString(s.slice(3,3+e)),r=f.toBigInt(s.slice(3+e,3+e+8));return {redirectUrl:t,issuedAt:r}}function z9(s){return ee.keccak256(aN(s))}function Y9(s,e){return JSON.stringify(uN(s),null,e)}function uN(s){return {approvedSigner:s.approvedSigner.toString(),identityType:f.toHex(s.identityType),issuerHash:f.toHex(s.issuerHash),audienceHash:f.toHex(s.audienceHash),applicationData:f.toHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:s.authData.issuedAt.toString()}}}function Z9(s){return lN(JSON.parse(s))}function lN(s){return {approvedSigner:P.from(s.approvedSigner),identityType:f.fromHex(s.identityType),issuerHash:f.fromHex(s.issuerHash),audienceHash:f.fromHex(s.audienceHash),applicationData:f.fromHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:BigInt(s.authData.issuedAt)}}}var fN=ee.keccak256(f.fromString("acceptImplicitRequest"));function X9(s,e){return ee.keccak256(f.concat(fN,f.fromHex(e,{size:20}),s.audienceHash,s.issuerHash))}var hN;(function(s){s[s.EQUAL=0]="EQUAL",s[s.NOT_EQUAL=1]="NOT_EQUAL",s[s.GREATER_THAN_OR_EQUAL=2]="GREATER_THAN_OR_EQUAL",s[s.LESS_THAN_OR_EQUAL=3]="LESS_THAN_OR_EQUAL";})(hN||(hN={}));({SELECTOR:f.padRight(f.fromHex("0xffffffff"),32),ADDRESS:f.padLeft(f.fromHex("0xffffffffffffffffffffffffffffffffffffffff"),32),BOOL:f.padLeft(f.fromHex("0x01"),32),BYTES1:f.padLeft(f.from(Array(1).fill(255)),32),BYTES2:f.padLeft(f.from(Array(2).fill(255)),32),BYTES4:f.padLeft(f.from(Array(4).fill(255)),32),BYTES8:f.padLeft(f.from(Array(8).fill(255)),32),BYTES16:f.padLeft(f.from(Array(16).fill(255)),32),BYTES32:f.padLeft(f.from(Array(32).fill(255)),32),INT8:f.padLeft(f.from(Array(1).fill(255)),32),INT16:f.padLeft(f.from(Array(2).fill(255)),32),INT32:f.padLeft(f.from(Array(4).fill(255)),32),INT64:f.padLeft(f.from(Array(8).fill(255)),32),INT128:f.padLeft(f.from(Array(16).fill(255)),32),INT256:f.padLeft(f.from(Array(32).fill(255)),32),UINT8:f.padLeft(f.from(Array(1).fill(255)),32),UINT16:f.padLeft(f.from(Array(2).fill(255)),32),UINT32:f.padLeft(f.from(Array(4).fill(255)),32),UINT64:f.padLeft(f.from(Array(8).fill(255)),32),UINT128:f.padLeft(f.from(Array(16).fill(255)),32),UINT256:f.padLeft(f.from(Array(32).fill(255)),32)});f.fromString(`Sequence recovery leaf:
|
|
360
|
-
`);ke.from(["function queuePayload(address _wallet, address _signer, (uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external"])[0];ke.from(["function timestampForQueuedPayload(address _wallet, address _signer, bytes32 _payloadHash) external view returns (uint256)"])[0];ke.from(["function queuedPayloadHashes(address _wallet, address _signer, uint256 _index) external view returns (bytes32)"])[0];ke.from(["function totalQueuedPayloads(address _wallet, address _signer) external view returns (uint256)"])[0];var r1={};ye(r1,{ALL:()=>e2,ChainId:()=>j,NetworkType:()=>me,getNetworkFromChainId:()=>wV,getNetworkFromName:()=>yV});var me;(function(s){s.MAINNET="mainnet",s.TESTNET="testnet";})(me||(me={}));var j={NONE:0,MAINNET:1,SEPOLIA:11155111,POLYGON:137,POLYGON_ZKEVM:1101,POLYGON_AMOY:80002,BSC:56,BSC_TESTNET:97,OPTIMISM:10,OPTIMISM_SEPOLIA:11155420,ARBITRUM:42161,ARBITRUM_SEPOLIA:421614,ARBITRUM_NOVA:42170,AVALANCHE:43114,AVALANCHE_TESTNET:43113,GNOSIS:100,BASE:8453,BASE_SEPOLIA:84532,HOMEVERSE_TESTNET:40875,HOMEVERSE:19011,XAI:660279,XAI_SEPOLIA:37714555429,TELOS:40,TELOS_TESTNET:41,B3:8333,B3_SEPOLIA:1993,APECHAIN:33139,APECHAIN_TESTNET:33111,BLAST:81457,BLAST_SEPOLIA:168587773,SKALE_NEBULA:1482601649,SKALE_NEBULA_TESTNET:37084624,SONEIUM_MINATO:1946,SONEIUM:1868,TOY_TESTNET:21e6,IMMUTABLE_ZKEVM:13371,IMMUTABLE_ZKEVM_TESTNET:13473,ETHERLINK:42793,ETHERLINK_TESTNET:128123,MOONBEAM:1284,MOONBASE_ALPHA:1287,MONAD:143,MONAD_TESTNET:10143,SOMNIA_TESTNET:50312,SOMNIA:5031,INCENTIV_TESTNET_V2:28802,KATANA:747474,SANDBOX_TESTNET:6252,ARC_TESTNET:5042002},e2=[{chainId:j.MAINNET,type:me.MAINNET,name:"mainnet",title:"Ethereum",rpcUrl:ve("mainnet"),logoUrl:Ee(j.MAINNET),blockExplorer:{name:"Etherscan",url:"https://etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},{chainId:j.SEPOLIA,type:me.TESTNET,name:"sepolia",title:"Sepolia",rpcUrl:ve("sepolia"),logoUrl:Ee(j.SEPOLIA),blockExplorer:{name:"Etherscan (Sepolia)",url:"https://sepolia.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.POLYGON,type:me.MAINNET,name:"polygon",title:"Polygon",rpcUrl:ve("polygon"),logoUrl:Ee(j.POLYGON),blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com/"},nativeCurrency:{symbol:"POL",name:"POL",decimals:18}},{chainId:j.POLYGON_AMOY,type:me.TESTNET,name:"amoy",title:"Polygon Amoy",rpcUrl:ve("amoy"),logoUrl:Ee(j.POLYGON_AMOY),blockExplorer:{name:"OKLink (Amoy)",url:"https://www.oklink.com/amoy/"},nativeCurrency:{symbol:"aPOL",name:"Amoy POL",decimals:18}},{chainId:j.POLYGON_ZKEVM,type:me.MAINNET,name:"polygon-zkevm",title:"Polygon zkEVM",rpcUrl:ve("polygon-zkevm"),logoUrl:Ee(j.POLYGON_ZKEVM),blockExplorer:{name:"Polygonscan (zkEVM)",url:"https://zkevm.polygonscan.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BSC,type:me.MAINNET,name:"bsc",title:"BNB Smart Chain",rpcUrl:ve("bsc"),logoUrl:Ee(j.BSC),blockExplorer:{name:"BSCScan",url:"https://bscscan.com/"},nativeCurrency:{symbol:"BNB",name:"BNB",decimals:18}},{chainId:j.BSC_TESTNET,type:me.TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",rpcUrl:ve("bsc-testnet"),logoUrl:Ee(j.BSC_TESTNET),blockExplorer:{name:"BSCScan (Testnet)",url:"https://testnet.bscscan.com/"},nativeCurrency:{symbol:"tBNB",name:"Testnet BNB",decimals:18}},{chainId:j.OPTIMISM,type:me.MAINNET,name:"optimism",title:"Optimism",rpcUrl:ve("optimism"),logoUrl:Ee(j.OPTIMISM),blockExplorer:{name:"Etherscan (Optimism)",url:"https://optimistic.etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.OPTIMISM_SEPOLIA,type:me.TESTNET,name:"optimism-sepolia",title:"Optimism Sepolia",rpcUrl:ve("optimism-sepolia"),logoUrl:Ee(j.OPTIMISM_SEPOLIA),blockExplorer:{name:"Etherscan (Optimism Sepolia)",url:"https://sepolia-optimistic.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.ARBITRUM,type:me.MAINNET,name:"arbitrum",title:"Arbitrum One",rpcUrl:ve("arbitrum"),logoUrl:Ee(j.ARBITRUM),blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.ARBITRUM_SEPOLIA,type:me.TESTNET,name:"arbitrum-sepolia",title:"Arbitrum Sepolia",rpcUrl:ve("arbitrum-sepolia"),logoUrl:Ee(j.ARBITRUM_SEPOLIA),blockExplorer:{name:"Arbiscan (Sepolia Testnet)",url:"https://sepolia.arbiscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.ARBITRUM_NOVA,type:me.MAINNET,name:"arbitrum-nova",title:"Arbitrum Nova",rpcUrl:ve("arbitrum-nova"),logoUrl:Ee(j.ARBITRUM_NOVA),blockExplorer:{name:"Arbiscan Nova",url:"https://nova.arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.AVALANCHE,type:me.MAINNET,name:"avalanche",title:"Avalanche",rpcUrl:ve("avalanche"),logoUrl:Ee(j.AVALANCHE),blockExplorer:{name:"Snowtrace",url:"https://subnets.avax.network/c-chain/"},nativeCurrency:{symbol:"AVAX",name:"AVAX",decimals:18}},{chainId:j.AVALANCHE_TESTNET,type:me.TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",rpcUrl:ve("avalanche-testnet"),logoUrl:Ee(j.AVALANCHE_TESTNET),blockExplorer:{name:"Snowtrace (Testnet)",url:"https://subnets-test.avax.network/c-chain/"},nativeCurrency:{symbol:"tAVAX",name:"Testnet AVAX",decimals:18}},{chainId:j.GNOSIS,type:me.MAINNET,name:"gnosis",title:"Gnosis Chain",rpcUrl:ve("gnosis"),logoUrl:Ee(j.GNOSIS),blockExplorer:{name:"Gnosis Chain Explorer",url:"https://blockscout.com/xdai/mainnet/"},nativeCurrency:{symbol:"XDAI",name:"XDAI",decimals:18}},{chainId:j.BASE,type:me.MAINNET,name:"base",title:"Base (Coinbase)",rpcUrl:ve("base"),logoUrl:Ee(j.BASE),blockExplorer:{name:"Base Explorer",url:"https://basescan.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BASE_SEPOLIA,type:me.TESTNET,name:"base-sepolia",title:"Base Sepolia",rpcUrl:ve("base-sepolia"),logoUrl:Ee(j.BASE_SEPOLIA),blockExplorer:{name:"Base Sepolia Explorer",url:"https://base-sepolia.blockscout.com/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.HOMEVERSE,type:me.MAINNET,name:"homeverse",title:"Oasys Homeverse",rpcUrl:ve("homeverse"),logoUrl:Ee(j.HOMEVERSE),blockExplorer:{name:"Oasys Homeverse Explorer",url:"https://explorer.oasys.homeverse.games/"},nativeCurrency:{symbol:"OAS",name:"OAS",decimals:18}},{chainId:j.HOMEVERSE_TESTNET,type:me.TESTNET,name:"homeverse-testnet",title:"Oasys Homeverse Testnet",rpcUrl:ve("homeverse-testnet"),logoUrl:Ee(j.HOMEVERSE_TESTNET),blockExplorer:{name:"Oasys Homeverse Explorer (Testnet)",url:"https://explorer.testnet.oasys.homeverse.games/"},nativeCurrency:{symbol:"tOAS",name:"Testnet OAS",decimals:18}},{chainId:j.XAI,type:me.MAINNET,name:"xai",title:"Xai",rpcUrl:ve("xai"),logoUrl:Ee(j.XAI),blockExplorer:{name:"Xai Explorer",url:"https://explorer.xai-chain.net/"},nativeCurrency:{symbol:"XAI",name:"XAI",decimals:18}},{chainId:j.XAI_SEPOLIA,type:me.TESTNET,name:"xai-sepolia",title:"Xai Sepolia",rpcUrl:ve("xai-sepolia"),logoUrl:Ee(j.XAI_SEPOLIA),blockExplorer:{name:"Xai Sepolia Explorer",url:"https://testnet-explorer-v2.xai-chain.net/"},nativeCurrency:{symbol:"sXAI",name:"Sepolia XAI",decimals:18}},{chainId:j.B3,type:me.MAINNET,name:"b3",title:"B3",rpcUrl:ve("b3"),logoUrl:Ee(j.B3),blockExplorer:{name:"B3 Explorer",url:"https://explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.B3_SEPOLIA,type:me.TESTNET,name:"b3-sepolia",title:"B3 Sepolia",rpcUrl:ve("b3-sepolia"),logoUrl:Ee(j.B3_SEPOLIA),blockExplorer:{name:"B3 Sepolia Explorer",url:"https://sepolia.explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.APECHAIN,type:me.MAINNET,name:"apechain",title:"APE Chain",rpcUrl:ve("apechain"),logoUrl:Ee(j.APECHAIN),blockExplorer:{name:"APE Chain Explorer",url:"https://apechain.calderaexplorer.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:j.APECHAIN_TESTNET,type:me.TESTNET,name:"apechain-testnet",title:"APE Chain Testnet",rpcUrl:ve("apechain-testnet"),logoUrl:Ee(j.APECHAIN_TESTNET),blockExplorer:{name:"APE Chain Explorer",url:"https://curtis.explorer.caldera.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:j.BLAST,type:me.MAINNET,name:"blast",title:"Blast",rpcUrl:ve("blast"),logoUrl:Ee(j.BLAST),blockExplorer:{name:"Blast Explorer",url:"https://blastscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BLAST_SEPOLIA,type:me.TESTNET,name:"blast-sepolia",title:"Blast Sepolia",rpcUrl:ve("blast-sepolia"),logoUrl:Ee(j.BLAST_SEPOLIA),blockExplorer:{name:"Blast Sepolia Explorer",url:"https://sepolia.blastexplorer.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.TELOS,type:me.MAINNET,name:"telos",title:"Telos",rpcUrl:ve("telos"),logoUrl:Ee(j.TELOS),blockExplorer:{name:"Telos Explorer",url:"https://explorer.telos.net/network/"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:j.TELOS_TESTNET,type:me.TESTNET,name:"telos-testnet",title:"Telos Testnet",rpcUrl:ve("telos-testnet"),logoUrl:Ee(j.TELOS_TESTNET),blockExplorer:{name:"Telos Testnet Explorer",url:"https://explorer-test.telos.net/network"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:j.SKALE_NEBULA,type:me.MAINNET,name:"skale-nebula",title:"SKALE Nebula Gaming Hub",rpcUrl:ve("skale-nebula"),logoUrl:Ee(j.SKALE_NEBULA),blockExplorer:{name:"SKALE Nebula Gaming Hub Explorer",url:"https://green-giddy-denebola.explorer.mainnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:j.SKALE_NEBULA_TESTNET,type:me.TESTNET,name:"skale-nebula-testnet",title:"SKALE Nebula Gaming Hub Testnet",rpcUrl:ve("skale-nebula-testnet"),logoUrl:Ee(j.SKALE_NEBULA_TESTNET),blockExplorer:{name:"SKALE Nebula Gaming Hub Testnet Explorer",url:"https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:j.SONEIUM,type:me.MAINNET,name:"soneium",title:"Soneium",rpcUrl:ve("soneium"),logoUrl:Ee(j.SONEIUM),blockExplorer:{name:"Soneium Explorer",url:"https://soneium.blockscout.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.SONEIUM_MINATO,type:me.TESTNET,name:"soneium-minato",title:"Soneium Minato (Testnet)",rpcUrl:ve("soneium-minato"),logoUrl:Ee(j.SONEIUM_MINATO),blockExplorer:{name:"Soneium Minato Explorer",url:"https://explorer-testnet.soneium.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.TOY_TESTNET,type:me.TESTNET,name:"toy-testnet",title:"TOY (Testnet)",rpcUrl:ve("toy-testnet"),logoUrl:Ee(j.TOY_TESTNET),blockExplorer:{name:"TOY Testnet Explorer",url:"https://toy-chain-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"TOY",name:"TOY",decimals:18}},{chainId:j.IMMUTABLE_ZKEVM,type:me.MAINNET,name:"immutable-zkevm",title:"Immutable zkEVM",rpcUrl:ve("immutable-zkevm"),logoUrl:Ee(j.IMMUTABLE_ZKEVM),blockExplorer:{name:"Immutable zkEVM Explorer",url:"https://explorer.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:j.IMMUTABLE_ZKEVM_TESTNET,type:me.TESTNET,name:"immutable-zkevm-testnet",title:"Immutable zkEVM Testnet",rpcUrl:ve("immutable-zkevm-testnet"),logoUrl:Ee(j.IMMUTABLE_ZKEVM_TESTNET),blockExplorer:{name:"Immutable zkEVM Testnet Explorer",url:"https://explorer.testnet.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:j.MOONBEAM,type:me.MAINNET,name:"moonbeam",title:"Moonbeam",rpcUrl:ve("moonbeam"),logoUrl:Ee(j.MOONBEAM),blockExplorer:{name:"Moonscan",url:"https://moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:j.MOONBASE_ALPHA,type:me.TESTNET,name:"moonbase-alpha",title:"Moonbase Alpha",rpcUrl:ve("moonbase-alpha"),logoUrl:Ee(j.MOONBASE_ALPHA),blockExplorer:{name:"Moonscan (Moonbase Alpha)",url:"https://moonbase.moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:j.ETHERLINK,type:me.MAINNET,name:"etherlink",title:"Etherlink",rpcUrl:ve("etherlink"),logoUrl:Ee(j.ETHERLINK),blockExplorer:{name:"Etherlink Explorer",url:"https://explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:j.ETHERLINK_TESTNET,type:me.TESTNET,name:"etherlink-testnet",title:"Etherlink Testnet",rpcUrl:ve("etherlink-testnet"),logoUrl:Ee(j.ETHERLINK_TESTNET),blockExplorer:{name:"Etherlink Testnet Explorer",url:"https://testnet.explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:j.MONAD,type:me.MAINNET,name:"monad",title:"Monad",rpcUrl:ve("monad"),logoUrl:Ee(j.MONAD),blockExplorer:{name:"Monad Explorer",url:"https://mainnet-beta.monvision.io/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:j.MONAD_TESTNET,type:me.TESTNET,name:"monad-testnet",title:"Monad Testnet",rpcUrl:ve("monad-testnet"),logoUrl:Ee(j.MONAD_TESTNET),blockExplorer:{name:"Monad Testnet Explorer",url:"https://testnet.monadexplorer.com/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:j.SOMNIA,type:me.MAINNET,name:"somnia",title:"Somnia",rpcUrl:ve("somnia"),logoUrl:Ee(j.SOMNIA),blockExplorer:{name:"Somnia Explorer",url:"https://mainnet.somnia.w3us.site/"},nativeCurrency:{symbol:"SOMI",name:"SOMI",decimals:18}},{chainId:j.SOMNIA_TESTNET,type:me.TESTNET,name:"somnia-testnet",title:"Somnia Testnet",rpcUrl:ve("somnia-testnet"),logoUrl:Ee(j.SOMNIA_TESTNET),blockExplorer:{name:"Somnia Testnet Explorer",url:"https://somnia-testnet.socialscan.io/"},nativeCurrency:{symbol:"STT",name:"STT",decimals:18}},{chainId:j.INCENTIV_TESTNET_V2,type:me.TESTNET,name:"incentiv-testnet-v2",title:"Incentiv Testnet",rpcUrl:ve("incentiv-testnet-v2"),logoUrl:Ee(j.INCENTIV_TESTNET_V2),blockExplorer:{name:"Incentiv Testnet Explorer",url:"https://explorer.testnet.incentiv.net/"},nativeCurrency:{symbol:"TCENT",name:"TCENT",decimals:18}},{chainId:j.KATANA,type:me.MAINNET,name:"katana",title:"Katana",rpcUrl:ve("katana"),logoUrl:Ee(j.KATANA),blockExplorer:{name:"Katana Explorer",url:"https://katanascan.com/"},nativeCurrency:{symbol:"ETH",name:"ETH",decimals:18}},{chainId:j.SANDBOX_TESTNET,type:me.TESTNET,name:"sandbox-testnet",title:"Sandbox Testnet",rpcUrl:ve("sandbox-testnet"),logoUrl:Ee(j.SANDBOX_TESTNET),blockExplorer:{name:"Sandbox Testnet Explorer",url:"https://sandbox-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"SAND",name:"SAND",decimals:18}},{chainId:j.ARC_TESTNET,type:me.TESTNET,name:"arc-testnet",title:"Arc Testnet",rpcUrl:ve("arc-testnet"),logoUrl:Ee(j.ARC_TESTNET),blockExplorer:{name:"Arc Testnet Explorer",url:"https://1jr2dw1zdqvyes8u.blockscout.com/"},nativeCurrency:{symbol:"USDC",name:"USDC",decimals:6}}];function ve(s){return `https://nodes.sequence.app/${s}`}function Ee(s){return `https://assets.sequence.info/images/networks/medium/${s}.webp`}function yV(s){return e2.find(e=>e.name===s)}function wV(s){return e2.find(e=>e.chainId===Number(s))}var n1=class{address;min;max;constructor(e,t,r){this.address=e,this.min=t,this.max=r;}type(){return "native-balance"}isValid(){if(!this.address)return new Error("address is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},i1=class{address;token;min;max;constructor(e,t,r,n){this.address=e,this.token=t,this.min=r,this.max=n;}type(){return "erc20-balance"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},a1=class{address;token;operator;min;constructor(e,t,r,n){this.address=e,this.token=t,this.operator=r,this.min=n;}type(){return "erc20-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(!this.operator)return new Error("operator address is required");if(this.min===void 0)return new Error("min approval amount is required")}},o1=class{address;token;tokenId;owned;constructor(e,t,r,n){this.address=e,this.token=t,this.tokenId=r,this.owned=n;}type(){return "erc721-ownership"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required")}},c1=class{address;token;tokenId;operator;constructor(e,t,r,n){this.address=e,this.token=t,this.tokenId=r,this.operator=n;}type(){return "erc721-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(!this.operator)return new Error("operator address is required")}},u1=class{address;token;tokenId;min;max;constructor(e,t,r,n,i){this.address=e,this.token=t,this.tokenId=r,this.min=n,this.max=i;}type(){return "erc1155-balance"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},l1=class{address;token;tokenId;operator;min;constructor(e,t,r,n,i){this.address=e,this.token=t,this.tokenId=r,this.operator=n,this.min=i;}type(){return "erc1155-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(!this.operator)return new Error("operator address is required");if(this.min===void 0)return new Error("min approval amount is required")}};function f1(s){if(!s)return;let e;try{switch(s.type){case"native-balance":e=new n1(P.from(s.ownerAddress),s.minAmount,void 0);break;case"erc20-balance":e=new i1(P.from(s.ownerAddress),P.from(s.tokenAddress),s.minAmount,void 0);break;case"erc20-approval":e=new a1(P.from(s.ownerAddress),P.from(s.tokenAddress),P.from(s.ownerAddress),s.minAmount);break;case"erc721-ownership":e=new o1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),!0);break;case"erc721-approval":e=new c1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),P.from(s.ownerAddress));break;case"erc1155-balance":e=new u1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),s.minAmount,void 0);break;case"erc1155-approval":e=new l1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),P.from(s.ownerAddress),s.minAmount);break;default:return}let t=e.isValid();if(t){console.warn(`Invalid precondition: ${t.message}`);return}return e}catch(t){console.warn(`Failed to decode precondition: ${t}`);return}}var h1=se.from("function balanceOf(address) returns (uint256)"),d1=se.from("function allowance(address,address) returns (uint256)"),m1=se.from("function ownerOf(uint256) returns (address)"),p1=se.from("function getApproved(uint256) returns (address)"),g1=se.from("function balanceOf(address,uint256) returns (uint256)"),y1=se.from("function isApprovedForAll(address,address) returns (bool)");var xV=s=>({id:s.chainId,name:s.title||s.name,nativeCurrency:{name:s.nativeCurrency.name,symbol:s.nativeCurrency.symbol,decimals:s.nativeCurrency.decimals},rpcUrls:{default:{http:[s.rpcUrl]}},blockExplorers:s.blockExplorer?{default:{name:s.blockExplorer.name||"Explorer",url:s.blockExplorer.url}}:void 0,contracts:s.ensAddress?{ensUniversalResolver:{address:s.ensAddress}}:void 0}),yN=s=>{let e=r1.getNetworkFromChainId(s);if(e)return xV(e);let t=Object.values(EV).find(r=>typeof r=="object"&&"id"in r&&r.id===s);if(t)return t;throw new Error(`Chain with id ${s} not found in Sequence networks or viem chains`)},t2=class{kind="relayer";type="rpc";id;chainId;client;fetch;provider;projectAccessKey;constructor(e,t,r,n,i){this.id=`rpc:${e}`,this.chainId=t,this.projectAccessKey=i;let a=n||(typeof window<"u"?window.fetch.bind(window):void 0);if(!a)throw new Error("Fetch implementation is required but not available in this environment.");this.fetch=a,this.client=new Kc(e,this.fetch);let o=yN(t);this.provider=createPublicClient({chain:o,transport:http(r)});}isAvailable(e,t){return Promise.resolve(this.chainId===t)}async feeTokens(){try{let{isFeeRequired:e,tokens:t,paymentAddress:r}=await this.client.feeTokens();return e?(P.assert(r),{isFeeRequired:e,tokens:t,paymentAddress:r}):{isFeeRequired:e}}catch(e){return console.warn("RpcRelayer.feeTokens failed:",e),{isFeeRequired:!1}}}async feeOptions(e,t,r){let n={type:"call",space:0n,nonce:0n,calls:r},i=gr.encode(n);try{let a=await this.client.feeOptions({wallet:e,to:e,data:f.toHex(i)},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0}),o=a.quote?{_tag:"FeeQuote",_quote:a.quote}:void 0;return {options:a.options.map(u=>({token:{...u.token,contractAddress:this.mapRpcFeeTokenToAddress(u.token)},to:u.to,value:u.value,gasLimit:u.gasLimit})),quote:o}}catch(a){return console.warn("RpcRelayer.feeOptions failed:",a),{options:[]}}}async sendMetaTxn(e,t,r,n,i,a){console.log("sendMetaTxn",e,t,r,n,i,a);let o={walletAddress:e,contract:t,input:r},c=await this.client.sendMetaTxn({call:o,quote:i?JSON.stringify(i._quote):void 0,preconditions:a},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0});if(!c.status)throw console.error("RpcRelayer.relay failed",c),new Error(`Relay failed: TxnHash ${c.txnHash}`);return {opHash:v.fromString(c.txnHash)}}async relay(e,t,r,n,i){console.log("relay",e,t,r,n,i);let a={walletAddress:e,contract:e,input:t},o=await this.client.sendMetaTxn({call:a,quote:n?JSON.stringify(n._quote):void 0,preconditions:i},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0});if(!o.status)throw console.error("RpcRelayer.relay failed",o),new Error(`Relay failed: TxnHash ${o.txnHash}`);return {opHash:`0x${o.txnHash}`}}async status(e,t){try{let r=e.startsWith("0x")?e.substring(2):e,n=await this.client.getMetaTxnReceipt({metaTxID:r}),i=n.receipt;if(!i)return console.warn(`RpcRelayer.status: receipt not found for opHash ${e}`),{status:"unknown"};if(!i.status)return console.warn(`RpcRelayer.status: receipt status not found for opHash ${e}`),{status:"unknown"};switch(i.status){case Et.QUEUED:case Et.PENDING_PRECONDITION:case Et.SENT:return {status:"pending"};case Et.SUCCEEDED:return {status:"confirmed",transactionHash:i.txnHash,data:n};case Et.FAILED:case Et.PARTIALLY_FAILED:return {status:"failed",transactionHash:i.txnHash?i.txnHash:void 0,reason:i.revertReason||"Relayer reported failure",data:n};case Et.DROPPED:return {status:"failed",reason:"Transaction dropped"};case Et.UNKNOWN:default:return {status:"unknown"}}}catch(r){return console.error(`RpcRelayer.status failed for opHash ${e}:`,r),{status:"failed",reason:"Failed to fetch status"}}}async checkPrecondition(e){let t=f1(e);if(!t)return !1;switch(t.type()){case"native-balance":{let r=t;try{let n=await this.provider.getBalance({address:r.address.toString()}),i=r.min!==void 0?BigInt(r.min):void 0,a=r.max!==void 0?BigInt(r.max):void 0;return i!==void 0&&a!==void 0?n>=i&&n<=a:i!==void 0?n>=i:a!==void 0?n<=a:(console.warn("Native balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking native balance:",n),!1}}case"erc20-balance":{let r=t;try{let n=se.encodeData(h1,[r.address.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=r.min!==void 0?BigInt(r.min):void 0,c=r.max!==void 0?BigInt(r.max):void 0;return o!==void 0&&c!==void 0?a>=o&&a<=c:o!==void 0?a>=o:c!==void 0?a<=c:(console.warn("ERC20 balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking ERC20 balance:",n),!1}}case"erc20-approval":{let r=t;try{let n=se.encodeData(d1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=BigInt(r.min);return a>=o}catch(n){return console.error("Error checking ERC20 approval:",n),!1}}case"erc721-ownership":{let r=t;try{let n=se.encodeData(m1,[r.tokenId]),c=(await this.provider.call({to:r.token.toString(),data:n})).toString().slice(-40).toLowerCase()===r.address.toString().slice(2).toLowerCase(),u=r.owned!==void 0?r.owned:!0;return c===u}catch(n){return console.error("Error checking ERC721 ownership:",n),!1}}case"erc721-approval":{let r=t;try{let n=se.encodeData(p1,[r.tokenId]);return (await this.provider.call({to:r.token.toString(),data:n})).toString().slice(-40).toLowerCase()===r.operator.toString().slice(2).toLowerCase()}catch(n){return console.error("Error checking ERC721 approval:",n),!1}}case"erc1155-balance":{let r=t;try{let n=se.encodeData(g1,[r.address.toString(),r.tokenId]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=r.min!==void 0?BigInt(r.min):void 0,c=r.max!==void 0?BigInt(r.max):void 0;return o!==void 0&&c!==void 0?a>=o&&a<=c:o!==void 0?a>=o:c!==void 0?a<=c:(console.warn("ERC1155 balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking ERC1155 balance:",n),!1}}case"erc1155-approval":{let r=t;try{let n=se.encodeData(y1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i.toString())===1n}catch(n){return console.error("Error checking ERC1155 approval:",n),!1}}default:return !1}}mapRpcFeeTokenToAddress(e){return e.type===t1.ERC20_TOKEN&&e.contractAddress?P.from(e.contractAddress):Gr.ZeroAddress}};var ka=class s{provider;kind="relayer";type="local";id="local";constructor(e){this.provider=e;}isAvailable(e,t){return Promise.resolve(!0)}static createFromWindow(e){let t=e.ethereum;if(!t){console.warn("Window.ethereum not found, skipping local relayer");return}return new s(new Pa(t))}static createFromProvider(e){return new s(new Pa(e))}feeTokens(){return Promise.resolve({isFeeRequired:!1})}feeOptions(e,t,r){return Promise.resolve({options:[]})}decodeCalls(e){let t=se.getSelector(Gr.EXECUTE),r;return e.startsWith(t)?r=se.decodeData(Gr.EXECUTE,e)[0]:r=e,gr.decode(f.fromHex(r))}async relay(e,t,r,n,i,a=5e3){let o=async()=>{if(!i||i.length===0)return !0;for(let c of i)if(!await this.checkPrecondition(c))return !1;return !0};return await o()?{opHash:await this.provider.sendTransaction({to:e,data:t},r)}:new Promise((c,u)=>{let l,h=!1,m=async()=>{try{if(h)return;if(await o()){h=!0,clearTimeout(l);let y=await this.provider.sendTransaction({to:e,data:t},r);c({opHash:y});}else l=setTimeout(m,a);}catch(y){h=!0,clearTimeout(l),u(y);}};return l=setTimeout(m,a),()=>{h=!0,clearTimeout(l);}})}async status(e,t){let r=await this.provider.getTransactionReceipt(e,t);return r==="unknown"?{status:"unknown"}:r==="success"?{status:"confirmed",transactionHash:e}:{status:"failed",reason:"failed"}}async checkPrecondition(e){let t=f1(e);if(!t)return !1;switch(t.type()){case"native-balance":{let r=t,n=await this.provider.getBalance(r.address.toString());return !(r.min!==void 0&&n<r.min||r.max!==void 0&&n>r.max)}case"erc20-balance":{let r=t,n=se.encodeData(h1,[r.address.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i);return !(r.min!==void 0&&a<r.min||r.max!==void 0&&a>r.max)}case"erc20-approval":{let r=t,n=se.encodeData(d1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i)>=r.min}case"erc721-ownership":{let r=t,n=se.encodeData(m1,[r.tokenId]),o=("0x"+(await this.provider.call({to:r.token.toString(),data:n})).slice(26)).toLowerCase()===r.address.toString().toLowerCase();return r.owned===void 0?o:r.owned===o}case"erc721-approval":{let r=t,n=se.encodeData(p1,[r.tokenId]);return ("0x"+(await this.provider.call({to:r.token.toString(),data:n})).slice(26)).toLowerCase()===r.operator.toString().toLowerCase()}case"erc1155-balance":{let r=t,n=se.encodeData(g1,[r.address.toString(),r.tokenId]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i);return !(r.min!==void 0&&a<r.min||r.max!==void 0&&a>r.max)}case"erc1155-approval":{let r=t,n=se.encodeData(y1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i)===1n}default:return !1}}},Pa=class{provider;constructor(e){this.provider=e;}async trySwitchChain(e){try{await this.provider.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${e.toString(16)}`}]});}catch(t){console.error("Error switching chain",t);}}async sendTransaction(e,t){let n=(await this.provider.request({method:"eth_requestAccounts"}))[0];if(!n){console.warn("No account selected, skipping local relayer");return}return await this.trySwitchChain(t),await this.provider.request({method:"eth_sendTransaction",params:[{from:n,to:e.to,data:e.data}]})}async getBalance(e){let t=await this.provider.request({method:"eth_getBalance",params:[e,"latest"]});return BigInt(t)}async call(e){return await this.provider.request({method:"eth_call",params:[e,"latest"]})}async getTransactionReceipt(e,t){await this.trySwitchChain(t);let r=await this.provider.request({method:"eth_getTransactionReceipt",params:[e]});if(r){let n=Rc.fromRpc(r);if(n?.status==="success")return "success";if(n?.status==="reverted")return "failed"}return "unknown"}};var s2=class{provider;kind="relayer";type="pk";id="pk";relayer;constructor(e,t){this.provider=t;let r=P.fromPublicKey(Lt.getPublicKey({privateKey:e}));this.relayer=new ka({sendTransaction:async(n,i)=>{if(Number(await this.provider.request({method:"eth_chainId"}))!==i)throw new Error("Provider chain id does not match relayer chain id");let o={...n,to:n.to,data:n.data},c=BigInt(await this.provider.request({method:"eth_estimateGas",params:[o]})),u=c>21000n?c*12n/10n:50000n,l=BigInt(await this.provider.request({method:"eth_gasPrice"})),h=100000000n,m=l+h,y=BigInt(await this.provider.request({method:"eth_getBalance",params:[r,"latest"]}));if(y<m*u)throw console.log("Sender balance:",y.toString(),"wei"),new Error("Sender has insufficient balance to pay for gas");let g=BigInt(await this.provider.request({method:"eth_getTransactionCount",params:[r,"latest"]})),w=va.from({chainId:Number(i),type:"eip1559",from:r,to:o.to,data:o.data,gas:u,maxFeePerGas:m,maxPriorityFeePerGas:h,nonce:g,value:0n}),b=Lt.sign({payload:va.getSignPayload(w),privateKey:e}),C=va.from(w,{signature:b});return await this.provider.request({method:"eth_sendRawTransaction",params:[va.serialize(C)]})},getBalance:async n=>{let i=await this.provider.request({method:"eth_getBalance",params:[n,"latest"]});return BigInt(i)},call:async n=>{let i={to:n.to,data:n.data};return await this.provider.request({method:"eth_call",params:[i,"latest"]})},getTransactionReceipt:async(n,i)=>{if(v.assert(n),Number(await this.provider.request({method:"eth_chainId"}))!==i)throw new Error("Provider chain id does not match relayer chain id");let o=await this.provider.request({method:"eth_getTransactionReceipt",params:[n]});return o?Rc.fromRpc(o).status==="success"?"success":"failed":"unknown"}});}async isAvailable(e,t){return Number(await this.provider.request({method:"eth_chainId"}))===t}feeTokens(){return this.relayer.feeTokens()}feeOptions(e,t,r){return this.relayer.feeOptions(e,t,r)}async relay(e,t,r,n){if(Number(await this.provider.request({method:"eth_chainId"}))!==r)throw new Error("Provider chain id does not match relayer chain id");return this.relayer.relay(e,t,r)}status(e,t){return this.relayer.status(e,t)}async checkPrecondition(e){return !0}};var r2=class{kind="relayer";type="sequence";id="sequence";service;constructor(e){this.service=new Kc(e,fetch);}async isAvailable(e,t){return !0}async feeTokens(){let{isFeeRequired:e,tokens:t,paymentAddress:r}=await this.service.feeTokens();return e?(P.assert(r),{isFeeRequired:e,tokens:t,paymentAddress:r}):{isFeeRequired:e}}async feeOptions(e,t,r){let n=e,i=se.from("function execute(bytes calldata _payload, bytes calldata _signature)"),a=gr.encode({type:"call",space:0n,nonce:0n,calls:r},n),c=se.encodeData(i,[f.toHex(a),"0x0001"]),{options:u,quote:l}=await this.service.feeOptions({wallet:e,to:n,data:c});return {options:u,quote:l?{_tag:"FeeQuote",_quote:l}:void 0}}async checkPrecondition(e){return !1}async relay(e,t,r,n){let i=e,{txnHash:a}=await this.service.sendMetaTxn({call:{walletAddress:i,contract:e,input:t},quote:n&&n._quote});return {opHash:`0x${a}`}}async status(e,t){try{let{receipt:{status:r,revertReason:n,txnReceipt:i}}=await this.service.getMetaTxnReceipt({metaTxID:e});switch(r){case Et.UNKNOWN:return {status:"unknown"};case Et.DROPPED:return {status:"failed",reason:n??r};case Et.QUEUED:return {status:"pending"};case Et.SENT:return {status:"pending"};case Et.SUCCEEDED:{let o=JSON.parse(i).transactionHash;return v.assert(o),{status:"confirmed",transactionHash:o}}case Et.PARTIALLY_FAILED:return {status:"failed",reason:n??r};case Et.FAILED:return {status:"failed",reason:n??r};default:throw new Error(`unknown transaction status '${r}'`)}}catch{return {status:"pending"}}}};var o2={};ye(o2,{EIP6963Relayer:()=>w1,getEIP6963Store:()=>bN,getRelayers:()=>AV});function wN(s){if(typeof window>"u")return;let e=t=>s(t.detail);return window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new CustomEvent("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",e)}function n2(){let s=new Set,e=[],t=()=>wN(n=>{e.some(({info:i})=>i.uuid===n.info.uuid)||(e=[...e,n],s.forEach(i=>i(e,{added:[n]})));}),r=t();return {_listeners(){return s},clear(){s.forEach(n=>n([],{removed:[...e]})),e=[];},destroy(){this.clear(),s.clear(),r?.();},findProvider({rdns:n}){return e.find(i=>i.info.rdns===n)},getProviders(){return e},reset(){this.clear(),r?.(),r=t();},subscribe(n,{emitImmediately:i}={}){return s.add(n),i&&n(e,{added:e}),()=>s.delete(n)}}}var w1=class{kind="relayer";type="eip6963";id;info;relayer;constructor(e){this.info=e.info,this.id=e.info.uuid,this.relayer=new ka(new Pa(e.provider));}isAvailable(e,t){return this.relayer.isAvailable(e,t)}feeTokens(){return this.relayer.feeTokens()}feeOptions(e,t,r){return this.relayer.feeOptions(e,t,r)}async relay(e,t,r,n){return this.relayer.relay(e,t,r)}status(e,t){return this.relayer.status(e,t)}async checkPrecondition(e){return this.relayer.checkPrecondition(e)}},i2;function bN(){return i2||(i2=n2()),i2}var a2=new Map;function AV(){let e=bN().getProviders();for(let t of e)a2.has(t.info.uuid)||a2.set(t.info.uuid,new w1(t));return Array.from(a2.values())}function IV(s){return "isAvailable"in s&&"feeOptions"in s&&"relay"in s&&"status"in s&&"checkPrecondition"in s}var q={POS_INT:0,NEG_INT:1,BYTE_STRING:2,UTF8_STRING:3,ARRAY:4,MAP:5,TAG:6,SIMPLE_FLOAT:7},rt={DATE_STRING:0,DATE_EPOCH:1,POS_BIGINT:2,NEG_BIGINT:3,DECIMAL_FRAC:4,BIGFLOAT:5,BASE64URL_EXPECTED:21,BASE64_EXPECTED:22,BASE16_EXPECTED:23,CBOR:24,URI:32,BASE64URL:33,BASE64:34,MIME:36,SET:258,JSON:262,REGEXP:21066,SELF_DESCRIBED:55799,INVALID_16:65535,INVALID_32:4294967295,INVALID_64:0xffffffffffffffffn},Ae={ZERO:0,ONE:24,TWO:25,FOUR:26,EIGHT:27,INDEFINITE:31},yr={FALSE:20,TRUE:21,NULL:22,UNDEFINED:23},ct=class{static BREAK=Symbol.for("github.com/hildjj/cbor2/break");static ENCODED=Symbol.for("github.com/hildjj/cbor2/cbor-encoded");static LENGTH=Symbol.for("github.com/hildjj/cbor2/length")},Wc={MIN:-(2n**63n),MAX:2n**64n-1n};var xe=class s{static#e=new Map;tag;contents;constructor(e,t=void 0){this.tag=e,this.contents=t;}get noChildren(){return !!s.#e.get(this.tag)?.noChildren}static registerDecoder(e,t,r){let n=this.#e.get(e);return this.#e.set(e,t),n&&("comment"in t||(t.comment=n.comment),"noChildren"in t||(t.noChildren=n.noChildren)),r&&!t.comment&&(t.comment=()=>`(${r})`),n}static clearDecoder(e){let t=this.#e.get(e);return this.#e.delete(e),t}static getDecoder(e){return this.#e.get(e)}static getAllDecoders(){return new Map(this.#e)}*[Symbol.iterator](){yield this.contents;}push(e){return this.contents=e,1}decode(e){let t=s.#e.get(this.tag);return t?t(this,e):this}comment(e,t){let r=s.#e.get(this.tag);if(r?.comment)return r.comment(this,e,t)}toCBOR(){return [this.tag,this.contents]}[Symbol.for("nodejs.util.inspect.custom")](e,t,r){return `${this.tag}(${r(this.contents,t)})`}};function $n(s){if(s!=null&&typeof s=="object")return s[ct.ENCODED]}function SN(s){if(s!=null&&typeof s=="object")return s[ct.LENGTH]}function qn(s,e){Object.defineProperty(s,ct.ENCODED,{configurable:!0,enumerable:!1,value:e});}function Fn(s,e){let t=Object(s);return qn(t,e),t}var c2=Symbol("CBOR_RANGES");function vN(s,e){Object.defineProperty(s,c2,{configurable:!1,enumerable:!1,writable:!1,value:e});}function hh(s){return s[c2]}function CV(s){return hh(s)!==void 0}function dh(s,e=0,t=s.length-1){let r=s.subarray(e,t),n=hh(s);if(n){let i=[];for(let a of n)if(a[0]>=e&&a[0]+a[1]<=t){let o=[...a];o[0]-=e,i.push(o);}i.length&&vN(r,i);}return r}function b1(s){let e=Math.ceil(s.length/2),t=new Uint8Array(e);e--;for(let r=s.length,n=r-2;r>=0;r=n,n-=2,e--)t[e]=parseInt(s.substring(n,r),16);return t}function Ht(s){return s.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function EN(s){let e=s.reduce((a,o)=>a+o.length,0),t=s.some(a=>CV(a)),r=[],n=new Uint8Array(e),i=0;for(let a of s){if(!(a instanceof Uint8Array))throw new TypeError(`Invalid array: ${a}`);if(n.set(a,i),t){let o=a[c2]??[[0,a.length]];for(let c of o)c[0]+=i;r.push(...o);}i+=a.length;}return t&&vN(n,r),n}function mh(s){let e=atob(s);return Uint8Array.from(e,t=>t.codePointAt(0))}var NV={"-":"+",_:"/"};function xN(s){let e=s.replace(/[_-]/g,t=>NV[t]);return mh(e.padEnd(Math.ceil(e.length/4)*4,"="))}function AN(){let s=new Uint8Array(4),e=new Uint32Array(s.buffer);return !((e[0]=1)&s[0])}function u2(s){let e="";for(let t of s){let r=t.codePointAt(0)?.toString(16).padStart(4,"0");e&&(e+=", "),e+=`U+${r}`;}return e}function S1(s,e){let[t,r,n]=s,[i,a,o]=e,c=Math.min(n.length,o.length);for(let u=0;u<c;u++){let l=n[u]-o[u];if(l!==0)return l}return 0}var ph=class s{static defaultOptions={chunkSize:4096};#e;#s=[];#r=null;#t=0;#a=0;constructor(e={}){if(this.#e={...s.defaultOptions,...e},this.#e.chunkSize<8)throw new RangeError(`Expected size >= 8, got ${this.#e.chunkSize}`);this.#i();}get length(){return this.#a}read(){this.#n();let e=new Uint8Array(this.#a),t=0;for(let r of this.#s)e.set(r,t),t+=r.length;return this.#i(),e}write(e){let t=e.length;t>this.#u()?(this.#n(),t>this.#e.chunkSize?(this.#s.push(e),this.#i()):(this.#i(),this.#s[this.#s.length-1].set(e),this.#t=t)):(this.#s[this.#s.length-1].set(e,this.#t),this.#t+=t),this.#a+=t;}writeUint8(e){this.#c(1),this.#r.setUint8(this.#t,e),this.#o(1);}writeUint16(e,t=!1){this.#c(2),this.#r.setUint16(this.#t,e,t),this.#o(2);}writeUint32(e,t=!1){this.#c(4),this.#r.setUint32(this.#t,e,t),this.#o(4);}writeBigUint64(e,t=!1){this.#c(8),this.#r.setBigUint64(this.#t,e,t),this.#o(8);}writeInt16(e,t=!1){this.#c(2),this.#r.setInt16(this.#t,e,t),this.#o(2);}writeInt32(e,t=!1){this.#c(4),this.#r.setInt32(this.#t,e,t),this.#o(4);}writeBigInt64(e,t=!1){this.#c(8),this.#r.setBigInt64(this.#t,e,t),this.#o(8);}writeFloat32(e,t=!1){this.#c(4),this.#r.setFloat32(this.#t,e,t),this.#o(4);}writeFloat64(e,t=!1){this.#c(8),this.#r.setFloat64(this.#t,e,t),this.#o(8);}clear(){this.#a=0,this.#s=[],this.#i();}#i(){let e=new Uint8Array(this.#e.chunkSize);this.#s.push(e),this.#t=0,this.#r=new DataView(e.buffer,e.byteOffset,e.byteLength);}#n(){if(this.#t===0){this.#s.pop();return}let e=this.#s.length-1;this.#s[e]=this.#s[e].subarray(0,this.#t),this.#t=0,this.#r=null;}#u(){let e=this.#s.length-1;return this.#s[e].length-this.#t}#c(e){this.#u()<e&&(this.#n(),this.#i());}#o(e){this.#t+=e,this.#a+=e;}};function l2(s,e=0,t=!1){let r=s[e]&128?-1:1,n=(s[e]&124)>>2,i=(s[e]&3)<<8|s[e+1];if(n===0){if(t&&i!==0)throw new Error(`Unwanted subnormal: ${r*5960464477539063e-23*i}`);return r*5960464477539063e-23*i}else if(n===31)return i?NaN:r*(1/0);return r*2**(n-25)*(1024+i)}function v1(s){let e=new DataView(new ArrayBuffer(4));e.setFloat32(0,s,!1);let t=e.getUint32(0,!1);if(t&8191)return null;let r=t>>16&32768,n=t>>23&255,i=t&8388607;if(!(n===0&&i===0))if(n>=113&&n<=142)r+=(n-112<<10)+(i>>13);else if(n>=103&&n<113){if(i&(1<<126-n)-1)return null;r+=i+8388608>>126-n;}else if(n===255)r|=31744,r|=i>>13;else return null;return r}function IN(s){if(s!==0){let e=new ArrayBuffer(8),t=new DataView(e);t.setFloat64(0,s,!1);let r=t.getBigUint64(0,!1);if((r&0x7ff0000000000000n)===0n)return r&0x8000000000000000n?-0:0}return s}function CN(s){switch(s.length){case 2:l2(s,0,!0);break;case 4:{let e=new DataView(s.buffer,s.byteOffset,s.byteLength),t=e.getUint32(0,!1);if(!(t&2139095040)&&t&8388607)throw new Error(`Unwanted subnormal: ${e.getFloat32(0,!1)}`);break}case 8:{let e=new DataView(s.buffer,s.byteOffset,s.byteLength),t=e.getBigUint64(0,!1);if((t&0x7ff0000000000000n)===0n&&t&0x000fffffffffffn)throw new Error(`Unwanted subnormal: ${e.getFloat64(0,!1)}`);break}default:throw new TypeError(`Bad input to isSubnormal: ${s}`)}}var NN=q.SIMPLE_FLOAT<<5|Ae.TWO,TV=q.SIMPLE_FLOAT<<5|Ae.FOUR,kV=q.SIMPLE_FLOAT<<5|Ae.EIGHT,PV=q.SIMPLE_FLOAT<<5|yr.TRUE,BV=q.SIMPLE_FLOAT<<5|yr.FALSE,OV=q.SIMPLE_FLOAT<<5|yr.UNDEFINED,RV=q.SIMPLE_FLOAT<<5|yr.NULL,VV=new TextEncoder,E1={...ph.defaultOptions,avoidInts:!1,cde:!1,collapseBigInts:!0,dcbor:!1,float64:!1,flushToZero:!1,forceEndian:null,ignoreOriginalEncoding:!1,largeNegativeAsBigInt:!1,reduceUnsafeNumbers:!1,rejectBigInts:!1,rejectCustomSimples:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectUndefined:!1,simplifyNegativeZero:!1,sortKeys:null,stringNormalization:null},d2={cde:!0,ignoreOriginalEncoding:!0,sortKeys:S1},TN={...d2,dcbor:!0,largeNegativeAsBigInt:!0,reduceUnsafeNumbers:!0,rejectCustomSimples:!0,rejectDuplicateKeys:!0,rejectUndefined:!0,simplifyNegativeZero:!0,stringNormalization:"NFC"};function kN(s){let e=s<0;return typeof s=="bigint"?[e?-s-1n:s,e]:[e?-s-1:s,e]}function f2(s,e,t){if(t.rejectFloats)throw new Error(`Attempt to encode an unwanted floating point number: ${s}`);if(isNaN(s))e.writeUint8(NN),e.writeUint16(32256);else if(!t.float64&&Math.fround(s)===s){let r=v1(s);r===null?(e.writeUint8(TV),e.writeFloat32(s)):(e.writeUint8(NN),e.writeUint16(r));}else e.writeUint8(kV),e.writeFloat64(s);}function Is(s,e,t){let[r,n]=kN(s);if(n&&t)throw new TypeError(`Negative size: ${s}`);t??=n?q.NEG_INT:q.POS_INT,t<<=5,r<24?e.writeUint8(t|r):r<=255?(e.writeUint8(t|Ae.ONE),e.writeUint8(r)):r<=65535?(e.writeUint8(t|Ae.TWO),e.writeUint16(r)):r<=4294967295?(e.writeUint8(t|Ae.FOUR),e.writeUint32(r)):(e.writeUint8(t|Ae.EIGHT),e.writeBigUint64(BigInt(r)));}function gh(s,e,t){typeof s=="number"?Is(s,e,q.TAG):typeof s=="object"&&!t.ignoreOriginalEncoding&&ct.ENCODED in s?e.write(s[ct.ENCODED]):s<=Number.MAX_SAFE_INTEGER?Is(Number(s),e,q.TAG):(e.writeUint8(q.TAG<<5|Ae.EIGHT),e.writeBigUint64(BigInt(s)));}function PN(s,e,t){let[r,n]=kN(s);if(t.collapseBigInts&&(!t.largeNegativeAsBigInt||s>=-0x8000000000000000n)){if(r<=0xffffffffn){Is(Number(s),e);return}if(r<=0xffffffffffffffffn){let u=(n?q.NEG_INT:q.POS_INT)<<5;e.writeUint8(u|Ae.EIGHT),e.writeBigUint64(r);return}}if(t.rejectBigInts)throw new Error(`Attempt to encode unwanted bigint: ${s}`);let i=n?rt.NEG_BIGINT:rt.POS_BIGINT,a=r.toString(16),o=a.length%2?"0":"";gh(i,e,t);let c=b1(o+a);Is(c.length,e,q.BYTE_STRING),e.write(c);}function DV(s,e,t){t.flushToZero&&(s=IN(s)),Object.is(s,-0)?t.simplifyNegativeZero?t.avoidInts?f2(0,e,t):Is(0,e):f2(s,e,t):!t.avoidInts&&Number.isSafeInteger(s)?Is(s,e):t.reduceUnsafeNumbers&&Math.floor(s)===s&&s>=Wc.MIN&&s<=Wc.MAX?PN(BigInt(s),e,t):f2(s,e,t);}function LV(s,e,t){let r=t.stringNormalization?s.normalize(t.stringNormalization):s,n=VV.encode(r);Is(n.length,e,q.UTF8_STRING),e.write(n);}function UV(s,e,t){let r=s;x1(r,r.length,q.ARRAY,e,t);for(let n of r)Kn(n,e,t);}function HV(s,e){let t=s;Is(t.length,e,q.BYTE_STRING),e.write(t);}var h2=new Map([[Array,UV],[Uint8Array,HV]]);function ft(s,e){let t=h2.get(s);return h2.set(s,e),t}function x1(s,e,t,r,n){let i=SN(s);i&&!n.ignoreOriginalEncoding?r.write(i):Is(e,r,t);}function _V(s,e,t){if(s===null){e.writeUint8(RV);return}if(!t.ignoreOriginalEncoding&&ct.ENCODED in s){e.write(s[ct.ENCODED]);return}let r=h2.get(s.constructor);if(r){let i=r(s,e,t);i&&((typeof i[0]=="bigint"||isFinite(Number(i[0])))&&gh(i[0],e,t),Kn(i[1],e,t));return}if(typeof s.toCBOR=="function"){let i=s.toCBOR(e,t);i&&((typeof i[0]=="bigint"||isFinite(Number(i[0])))&&gh(i[0],e,t),Kn(i[1],e,t));return}if(typeof s.toJSON=="function"){Kn(s.toJSON(),e,t);return}let n=Object.entries(s).map(i=>[i[0],i[1],Wr(i[0],t)]);t.sortKeys&&n.sort(t.sortKeys),x1(s,n.length,q.MAP,e,t);for(let[i,a,o]of n)e.write(o),Kn(a,e,t);}function Kn(s,e,t){switch(typeof s){case"number":DV(s,e,t);break;case"bigint":PN(s,e,t);break;case"string":LV(s,e,t);break;case"boolean":e.writeUint8(s?PV:BV);break;case"undefined":if(t.rejectUndefined)throw new Error("Attempt to encode unwanted undefined.");e.writeUint8(OV);break;case"object":_V(s,e,t);break;case"symbol":throw new TypeError(`Unknown symbol: ${s.toString()}`);default:throw new TypeError(`Unknown type: ${typeof s}, ${String(s)}`)}}function Wr(s,e={}){let t={...E1};e.dcbor?Object.assign(t,TN):e.cde&&Object.assign(t,d2),Object.assign(t,e);let r=new ph(t);return Kn(s,r,t),r.read()}var Ba=(s=>(s[s.NEVER=-1]="NEVER",s[s.PREFERRED=0]="PREFERRED",s[s.ALWAYS=1]="ALWAYS",s))(Ba||{});var Zs=class s{static KnownSimple=new Map([[yr.FALSE,!1],[yr.TRUE,!0],[yr.NULL,null],[yr.UNDEFINED,void 0]]);value;constructor(e){this.value=e;}static create(e){return s.KnownSimple.has(e)?s.KnownSimple.get(e):new s(e)}toCBOR(e,t){if(t.rejectCustomSimples)throw new Error(`Cannot encode non-standard Simple value: ${this.value}`);Is(this.value,e,q.SIMPLE_FLOAT);}toString(){return `simple(${this.value})`}decode(){return s.KnownSimple.has(this.value)?s.KnownSimple.get(this.value):this}[Symbol.for("nodejs.util.inspect.custom")](e,t,r){return `simple(${r(this.value,t)})`}};var jV=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}),Jr=class s{static defaultOptions={maxDepth:1024,encoding:"hex",requirePreferred:!1};#e;#s;#r=0;#t;constructor(e,t){if(this.#t={...s.defaultOptions,...t},typeof e=="string")switch(this.#t.encoding){case"hex":this.#e=b1(e);break;case"base64":this.#e=mh(e);break;default:throw new TypeError(`Encoding not implemented: "${this.#t.encoding}"`)}else this.#e=e;this.#s=new DataView(this.#e.buffer,this.#e.byteOffset,this.#e.byteLength);}toHere(e){return dh(this.#e,e,this.#r)}*[Symbol.iterator](){if(yield*this.#a(0),this.#r!==this.#e.length)throw new Error("Extra data in input")}*#a(e){if(e++>this.#t.maxDepth)throw new Error(`Maximum depth ${this.#t.maxDepth} exceeded`);let t=this.#r,r=this.#s.getUint8(this.#r++),n=r>>5,i=r&31,a=i,o=!1,c=0;switch(i){case Ae.ONE:if(c=1,a=this.#s.getUint8(this.#r),n===q.SIMPLE_FLOAT){if(a<32)throw new Error(`Invalid simple encoding in extra byte: ${a}`);o=!0;}else if(this.#t.requirePreferred&&a<24)throw new Error(`Unexpectedly long integer encoding (1) for ${a}`);break;case Ae.TWO:if(c=2,n===q.SIMPLE_FLOAT)a=l2(this.#e,this.#r);else if(a=this.#s.getUint16(this.#r,!1),this.#t.requirePreferred&&a<=255)throw new Error(`Unexpectedly long integer encoding (2) for ${a}`);break;case Ae.FOUR:if(c=4,n===q.SIMPLE_FLOAT)a=this.#s.getFloat32(this.#r,!1);else if(a=this.#s.getUint32(this.#r,!1),this.#t.requirePreferred&&a<=65535)throw new Error(`Unexpectedly long integer encoding (4) for ${a}`);break;case Ae.EIGHT:{if(c=8,n===q.SIMPLE_FLOAT)a=this.#s.getFloat64(this.#r,!1);else if(a=this.#s.getBigUint64(this.#r,!1),a<=Number.MAX_SAFE_INTEGER&&(a=Number(a)),this.#t.requirePreferred&&a<=4294967295)throw new Error(`Unexpectedly long integer encoding (8) for ${a}`);break}case 28:case 29:case 30:throw new Error(`Additional info not implemented: ${i}`);case Ae.INDEFINITE:switch(n){case q.POS_INT:case q.NEG_INT:case q.TAG:throw new Error(`Invalid indefinite encoding for MT ${n}`);case q.SIMPLE_FLOAT:yield [n,i,ct.BREAK,t,0];return}a=1/0;break;default:o=!0;}switch(this.#r+=c,n){case q.POS_INT:yield [n,i,a,t,c];break;case q.NEG_INT:yield [n,i,typeof a=="bigint"?-1n-a:-1-Number(a),t,c];break;case q.BYTE_STRING:a===1/0?yield*this.#n(n,e,t):yield [n,i,this.#i(a),t,a];break;case q.UTF8_STRING:a===1/0?yield*this.#n(n,e,t):yield [n,i,jV.decode(this.#i(a)),t,a];break;case q.ARRAY:if(a===1/0)yield*this.#n(n,e,t,!1);else {let u=Number(a);yield [n,i,u,t,c];for(let l=0;l<u;l++)yield*this.#a(e+1);}break;case q.MAP:if(a===1/0)yield*this.#n(n,e,t,!1);else {let u=Number(a);yield [n,i,u,t,c];for(let l=0;l<u;l++)yield*this.#a(e),yield*this.#a(e);}break;case q.TAG:yield [n,i,a,t,c],yield*this.#a(e);break;case q.SIMPLE_FLOAT:{let u=a;o&&(a=Zs.create(Number(a))),yield [n,i,a,t,u];break}}}#i(e){let t=dh(this.#e,this.#r,this.#r+=e);if(t.length!==e)throw new Error(`Unexpected end of stream reading ${e} bytes, got ${t.length}`);return t}*#n(e,t,r,n=!0){for(yield [e,Ae.INDEFINITE,1/0,r,1/0];;){let i=this.#a(t),a=i.next(),[o,c,u]=a.value;if(u===ct.BREAK){yield a.value,i.next();return}if(n){if(o!==e)throw new Error(`Unmatched major type. Expected ${e}, got ${o}.`);if(c===Ae.INDEFINITE)throw new Error("New stream started in typed stream")}yield a.value,yield*i;}}};var MV=new Map([[Ae.ZERO,1],[Ae.ONE,2],[Ae.TWO,3],[Ae.FOUR,5],[Ae.EIGHT,9]]),$V=new Uint8Array(0);function qV(s,e){return !e.boxed&&!e.preferMap&&s.every(([t])=>typeof t=="string")?Object.fromEntries(s):new Map(s)}var is=class s{static defaultDecodeOptions={...Jr.defaultOptions,ParentType:s,boxed:!1,cde:!1,dcbor:!1,diagnosticSizes:Ba.PREFERRED,convertUnsafeIntsToFloat:!1,createObject:qV,pretty:!1,preferMap:!1,rejectLargeNegatives:!1,rejectBigInts:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectInts:!1,rejectLongLoundNaN:!1,rejectLongFloats:!1,rejectNegativeZero:!1,rejectSimple:!1,rejectStreaming:!1,rejectStringsNotNormalizedAs:null,rejectSubnormals:!1,rejectUndefined:!1,rejectUnsafeFloatInts:!1,saveOriginal:!1,sortKeys:null};static cdeDecodeOptions={cde:!0,rejectStreaming:!0,requirePreferred:!0,sortKeys:S1};static dcborDecodeOptions={...this.cdeDecodeOptions,dcbor:!0,convertUnsafeIntsToFloat:!0,rejectDuplicateKeys:!0,rejectLargeNegatives:!0,rejectLongLoundNaN:!0,rejectLongFloats:!0,rejectNegativeZero:!0,rejectSimple:!0,rejectUndefined:!0,rejectUnsafeFloatInts:!0,rejectStringsNotNormalizedAs:"NFC"};parent;mt;ai;left;offset;count=0;children=[];depth=0;#e;#s=null;constructor(e,t,r,n){if([this.mt,this.ai,,this.offset]=e,this.left=t,this.parent=r,this.#e=n,r&&(this.depth=r.depth+1),this.mt===q.MAP&&(this.#e.sortKeys||this.#e.rejectDuplicateKeys)&&(this.#s=[]),this.#e.rejectStreaming&&this.ai===Ae.INDEFINITE)throw new Error("Streaming not supported")}get isStreaming(){return this.left===1/0}get done(){return this.left===0}static create(e,t,r,n){let[i,a,o,c]=e;switch(i){case q.POS_INT:case q.NEG_INT:{if(r.rejectInts)throw new Error(`Unexpected integer: ${o}`);if(r.rejectLargeNegatives&&o<-0x8000000000000000n)throw new Error(`Invalid 65bit negative number: ${o}`);let u=o;return r.convertUnsafeIntsToFloat&&u>=Wc.MIN&&u<=Wc.MAX&&(u=Number(o)),r.boxed?Fn(u,n.toHere(c)):u}case q.SIMPLE_FLOAT:if(a>Ae.ONE){if(r.rejectFloats)throw new Error(`Decoding unwanted floating point number: ${o}`);if(r.rejectNegativeZero&&Object.is(o,-0))throw new Error("Decoding negative zero");if(r.rejectLongLoundNaN&&isNaN(o)){let u=n.toHere(c);if(u.length!==3||u[1]!==126||u[2]!==0)throw new Error(`Invalid NaN encoding: "${Ht(u)}"`)}if(r.rejectSubnormals&&CN(n.toHere(c+1)),r.rejectLongFloats){let u=Wr(o,{chunkSize:9,reduceUnsafeNumbers:r.rejectUnsafeFloatInts});if(u[0]>>5!==i)throw new Error(`Should have been encoded as int, not float: ${o}`);if(u.length<MV.get(a))throw new Error(`Number should have been encoded shorter: ${o}`)}if(typeof o=="number"&&r.boxed)return Fn(o,n.toHere(c))}else {if(r.rejectSimple&&o instanceof Zs)throw new Error(`Invalid simple value: ${o}`);if(r.rejectUndefined&&o===void 0)throw new Error("Unexpected undefined")}return o;case q.BYTE_STRING:case q.UTF8_STRING:if(o===1/0)return new r.ParentType(e,1/0,t,r);if(r.rejectStringsNotNormalizedAs&&typeof o=="string"){let u=o.normalize(r.rejectStringsNotNormalizedAs);if(o!==u)throw new Error(`String not normalized as "${r.rejectStringsNotNormalizedAs}", got [${u2(o)}] instead of [${u2(u)}]`)}return r.boxed?Fn(o,n.toHere(c)):o;case q.ARRAY:return new r.ParentType(e,o,t,r);case q.MAP:return new r.ParentType(e,o*2,t,r);case q.TAG:{let u=new r.ParentType(e,1,t,r);return u.children=new xe(o),u}}throw new TypeError(`Invalid major type: ${i}`)}static decodeToEncodeOpts(e){return {...E1,avoidInts:e.rejectInts,float64:!e.rejectLongFloats,flushToZero:e.rejectSubnormals,largeNegativeAsBigInt:e.rejectLargeNegatives,sortKeys:e.sortKeys}}push(e,t,r){if(this.children.push(e),this.#s){let n=$n(e)||t.toHere(r);this.#s.push(n);}return --this.left}replaceLast(e,t,r){let n,i=-1/0;if(this.children instanceof xe?(i=0,n=this.children.contents,this.children.contents=e):(i=this.children.length-1,n=this.children[i],this.children[i]=e),this.#s){let a=$n(e)||r.toHere(t.offset);this.#s[i]=a;}return n}convert(e){let t;switch(this.mt){case q.ARRAY:t=this.children;break;case q.MAP:{let r=this.#r();if(this.#e.sortKeys){let n;for(let i of r){if(n&&this.#e.sortKeys(n,i)>=0)throw new Error(`Duplicate or out of order key: "0x${i[2]}"`);n=i;}}else if(this.#e.rejectDuplicateKeys){let n=new Set;for(let[i,a,o]of r){let c=Ht(o);if(n.has(c))throw new Error(`Duplicate key: "0x${c}"`);n.add(c);}}t=this.#e.createObject(r,this.#e);break}case q.BYTE_STRING:return EN(this.children);case q.UTF8_STRING:{let r=this.children.join("");t=this.#e.boxed?Fn(r,e.toHere(this.offset)):r;break}case q.TAG:t=this.children.decode(this.#e);break;default:throw new TypeError(`Invalid mt on convert: ${this.mt}`)}return this.#e.saveOriginal&&t&&typeof t=="object"&&qn(t,e.toHere(this.offset)),t}#r(){let e=this.children,t=e.length;if(t%2)throw new Error("Missing map value");let r=new Array(t/2);if(this.#s)for(let n=0;n<t;n+=2)r[n>>1]=[e[n],e[n+1],this.#s[n]];else for(let n=0;n<t;n+=2)r[n>>1]=[e[n],e[n+1],$V];return r}};var m2=" ",FV=new TextEncoder,A1=class extends is{close="";quote='"';get isEmptyStream(){return (this.mt===q.UTF8_STRING||this.mt===q.BYTE_STRING)&&this.count===0}};function Gn(s,e,t,r){let n="";if(e===Ae.INDEFINITE)n+="_";else {if(r.diagnosticSizes===Ba.NEVER)return "";{let i=r.diagnosticSizes===Ba.ALWAYS;if(!i){let a=Ae.ZERO;if(Object.is(t,-0))a=Ae.TWO;else if(s===q.POS_INT||s===q.NEG_INT){let o=t<0,c=typeof t=="bigint"?1n:1,u=o?-t-c:t;u<=23?a=Number(u):u<=255?a=Ae.ONE:u<=65535?a=Ae.TWO:u<=4294967295?a=Ae.FOUR:a=Ae.EIGHT;}else isFinite(t)?Math.fround(t)===t?v1(t)==null?a=Ae.FOUR:a=Ae.TWO:a=Ae.EIGHT:a=Ae.TWO;i=a!==e;}i&&(n+="_",e<Ae.ONE?n+="i":n+=String(e-24));}}return n}function p2(s,e){let t={...is.defaultDecodeOptions,...e,ParentType:A1},r=new Jr(s,t),n,i,a="";for(let o of r){let[c,u,l]=o;switch(n&&(n.count>0&&l!==ct.BREAK&&(n.mt===q.MAP&&n.count%2?a+=": ":(a+=",",t.pretty||(a+=" "))),t.pretty&&(n.mt!==q.MAP||n.count%2===0)&&(a+=`
|
|
361
|
-
${
|
|
362
|
-
${
|
|
363
|
-
${
|
|
364
|
-
`,n.length>i+1){let c=yh((s.depth+1)*2),u=hh(n);if(u?.length){u.sort((h,m)=>h[0]-m[0]||m[1]-h[1]);let l=0;for(let[h,m,y]of u)if(!(h<l)){if(l=h+m,y==="<<"){r+=yh(e.minCol+1),r+="--",r+=c,r+="<< ";let g=dh(n,h,h+m),w=hh(g);if(w){let
|
|
365
|
-
`,r+=
|
|
354
|
+
[${N}] warning: ${m} ${c} threw:`,C);return}let S=Math.floor(1e6*Math.random()).toString().padStart(6,"0");f9(l,w)?console.trace(`[${S}] calling ${c}: ${u}
|
|
355
|
+
[${S}] reference returned: ${h}
|
|
356
|
+
[${S}] ${m} returned: ${Xg(w)}`):console.trace(`[${S}] calling ${c}: ${u}
|
|
357
|
+
[${S}] reference returned: ${h}
|
|
358
|
+
[${S}] ${m} returned: ${Xg(w)}
|
|
359
|
+
[${S}] warning: ${m} ${c} does not match reference`);})),l}}};return new Proxy(s,t)}({knownContexts:Aa.KnownContexts,stateProvider:new ch.Provider,guest:nt.DefaultGuestAddress});var fh={};ye(fh,{EIP1193ProviderAdapter:()=>Pa,EIP6963:()=>a2,LocalRelayer:()=>ka,PkRelayer:()=>t2,RpcRelayer:()=>e2,SequenceRelayer:()=>s2,getChain:()=>gN,isRelayer:()=>NV});var Et;(function(s){s.UNKNOWN="UNKNOWN",s.DROPPED="DROPPED",s.QUEUED="QUEUED",s.SENT="SENT",s.SUCCEEDED="SUCCEEDED",s.PARTIALLY_FAILED="PARTIALLY_FAILED",s.FAILED="FAILED",s.PENDING_PRECONDITION="PENDING_PRECONDITION";})(Et||(Et={}));var _C;(function(s){s.SEND="SEND",s.RECEIVE="RECEIVE",s.BRIDGE_DEPOSIT="BRIDGE_DEPOSIT",s.BRIDGE_WITHDRAW="BRIDGE_WITHDRAW",s.BURN="BURN",s.UNKNOWN="UNKNOWN";})(_C||(_C={}));var jC;(function(s){s.SKIPPED="SKIPPED",s.SUCCEEDED="SUCCEEDED",s.FAILED="FAILED",s.ABORTED="ABORTED",s.REVERTED="REVERTED",s.NOT_ENOUGH_GAS="NOT_ENOUGH_GAS";})(jC||(jC={}));var e1;(function(s){s.UNKNOWN="UNKNOWN",s.ERC20_TOKEN="ERC20_TOKEN",s.ERC1155_TOKEN="ERC1155_TOKEN";})(e1||(e1={}));var MC;(function(s){s.DESC="DESC",s.ASC="ASC";})(MC||(MC={}));var Gc=class{hostname;fetch;path="/rpc/Relayer/";constructor(e,t){this.hostname=e.replace(/\/*$/,""),this.fetch=(r,n)=>t(r,n);}url(e){return this.hostname+this.path+e}queryKey={ping:()=>["Relayer","ping"],version:()=>["Relayer","version"],runtimeStatus:()=>["Relayer","runtimeStatus"],getSequenceContext:()=>["Relayer","getSequenceContext"],getChainID:()=>["Relayer","getChainID"],sendMetaTxn:e=>["Relayer","sendMetaTxn",e],getMetaTxnNonce:e=>["Relayer","getMetaTxnNonce",e],getMetaTxnReceipt:e=>["Relayer","getMetaTxnReceipt",e],simulate:e=>["Relayer","simulate",e],simulateV3:e=>["Relayer","simulateV3",e],updateMetaTxnGasLimits:e=>["Relayer","updateMetaTxnGasLimits",e],feeTokens:()=>["Relayer","feeTokens"],feeOptions:e=>["Relayer","feeOptions",e],getMetaTxnNetworkFeeOptions:e=>["Relayer","getMetaTxnNetworkFeeOptions",e],getMetaTransactions:e=>["Relayer","getMetaTransactions",e],getTransactionCost:e=>["Relayer","getTransactionCost",e],sentTransactions:e=>["Relayer","sentTransactions",e],pendingTransactions:e=>["Relayer","pendingTransactions",e],getGasTank:e=>["Relayer","getGasTank",e],addGasTank:e=>["Relayer","addGasTank",e],updateGasTank:e=>["Relayer","updateGasTank",e],nextGasTankBalanceAdjustmentNonce:e=>["Relayer","nextGasTankBalanceAdjustmentNonce",e],adjustGasTankBalance:e=>["Relayer","adjustGasTankBalance",e],getGasTankBalanceAdjustment:e=>["Relayer","getGasTankBalanceAdjustment",e],listGasTankBalanceAdjustments:e=>["Relayer","listGasTankBalanceAdjustments",e],listGasSponsors:e=>["Relayer","listGasSponsors",e],getGasSponsor:e=>["Relayer","getGasSponsor",e],addGasSponsor:e=>["Relayer","addGasSponsor",e],updateGasSponsor:e=>["Relayer","updateGasSponsor",e],removeGasSponsor:e=>["Relayer","removeGasSponsor",e],addressGasSponsors:e=>["Relayer","addressGasSponsors",e],getProjectBalance:e=>["Relayer","getProjectBalance",e],adjustProjectBalance:e=>["Relayer","adjustProjectBalance",e]};ping=(e,t)=>this.fetch(this.url("Ping"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"PingReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});version=(e,t)=>this.fetch(this.url("Version"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"VersionReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});runtimeStatus=(e,t)=>this.fetch(this.url("RuntimeStatus"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"RuntimeStatusReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});getSequenceContext=(e,t)=>this.fetch(this.url("GetSequenceContext"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"GetSequenceContextReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});getChainID=(e,t)=>this.fetch(this.url("GetChainID"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"GetChainIDReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});sendMetaTxn=(e,t,r)=>this.fetch(this.url("SendMetaTxn"),Me(st(e,"SendMetaTxnArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"SendMetaTxnReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnNonce=(e,t,r)=>this.fetch(this.url("GetMetaTxnNonce"),Me(st(e,"GetMetaTxnNonceArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetMetaTxnNonceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnReceipt=(e,t,r)=>this.fetch(this.url("GetMetaTxnReceipt"),Me(st(e,"GetMetaTxnReceiptArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetMetaTxnReceiptReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});simulate=(e,t,r)=>this.fetch(this.url("Simulate"),Me(st(e,"SimulateArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"SimulateReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});simulateV3=(e,t,r)=>this.fetch(this.url("SimulateV3"),Me(st(e,"SimulateV3Args"),t,r)).then(n=>$e(n).then(i=>Fe(i,"SimulateV3Return")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateMetaTxnGasLimits=(e,t,r)=>this.fetch(this.url("UpdateMetaTxnGasLimits"),Me(st(e,"UpdateMetaTxnGasLimitsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"UpdateMetaTxnGasLimitsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});feeTokens=(e,t)=>this.fetch(this.url("FeeTokens"),Me("{}",e,t)).then(r=>$e(r).then(n=>Fe(n,"FeeTokensReturn")),r=>{throw De.new({cause:`fetch(): ${r instanceof Error?r.message:String(r)}`})});feeOptions=(e,t,r)=>this.fetch(this.url("FeeOptions"),Me(st(e,"FeeOptionsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"FeeOptionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTxnNetworkFeeOptions=(e,t,r)=>this.fetch(this.url("GetMetaTxnNetworkFeeOptions"),Me(st(e,"GetMetaTxnNetworkFeeOptionsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetMetaTxnNetworkFeeOptionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getMetaTransactions=(e,t,r)=>this.fetch(this.url("GetMetaTransactions"),Me(st(e,"GetMetaTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetMetaTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getTransactionCost=(e,t,r)=>this.fetch(this.url("GetTransactionCost"),Me(st(e,"GetTransactionCostArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetTransactionCostReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});sentTransactions=(e,t,r)=>this.fetch(this.url("SentTransactions"),Me(st(e,"SentTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"SentTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});pendingTransactions=(e,t,r)=>this.fetch(this.url("PendingTransactions"),Me(st(e,"PendingTransactionsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"PendingTransactionsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasTank=(e,t,r)=>this.fetch(this.url("GetGasTank"),Me(st(e,"GetGasTankArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addGasTank=(e,t,r)=>this.fetch(this.url("AddGasTank"),Me(st(e,"AddGasTankArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"AddGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateGasTank=(e,t,r)=>this.fetch(this.url("UpdateGasTank"),Me(st(e,"UpdateGasTankArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"UpdateGasTankReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});nextGasTankBalanceAdjustmentNonce=(e,t,r)=>this.fetch(this.url("NextGasTankBalanceAdjustmentNonce"),Me(st(e,"NextGasTankBalanceAdjustmentNonceArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"NextGasTankBalanceAdjustmentNonceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});adjustGasTankBalance=(e,t,r)=>this.fetch(this.url("AdjustGasTankBalance"),Me(st(e,"AdjustGasTankBalanceArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"AdjustGasTankBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasTankBalanceAdjustment=(e,t,r)=>this.fetch(this.url("GetGasTankBalanceAdjustment"),Me(st(e,"GetGasTankBalanceAdjustmentArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetGasTankBalanceAdjustmentReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});listGasTankBalanceAdjustments=(e,t,r)=>this.fetch(this.url("ListGasTankBalanceAdjustments"),Me(st(e,"ListGasTankBalanceAdjustmentsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"ListGasTankBalanceAdjustmentsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});listGasSponsors=(e,t,r)=>this.fetch(this.url("ListGasSponsors"),Me(st(e,"ListGasSponsorsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"ListGasSponsorsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getGasSponsor=(e,t,r)=>this.fetch(this.url("GetGasSponsor"),Me(st(e,"GetGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addGasSponsor=(e,t,r)=>this.fetch(this.url("AddGasSponsor"),Me(st(e,"AddGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"AddGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});updateGasSponsor=(e,t,r)=>this.fetch(this.url("UpdateGasSponsor"),Me(st(e,"UpdateGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"UpdateGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});removeGasSponsor=(e,t,r)=>this.fetch(this.url("RemoveGasSponsor"),Me(st(e,"RemoveGasSponsorArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"RemoveGasSponsorReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});addressGasSponsors=(e,t,r)=>this.fetch(this.url("AddressGasSponsors"),Me(st(e,"AddressGasSponsorsArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"AddressGasSponsorsReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});getProjectBalance=(e,t,r)=>this.fetch(this.url("GetProjectBalance"),Me(st(e,"GetProjectBalanceArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"GetProjectBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})});adjustProjectBalance=(e,t,r)=>this.fetch(this.url("AdjustProjectBalance"),Me(st(e,"AdjustProjectBalanceArgs"),t,r)).then(n=>$e(n).then(i=>Fe(i,"AdjustProjectBalanceReturn")),n=>{throw De.new({cause:`fetch(): ${n instanceof Error?n.message:String(n)}`})})},Me=(s="{}",e={},t=null)=>({method:"POST",headers:{...e,"Content-Type":"application/json"},body:s,signal:t}),$e=s=>s.text().then(e=>{let t;try{t=JSON.parse(e);}catch(r){throw Ta.new({status:s.status,cause:`JSON.parse(): ${r instanceof Error?r.message:String(r)}: response text: ${e}`})}if(!s.ok){let r=typeof t.code=="number"?t.code:0;throw (p9[r]||Pe).new(t)}return t}),qC={SendMetaTxnArgs:[["preconditions","TransactionPrecondition[]"]],TransactionPrecondition:["minAmount"],Transactions:[["preconditions","TransactionPrecondition[]"]]};function rx(s,e){if(e==null||typeof e!="object")return e;let t=qC[s]||[];if(!t.length)return e;for(let r of t){if(Array.isArray(r)){let[n,i]=r;if(n.endsWith("[]")){let a=n.slice(0,-2),o=e[a];if(Array.isArray(o))for(let c=0;c<o.length;c++)o[c]=rx(i,o[c]);}else e[n]&&(e[n]=rx(i,e[n]));continue}if(r.endsWith("[]")){let n=r.slice(0,-2),i=e[n];if(Array.isArray(i))for(let a=0;a<i.length;a++)typeof i[a]=="bigint"&&(i[a]=i[a].toString());continue}typeof e[r]=="bigint"&&(e[r]=e[r].toString());}return e}function nx(s,e){if(e==null||typeof e!="object")return e;let t=qC[s]||[];if(!t.length)return e;for(let r of t){if(Array.isArray(r)){let[i,a]=r;if(i.endsWith("[]")){let o=i.slice(0,-2),c=e[o];if(Array.isArray(c))for(let u=0;u<c.length;u++)c[u]=nx(a,c[u]);}else e[i]&&(e[i]=nx(a,e[i]));continue}if(r.endsWith("[]")){let i=r.slice(0,-2),a=e[i];if(Array.isArray(a))for(let o=0;o<a.length;o++){let c=a[o];if(typeof c=="string")try{a[o]=BigInt(c);}catch{throw Ta.new({cause:`Invalid bigint value for ${i}[${o}]: ${c}`})}}continue}let n=e[r];if(typeof n=="string")try{e[r]=BigInt(n);}catch{throw Ta.new({cause:`Invalid bigint value for ${r}: ${n}`})}}return e}var st=(s,e="")=>JSON.stringify(rx(e,s)),Fe=(s,e="")=>{let t=s;if(typeof s=="string")try{t=JSON.parse(s);}catch(r){throw Ta.new({cause:`JsonDecode: JSON.parse failed: ${r.message}`})}return nx(e,t)},Pe=class s extends Error{code;status;constructor(e={}){super(e.message),this.name=e.name||"WebrpcEndpointError",this.code=typeof e.code=="number"?e.code:0,this.message=e.message||"endpoint error",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}static new(e){return new this({message:e.message,code:e.code,status:e.status,cause:e.cause})}},ix=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcEndpoint",this.code=typeof e.code=="number"?e.code:0,this.message=e.message||"endpoint error",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},De=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcRequestFailed",this.code=typeof e.code=="number"?e.code:-1,this.message=e.message||"request failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},ax=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadRoute",this.code=typeof e.code=="number"?e.code:-2,this.message=e.message||"bad route",this.status=typeof e.status=="number"?e.status:404,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},ox=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadMethod",this.code=typeof e.code=="number"?e.code:-3,this.message=e.message||"bad method",this.status=typeof e.status=="number"?e.status:405,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},cx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadRequest",this.code=typeof e.code=="number"?e.code:-4,this.message=e.message||"bad request",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ta=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcBadResponse",this.code=typeof e.code=="number"?e.code:-5,this.message=e.message||"bad response",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},ux=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcServerPanic",this.code=typeof e.code=="number"?e.code:-6,this.message=e.message||"server panic",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},lx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcInternalError",this.code=typeof e.code=="number"?e.code:-7,this.message=e.message||"internal error",this.status=typeof e.status=="number"?e.status:500,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},fx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcClientAborted",this.code=typeof e.code=="number"?e.code:-8,this.message=e.message||"request aborted by client",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},hx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcStreamLost",this.code=typeof e.code=="number"?e.code:-9,this.message=e.message||"stream lost",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},dx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"WebrpcStreamFinished",this.code=typeof e.code=="number"?e.code:-10,this.message=e.message||"stream finished",this.status=typeof e.status=="number"?e.status:200,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},mx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Unauthorized",this.code=typeof e.code=="number"?e.code:1e3,this.message=e.message||"Unauthorized access",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},px=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"PermissionDenied",this.code=typeof e.code=="number"?e.code:1001,this.message=e.message||"Permission denied",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},gx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"SessionExpired",this.code=typeof e.code=="number"?e.code:1002,this.message=e.message||"Session expired",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},yx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"MethodNotFound",this.code=typeof e.code=="number"?e.code:1003,this.message=e.message||"Method not found",this.status=typeof e.status=="number"?e.status:404,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},wx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"RequestConflict",this.code=typeof e.code=="number"?e.code:1004,this.message=e.message||"Conflict with target resource",this.status=typeof e.status=="number"?e.status:409,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},bx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Aborted",this.code=typeof e.code=="number"?e.code:1005,this.message=e.message||"Request aborted",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Sx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Geoblocked",this.code=typeof e.code=="number"?e.code:1006,this.message=e.message||"Geoblocked region",this.status=typeof e.status=="number"?e.status:451,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},vx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"RateLimited",this.code=typeof e.code=="number"?e.code:1007,this.message=e.message||"Rate-limited. Please slow down.",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ex=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"ProjectNotFound",this.code=typeof e.code=="number"?e.code:1008,this.message=e.message||"Project not found",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},xx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AccessKeyNotFound",this.code=typeof e.code=="number"?e.code:1101,this.message=e.message||"Access key not found",this.status=typeof e.status=="number"?e.status:401,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ax=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AccessKeyMismatch",this.code=typeof e.code=="number"?e.code:1102,this.message=e.message||"Access key mismatch",this.status=typeof e.status=="number"?e.status:409,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ix=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidOrigin",this.code=typeof e.code=="number"?e.code:1103,this.message=e.message||"Invalid origin for Access Key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Cx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidService",this.code=typeof e.code=="number"?e.code:1104,this.message=e.message||"Service not enabled for Access key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Nx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"UnauthorizedUser",this.code=typeof e.code=="number"?e.code:1105,this.message=e.message||"Unauthorized user",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Tx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QuotaExceeded",this.code=typeof e.code=="number"?e.code:1200,this.message=e.message||"Quota request exceeded",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},kx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QuotaRateLimit",this.code=typeof e.code=="number"?e.code:1201,this.message=e.message||"Quota rate limit exceeded",this.status=typeof e.status=="number"?e.status:429,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Px=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NoDefaultKey",this.code=typeof e.code=="number"?e.code:1300,this.message=e.message||"No default access key found",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Bx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"MaxAccessKeys",this.code=typeof e.code=="number"?e.code:1301,this.message=e.message||"Access keys limit reached",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ox=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"AtLeastOneKey",this.code=typeof e.code=="number"?e.code:1302,this.message=e.message||"You need at least one Access Key",this.status=typeof e.status=="number"?e.status:403,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Rx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Timeout",this.code=typeof e.code=="number"?e.code:1900,this.message=e.message||"Request timed out",this.status=typeof e.status=="number"?e.status:408,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Vx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InvalidArgument",this.code=typeof e.code=="number"?e.code:2001,this.message=e.message||"Invalid argument",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Dx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"Unavailable",this.code=typeof e.code=="number"?e.code:2002,this.message=e.message||"Unavailable resource",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Lx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"QueryFailed",this.code=typeof e.code=="number"?e.code:2003,this.message=e.message||"Query failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Ux=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NotFound",this.code=typeof e.code=="number"?e.code:3e3,this.message=e.message||"Resource not found",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},Hx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"InsufficientFee",this.code=typeof e.code=="number"?e.code:3004,this.message=e.message||"Insufficient fee",this.status=typeof e.status=="number"?e.status:402,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},_x=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"NotEnoughBalance",this.code=typeof e.code=="number"?e.code:3005,this.message=e.message||"Not enough balance",this.status=typeof e.status=="number"?e.status:402,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},jx=class s extends Pe{constructor(e={}){super(e),this.name=e.name||"SimulationFailed",this.code=typeof e.code=="number"?e.code:3006,this.message=e.message||"Simulation failed",this.status=typeof e.status=="number"?e.status:400,e.cause!==void 0&&(this.cause=e.cause),Object.setPrototypeOf(this,s.prototype);}},$C;(function(s){s.WebrpcEndpoint="WebrpcEndpoint",s.WebrpcRequestFailed="WebrpcRequestFailed",s.WebrpcBadRoute="WebrpcBadRoute",s.WebrpcBadMethod="WebrpcBadMethod",s.WebrpcBadRequest="WebrpcBadRequest",s.WebrpcBadResponse="WebrpcBadResponse",s.WebrpcServerPanic="WebrpcServerPanic",s.WebrpcInternalError="WebrpcInternalError",s.WebrpcClientAborted="WebrpcClientAborted",s.WebrpcStreamLost="WebrpcStreamLost",s.WebrpcStreamFinished="WebrpcStreamFinished",s.Unauthorized="Unauthorized",s.PermissionDenied="PermissionDenied",s.SessionExpired="SessionExpired",s.MethodNotFound="MethodNotFound",s.RequestConflict="RequestConflict",s.Aborted="Aborted",s.Geoblocked="Geoblocked",s.RateLimited="RateLimited",s.ProjectNotFound="ProjectNotFound",s.AccessKeyNotFound="AccessKeyNotFound",s.AccessKeyMismatch="AccessKeyMismatch",s.InvalidOrigin="InvalidOrigin",s.InvalidService="InvalidService",s.UnauthorizedUser="UnauthorizedUser",s.QuotaExceeded="QuotaExceeded",s.QuotaRateLimit="QuotaRateLimit",s.NoDefaultKey="NoDefaultKey",s.MaxAccessKeys="MaxAccessKeys",s.AtLeastOneKey="AtLeastOneKey",s.Timeout="Timeout",s.InvalidArgument="InvalidArgument",s.Unavailable="Unavailable",s.QueryFailed="QueryFailed",s.NotFound="NotFound",s.InsufficientFee="InsufficientFee",s.NotEnoughBalance="NotEnoughBalance",s.SimulationFailed="SimulationFailed";})($C||($C={}));var FC;(function(s){s[s.WebrpcEndpoint=0]="WebrpcEndpoint",s[s.WebrpcRequestFailed=-1]="WebrpcRequestFailed",s[s.WebrpcBadRoute=-2]="WebrpcBadRoute",s[s.WebrpcBadMethod=-3]="WebrpcBadMethod",s[s.WebrpcBadRequest=-4]="WebrpcBadRequest",s[s.WebrpcBadResponse=-5]="WebrpcBadResponse",s[s.WebrpcServerPanic=-6]="WebrpcServerPanic",s[s.WebrpcInternalError=-7]="WebrpcInternalError",s[s.WebrpcClientAborted=-8]="WebrpcClientAborted",s[s.WebrpcStreamLost=-9]="WebrpcStreamLost",s[s.WebrpcStreamFinished=-10]="WebrpcStreamFinished",s[s.Unauthorized=1e3]="Unauthorized",s[s.PermissionDenied=1001]="PermissionDenied",s[s.SessionExpired=1002]="SessionExpired",s[s.MethodNotFound=1003]="MethodNotFound",s[s.RequestConflict=1004]="RequestConflict",s[s.Aborted=1005]="Aborted",s[s.Geoblocked=1006]="Geoblocked",s[s.RateLimited=1007]="RateLimited",s[s.ProjectNotFound=1008]="ProjectNotFound",s[s.AccessKeyNotFound=1101]="AccessKeyNotFound",s[s.AccessKeyMismatch=1102]="AccessKeyMismatch",s[s.InvalidOrigin=1103]="InvalidOrigin",s[s.InvalidService=1104]="InvalidService",s[s.UnauthorizedUser=1105]="UnauthorizedUser",s[s.QuotaExceeded=1200]="QuotaExceeded",s[s.QuotaRateLimit=1201]="QuotaRateLimit",s[s.NoDefaultKey=1300]="NoDefaultKey",s[s.MaxAccessKeys=1301]="MaxAccessKeys",s[s.AtLeastOneKey=1302]="AtLeastOneKey",s[s.Timeout=1900]="Timeout",s[s.InvalidArgument=2001]="InvalidArgument",s[s.Unavailable=2002]="Unavailable",s[s.QueryFailed=2003]="QueryFailed",s[s.NotFound=3e3]="NotFound",s[s.InsufficientFee=3004]="InsufficientFee",s[s.NotEnoughBalance=3005]="NotEnoughBalance",s[s.SimulationFailed=3006]="SimulationFailed";})(FC||(FC={}));var p9={0:ix,[-1]:De,[-2]:ax,[-3]:ox,[-4]:cx,[-5]:Ta,[-6]:ux,[-7]:lx,[-8]:fx,[-9]:hx,[-10]:dx,1e3:mx,1001:px,1002:gx,1003:yx,1004:wx,1005:bx,1006:Sx,1007:vx,1008:Ex,1101:xx,1102:Ax,1103:Ix,1104:Cx,1105:Nx,1200:Tx,1201:kx,1300:Px,1301:Bx,1302:Ox,1900:Rx,2001:Vx,2002:Dx,2003:Lx,3e3:Ux,3004:Hx,3005:_x,3006:jx};var Kr={};ye(Kr,{DEPLOY:()=>KC,DefaultGuestAddress:()=>b9,EXECUTE:()=>x9,EXECUTE_USER_OP:()=>Mx,GET_IMPLEMENTATION:()=>S9,GET_LIMIT_USAGE:()=>T9,IMAGE_HASH:()=>v9,INCREMENT_USAGE_LIMIT:()=>N9,IS_VALID_SIGNATURE:()=>GC,PlaceholderAddress:()=>w9,READ_ENTRYPOINT:()=>C9,READ_NONCE:()=>E9,READ_NONCE_4337:()=>I9,RECOVER_SAPIENT_SIGNATURE:()=>WC,RECOVER_SAPIENT_SIGNATURE_COMPACT:()=>JC,UPDATE_IMAGE_HASH:()=>A9,ZeroAddress:()=>y9});var y9="0x0000000000000000000000000000000000000000",w9="0xffff0000ffff0000ffff0000ffff0000ffff0000",b9="0x0000000000006Ac72ed1d192fa28f0058D3F8806",GC=ke.from(["function isValidSignature(bytes32 _hash, bytes memory _signature) public view returns (bytes4 magicValue)"])[0],KC=ke.from(["function deploy(address _mainModule, bytes32 _salt) public payable returns (address _contract)"])[0],S9=ke.from(["function getImplementation() external view returns (address)"])[0],v9=ke.from(["function imageHash() external view returns (bytes32)"])[0],E9=ke.from(["function readNonce(uint256 _space) public view returns (uint256)"])[0],x9=ke.from(["function execute(bytes calldata _payload, bytes calldata _signature) external"])[0],A9=ke.from(["function updateImageHash(bytes32 _imageHash) external"])[0],WC=ke.from(["function recoverSapientSignature((uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external view returns (bytes32)"])[0],JC=ke.from(["function recoverSapientSignatureCompact(bytes32 _digest, bytes calldata _signature) external view returns (bytes32)"])[0],Mx=ke.from(["function executeUserOp(bytes calldata _userOp) external"])[0],I9=ke.from(["function getNonce(address _account, uint192 _key) public view returns (uint256)"])[0],C9=ke.from(["function entrypoint() public view returns (address)"])[0],N9=ke.from([{type:"function",name:"incrementUsageLimit",inputs:[{name:"limits",type:"tuple[]",internalType:"struct UsageLimit[]",components:[{name:"usageHash",type:"bytes32",internalType:"bytes32"},{name:"usageAmount",type:"uint256",internalType:"uint256"}]}],outputs:[],stateMutability:"nonpayable"}])[0],T9=ke.from(["function getLimitUsage(address wallet, bytes32 usageHash) public view returns (uint256)"])[0];var gr={};ye(gr,{BEHAVIOR_ABORT_ON_ERROR:()=>Jx,BEHAVIOR_IGNORE_ERROR:()=>Kx,BEHAVIOR_REVERT_ON_ERROR:()=>Wx,KIND_CONFIG_UPDATE:()=>qx,KIND_DIGEST:()=>Gx,KIND_MESSAGE:()=>Fx,KIND_TRANSACTIONS:()=>$x,decode:()=>$9,decodeBehaviorOnError:()=>sN,encode:()=>XC,encode4337Nonce:()=>QC,encodeBehaviorOnError:()=>Kc,encodeSapient:()=>_9,fromAbiFormat:()=>q9,fromCall:()=>R9,fromConfigUpdate:()=>zC,fromDigest:()=>O9,fromMessage:()=>B9,hash:()=>Zx,hashCall:()=>M9,isCalls:()=>V9,isCalls4337_07:()=>U9,isConfigUpdate:()=>L9,isDigest:()=>YC,isMessage:()=>D9,isParented:()=>H9,isRecovery:()=>zx,isSessionImplicitAuthorize:()=>Yx,to4337Message:()=>tN,to4337UserOperation:()=>eN,toAbiFormat:()=>rN,toRecovery:()=>ZC,toTyped:()=>Xx});function uh(s){return Math.ceil(s.toString(16).length/2)}var $x=0,Fx=1,qx=2,Gx=3,Kx=0,Wx=1,Jx=2;function B9(s){return {type:"message",message:s}}function zC(s){return {type:"config-update",imageHash:s}}function O9(s){return {type:"digest",digest:s}}function R9(s,e,t){return {type:"call",nonce:s,space:e,calls:t}}function V9(s){return s.type==="call"}function D9(s){return s.type==="message"}function L9(s){return s.type==="config-update"}function YC(s){return s.type==="digest"}function zx(s){return Yx(s)?!1:s.recovery===!0}function U9(s){return s.type==="call_4337_07"}function H9(s){return "parentWallets"in s}function ZC(s){return zx(s)?s:{...s,recovery:!0}}function Yx(s){return s.type==="session-implicit-authorize"}function XC(s,e){let t=s.calls.length,r=uh(s.nonce);if(r>15)throw new Error("Nonce is too large");let n=0;s.space===0n&&(n|=1),n|=r<<1,t===1&&(n|=16);let i=0;if(t!==1)if(t<256)i=1;else if(t<65536)i=2,n|=32;else throw new Error("Too many calls");let a=f.fromNumber(n,{size:1});if(s.space!==0n){let o=f.padLeft(f.fromNumber(s.space),20);a=f.concat(a,o);}if(r>0){let o=f.padLeft(f.fromNumber(s.nonce),r);a=f.concat(a,o);}t!==1&&(i===1?a=f.concat(a,f.fromNumber(t,{size:1})):a=f.concat(a,f.fromNumber(t,{size:2})));for(let o of s.calls){let c=0;if(e&&P.isEqual(o.to,e)&&(c|=1),o.value!==0n&&(c|=2),o.data&&o.data.length>0&&(c|=4),o.gasLimit!==0n&&(c|=8),o.delegateCall&&(c|=16),o.onlyFallback&&(c|=32),c|=Kc(o.behaviorOnError)<<6,a=f.concat(a,f.fromNumber(c,{size:1})),!(c&1)){let u=f.fromHex(o.to);if(u.length!==20)throw new Error(`Invalid 'to' address: ${o.to}`);a=f.concat(a,u);}if(c&2){let u=f.padLeft(f.fromNumber(o.value),32);a=f.concat(a,u);}if(c&4){let u=f.fromHex(o.data).length;if(u>16777215)throw new Error("Data too large");let l=f.fromNumber(u,{size:3});a=f.concat(a,l,f.fromHex(o.data));}if(c&8){let u=f.padLeft(f.fromNumber(o.gasLimit),32);a=f.concat(a,u);}}return a}function _9(s,e){let t={kind:0,noChainId:!s,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:e.parentWallets??[]};switch(e.type){case"call":t.kind=0,t.calls=e.calls.map(r=>({...r,data:r.data,behaviorOnError:BigInt(Kc(r.behaviorOnError))})),t.space=e.space,t.nonce=e.nonce;break;case"message":t.kind=1,t.message=e.message;break;case"config-update":t.kind=2,t.imageHash=e.imageHash;break;case"digest":t.kind=3,t.digest=e.digest;break}return t}function Zx(s,e,t){if(YC(t))return f.fromHex(t.digest);if(Yx(t))return lh.hash(t.attestation);let r=Xx(s,e,t);return f.fromHex(Uf(r))}function j9(s,e,t){return zx(s)?{name:"Sequence Wallet - Recovery Mode",version:"1",chainId:Number(t),verifyingContract:e}:{name:"Sequence Wallet",version:"3",chainId:Number(t),verifyingContract:e}}function QC(s,e){if(s>6277101735386680763835789423207666416102355444464034512895n)throw new RangeError("key exceeds 192 bits");if(e>18446744073709551615n)throw new RangeError("seq exceeds 64 bits");return s<<64n|e}function Xx(s,e,t){let r=j9(t,s,e);switch(t.type){case"call":{let n={Calls:[{name:"calls",type:"Call[]"},{name:"space",type:"uint256"},{name:"nonce",type:"uint256"},{name:"wallets",type:"address[]"}],Call:[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"gasLimit",type:"uint256"},{name:"delegateCall",type:"bool"},{name:"onlyFallback",type:"bool"},{name:"behaviorOnError",type:"uint256"}]},i={calls:t.calls.map(a=>({to:a.to,value:a.value.toString(),data:a.data,gasLimit:a.gasLimit.toString(),delegateCall:a.delegateCall,onlyFallback:a.onlyFallback,behaviorOnError:BigInt(Kc(a.behaviorOnError)).toString()})),space:t.space.toString(),nonce:t.nonce.toString(),wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Calls",message:i}}case"message":{let n={Message:[{name:"message",type:"bytes"},{name:"wallets",type:"address[]"}]},i={message:t.message,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"Message",message:i}}case"config-update":{let n={ConfigUpdate:[{name:"imageHash",type:"bytes32"},{name:"wallets",type:"address[]"}]},i={imageHash:t.imageHash,wallets:t.parentWallets??[]};return {domain:r,types:n,primaryType:"ConfigUpdate",message:i}}case"digest":throw new Error("Digest does not support typed data - Use message instead");case"session-implicit-authorize":throw new Error("Payload does not support typed data");case"call_4337_07":{let n={type:"message",message:tN(t,s,e)};return Xx(s,e,n)}}}function eN(s,e,t){let r={type:"call",space:0n,nonce:0n,calls:s.calls},n=v.fromBytes(XC(r));return {sender:e,nonce:QC(s.space,s.nonce),callData:se.encodeData(Mx,[n]),callGasLimit:s.callGasLimit,maxFeePerGas:s.maxFeePerGas,maxPriorityFeePerGas:s.maxPriorityFeePerGas,preVerificationGas:s.preVerificationGas,verificationGasLimit:s.verificationGasLimit,factory:s.factory,factoryData:s.factoryData,paymaster:s.paymaster,paymasterData:s.paymasterData,paymasterPostOpGasLimit:s.paymasterPostOpGasLimit,paymasterVerificationGasLimit:s.paymasterVerificationGasLimit,signature:t}}function tN(s,e,t){let r=eN(s,e),n=v.concat(v.padLeft(v.fromNumber(r.verificationGasLimit),16),v.padLeft(v.fromNumber(r.callGasLimit),16)),i=v.concat(v.padLeft(v.fromNumber(r.maxPriorityFeePerGas),16),v.padLeft(v.fromNumber(r.maxFeePerGas),16)),a=ee.keccak256(r.factory&&r.factoryData?v.concat(r.factory,r.factoryData):"0x"),o=ee.keccak256(r.paymaster?v.concat(r.paymaster,v.padLeft(v.fromNumber(r.paymasterVerificationGasLimit||0),16),v.padLeft(v.fromNumber(r.paymasterPostOpGasLimit||0),16),r.paymasterData||"0x"):"0x"),c=tt.encode([{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[r.sender,r.nonce,a,ee.keccak256(r.callData),n,r.preVerificationGas,i,o]);return tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"}],[ee.keccak256(c),s.entrypoint,BigInt(t)])}function Kc(s){switch(s){case"ignore":return Kx;case"revert":return Wx;case"abort":return Jx}}function M9(s){let e=ee.keccak256(f.fromString("Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)"));return ee.keccak256(tt.encode([{type:"bytes32"},{type:"address"},{type:"uint256"},{type:"bytes32"},{type:"uint256"},{type:"bool"},{type:"bool"},{type:"uint256"}],[v.from(e),v.from(s.to),s.value,v.from(ee.keccak256(s.data)),s.gasLimit,s.delegateCall,s.onlyFallback,BigInt(Kc(s.behaviorOnError))]))}function $9(s,e){let t=0;if(s.length<1)throw new Error("Invalid packed data: missing globalFlag");let r=f.toNumber(s.slice(t,t+1));t+=1;let n=(r&1)===1,i=0n;if(!n){if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for space");i=f.toBigInt(s.slice(t,t+20)),t+=20;}let a=r>>1&7,o=0n;if(a>0){if(t+a>s.length)throw new Error("Invalid packed data: not enough bytes for nonce");o=f.toBigInt(s.slice(t,t+a)),t+=a;}let c=1;if(!((r&16)===16)){let m=(r&32)===32?2:1;if(t+m>s.length)throw new Error("Invalid packed data: not enough bytes for callsCount");c=f.toNumber(s.slice(t,t+m)),t+=m;}let l=[];for(let h=0;h<c;h++){if(t+1>s.length)throw new Error("Invalid packed data: missing call flags");let m=f.toNumber(s.slice(t,t+1));t+=1;let y;if((m&1)===1){if(!e)throw new Error('Missing "self" address for toSelf call');y=e;}else {if(t+20>s.length)throw new Error("Invalid packed data: not enough bytes for address");y=f.toHex(s.slice(t,t+20)),t+=20;}let g=0n;if((m&2)===2){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for value");g=f.toBigInt(s.slice(t,t+32)),t+=32;}let w=f.fromHex("0x");if((m&4)===4){if(t+3>s.length)throw new Error("Invalid packed data: not enough bytes for data length");let I=f.toNumber(s.slice(t,t+3));if(t+=3,t+I>s.length)throw new Error("Invalid packed data: not enough bytes for call data");w=s.slice(t,t+I),t+=I;}let S=0n;if((m&8)===8){if(t+32>s.length)throw new Error("Invalid packed data: not enough bytes for gasLimit");S=f.toBigInt(s.slice(t,t+32)),t+=32;}let C=(m&16)===16,N=(m&32)===32,x=(m&192)>>6,E=sN(x);l.push({to:y,value:g,data:f.toHex(w),gasLimit:S,delegateCall:C,onlyFallback:N,behaviorOnError:E});}return {type:"call",space:i,nonce:o,calls:l}}function sN(s){switch(s){case 0:return "ignore";case 1:return "revert";case 2:return "abort";default:throw new Error(`Invalid behaviorOnError value: ${s}`)}}function F9(s){switch(s){case Kx:return "ignore";case Wx:return "revert";case Jx:return "abort";default:throw new Error(`Unknown behavior: ${s}`)}}function q9(s){if(s.kind===$x)return {type:"call",nonce:s.nonce,space:s.space,calls:s.calls.map(e=>({to:P.from(e.to),value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:F9(Number(e.behaviorOnError))})),parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===Fx)return {type:"message",message:s.message,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===qx)return {type:"config-update",imageHash:s.imageHash,parentWallets:s.parentWallets.map(e=>P.from(e))};if(s.kind===Gx)return {type:"digest",digest:s.digest,parentWallets:s.parentWallets.map(e=>P.from(e))};throw new Error("Not implemented")}function rN(s){if(s.type==="call")return {kind:$x,noChainId:!1,calls:s.calls.map(e=>({to:e.to,value:e.value,data:e.data,gasLimit:e.gasLimit,delegateCall:e.delegateCall,onlyFallback:e.onlyFallback,behaviorOnError:BigInt(Kc(e.behaviorOnError))})),space:s.space,nonce:s.nonce,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="message")return {kind:Fx,noChainId:!1,calls:[],space:0n,nonce:0n,message:s.message,imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="config-update")return {kind:qx,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:s.imageHash,digest:"0x0000000000000000000000000000000000000000000000000000000000000000",parentWallets:s.parentWallets??[]};if(s.type==="digest")return {kind:Gx,noChainId:!1,calls:[],space:0n,nonce:0n,message:"0x",imageHash:"0x0000000000000000000000000000000000000000000000000000000000000000",digest:s.digest,parentWallets:s.parentWallets??[]};throw new Error("Invalid payload type")}var lh={};ye(lh,{ACCEPT_IMPLICIT_REQUEST_MAGIC_PREFIX:()=>lN,decode:()=>Y9,decodeAuthData:()=>oN,encode:()=>iN,encodeAuthData:()=>aN,encodeForJson:()=>cN,fromJson:()=>Q9,fromParsed:()=>uN,generateImplicitRequestMagic:()=>eV,hash:()=>Z9,toJson:()=>X9});function iN(s){let e=aN(s.authData),t=[f.fromHex(s.approvedSigner,{size:20}),f.padLeft(s.identityType.slice(0,4),4),f.padLeft(s.issuerHash,32),f.padLeft(s.audienceHash,32),f.fromNumber(s.applicationData.length,{size:3}),s.applicationData,e];return f.concat(...t)}function aN(s){return f.concat(f.fromNumber(s.redirectUrl.length,{size:3}),f.fromString(s.redirectUrl),f.fromNumber(s.issuedAt,{size:8}))}function Y9(s){let e=f.toHex(s.slice(0,20)),t=s.slice(20,24),r=s.slice(24,56),n=s.slice(56,88),i=f.toNumber(s.slice(88,91)),a=s.slice(91,91+i),o=oN(s.slice(91+i));return {approvedSigner:e,identityType:t,issuerHash:r,audienceHash:n,applicationData:a,authData:o}}function oN(s){let e=f.toNumber(s.slice(0,3)),t=f.toString(s.slice(3,3+e)),r=f.toBigInt(s.slice(3+e,3+e+8));return {redirectUrl:t,issuedAt:r}}function Z9(s){return ee.keccak256(iN(s))}function X9(s,e){return JSON.stringify(cN(s),null,e)}function cN(s){return {approvedSigner:s.approvedSigner.toString(),identityType:f.toHex(s.identityType),issuerHash:f.toHex(s.issuerHash),audienceHash:f.toHex(s.audienceHash),applicationData:f.toHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:s.authData.issuedAt.toString()}}}function Q9(s){return uN(JSON.parse(s))}function uN(s){return {approvedSigner:P.from(s.approvedSigner),identityType:f.fromHex(s.identityType),issuerHash:f.fromHex(s.issuerHash),audienceHash:f.fromHex(s.audienceHash),applicationData:f.fromHex(s.applicationData),authData:{redirectUrl:s.authData.redirectUrl,issuedAt:BigInt(s.authData.issuedAt)}}}var lN=ee.keccak256(f.fromString("acceptImplicitRequest"));function eV(s,e){return ee.keccak256(f.concat(lN,f.fromHex(e,{size:20}),s.audienceHash,s.issuerHash))}var fN;(function(s){s[s.EQUAL=0]="EQUAL",s[s.NOT_EQUAL=1]="NOT_EQUAL",s[s.GREATER_THAN_OR_EQUAL=2]="GREATER_THAN_OR_EQUAL",s[s.LESS_THAN_OR_EQUAL=3]="LESS_THAN_OR_EQUAL";})(fN||(fN={}));({SELECTOR:f.padRight(f.fromHex("0xffffffff"),32),ADDRESS:f.padLeft(f.fromHex("0xffffffffffffffffffffffffffffffffffffffff"),32),BOOL:f.padLeft(f.fromHex("0x01"),32),BYTES1:f.padLeft(f.from(Array(1).fill(255)),32),BYTES2:f.padLeft(f.from(Array(2).fill(255)),32),BYTES4:f.padLeft(f.from(Array(4).fill(255)),32),BYTES8:f.padLeft(f.from(Array(8).fill(255)),32),BYTES16:f.padLeft(f.from(Array(16).fill(255)),32),BYTES32:f.padLeft(f.from(Array(32).fill(255)),32),INT8:f.padLeft(f.from(Array(1).fill(255)),32),INT16:f.padLeft(f.from(Array(2).fill(255)),32),INT32:f.padLeft(f.from(Array(4).fill(255)),32),INT64:f.padLeft(f.from(Array(8).fill(255)),32),INT128:f.padLeft(f.from(Array(16).fill(255)),32),INT256:f.padLeft(f.from(Array(32).fill(255)),32),UINT8:f.padLeft(f.from(Array(1).fill(255)),32),UINT16:f.padLeft(f.from(Array(2).fill(255)),32),UINT32:f.padLeft(f.from(Array(4).fill(255)),32),UINT64:f.padLeft(f.from(Array(8).fill(255)),32),UINT128:f.padLeft(f.from(Array(16).fill(255)),32),UINT256:f.padLeft(f.from(Array(32).fill(255)),32)});f.fromString(`Sequence recovery leaf:
|
|
360
|
+
`);ke.from(["function queuePayload(address _wallet, address _signer, (uint8 kind,bool noChainId,(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)[] calls,uint256 space,uint256 nonce,bytes message,bytes32 imageHash,bytes32 digest,address[] parentWallets) calldata _payload, bytes calldata _signature) external"])[0];ke.from(["function timestampForQueuedPayload(address _wallet, address _signer, bytes32 _payloadHash) external view returns (uint256)"])[0];ke.from(["function queuedPayloadHashes(address _wallet, address _signer, uint256 _index) external view returns (bytes32)"])[0];ke.from(["function totalQueuedPayloads(address _wallet, address _signer) external view returns (uint256)"])[0];var s1={};ye(s1,{ALL:()=>Qx,ChainId:()=>j,NetworkType:()=>me,getNetworkFromChainId:()=>SV,getNetworkFromName:()=>bV});var me;(function(s){s.MAINNET="mainnet",s.TESTNET="testnet";})(me||(me={}));var j={NONE:0,MAINNET:1,SEPOLIA:11155111,POLYGON:137,POLYGON_ZKEVM:1101,POLYGON_AMOY:80002,BSC:56,BSC_TESTNET:97,OPTIMISM:10,OPTIMISM_SEPOLIA:11155420,ARBITRUM:42161,ARBITRUM_SEPOLIA:421614,ARBITRUM_NOVA:42170,AVALANCHE:43114,AVALANCHE_TESTNET:43113,GNOSIS:100,BASE:8453,BASE_SEPOLIA:84532,HOMEVERSE_TESTNET:40875,HOMEVERSE:19011,XAI:660279,XAI_SEPOLIA:37714555429,TELOS:40,TELOS_TESTNET:41,B3:8333,B3_SEPOLIA:1993,APECHAIN:33139,APECHAIN_TESTNET:33111,BLAST:81457,BLAST_SEPOLIA:168587773,SKALE_NEBULA:1482601649,SKALE_NEBULA_TESTNET:37084624,SONEIUM_MINATO:1946,SONEIUM:1868,TOY_TESTNET:21e6,IMMUTABLE_ZKEVM:13371,IMMUTABLE_ZKEVM_TESTNET:13473,ETHERLINK:42793,ETHERLINK_TESTNET:128123,MOONBEAM:1284,MOONBASE_ALPHA:1287,MONAD:143,MONAD_TESTNET:10143,SOMNIA_TESTNET:50312,SOMNIA:5031,INCENTIV_TESTNET_V2:28802,KATANA:747474,SANDBOX_TESTNET:6252,ARC_TESTNET:5042002},Qx=[{chainId:j.MAINNET,type:me.MAINNET,name:"mainnet",title:"Ethereum",rpcUrl:ve("mainnet"),logoUrl:Ee(j.MAINNET),blockExplorer:{name:"Etherscan",url:"https://etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18},ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},{chainId:j.SEPOLIA,type:me.TESTNET,name:"sepolia",title:"Sepolia",rpcUrl:ve("sepolia"),logoUrl:Ee(j.SEPOLIA),blockExplorer:{name:"Etherscan (Sepolia)",url:"https://sepolia.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.POLYGON,type:me.MAINNET,name:"polygon",title:"Polygon",rpcUrl:ve("polygon"),logoUrl:Ee(j.POLYGON),blockExplorer:{name:"Polygonscan",url:"https://polygonscan.com/"},nativeCurrency:{symbol:"POL",name:"POL",decimals:18}},{chainId:j.POLYGON_AMOY,type:me.TESTNET,name:"amoy",title:"Polygon Amoy",rpcUrl:ve("amoy"),logoUrl:Ee(j.POLYGON_AMOY),blockExplorer:{name:"OKLink (Amoy)",url:"https://www.oklink.com/amoy/"},nativeCurrency:{symbol:"aPOL",name:"Amoy POL",decimals:18}},{chainId:j.POLYGON_ZKEVM,type:me.MAINNET,name:"polygon-zkevm",title:"Polygon zkEVM",rpcUrl:ve("polygon-zkevm"),logoUrl:Ee(j.POLYGON_ZKEVM),blockExplorer:{name:"Polygonscan (zkEVM)",url:"https://zkevm.polygonscan.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BSC,type:me.MAINNET,name:"bsc",title:"BNB Smart Chain",rpcUrl:ve("bsc"),logoUrl:Ee(j.BSC),blockExplorer:{name:"BSCScan",url:"https://bscscan.com/"},nativeCurrency:{symbol:"BNB",name:"BNB",decimals:18}},{chainId:j.BSC_TESTNET,type:me.TESTNET,name:"bsc-testnet",title:"BNB Smart Chain Testnet",rpcUrl:ve("bsc-testnet"),logoUrl:Ee(j.BSC_TESTNET),blockExplorer:{name:"BSCScan (Testnet)",url:"https://testnet.bscscan.com/"},nativeCurrency:{symbol:"tBNB",name:"Testnet BNB",decimals:18}},{chainId:j.OPTIMISM,type:me.MAINNET,name:"optimism",title:"Optimism",rpcUrl:ve("optimism"),logoUrl:Ee(j.OPTIMISM),blockExplorer:{name:"Etherscan (Optimism)",url:"https://optimistic.etherscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.OPTIMISM_SEPOLIA,type:me.TESTNET,name:"optimism-sepolia",title:"Optimism Sepolia",rpcUrl:ve("optimism-sepolia"),logoUrl:Ee(j.OPTIMISM_SEPOLIA),blockExplorer:{name:"Etherscan (Optimism Sepolia)",url:"https://sepolia-optimistic.etherscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.ARBITRUM,type:me.MAINNET,name:"arbitrum",title:"Arbitrum One",rpcUrl:ve("arbitrum"),logoUrl:Ee(j.ARBITRUM),blockExplorer:{name:"Arbiscan",url:"https://arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.ARBITRUM_SEPOLIA,type:me.TESTNET,name:"arbitrum-sepolia",title:"Arbitrum Sepolia",rpcUrl:ve("arbitrum-sepolia"),logoUrl:Ee(j.ARBITRUM_SEPOLIA),blockExplorer:{name:"Arbiscan (Sepolia Testnet)",url:"https://sepolia.arbiscan.io/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.ARBITRUM_NOVA,type:me.MAINNET,name:"arbitrum-nova",title:"Arbitrum Nova",rpcUrl:ve("arbitrum-nova"),logoUrl:Ee(j.ARBITRUM_NOVA),blockExplorer:{name:"Arbiscan Nova",url:"https://nova.arbiscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.AVALANCHE,type:me.MAINNET,name:"avalanche",title:"Avalanche",rpcUrl:ve("avalanche"),logoUrl:Ee(j.AVALANCHE),blockExplorer:{name:"Snowtrace",url:"https://subnets.avax.network/c-chain/"},nativeCurrency:{symbol:"AVAX",name:"AVAX",decimals:18}},{chainId:j.AVALANCHE_TESTNET,type:me.TESTNET,name:"avalanche-testnet",title:"Avalanche Testnet",rpcUrl:ve("avalanche-testnet"),logoUrl:Ee(j.AVALANCHE_TESTNET),blockExplorer:{name:"Snowtrace (Testnet)",url:"https://subnets-test.avax.network/c-chain/"},nativeCurrency:{symbol:"tAVAX",name:"Testnet AVAX",decimals:18}},{chainId:j.GNOSIS,type:me.MAINNET,name:"gnosis",title:"Gnosis Chain",rpcUrl:ve("gnosis"),logoUrl:Ee(j.GNOSIS),blockExplorer:{name:"Gnosis Chain Explorer",url:"https://blockscout.com/xdai/mainnet/"},nativeCurrency:{symbol:"XDAI",name:"XDAI",decimals:18}},{chainId:j.BASE,type:me.MAINNET,name:"base",title:"Base (Coinbase)",rpcUrl:ve("base"),logoUrl:Ee(j.BASE),blockExplorer:{name:"Base Explorer",url:"https://basescan.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BASE_SEPOLIA,type:me.TESTNET,name:"base-sepolia",title:"Base Sepolia",rpcUrl:ve("base-sepolia"),logoUrl:Ee(j.BASE_SEPOLIA),blockExplorer:{name:"Base Sepolia Explorer",url:"https://base-sepolia.blockscout.com/"},nativeCurrency:{symbol:"sETH",name:"Sepolia Ether",decimals:18}},{chainId:j.HOMEVERSE,type:me.MAINNET,name:"homeverse",title:"Oasys Homeverse",rpcUrl:ve("homeverse"),logoUrl:Ee(j.HOMEVERSE),blockExplorer:{name:"Oasys Homeverse Explorer",url:"https://explorer.oasys.homeverse.games/"},nativeCurrency:{symbol:"OAS",name:"OAS",decimals:18}},{chainId:j.HOMEVERSE_TESTNET,type:me.TESTNET,name:"homeverse-testnet",title:"Oasys Homeverse Testnet",rpcUrl:ve("homeverse-testnet"),logoUrl:Ee(j.HOMEVERSE_TESTNET),blockExplorer:{name:"Oasys Homeverse Explorer (Testnet)",url:"https://explorer.testnet.oasys.homeverse.games/"},nativeCurrency:{symbol:"tOAS",name:"Testnet OAS",decimals:18}},{chainId:j.XAI,type:me.MAINNET,name:"xai",title:"Xai",rpcUrl:ve("xai"),logoUrl:Ee(j.XAI),blockExplorer:{name:"Xai Explorer",url:"https://explorer.xai-chain.net/"},nativeCurrency:{symbol:"XAI",name:"XAI",decimals:18}},{chainId:j.XAI_SEPOLIA,type:me.TESTNET,name:"xai-sepolia",title:"Xai Sepolia",rpcUrl:ve("xai-sepolia"),logoUrl:Ee(j.XAI_SEPOLIA),blockExplorer:{name:"Xai Sepolia Explorer",url:"https://testnet-explorer-v2.xai-chain.net/"},nativeCurrency:{symbol:"sXAI",name:"Sepolia XAI",decimals:18}},{chainId:j.B3,type:me.MAINNET,name:"b3",title:"B3",rpcUrl:ve("b3"),logoUrl:Ee(j.B3),blockExplorer:{name:"B3 Explorer",url:"https://explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.B3_SEPOLIA,type:me.TESTNET,name:"b3-sepolia",title:"B3 Sepolia",rpcUrl:ve("b3-sepolia"),logoUrl:Ee(j.B3_SEPOLIA),blockExplorer:{name:"B3 Sepolia Explorer",url:"https://sepolia.explorer.b3.fun/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.APECHAIN,type:me.MAINNET,name:"apechain",title:"APE Chain",rpcUrl:ve("apechain"),logoUrl:Ee(j.APECHAIN),blockExplorer:{name:"APE Chain Explorer",url:"https://apechain.calderaexplorer.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:j.APECHAIN_TESTNET,type:me.TESTNET,name:"apechain-testnet",title:"APE Chain Testnet",rpcUrl:ve("apechain-testnet"),logoUrl:Ee(j.APECHAIN_TESTNET),blockExplorer:{name:"APE Chain Explorer",url:"https://curtis.explorer.caldera.xyz/"},nativeCurrency:{symbol:"APE",name:"ApeCoin",decimals:18}},{chainId:j.BLAST,type:me.MAINNET,name:"blast",title:"Blast",rpcUrl:ve("blast"),logoUrl:Ee(j.BLAST),blockExplorer:{name:"Blast Explorer",url:"https://blastscan.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.BLAST_SEPOLIA,type:me.TESTNET,name:"blast-sepolia",title:"Blast Sepolia",rpcUrl:ve("blast-sepolia"),logoUrl:Ee(j.BLAST_SEPOLIA),blockExplorer:{name:"Blast Sepolia Explorer",url:"https://sepolia.blastexplorer.io/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.TELOS,type:me.MAINNET,name:"telos",title:"Telos",rpcUrl:ve("telos"),logoUrl:Ee(j.TELOS),blockExplorer:{name:"Telos Explorer",url:"https://explorer.telos.net/network/"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:j.TELOS_TESTNET,type:me.TESTNET,name:"telos-testnet",title:"Telos Testnet",rpcUrl:ve("telos-testnet"),logoUrl:Ee(j.TELOS_TESTNET),blockExplorer:{name:"Telos Testnet Explorer",url:"https://explorer-test.telos.net/network"},nativeCurrency:{symbol:"TLOS",name:"TLOS",decimals:18}},{chainId:j.SKALE_NEBULA,type:me.MAINNET,name:"skale-nebula",title:"SKALE Nebula Gaming Hub",rpcUrl:ve("skale-nebula"),logoUrl:Ee(j.SKALE_NEBULA),blockExplorer:{name:"SKALE Nebula Gaming Hub Explorer",url:"https://green-giddy-denebola.explorer.mainnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:j.SKALE_NEBULA_TESTNET,type:me.TESTNET,name:"skale-nebula-testnet",title:"SKALE Nebula Gaming Hub Testnet",rpcUrl:ve("skale-nebula-testnet"),logoUrl:Ee(j.SKALE_NEBULA_TESTNET),blockExplorer:{name:"SKALE Nebula Gaming Hub Testnet Explorer",url:"https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com/"},nativeCurrency:{symbol:"sFUEL",name:"SKALE Fuel",decimals:18}},{chainId:j.SONEIUM,type:me.MAINNET,name:"soneium",title:"Soneium",rpcUrl:ve("soneium"),logoUrl:Ee(j.SONEIUM),blockExplorer:{name:"Soneium Explorer",url:"https://soneium.blockscout.com/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.SONEIUM_MINATO,type:me.TESTNET,name:"soneium-minato",title:"Soneium Minato (Testnet)",rpcUrl:ve("soneium-minato"),logoUrl:Ee(j.SONEIUM_MINATO),blockExplorer:{name:"Soneium Minato Explorer",url:"https://explorer-testnet.soneium.org/"},nativeCurrency:{symbol:"ETH",name:"Ether",decimals:18}},{chainId:j.TOY_TESTNET,type:me.TESTNET,name:"toy-testnet",title:"TOY (Testnet)",rpcUrl:ve("toy-testnet"),logoUrl:Ee(j.TOY_TESTNET),blockExplorer:{name:"TOY Testnet Explorer",url:"https://toy-chain-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"TOY",name:"TOY",decimals:18}},{chainId:j.IMMUTABLE_ZKEVM,type:me.MAINNET,name:"immutable-zkevm",title:"Immutable zkEVM",rpcUrl:ve("immutable-zkevm"),logoUrl:Ee(j.IMMUTABLE_ZKEVM),blockExplorer:{name:"Immutable zkEVM Explorer",url:"https://explorer.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:j.IMMUTABLE_ZKEVM_TESTNET,type:me.TESTNET,name:"immutable-zkevm-testnet",title:"Immutable zkEVM Testnet",rpcUrl:ve("immutable-zkevm-testnet"),logoUrl:Ee(j.IMMUTABLE_ZKEVM_TESTNET),blockExplorer:{name:"Immutable zkEVM Testnet Explorer",url:"https://explorer.testnet.immutable.com/"},nativeCurrency:{symbol:"IMX",name:"IMX",decimals:18}},{chainId:j.MOONBEAM,type:me.MAINNET,name:"moonbeam",title:"Moonbeam",rpcUrl:ve("moonbeam"),logoUrl:Ee(j.MOONBEAM),blockExplorer:{name:"Moonscan",url:"https://moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:j.MOONBASE_ALPHA,type:me.TESTNET,name:"moonbase-alpha",title:"Moonbase Alpha",rpcUrl:ve("moonbase-alpha"),logoUrl:Ee(j.MOONBASE_ALPHA),blockExplorer:{name:"Moonscan (Moonbase Alpha)",url:"https://moonbase.moonscan.io/"},nativeCurrency:{symbol:"GLMR",name:"GLMR",decimals:18}},{chainId:j.ETHERLINK,type:me.MAINNET,name:"etherlink",title:"Etherlink",rpcUrl:ve("etherlink"),logoUrl:Ee(j.ETHERLINK),blockExplorer:{name:"Etherlink Explorer",url:"https://explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:j.ETHERLINK_TESTNET,type:me.TESTNET,name:"etherlink-testnet",title:"Etherlink Testnet",rpcUrl:ve("etherlink-testnet"),logoUrl:Ee(j.ETHERLINK_TESTNET),blockExplorer:{name:"Etherlink Testnet Explorer",url:"https://testnet.explorer.etherlink.com/"},nativeCurrency:{symbol:"XTZ",name:"Tez",decimals:18}},{chainId:j.MONAD,type:me.MAINNET,name:"monad",title:"Monad",rpcUrl:ve("monad"),logoUrl:Ee(j.MONAD),blockExplorer:{name:"Monad Explorer",url:"https://mainnet-beta.monvision.io/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:j.MONAD_TESTNET,type:me.TESTNET,name:"monad-testnet",title:"Monad Testnet",rpcUrl:ve("monad-testnet"),logoUrl:Ee(j.MONAD_TESTNET),blockExplorer:{name:"Monad Testnet Explorer",url:"https://testnet.monadexplorer.com/"},nativeCurrency:{symbol:"MON",name:"MON",decimals:18}},{chainId:j.SOMNIA,type:me.MAINNET,name:"somnia",title:"Somnia",rpcUrl:ve("somnia"),logoUrl:Ee(j.SOMNIA),blockExplorer:{name:"Somnia Explorer",url:"https://mainnet.somnia.w3us.site/"},nativeCurrency:{symbol:"SOMI",name:"SOMI",decimals:18}},{chainId:j.SOMNIA_TESTNET,type:me.TESTNET,name:"somnia-testnet",title:"Somnia Testnet",rpcUrl:ve("somnia-testnet"),logoUrl:Ee(j.SOMNIA_TESTNET),blockExplorer:{name:"Somnia Testnet Explorer",url:"https://somnia-testnet.socialscan.io/"},nativeCurrency:{symbol:"STT",name:"STT",decimals:18}},{chainId:j.INCENTIV_TESTNET_V2,type:me.TESTNET,name:"incentiv-testnet-v2",title:"Incentiv Testnet",rpcUrl:ve("incentiv-testnet-v2"),logoUrl:Ee(j.INCENTIV_TESTNET_V2),blockExplorer:{name:"Incentiv Testnet Explorer",url:"https://explorer.testnet.incentiv.net/"},nativeCurrency:{symbol:"TCENT",name:"TCENT",decimals:18}},{chainId:j.KATANA,type:me.MAINNET,name:"katana",title:"Katana",rpcUrl:ve("katana"),logoUrl:Ee(j.KATANA),blockExplorer:{name:"Katana Explorer",url:"https://katanascan.com/"},nativeCurrency:{symbol:"ETH",name:"ETH",decimals:18}},{chainId:j.SANDBOX_TESTNET,type:me.TESTNET,name:"sandbox-testnet",title:"Sandbox Testnet",rpcUrl:ve("sandbox-testnet"),logoUrl:Ee(j.SANDBOX_TESTNET),blockExplorer:{name:"Sandbox Testnet Explorer",url:"https://sandbox-testnet.explorer.caldera.xyz/"},nativeCurrency:{symbol:"SAND",name:"SAND",decimals:18}},{chainId:j.ARC_TESTNET,type:me.TESTNET,name:"arc-testnet",title:"Arc Testnet",rpcUrl:ve("arc-testnet"),logoUrl:Ee(j.ARC_TESTNET),blockExplorer:{name:"Arc Testnet Explorer",url:"https://1jr2dw1zdqvyes8u.blockscout.com/"},nativeCurrency:{symbol:"USDC",name:"USDC",decimals:6}}];function ve(s){return `https://nodes.sequence.app/${s}`}function Ee(s){return `https://assets.sequence.info/images/networks/medium/${s}.webp`}function bV(s){return Qx.find(e=>e.name===s)}function SV(s){return Qx.find(e=>e.chainId===Number(s))}var r1=class{address;min;max;constructor(e,t,r){this.address=e,this.min=t,this.max=r;}type(){return "native-balance"}isValid(){if(!this.address)return new Error("address is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},n1=class{address;token;min;max;constructor(e,t,r,n){this.address=e,this.token=t,this.min=r,this.max=n;}type(){return "erc20-balance"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},i1=class{address;token;operator;min;constructor(e,t,r,n){this.address=e,this.token=t,this.operator=r,this.min=n;}type(){return "erc20-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(!this.operator)return new Error("operator address is required");if(this.min===void 0)return new Error("min approval amount is required")}},a1=class{address;token;tokenId;owned;constructor(e,t,r,n){this.address=e,this.token=t,this.tokenId=r,this.owned=n;}type(){return "erc721-ownership"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required")}},o1=class{address;token;tokenId;operator;constructor(e,t,r,n){this.address=e,this.token=t,this.tokenId=r,this.operator=n;}type(){return "erc721-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(!this.operator)return new Error("operator address is required")}},c1=class{address;token;tokenId;min;max;constructor(e,t,r,n,i){this.address=e,this.token=t,this.tokenId=r,this.min=n,this.max=i;}type(){return "erc1155-balance"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(this.min!==void 0&&this.max!==void 0&&this.min>this.max)return new Error("min balance cannot be greater than max balance")}},u1=class{address;token;tokenId;operator;min;constructor(e,t,r,n,i){this.address=e,this.token=t,this.tokenId=r,this.operator=n,this.min=i;}type(){return "erc1155-approval"}isValid(){if(!this.address)return new Error("address is required");if(!this.token)return new Error("token address is required");if(this.tokenId===void 0)return new Error("tokenId is required");if(!this.operator)return new Error("operator address is required");if(this.min===void 0)return new Error("min approval amount is required")}};function l1(s){if(!s)return;let e;try{switch(s.type){case"native-balance":e=new r1(P.from(s.ownerAddress),s.minAmount,void 0);break;case"erc20-balance":e=new n1(P.from(s.ownerAddress),P.from(s.tokenAddress),s.minAmount,void 0);break;case"erc20-approval":e=new i1(P.from(s.ownerAddress),P.from(s.tokenAddress),P.from(s.ownerAddress),s.minAmount);break;case"erc721-ownership":e=new a1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),!0);break;case"erc721-approval":e=new o1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),P.from(s.ownerAddress));break;case"erc1155-balance":e=new c1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),s.minAmount,void 0);break;case"erc1155-approval":e=new u1(P.from(s.ownerAddress),P.from(s.tokenAddress),BigInt(0),P.from(s.ownerAddress),s.minAmount);break;default:return}let t=e.isValid();if(t){console.warn(`Invalid precondition: ${t.message}`);return}return e}catch(t){console.warn(`Failed to decode precondition: ${t}`);return}}var f1=se.from("function balanceOf(address) returns (uint256)"),h1=se.from("function allowance(address,address) returns (uint256)"),d1=se.from("function ownerOf(uint256) returns (address)"),m1=se.from("function getApproved(uint256) returns (address)"),p1=se.from("function balanceOf(address,uint256) returns (uint256)"),g1=se.from("function isApprovedForAll(address,address) returns (bool)");var IV=s=>({id:s.chainId,name:s.title||s.name,nativeCurrency:{name:s.nativeCurrency.name,symbol:s.nativeCurrency.symbol,decimals:s.nativeCurrency.decimals},rpcUrls:{default:{http:[s.rpcUrl]}},blockExplorers:s.blockExplorer?{default:{name:s.blockExplorer.name||"Explorer",url:s.blockExplorer.url}}:void 0,contracts:s.ensAddress?{ensUniversalResolver:{address:s.ensAddress}}:void 0}),gN=s=>{let e=s1.getNetworkFromChainId(s);if(e)return IV(e);let t=Object.values(AV).find(r=>typeof r=="object"&&"id"in r&&r.id===s);if(t)return t;throw new Error(`Chain with id ${s} not found in Sequence networks or viem chains`)},e2=class{kind="relayer";type="rpc";id;chainId;client;fetch;provider;projectAccessKey;constructor(e,t,r,n,i){this.id=`rpc:${e}`,this.chainId=t,this.projectAccessKey=i;let a=n||(typeof window<"u"?window.fetch.bind(window):void 0);if(!a)throw new Error("Fetch implementation is required but not available in this environment.");this.fetch=a,this.client=new Gc(e,this.fetch);let o=gN(t);this.provider=createPublicClient({chain:o,transport:http(r)});}isAvailable(e,t){return Promise.resolve(this.chainId===t)}async feeTokens(){try{let{isFeeRequired:e,tokens:t,paymentAddress:r}=await this.client.feeTokens();return e?(P.assert(r),{isFeeRequired:e,tokens:t,paymentAddress:r}):{isFeeRequired:e}}catch(e){return console.warn("RpcRelayer.feeTokens failed:",e),{isFeeRequired:!1}}}async feeOptions(e,t,r){let n={type:"call",space:0n,nonce:0n,calls:r},i=gr.encode(n);try{let a=await this.client.feeOptions({wallet:e,to:e,data:f.toHex(i)},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0}),o=a.quote?{_tag:"FeeQuote",_quote:a.quote}:void 0;return {options:a.options.map(u=>({token:{...u.token,contractAddress:this.mapRpcFeeTokenToAddress(u.token)},to:u.to,value:u.value,gasLimit:u.gasLimit})),quote:o}}catch(a){return console.warn("RpcRelayer.feeOptions failed:",a),{options:[]}}}async sendMetaTxn(e,t,r,n,i,a){console.log("sendMetaTxn",e,t,r,n,i,a);let o={walletAddress:e,contract:t,input:r},c=await this.client.sendMetaTxn({call:o,quote:i?JSON.stringify(i._quote):void 0,preconditions:a},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0});if(!c.status)throw console.error("RpcRelayer.relay failed",c),new Error(`Relay failed: TxnHash ${c.txnHash}`);return {opHash:v.fromString(c.txnHash)}}async relay(e,t,r,n,i){console.log("relay",e,t,r,n,i);let a={walletAddress:e,contract:e,input:t},o=await this.client.sendMetaTxn({call:a,quote:n?JSON.stringify(n._quote):void 0,preconditions:i},{...this.projectAccessKey?{"X-Access-Key":this.projectAccessKey}:void 0});if(!o.status)throw console.error("RpcRelayer.relay failed",o),new Error(`Relay failed: TxnHash ${o.txnHash}`);return {opHash:`0x${o.txnHash}`}}async status(e,t){try{let r=e.startsWith("0x")?e.substring(2):e,n=await this.client.getMetaTxnReceipt({metaTxID:r}),i=n.receipt;if(!i)return console.warn(`RpcRelayer.status: receipt not found for opHash ${e}`),{status:"unknown"};if(!i.status)return console.warn(`RpcRelayer.status: receipt status not found for opHash ${e}`),{status:"unknown"};switch(i.status){case Et.QUEUED:case Et.PENDING_PRECONDITION:case Et.SENT:return {status:"pending"};case Et.SUCCEEDED:return {status:"confirmed",transactionHash:i.txnHash,data:n};case Et.FAILED:case Et.PARTIALLY_FAILED:return {status:"failed",transactionHash:i.txnHash?i.txnHash:void 0,reason:i.revertReason||"Relayer reported failure",data:n};case Et.DROPPED:return {status:"failed",reason:"Transaction dropped"};case Et.UNKNOWN:default:return {status:"unknown"}}}catch(r){return console.error(`RpcRelayer.status failed for opHash ${e}:`,r),{status:"failed",reason:"Failed to fetch status"}}}async checkPrecondition(e){let t=l1(e);if(!t)return !1;switch(t.type()){case"native-balance":{let r=t;try{let n=await this.provider.getBalance({address:r.address.toString()}),i=r.min!==void 0?BigInt(r.min):void 0,a=r.max!==void 0?BigInt(r.max):void 0;return i!==void 0&&a!==void 0?n>=i&&n<=a:i!==void 0?n>=i:a!==void 0?n<=a:(console.warn("Native balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking native balance:",n),!1}}case"erc20-balance":{let r=t;try{let n=se.encodeData(f1,[r.address.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=r.min!==void 0?BigInt(r.min):void 0,c=r.max!==void 0?BigInt(r.max):void 0;return o!==void 0&&c!==void 0?a>=o&&a<=c:o!==void 0?a>=o:c!==void 0?a<=c:(console.warn("ERC20 balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking ERC20 balance:",n),!1}}case"erc20-approval":{let r=t;try{let n=se.encodeData(h1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=BigInt(r.min);return a>=o}catch(n){return console.error("Error checking ERC20 approval:",n),!1}}case"erc721-ownership":{let r=t;try{let n=se.encodeData(d1,[r.tokenId]),c=(await this.provider.call({to:r.token.toString(),data:n})).toString().slice(-40).toLowerCase()===r.address.toString().slice(2).toLowerCase(),u=r.owned!==void 0?r.owned:!0;return c===u}catch(n){return console.error("Error checking ERC721 ownership:",n),!1}}case"erc721-approval":{let r=t;try{let n=se.encodeData(m1,[r.tokenId]);return (await this.provider.call({to:r.token.toString(),data:n})).toString().slice(-40).toLowerCase()===r.operator.toString().slice(2).toLowerCase()}catch(n){return console.error("Error checking ERC721 approval:",n),!1}}case"erc1155-balance":{let r=t;try{let n=se.encodeData(p1,[r.address.toString(),r.tokenId]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i.toString()),o=r.min!==void 0?BigInt(r.min):void 0,c=r.max!==void 0?BigInt(r.max):void 0;return o!==void 0&&c!==void 0?a>=o&&a<=c:o!==void 0?a>=o:c!==void 0?a<=c:(console.warn("ERC1155 balance precondition has neither min nor max specified"),!1)}catch(n){return console.error("Error checking ERC1155 balance:",n),!1}}case"erc1155-approval":{let r=t;try{let n=se.encodeData(g1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i.toString())===1n}catch(n){return console.error("Error checking ERC1155 approval:",n),!1}}default:return !1}}mapRpcFeeTokenToAddress(e){return e.type===e1.ERC20_TOKEN&&e.contractAddress?P.from(e.contractAddress):Kr.ZeroAddress}};var ka=class s{provider;kind="relayer";type="local";id="local";constructor(e){this.provider=e;}isAvailable(e,t){return Promise.resolve(!0)}static createFromWindow(e){let t=e.ethereum;if(!t){console.warn("Window.ethereum not found, skipping local relayer");return}return new s(new Pa(t))}static createFromProvider(e){return new s(new Pa(e))}feeTokens(){return Promise.resolve({isFeeRequired:!1})}feeOptions(e,t,r){return Promise.resolve({options:[]})}decodeCalls(e){let t=se.getSelector(Kr.EXECUTE),r;return e.startsWith(t)?r=se.decodeData(Kr.EXECUTE,e)[0]:r=e,gr.decode(f.fromHex(r))}async relay(e,t,r,n,i,a=5e3){let o=async()=>{if(!i||i.length===0)return !0;for(let c of i)if(!await this.checkPrecondition(c))return !1;return !0};return await o()?{opHash:await this.provider.sendTransaction({to:e,data:t},r)}:new Promise((c,u)=>{let l,h=!1,m=async()=>{try{if(h)return;if(await o()){h=!0,clearTimeout(l);let y=await this.provider.sendTransaction({to:e,data:t},r);c({opHash:y});}else l=setTimeout(m,a);}catch(y){h=!0,clearTimeout(l),u(y);}};return l=setTimeout(m,a),()=>{h=!0,clearTimeout(l);}})}async status(e,t){let r=await this.provider.getTransactionReceipt(e,t);return r==="unknown"?{status:"unknown"}:r==="success"?{status:"confirmed",transactionHash:e}:{status:"failed",reason:"failed"}}async checkPrecondition(e){let t=l1(e);if(!t)return !1;switch(t.type()){case"native-balance":{let r=t,n=await this.provider.getBalance(r.address.toString());return !(r.min!==void 0&&n<r.min||r.max!==void 0&&n>r.max)}case"erc20-balance":{let r=t,n=se.encodeData(f1,[r.address.toString()]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i);return !(r.min!==void 0&&a<r.min||r.max!==void 0&&a>r.max)}case"erc20-approval":{let r=t,n=se.encodeData(h1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i)>=r.min}case"erc721-ownership":{let r=t,n=se.encodeData(d1,[r.tokenId]),o=("0x"+(await this.provider.call({to:r.token.toString(),data:n})).slice(26)).toLowerCase()===r.address.toString().toLowerCase();return r.owned===void 0?o:r.owned===o}case"erc721-approval":{let r=t,n=se.encodeData(m1,[r.tokenId]);return ("0x"+(await this.provider.call({to:r.token.toString(),data:n})).slice(26)).toLowerCase()===r.operator.toString().toLowerCase()}case"erc1155-balance":{let r=t,n=se.encodeData(p1,[r.address.toString(),r.tokenId]),i=await this.provider.call({to:r.token.toString(),data:n}),a=BigInt(i);return !(r.min!==void 0&&a<r.min||r.max!==void 0&&a>r.max)}case"erc1155-approval":{let r=t,n=se.encodeData(g1,[r.address.toString(),r.operator.toString()]),i=await this.provider.call({to:r.token.toString(),data:n});return BigInt(i)===1n}default:return !1}}},Pa=class{provider;constructor(e){this.provider=e;}async trySwitchChain(e){try{await this.provider.request({method:"wallet_switchEthereumChain",params:[{chainId:`0x${e.toString(16)}`}]});}catch(t){console.error("Error switching chain",t);}}async sendTransaction(e,t){let n=(await this.provider.request({method:"eth_requestAccounts"}))[0];if(!n){console.warn("No account selected, skipping local relayer");return}return await this.trySwitchChain(t),await this.provider.request({method:"eth_sendTransaction",params:[{from:n,to:e.to,data:e.data}]})}async getBalance(e){let t=await this.provider.request({method:"eth_getBalance",params:[e,"latest"]});return BigInt(t)}async call(e){return await this.provider.request({method:"eth_call",params:[e,"latest"]})}async getTransactionReceipt(e,t){await this.trySwitchChain(t);let r=await this.provider.request({method:"eth_getTransactionReceipt",params:[e]});if(r){let n=Rc.fromRpc(r);if(n?.status==="success")return "success";if(n?.status==="reverted")return "failed"}return "unknown"}};var t2=class{provider;kind="relayer";type="pk";id="pk";relayer;constructor(e,t){this.provider=t;let r=P.fromPublicKey(Lt.getPublicKey({privateKey:e}));this.relayer=new ka({sendTransaction:async(n,i)=>{if(Number(await this.provider.request({method:"eth_chainId"}))!==i)throw new Error("Provider chain id does not match relayer chain id");let o={...n,to:n.to,data:n.data},c=BigInt(await this.provider.request({method:"eth_estimateGas",params:[o]})),u=c>21000n?c*12n/10n:50000n,l=BigInt(await this.provider.request({method:"eth_gasPrice"})),h=100000000n,m=l+h,y=BigInt(await this.provider.request({method:"eth_getBalance",params:[r,"latest"]}));if(y<m*u)throw console.log("Sender balance:",y.toString(),"wei"),new Error("Sender has insufficient balance to pay for gas");let g=BigInt(await this.provider.request({method:"eth_getTransactionCount",params:[r,"latest"]})),w=va.from({chainId:Number(i),type:"eip1559",from:r,to:o.to,data:o.data,gas:u,maxFeePerGas:m,maxPriorityFeePerGas:h,nonce:g,value:0n}),S=Lt.sign({payload:va.getSignPayload(w),privateKey:e}),C=va.from(w,{signature:S});return await this.provider.request({method:"eth_sendRawTransaction",params:[va.serialize(C)]})},getBalance:async n=>{let i=await this.provider.request({method:"eth_getBalance",params:[n,"latest"]});return BigInt(i)},call:async n=>{let i={to:n.to,data:n.data};return await this.provider.request({method:"eth_call",params:[i,"latest"]})},getTransactionReceipt:async(n,i)=>{if(v.assert(n),Number(await this.provider.request({method:"eth_chainId"}))!==i)throw new Error("Provider chain id does not match relayer chain id");let o=await this.provider.request({method:"eth_getTransactionReceipt",params:[n]});return o?Rc.fromRpc(o).status==="success"?"success":"failed":"unknown"}});}async isAvailable(e,t){return Number(await this.provider.request({method:"eth_chainId"}))===t}feeTokens(){return this.relayer.feeTokens()}feeOptions(e,t,r){return this.relayer.feeOptions(e,t,r)}async relay(e,t,r,n){if(Number(await this.provider.request({method:"eth_chainId"}))!==r)throw new Error("Provider chain id does not match relayer chain id");return this.relayer.relay(e,t,r)}status(e,t){return this.relayer.status(e,t)}async checkPrecondition(e){return !0}};var s2=class{kind="relayer";type="sequence";id="sequence";service;constructor(e){this.service=new Gc(e,fetch);}async isAvailable(e,t){return !0}async feeTokens(){let{isFeeRequired:e,tokens:t,paymentAddress:r}=await this.service.feeTokens();return e?(P.assert(r),{isFeeRequired:e,tokens:t,paymentAddress:r}):{isFeeRequired:e}}async feeOptions(e,t,r){let n=e,i=se.from("function execute(bytes calldata _payload, bytes calldata _signature)"),a=gr.encode({type:"call",space:0n,nonce:0n,calls:r},n),c=se.encodeData(i,[f.toHex(a),"0x0001"]),{options:u,quote:l}=await this.service.feeOptions({wallet:e,to:n,data:c});return {options:u,quote:l?{_tag:"FeeQuote",_quote:l}:void 0}}async checkPrecondition(e){return !1}async relay(e,t,r,n){let i=e,{txnHash:a}=await this.service.sendMetaTxn({call:{walletAddress:i,contract:e,input:t},quote:n&&n._quote});return {opHash:`0x${a}`}}async status(e,t){try{let{receipt:{status:r,revertReason:n,txnReceipt:i}}=await this.service.getMetaTxnReceipt({metaTxID:e});switch(r){case Et.UNKNOWN:return {status:"unknown"};case Et.DROPPED:return {status:"failed",reason:n??r};case Et.QUEUED:return {status:"pending"};case Et.SENT:return {status:"pending"};case Et.SUCCEEDED:{let o=JSON.parse(i).transactionHash;return v.assert(o),{status:"confirmed",transactionHash:o}}case Et.PARTIALLY_FAILED:return {status:"failed",reason:n??r};case Et.FAILED:return {status:"failed",reason:n??r};default:throw new Error(`unknown transaction status '${r}'`)}}catch{return {status:"pending"}}}};var a2={};ye(a2,{EIP6963Relayer:()=>y1,getEIP6963Store:()=>wN,getRelayers:()=>CV});function yN(s){if(typeof window>"u")return;let e=t=>s(t.detail);return window.addEventListener("eip6963:announceProvider",e),window.dispatchEvent(new CustomEvent("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",e)}function r2(){let s=new Set,e=[],t=()=>yN(n=>{e.some(({info:i})=>i.uuid===n.info.uuid)||(e=[...e,n],s.forEach(i=>i(e,{added:[n]})));}),r=t();return {_listeners(){return s},clear(){s.forEach(n=>n([],{removed:[...e]})),e=[];},destroy(){this.clear(),s.clear(),r?.();},findProvider({rdns:n}){return e.find(i=>i.info.rdns===n)},getProviders(){return e},reset(){this.clear(),r?.(),r=t();},subscribe(n,{emitImmediately:i}={}){return s.add(n),i&&n(e,{added:e}),()=>s.delete(n)}}}var y1=class{kind="relayer";type="eip6963";id;info;relayer;constructor(e){this.info=e.info,this.id=e.info.uuid,this.relayer=new ka(new Pa(e.provider));}isAvailable(e,t){return this.relayer.isAvailable(e,t)}feeTokens(){return this.relayer.feeTokens()}feeOptions(e,t,r){return this.relayer.feeOptions(e,t,r)}async relay(e,t,r,n){return this.relayer.relay(e,t,r)}status(e,t){return this.relayer.status(e,t)}async checkPrecondition(e){return this.relayer.checkPrecondition(e)}},n2;function wN(){return n2||(n2=r2()),n2}var i2=new Map;function CV(){let e=wN().getProviders();for(let t of e)i2.has(t.info.uuid)||i2.set(t.info.uuid,new y1(t));return Array.from(i2.values())}function NV(s){return "isAvailable"in s&&"feeOptions"in s&&"relay"in s&&"status"in s&&"checkPrecondition"in s}var F={POS_INT:0,NEG_INT:1,BYTE_STRING:2,UTF8_STRING:3,ARRAY:4,MAP:5,TAG:6,SIMPLE_FLOAT:7},rt={DATE_STRING:0,DATE_EPOCH:1,POS_BIGINT:2,NEG_BIGINT:3,DECIMAL_FRAC:4,BIGFLOAT:5,BASE64URL_EXPECTED:21,BASE64_EXPECTED:22,BASE16_EXPECTED:23,CBOR:24,URI:32,BASE64URL:33,BASE64:34,MIME:36,SET:258,JSON:262,REGEXP:21066,SELF_DESCRIBED:55799,INVALID_16:65535,INVALID_32:4294967295,INVALID_64:0xffffffffffffffffn},Ae={ZERO:0,ONE:24,TWO:25,FOUR:26,EIGHT:27,INDEFINITE:31},yr={FALSE:20,TRUE:21,NULL:22,UNDEFINED:23},ct=class{static BREAK=Symbol.for("github.com/hildjj/cbor2/break");static ENCODED=Symbol.for("github.com/hildjj/cbor2/cbor-encoded");static LENGTH=Symbol.for("github.com/hildjj/cbor2/length")},Wc={MIN:-(2n**63n),MAX:2n**64n-1n};var xe=class s{static#e=new Map;tag;contents;constructor(e,t=void 0){this.tag=e,this.contents=t;}get noChildren(){return !!s.#e.get(this.tag)?.noChildren}static registerDecoder(e,t,r){let n=this.#e.get(e);return this.#e.set(e,t),n&&("comment"in t||(t.comment=n.comment),"noChildren"in t||(t.noChildren=n.noChildren)),r&&!t.comment&&(t.comment=()=>`(${r})`),n}static clearDecoder(e){let t=this.#e.get(e);return this.#e.delete(e),t}static getDecoder(e){return this.#e.get(e)}static getAllDecoders(){return new Map(this.#e)}*[Symbol.iterator](){yield this.contents;}push(e){return this.contents=e,1}decode(e){let t=s.#e.get(this.tag);return t?t(this,e):this}comment(e,t){let r=s.#e.get(this.tag);if(r?.comment)return r.comment(this,e,t)}toCBOR(){return [this.tag,this.contents]}[Symbol.for("nodejs.util.inspect.custom")](e,t,r){return `${this.tag}(${r(this.contents,t)})`}};function $n(s){if(s!=null&&typeof s=="object")return s[ct.ENCODED]}function bN(s){if(s!=null&&typeof s=="object")return s[ct.LENGTH]}function Fn(s,e){Object.defineProperty(s,ct.ENCODED,{configurable:!0,enumerable:!1,value:e});}function qn(s,e){let t=Object(s);return Fn(t,e),t}var o2=Symbol("CBOR_RANGES");function SN(s,e){Object.defineProperty(s,o2,{configurable:!1,enumerable:!1,writable:!1,value:e});}function hh(s){return s[o2]}function TV(s){return hh(s)!==void 0}function dh(s,e=0,t=s.length-1){let r=s.subarray(e,t),n=hh(s);if(n){let i=[];for(let a of n)if(a[0]>=e&&a[0]+a[1]<=t){let o=[...a];o[0]-=e,i.push(o);}i.length&&SN(r,i);}return r}function w1(s){let e=Math.ceil(s.length/2),t=new Uint8Array(e);e--;for(let r=s.length,n=r-2;r>=0;r=n,n-=2,e--)t[e]=parseInt(s.substring(n,r),16);return t}function Ht(s){return s.reduce((e,t)=>e+t.toString(16).padStart(2,"0"),"")}function vN(s){let e=s.reduce((a,o)=>a+o.length,0),t=s.some(a=>TV(a)),r=[],n=new Uint8Array(e),i=0;for(let a of s){if(!(a instanceof Uint8Array))throw new TypeError(`Invalid array: ${a}`);if(n.set(a,i),t){let o=a[o2]??[[0,a.length]];for(let c of o)c[0]+=i;r.push(...o);}i+=a.length;}return t&&SN(n,r),n}function mh(s){let e=atob(s);return Uint8Array.from(e,t=>t.codePointAt(0))}var kV={"-":"+",_:"/"};function EN(s){let e=s.replace(/[_-]/g,t=>kV[t]);return mh(e.padEnd(Math.ceil(e.length/4)*4,"="))}function xN(){let s=new Uint8Array(4),e=new Uint32Array(s.buffer);return !((e[0]=1)&s[0])}function c2(s){let e="";for(let t of s){let r=t.codePointAt(0)?.toString(16).padStart(4,"0");e&&(e+=", "),e+=`U+${r}`;}return e}function b1(s,e){let[t,r,n]=s,[i,a,o]=e,c=Math.min(n.length,o.length);for(let u=0;u<c;u++){let l=n[u]-o[u];if(l!==0)return l}return 0}var ph=class s{static defaultOptions={chunkSize:4096};#e;#s=[];#r=null;#t=0;#a=0;constructor(e={}){if(this.#e={...s.defaultOptions,...e},this.#e.chunkSize<8)throw new RangeError(`Expected size >= 8, got ${this.#e.chunkSize}`);this.#i();}get length(){return this.#a}read(){this.#n();let e=new Uint8Array(this.#a),t=0;for(let r of this.#s)e.set(r,t),t+=r.length;return this.#i(),e}write(e){let t=e.length;t>this.#u()?(this.#n(),t>this.#e.chunkSize?(this.#s.push(e),this.#i()):(this.#i(),this.#s[this.#s.length-1].set(e),this.#t=t)):(this.#s[this.#s.length-1].set(e,this.#t),this.#t+=t),this.#a+=t;}writeUint8(e){this.#c(1),this.#r.setUint8(this.#t,e),this.#o(1);}writeUint16(e,t=!1){this.#c(2),this.#r.setUint16(this.#t,e,t),this.#o(2);}writeUint32(e,t=!1){this.#c(4),this.#r.setUint32(this.#t,e,t),this.#o(4);}writeBigUint64(e,t=!1){this.#c(8),this.#r.setBigUint64(this.#t,e,t),this.#o(8);}writeInt16(e,t=!1){this.#c(2),this.#r.setInt16(this.#t,e,t),this.#o(2);}writeInt32(e,t=!1){this.#c(4),this.#r.setInt32(this.#t,e,t),this.#o(4);}writeBigInt64(e,t=!1){this.#c(8),this.#r.setBigInt64(this.#t,e,t),this.#o(8);}writeFloat32(e,t=!1){this.#c(4),this.#r.setFloat32(this.#t,e,t),this.#o(4);}writeFloat64(e,t=!1){this.#c(8),this.#r.setFloat64(this.#t,e,t),this.#o(8);}clear(){this.#a=0,this.#s=[],this.#i();}#i(){let e=new Uint8Array(this.#e.chunkSize);this.#s.push(e),this.#t=0,this.#r=new DataView(e.buffer,e.byteOffset,e.byteLength);}#n(){if(this.#t===0){this.#s.pop();return}let e=this.#s.length-1;this.#s[e]=this.#s[e].subarray(0,this.#t),this.#t=0,this.#r=null;}#u(){let e=this.#s.length-1;return this.#s[e].length-this.#t}#c(e){this.#u()<e&&(this.#n(),this.#i());}#o(e){this.#t+=e,this.#a+=e;}};function u2(s,e=0,t=!1){let r=s[e]&128?-1:1,n=(s[e]&124)>>2,i=(s[e]&3)<<8|s[e+1];if(n===0){if(t&&i!==0)throw new Error(`Unwanted subnormal: ${r*5960464477539063e-23*i}`);return r*5960464477539063e-23*i}else if(n===31)return i?NaN:r*(1/0);return r*2**(n-25)*(1024+i)}function S1(s){let e=new DataView(new ArrayBuffer(4));e.setFloat32(0,s,!1);let t=e.getUint32(0,!1);if(t&8191)return null;let r=t>>16&32768,n=t>>23&255,i=t&8388607;if(!(n===0&&i===0))if(n>=113&&n<=142)r+=(n-112<<10)+(i>>13);else if(n>=103&&n<113){if(i&(1<<126-n)-1)return null;r+=i+8388608>>126-n;}else if(n===255)r|=31744,r|=i>>13;else return null;return r}function AN(s){if(s!==0){let e=new ArrayBuffer(8),t=new DataView(e);t.setFloat64(0,s,!1);let r=t.getBigUint64(0,!1);if((r&0x7ff0000000000000n)===0n)return r&0x8000000000000000n?-0:0}return s}function IN(s){switch(s.length){case 2:u2(s,0,!0);break;case 4:{let e=new DataView(s.buffer,s.byteOffset,s.byteLength),t=e.getUint32(0,!1);if(!(t&2139095040)&&t&8388607)throw new Error(`Unwanted subnormal: ${e.getFloat32(0,!1)}`);break}case 8:{let e=new DataView(s.buffer,s.byteOffset,s.byteLength),t=e.getBigUint64(0,!1);if((t&0x7ff0000000000000n)===0n&&t&0x000fffffffffffn)throw new Error(`Unwanted subnormal: ${e.getFloat64(0,!1)}`);break}default:throw new TypeError(`Bad input to isSubnormal: ${s}`)}}var CN=F.SIMPLE_FLOAT<<5|Ae.TWO,PV=F.SIMPLE_FLOAT<<5|Ae.FOUR,BV=F.SIMPLE_FLOAT<<5|Ae.EIGHT,OV=F.SIMPLE_FLOAT<<5|yr.TRUE,RV=F.SIMPLE_FLOAT<<5|yr.FALSE,VV=F.SIMPLE_FLOAT<<5|yr.UNDEFINED,DV=F.SIMPLE_FLOAT<<5|yr.NULL,LV=new TextEncoder,v1={...ph.defaultOptions,avoidInts:!1,cde:!1,collapseBigInts:!0,dcbor:!1,float64:!1,flushToZero:!1,forceEndian:null,ignoreOriginalEncoding:!1,largeNegativeAsBigInt:!1,reduceUnsafeNumbers:!1,rejectBigInts:!1,rejectCustomSimples:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectUndefined:!1,simplifyNegativeZero:!1,sortKeys:null,stringNormalization:null},h2={cde:!0,ignoreOriginalEncoding:!0,sortKeys:b1},NN={...h2,dcbor:!0,largeNegativeAsBigInt:!0,reduceUnsafeNumbers:!0,rejectCustomSimples:!0,rejectDuplicateKeys:!0,rejectUndefined:!0,simplifyNegativeZero:!0,stringNormalization:"NFC"};function TN(s){let e=s<0;return typeof s=="bigint"?[e?-s-1n:s,e]:[e?-s-1:s,e]}function l2(s,e,t){if(t.rejectFloats)throw new Error(`Attempt to encode an unwanted floating point number: ${s}`);if(isNaN(s))e.writeUint8(CN),e.writeUint16(32256);else if(!t.float64&&Math.fround(s)===s){let r=S1(s);r===null?(e.writeUint8(PV),e.writeFloat32(s)):(e.writeUint8(CN),e.writeUint16(r));}else e.writeUint8(BV),e.writeFloat64(s);}function Is(s,e,t){let[r,n]=TN(s);if(n&&t)throw new TypeError(`Negative size: ${s}`);t??=n?F.NEG_INT:F.POS_INT,t<<=5,r<24?e.writeUint8(t|r):r<=255?(e.writeUint8(t|Ae.ONE),e.writeUint8(r)):r<=65535?(e.writeUint8(t|Ae.TWO),e.writeUint16(r)):r<=4294967295?(e.writeUint8(t|Ae.FOUR),e.writeUint32(r)):(e.writeUint8(t|Ae.EIGHT),e.writeBigUint64(BigInt(r)));}function gh(s,e,t){typeof s=="number"?Is(s,e,F.TAG):typeof s=="object"&&!t.ignoreOriginalEncoding&&ct.ENCODED in s?e.write(s[ct.ENCODED]):s<=Number.MAX_SAFE_INTEGER?Is(Number(s),e,F.TAG):(e.writeUint8(F.TAG<<5|Ae.EIGHT),e.writeBigUint64(BigInt(s)));}function kN(s,e,t){let[r,n]=TN(s);if(t.collapseBigInts&&(!t.largeNegativeAsBigInt||s>=-0x8000000000000000n)){if(r<=0xffffffffn){Is(Number(s),e);return}if(r<=0xffffffffffffffffn){let u=(n?F.NEG_INT:F.POS_INT)<<5;e.writeUint8(u|Ae.EIGHT),e.writeBigUint64(r);return}}if(t.rejectBigInts)throw new Error(`Attempt to encode unwanted bigint: ${s}`);let i=n?rt.NEG_BIGINT:rt.POS_BIGINT,a=r.toString(16),o=a.length%2?"0":"";gh(i,e,t);let c=w1(o+a);Is(c.length,e,F.BYTE_STRING),e.write(c);}function UV(s,e,t){t.flushToZero&&(s=AN(s)),Object.is(s,-0)?t.simplifyNegativeZero?t.avoidInts?l2(0,e,t):Is(0,e):l2(s,e,t):!t.avoidInts&&Number.isSafeInteger(s)?Is(s,e):t.reduceUnsafeNumbers&&Math.floor(s)===s&&s>=Wc.MIN&&s<=Wc.MAX?kN(BigInt(s),e,t):l2(s,e,t);}function HV(s,e,t){let r=t.stringNormalization?s.normalize(t.stringNormalization):s,n=LV.encode(r);Is(n.length,e,F.UTF8_STRING),e.write(n);}function _V(s,e,t){let r=s;E1(r,r.length,F.ARRAY,e,t);for(let n of r)Gn(n,e,t);}function jV(s,e){let t=s;Is(t.length,e,F.BYTE_STRING),e.write(t);}var f2=new Map([[Array,_V],[Uint8Array,jV]]);function ft(s,e){let t=f2.get(s);return f2.set(s,e),t}function E1(s,e,t,r,n){let i=bN(s);i&&!n.ignoreOriginalEncoding?r.write(i):Is(e,r,t);}function MV(s,e,t){if(s===null){e.writeUint8(DV);return}if(!t.ignoreOriginalEncoding&&ct.ENCODED in s){e.write(s[ct.ENCODED]);return}let r=f2.get(s.constructor);if(r){let i=r(s,e,t);i&&((typeof i[0]=="bigint"||isFinite(Number(i[0])))&&gh(i[0],e,t),Gn(i[1],e,t));return}if(typeof s.toCBOR=="function"){let i=s.toCBOR(e,t);i&&((typeof i[0]=="bigint"||isFinite(Number(i[0])))&&gh(i[0],e,t),Gn(i[1],e,t));return}if(typeof s.toJSON=="function"){Gn(s.toJSON(),e,t);return}let n=Object.entries(s).map(i=>[i[0],i[1],Wr(i[0],t)]);t.sortKeys&&n.sort(t.sortKeys),E1(s,n.length,F.MAP,e,t);for(let[i,a,o]of n)e.write(o),Gn(a,e,t);}function Gn(s,e,t){switch(typeof s){case"number":UV(s,e,t);break;case"bigint":kN(s,e,t);break;case"string":HV(s,e,t);break;case"boolean":e.writeUint8(s?OV:RV);break;case"undefined":if(t.rejectUndefined)throw new Error("Attempt to encode unwanted undefined.");e.writeUint8(VV);break;case"object":MV(s,e,t);break;case"symbol":throw new TypeError(`Unknown symbol: ${s.toString()}`);default:throw new TypeError(`Unknown type: ${typeof s}, ${String(s)}`)}}function Wr(s,e={}){let t={...v1};e.dcbor?Object.assign(t,NN):e.cde&&Object.assign(t,h2),Object.assign(t,e);let r=new ph(t);return Gn(s,r,t),r.read()}var Ba=(s=>(s[s.NEVER=-1]="NEVER",s[s.PREFERRED=0]="PREFERRED",s[s.ALWAYS=1]="ALWAYS",s))(Ba||{});var Zs=class s{static KnownSimple=new Map([[yr.FALSE,!1],[yr.TRUE,!0],[yr.NULL,null],[yr.UNDEFINED,void 0]]);value;constructor(e){this.value=e;}static create(e){return s.KnownSimple.has(e)?s.KnownSimple.get(e):new s(e)}toCBOR(e,t){if(t.rejectCustomSimples)throw new Error(`Cannot encode non-standard Simple value: ${this.value}`);Is(this.value,e,F.SIMPLE_FLOAT);}toString(){return `simple(${this.value})`}decode(){return s.KnownSimple.has(this.value)?s.KnownSimple.get(this.value):this}[Symbol.for("nodejs.util.inspect.custom")](e,t,r){return `simple(${r(this.value,t)})`}};var $V=new TextDecoder("utf8",{fatal:!0,ignoreBOM:!0}),Jr=class s{static defaultOptions={maxDepth:1024,encoding:"hex",requirePreferred:!1};#e;#s;#r=0;#t;constructor(e,t){if(this.#t={...s.defaultOptions,...t},typeof e=="string")switch(this.#t.encoding){case"hex":this.#e=w1(e);break;case"base64":this.#e=mh(e);break;default:throw new TypeError(`Encoding not implemented: "${this.#t.encoding}"`)}else this.#e=e;this.#s=new DataView(this.#e.buffer,this.#e.byteOffset,this.#e.byteLength);}toHere(e){return dh(this.#e,e,this.#r)}*[Symbol.iterator](){if(yield*this.#a(0),this.#r!==this.#e.length)throw new Error("Extra data in input")}*#a(e){if(e++>this.#t.maxDepth)throw new Error(`Maximum depth ${this.#t.maxDepth} exceeded`);let t=this.#r,r=this.#s.getUint8(this.#r++),n=r>>5,i=r&31,a=i,o=!1,c=0;switch(i){case Ae.ONE:if(c=1,a=this.#s.getUint8(this.#r),n===F.SIMPLE_FLOAT){if(a<32)throw new Error(`Invalid simple encoding in extra byte: ${a}`);o=!0;}else if(this.#t.requirePreferred&&a<24)throw new Error(`Unexpectedly long integer encoding (1) for ${a}`);break;case Ae.TWO:if(c=2,n===F.SIMPLE_FLOAT)a=u2(this.#e,this.#r);else if(a=this.#s.getUint16(this.#r,!1),this.#t.requirePreferred&&a<=255)throw new Error(`Unexpectedly long integer encoding (2) for ${a}`);break;case Ae.FOUR:if(c=4,n===F.SIMPLE_FLOAT)a=this.#s.getFloat32(this.#r,!1);else if(a=this.#s.getUint32(this.#r,!1),this.#t.requirePreferred&&a<=65535)throw new Error(`Unexpectedly long integer encoding (4) for ${a}`);break;case Ae.EIGHT:{if(c=8,n===F.SIMPLE_FLOAT)a=this.#s.getFloat64(this.#r,!1);else if(a=this.#s.getBigUint64(this.#r,!1),a<=Number.MAX_SAFE_INTEGER&&(a=Number(a)),this.#t.requirePreferred&&a<=4294967295)throw new Error(`Unexpectedly long integer encoding (8) for ${a}`);break}case 28:case 29:case 30:throw new Error(`Additional info not implemented: ${i}`);case Ae.INDEFINITE:switch(n){case F.POS_INT:case F.NEG_INT:case F.TAG:throw new Error(`Invalid indefinite encoding for MT ${n}`);case F.SIMPLE_FLOAT:yield [n,i,ct.BREAK,t,0];return}a=1/0;break;default:o=!0;}switch(this.#r+=c,n){case F.POS_INT:yield [n,i,a,t,c];break;case F.NEG_INT:yield [n,i,typeof a=="bigint"?-1n-a:-1-Number(a),t,c];break;case F.BYTE_STRING:a===1/0?yield*this.#n(n,e,t):yield [n,i,this.#i(a),t,a];break;case F.UTF8_STRING:a===1/0?yield*this.#n(n,e,t):yield [n,i,$V.decode(this.#i(a)),t,a];break;case F.ARRAY:if(a===1/0)yield*this.#n(n,e,t,!1);else {let u=Number(a);yield [n,i,u,t,c];for(let l=0;l<u;l++)yield*this.#a(e+1);}break;case F.MAP:if(a===1/0)yield*this.#n(n,e,t,!1);else {let u=Number(a);yield [n,i,u,t,c];for(let l=0;l<u;l++)yield*this.#a(e),yield*this.#a(e);}break;case F.TAG:yield [n,i,a,t,c],yield*this.#a(e);break;case F.SIMPLE_FLOAT:{let u=a;o&&(a=Zs.create(Number(a))),yield [n,i,a,t,u];break}}}#i(e){let t=dh(this.#e,this.#r,this.#r+=e);if(t.length!==e)throw new Error(`Unexpected end of stream reading ${e} bytes, got ${t.length}`);return t}*#n(e,t,r,n=!0){for(yield [e,Ae.INDEFINITE,1/0,r,1/0];;){let i=this.#a(t),a=i.next(),[o,c,u]=a.value;if(u===ct.BREAK){yield a.value,i.next();return}if(n){if(o!==e)throw new Error(`Unmatched major type. Expected ${e}, got ${o}.`);if(c===Ae.INDEFINITE)throw new Error("New stream started in typed stream")}yield a.value,yield*i;}}};var FV=new Map([[Ae.ZERO,1],[Ae.ONE,2],[Ae.TWO,3],[Ae.FOUR,5],[Ae.EIGHT,9]]),qV=new Uint8Array(0);function GV(s,e){return !e.boxed&&!e.preferMap&&s.every(([t])=>typeof t=="string")?Object.fromEntries(s):new Map(s)}var is=class s{static defaultDecodeOptions={...Jr.defaultOptions,ParentType:s,boxed:!1,cde:!1,dcbor:!1,diagnosticSizes:Ba.PREFERRED,convertUnsafeIntsToFloat:!1,createObject:GV,pretty:!1,preferMap:!1,rejectLargeNegatives:!1,rejectBigInts:!1,rejectDuplicateKeys:!1,rejectFloats:!1,rejectInts:!1,rejectLongLoundNaN:!1,rejectLongFloats:!1,rejectNegativeZero:!1,rejectSimple:!1,rejectStreaming:!1,rejectStringsNotNormalizedAs:null,rejectSubnormals:!1,rejectUndefined:!1,rejectUnsafeFloatInts:!1,saveOriginal:!1,sortKeys:null};static cdeDecodeOptions={cde:!0,rejectStreaming:!0,requirePreferred:!0,sortKeys:b1};static dcborDecodeOptions={...this.cdeDecodeOptions,dcbor:!0,convertUnsafeIntsToFloat:!0,rejectDuplicateKeys:!0,rejectLargeNegatives:!0,rejectLongLoundNaN:!0,rejectLongFloats:!0,rejectNegativeZero:!0,rejectSimple:!0,rejectUndefined:!0,rejectUnsafeFloatInts:!0,rejectStringsNotNormalizedAs:"NFC"};parent;mt;ai;left;offset;count=0;children=[];depth=0;#e;#s=null;constructor(e,t,r,n){if([this.mt,this.ai,,this.offset]=e,this.left=t,this.parent=r,this.#e=n,r&&(this.depth=r.depth+1),this.mt===F.MAP&&(this.#e.sortKeys||this.#e.rejectDuplicateKeys)&&(this.#s=[]),this.#e.rejectStreaming&&this.ai===Ae.INDEFINITE)throw new Error("Streaming not supported")}get isStreaming(){return this.left===1/0}get done(){return this.left===0}static create(e,t,r,n){let[i,a,o,c]=e;switch(i){case F.POS_INT:case F.NEG_INT:{if(r.rejectInts)throw new Error(`Unexpected integer: ${o}`);if(r.rejectLargeNegatives&&o<-0x8000000000000000n)throw new Error(`Invalid 65bit negative number: ${o}`);let u=o;return r.convertUnsafeIntsToFloat&&u>=Wc.MIN&&u<=Wc.MAX&&(u=Number(o)),r.boxed?qn(u,n.toHere(c)):u}case F.SIMPLE_FLOAT:if(a>Ae.ONE){if(r.rejectFloats)throw new Error(`Decoding unwanted floating point number: ${o}`);if(r.rejectNegativeZero&&Object.is(o,-0))throw new Error("Decoding negative zero");if(r.rejectLongLoundNaN&&isNaN(o)){let u=n.toHere(c);if(u.length!==3||u[1]!==126||u[2]!==0)throw new Error(`Invalid NaN encoding: "${Ht(u)}"`)}if(r.rejectSubnormals&&IN(n.toHere(c+1)),r.rejectLongFloats){let u=Wr(o,{chunkSize:9,reduceUnsafeNumbers:r.rejectUnsafeFloatInts});if(u[0]>>5!==i)throw new Error(`Should have been encoded as int, not float: ${o}`);if(u.length<FV.get(a))throw new Error(`Number should have been encoded shorter: ${o}`)}if(typeof o=="number"&&r.boxed)return qn(o,n.toHere(c))}else {if(r.rejectSimple&&o instanceof Zs)throw new Error(`Invalid simple value: ${o}`);if(r.rejectUndefined&&o===void 0)throw new Error("Unexpected undefined")}return o;case F.BYTE_STRING:case F.UTF8_STRING:if(o===1/0)return new r.ParentType(e,1/0,t,r);if(r.rejectStringsNotNormalizedAs&&typeof o=="string"){let u=o.normalize(r.rejectStringsNotNormalizedAs);if(o!==u)throw new Error(`String not normalized as "${r.rejectStringsNotNormalizedAs}", got [${c2(o)}] instead of [${c2(u)}]`)}return r.boxed?qn(o,n.toHere(c)):o;case F.ARRAY:return new r.ParentType(e,o,t,r);case F.MAP:return new r.ParentType(e,o*2,t,r);case F.TAG:{let u=new r.ParentType(e,1,t,r);return u.children=new xe(o),u}}throw new TypeError(`Invalid major type: ${i}`)}static decodeToEncodeOpts(e){return {...v1,avoidInts:e.rejectInts,float64:!e.rejectLongFloats,flushToZero:e.rejectSubnormals,largeNegativeAsBigInt:e.rejectLargeNegatives,sortKeys:e.sortKeys}}push(e,t,r){if(this.children.push(e),this.#s){let n=$n(e)||t.toHere(r);this.#s.push(n);}return --this.left}replaceLast(e,t,r){let n,i=-1/0;if(this.children instanceof xe?(i=0,n=this.children.contents,this.children.contents=e):(i=this.children.length-1,n=this.children[i],this.children[i]=e),this.#s){let a=$n(e)||r.toHere(t.offset);this.#s[i]=a;}return n}convert(e){let t;switch(this.mt){case F.ARRAY:t=this.children;break;case F.MAP:{let r=this.#r();if(this.#e.sortKeys){let n;for(let i of r){if(n&&this.#e.sortKeys(n,i)>=0)throw new Error(`Duplicate or out of order key: "0x${i[2]}"`);n=i;}}else if(this.#e.rejectDuplicateKeys){let n=new Set;for(let[i,a,o]of r){let c=Ht(o);if(n.has(c))throw new Error(`Duplicate key: "0x${c}"`);n.add(c);}}t=this.#e.createObject(r,this.#e);break}case F.BYTE_STRING:return vN(this.children);case F.UTF8_STRING:{let r=this.children.join("");t=this.#e.boxed?qn(r,e.toHere(this.offset)):r;break}case F.TAG:t=this.children.decode(this.#e);break;default:throw new TypeError(`Invalid mt on convert: ${this.mt}`)}return this.#e.saveOriginal&&t&&typeof t=="object"&&Fn(t,e.toHere(this.offset)),t}#r(){let e=this.children,t=e.length;if(t%2)throw new Error("Missing map value");let r=new Array(t/2);if(this.#s)for(let n=0;n<t;n+=2)r[n>>1]=[e[n],e[n+1],this.#s[n]];else for(let n=0;n<t;n+=2)r[n>>1]=[e[n],e[n+1],qV];return r}};var d2=" ",KV=new TextEncoder,x1=class extends is{close="";quote='"';get isEmptyStream(){return (this.mt===F.UTF8_STRING||this.mt===F.BYTE_STRING)&&this.count===0}};function Kn(s,e,t,r){let n="";if(e===Ae.INDEFINITE)n+="_";else {if(r.diagnosticSizes===Ba.NEVER)return "";{let i=r.diagnosticSizes===Ba.ALWAYS;if(!i){let a=Ae.ZERO;if(Object.is(t,-0))a=Ae.TWO;else if(s===F.POS_INT||s===F.NEG_INT){let o=t<0,c=typeof t=="bigint"?1n:1,u=o?-t-c:t;u<=23?a=Number(u):u<=255?a=Ae.ONE:u<=65535?a=Ae.TWO:u<=4294967295?a=Ae.FOUR:a=Ae.EIGHT;}else isFinite(t)?Math.fround(t)===t?S1(t)==null?a=Ae.FOUR:a=Ae.TWO:a=Ae.EIGHT:a=Ae.TWO;i=a!==e;}i&&(n+="_",e<Ae.ONE?n+="i":n+=String(e-24));}}return n}function m2(s,e){let t={...is.defaultDecodeOptions,...e,ParentType:x1},r=new Jr(s,t),n,i,a="";for(let o of r){let[c,u,l]=o;switch(n&&(n.count>0&&l!==ct.BREAK&&(n.mt===F.MAP&&n.count%2?a+=": ":(a+=",",t.pretty||(a+=" "))),t.pretty&&(n.mt!==F.MAP||n.count%2===0)&&(a+=`
|
|
361
|
+
${d2.repeat(n.depth+1)}`)),i=is.create(o,n,t,r),c){case F.POS_INT:case F.NEG_INT:a+=String(l),a+=Kn(c,u,l,t);break;case F.SIMPLE_FLOAT:if(l!==ct.BREAK)if(typeof l=="number"){let h=Object.is(l,-0)?"-0.0":String(l);a+=h,isFinite(l)&&!/[.e]/.test(h)&&(a+=".0"),a+=Kn(c,u,l,t);}else l instanceof Zs?(a+="simple(",a+=String(l.value),a+=Kn(F.POS_INT,u,l.value,t),a+=")"):a+=String(l);break;case F.BYTE_STRING:l===1/0?(a+="(_ ",i.close=")",i.quote="'"):(a+="h'",a+=Ht(l),a+="'",a+=Kn(F.POS_INT,u,l.length,t));break;case F.UTF8_STRING:l===1/0?(a+="(_ ",i.close=")"):(a+=JSON.stringify(l),a+=Kn(F.POS_INT,u,KV.encode(l).length,t));break;case F.ARRAY:{a+="[";let h=Kn(F.POS_INT,u,l,t);a+=h,h&&(a+=" "),t.pretty&&l?i.close=`
|
|
362
|
+
${d2.repeat(i.depth)}]`:i.close="]";break}case F.MAP:{a+="{";let h=Kn(F.POS_INT,u,l,t);a+=h,h&&(a+=" "),t.pretty&&l?i.close=`
|
|
363
|
+
${d2.repeat(i.depth)}}`:i.close="}";break}case F.TAG:a+=String(l),a+=Kn(F.POS_INT,u,l,t),a+="(",i.close=")";break}if(i===ct.BREAK)if(n?.isStreaming)n.left=0;else throw new Error("Unexpected BREAK");else n&&(n.count++,n.left--);for(i instanceof x1&&(n=i);n?.done;){if(n.isEmptyStream)a=a.slice(0,-3),a+=`${n.quote}${n.quote}_`;else {if(n.mt===F.MAP&&n.count%2!==0)throw new Error(`Odd streaming map size: ${n.count}`);a+=n.close;}n=n.parent;}}return a}var WV=new TextDecoder,wh=class extends is{depth=0;leaf=!1;value;length;[ct.ENCODED];constructor(e,t,r,n){super(e,t,r,n),this.parent?this.depth=this.parent.depth+1:this.depth=n.initialDepth,[,,this.value,,this.length]=e;}numBytes(){switch(this.ai){case Ae.ONE:return 1;case Ae.TWO:return 2;case Ae.FOUR:return 4;case Ae.EIGHT:return 8}return 0}};function PN(s){return s instanceof wh}function A1(s,e){return s===1/0?"Indefinite":e?`${s} ${e}${s!==1&&s!==1n?"s":""}`:String(s)}function yh(s){return "".padStart(s," ")}function BN(s,e,t){let r="";r+=yh(s.depth*2);let n=$n(s);r+=Ht(n.subarray(0,1));let i=s.numBytes();i&&(r+=" ",r+=Ht(n.subarray(1,i+1))),r=r.padEnd(e.minCol+1," "),r+="-- ",t!==void 0&&(r+=yh(s.depth*2),t!==""&&(r+=`[${t}] `));let a=!1,[o]=s.children;switch(s.mt){case F.POS_INT:r+=`Unsigned: ${o}`,typeof o=="bigint"&&(r+="n");break;case F.NEG_INT:r+=`Negative: ${o}`,typeof o=="bigint"&&(r+="n");break;case F.BYTE_STRING:r+=`Bytes (Length: ${A1(s.length)})`;break;case F.UTF8_STRING:r+=`UTF8 (Length: ${A1(s.length)})`,s.length!==1/0&&(r+=`: ${JSON.stringify(o)}`);break;case F.ARRAY:r+=`Array (Length: ${A1(s.value,"item")})`;break;case F.MAP:r+=`Map (Length: ${A1(s.value,"pair")})`;break;case F.TAG:{r+=`Tag #${s.value}`;let c=s.children,[u]=c.contents.children,l=new xe(c.tag,u);Fn(l,n);let h=l.comment(e,s.depth);h&&(r+=": ",r+=h),a||=l.noChildren;break}case F.SIMPLE_FLOAT:o===ct.BREAK?r+="BREAK":s.ai>Ae.ONE?Object.is(o,-0)?r+="Float: -0":r+=`Float: ${o}`:(r+="Simple: ",o instanceof Zs?r+=o.value:r+=o);break}if(!a)if(s.leaf){if(r+=`
|
|
364
|
+
`,n.length>i+1){let c=yh((s.depth+1)*2),u=hh(n);if(u?.length){u.sort((h,m)=>h[0]-m[0]||m[1]-h[1]);let l=0;for(let[h,m,y]of u)if(!(h<l)){if(l=h+m,y==="<<"){r+=yh(e.minCol+1),r+="--",r+=c,r+="<< ";let g=dh(n,h,h+m),w=hh(g);if(w){let S=w.findIndex(([C,N,x])=>C===0&&N===m&&x==="<<");S>=0&&w.splice(S,1);}r+=m2(g),r+=` >>
|
|
365
|
+
`,r+=I1(g,{initialDepth:s.depth+1,minCol:e.minCol,noPrefixHex:!0});continue}else y==="'"&&(r+=yh(e.minCol+1),r+="--",r+=c,r+="'",r+=WV.decode(n.subarray(h,h+m)),r+=`'
|
|
366
366
|
`);if(h>i)for(let g=h;g<h+m;g+=8){let w=Math.min(g+8,h+m);r+=c,r+=Ht(n.subarray(g,w)),r+=`
|
|
367
367
|
`;}}}else for(let l=i+1;l<n.length;l+=8)r+=c,r+=Ht(n.subarray(l,l+8)),r+=`
|
|
368
368
|
`;}}else {r+=`
|
|
369
|
-
`;let c=0;for(let u of s.children){if(
|
|
370
|
-
`;return a+=
|
|
369
|
+
`;let c=0;for(let u of s.children){if(PN(u)){let l=String(c);s.mt===F.MAP?l=c%2?`val ${(c-1)/2}`:`key ${c/2}`:s.mt===F.TAG&&(l=""),r+=BN(u,e,l);}c++;}}return r}var JV={...is.defaultDecodeOptions,initialDepth:0,noPrefixHex:!1,minCol:0};function I1(s,e){let t={...JV,...e,ParentType:wh,saveOriginal:!0},r=new Jr(s,t),n,i;for(let o of r){if(i=is.create(o,n,t,r),o[2]===ct.BREAK)if(n?.isStreaming)n.left=1;else throw new Error("Unexpected BREAK");if(!PN(i)){let l=new wh(o,0,n,t);l.leaf=!0,l.children.push(i),Fn(l,r.toHere(o[3])),i=l;}let c=(i.depth+1)*2,u=i.numBytes();for(u&&(c+=1,c+=u*2),t.minCol=Math.max(t.minCol,c),n&&n.push(i,r,o[3]),n=i;n?.done;)i=n,i.leaf||Fn(i,r.toHere(i.offset)),{parent:n}=n;}e&&(e.minCol=t.minCol);let a=t.noPrefixHex?"":`0x${Ht(r.toHere(0))}
|
|
370
|
+
`;return a+=BN(i,t),a}var ON=!xN();function UN(s){if(typeof s=="object"&&s){if(s.constructor!==Number)throw new Error(`Expected number: ${s}`)}else if(typeof s!="number")throw new Error(`Expected number: ${s}`)}function Jn(s){if(typeof s=="object"&&s){if(s.constructor!==String)throw new Error(`Expected string: ${s}`)}else if(typeof s!="string")throw new Error(`Expected string: ${s}`)}function Oa(s){if(!(s instanceof Uint8Array))throw new Error(`Expected Uint8Array: ${s}`)}function HN(s){if(!Array.isArray(s))throw new Error(`Expected Array: ${s}`)}ft(Map,(s,e,t)=>{let r=[...s.entries()].map(n=>[n[0],n[1],Wr(n[0],t)]);if(t.rejectDuplicateKeys){let n=new Set;for(let[i,a,o]of r){let c=Ht(o);if(n.has(c))throw new Error(`Duplicate map key: 0x${c}`);n.add(c);}}t.sortKeys&&r.sort(t.sortKeys),E1(s,s.size,F.MAP,e,t);for(let[n,i,a]of r)e.write(a),Gn(i,e,t);});function RN(s){return Jn(s.contents),new Date(s.contents)}RN.comment=s=>(Jn(s.contents),`(String Date) ${new Date(s.contents).toISOString()}`),xe.registerDecoder(rt.DATE_STRING,RN);function VN(s){return UN(s.contents),new Date(s.contents*1e3)}VN.comment=s=>(UN(s.contents),`(Epoch Date) ${new Date(s.contents*1e3).toISOString()}`),xe.registerDecoder(rt.DATE_EPOCH,VN),ft(Date,s=>[rt.DATE_EPOCH,s.valueOf()/1e3]);function N1(s,e,t){if(Oa(e.contents),t.rejectBigInts)throw new Error(`Decoding unwanted big integer: ${e}(h'${Ht(e.contents)}')`);if(t.requirePreferred&&e.contents[0]===0)throw new Error(`Decoding overly-large bigint: ${e.tag}(h'${Ht(e.contents)})`);let r=e.contents.reduce((n,i)=>n<<8n|BigInt(i),0n);if(s&&(r=-1n-r),t.requirePreferred&&r>=Number.MIN_SAFE_INTEGER&&r<=Number.MAX_SAFE_INTEGER)throw new Error(`Decoding bigint that could have been int: ${r}n`);return t.boxed?qn(r,e.contents):r}var DN=N1.bind(null,!1),LN=N1.bind(null,!0);DN.comment=(s,e)=>`(Positive BigInt) ${N1(!1,s,e)}n`,LN.comment=(s,e)=>`(Negative BigInt) ${N1(!0,s,e)}n`,xe.registerDecoder(rt.POS_BIGINT,DN),xe.registerDecoder(rt.NEG_BIGINT,LN);function p2(s,e){return Oa(s.contents),s}p2.comment=(s,e,t)=>{Oa(s.contents);let r={...e,initialDepth:t+2,noPrefixHex:!0},n=$n(s),i=2**((n[0]&31)-24)+1,a=n[i]&31,o=Ht(n.subarray(i,++i));a>=24&&(o+=" ",o+=Ht(n.subarray(i,i+2**(a-24)))),r.minCol=Math.max(r.minCol,(t+1)*2+o.length);let c=I1(s.contents,r),u=`Embedded CBOR
|
|
371
371
|
`;return u+=`${"".padStart((t+1)*2," ")}${o}`.padEnd(r.minCol+1," "),u+=`-- Bytes (Length: ${s.contents.length})
|
|
372
|
-
`,u+=c,u},g2.noChildren=!0,xe.registerDecoder(rt.CBOR,g2),xe.registerDecoder(rt.URI,s=>(Jn(s.contents),new URL(s.contents)),"URI"),ft(URL,s=>[rt.URI,s.toString()]),xe.registerDecoder(rt.BASE64URL,s=>(Jn(s.contents),xN(s.contents)),"Base64url-encoded"),xe.registerDecoder(rt.BASE64,s=>(Jn(s.contents),mh(s.contents)),"Base64-encoded"),xe.registerDecoder(35,s=>(Jn(s.contents),new RegExp(s.contents)),"RegExp"),xe.registerDecoder(21065,s=>{Jn(s.contents);let e=`^(?:${s.contents})$`;return new RegExp(e,"u")},"I-RegExp"),xe.registerDecoder(rt.REGEXP,s=>{if(_N(s.contents),s.contents.length<1||s.contents.length>2)throw new Error(`Invalid RegExp Array: ${s.contents}`);return new RegExp(s.contents[0],s.contents[1])},"RegExp"),ft(RegExp,s=>[rt.REGEXP,[s.source,s.flags]]),xe.registerDecoder(64,s=>(Oa(s.contents),s.contents),"uint8 Typed Array");function zt(s,e,t){Oa(s.contents);let r=s.contents.length;if(r%e.BYTES_PER_ELEMENT!==0)throw new Error(`Number of bytes must be divisible by ${e.BYTES_PER_ELEMENT}, got: ${r}`);r/=e.BYTES_PER_ELEMENT;let n=new e(r),i=new DataView(s.contents.buffer,s.contents.byteOffset,s.contents.byteLength),a=i[`get${e.name.replace(/Array/,"")}`].bind(i);for(let o=0;o<r;o++)n[o]=a(o*e.BYTES_PER_ELEMENT,t);return n}function Wn(s,e,t,r,n){let i=n.forceEndian??RN;if(gh(i?e:t,s,n),Is(r.byteLength,s,q.BYTE_STRING),RN===i)s.write(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));else {let a=`write${r.constructor.name.replace(/Array/,"")}`,o=s[a].bind(s);for(let c of r)o(c,i);}}xe.registerDecoder(65,s=>zt(s,Uint16Array,!1),"uint16, big endian, Typed Array"),xe.registerDecoder(66,s=>zt(s,Uint32Array,!1),"uint32, big endian, Typed Array"),xe.registerDecoder(67,s=>zt(s,BigUint64Array,!1),"uint64, big endian, Typed Array"),xe.registerDecoder(68,s=>(Oa(s.contents),new Uint8ClampedArray(s.contents)),"uint8 Typed Array, clamped arithmetic"),ft(Uint8ClampedArray,s=>[68,new Uint8Array(s.buffer,s.byteOffset,s.byteLength)]),xe.registerDecoder(69,s=>zt(s,Uint16Array,!0),"uint16, little endian, Typed Array"),ft(Uint16Array,(s,e,t)=>Wn(e,69,65,s,t)),xe.registerDecoder(70,s=>zt(s,Uint32Array,!0),"uint32, little endian, Typed Array"),ft(Uint32Array,(s,e,t)=>Wn(e,70,66,s,t)),xe.registerDecoder(71,s=>zt(s,BigUint64Array,!0),"uint64, little endian, Typed Array"),ft(BigUint64Array,(s,e,t)=>Wn(e,71,67,s,t)),xe.registerDecoder(72,s=>(Oa(s.contents),new Int8Array(s.contents)),"sint8 Typed Array"),ft(Int8Array,s=>[72,new Uint8Array(s.buffer,s.byteOffset,s.byteLength)]),xe.registerDecoder(73,s=>zt(s,Int16Array,!1),"sint16, big endian, Typed Array"),xe.registerDecoder(74,s=>zt(s,Int32Array,!1),"sint32, big endian, Typed Array"),xe.registerDecoder(75,s=>zt(s,BigInt64Array,!1),"sint64, big endian, Typed Array"),xe.registerDecoder(77,s=>zt(s,Int16Array,!0),"sint16, little endian, Typed Array"),ft(Int16Array,(s,e,t)=>Wn(e,77,73,s,t)),xe.registerDecoder(78,s=>zt(s,Int32Array,!0),"sint32, little endian, Typed Array"),ft(Int32Array,(s,e,t)=>Wn(e,78,74,s,t)),xe.registerDecoder(79,s=>zt(s,BigInt64Array,!0),"sint64, little endian, Typed Array"),ft(BigInt64Array,(s,e,t)=>Wn(e,79,75,s,t)),xe.registerDecoder(81,s=>zt(s,Float32Array,!1),"IEEE 754 binary32, big endian, Typed Array"),xe.registerDecoder(82,s=>zt(s,Float64Array,!1),"IEEE 754 binary64, big endian, Typed Array"),xe.registerDecoder(85,s=>zt(s,Float32Array,!0),"IEEE 754 binary32, little endian, Typed Array"),ft(Float32Array,(s,e,t)=>Wn(e,85,81,s,t)),xe.registerDecoder(86,s=>zt(s,Float64Array,!0),"IEEE 754 binary64, big endian, Typed Array"),ft(Float64Array,(s,e,t)=>Wn(e,86,82,s,t)),xe.registerDecoder(rt.SET,(s,e)=>{if(_N(s.contents),e.sortKeys){let t=is.decodeToEncodeOpts(e),r=null;for(let n of s.contents){let i=[n,void 0,Wr(n,t)];if(r&&e.sortKeys(r,i)>=0)throw new Error(`Set items out of order in tag #${rt.SET}`);r=i;}}return new Set(s.contents)},"Set"),ft(Set,(s,e,t)=>{let r=[...s];if(t.sortKeys){let n=r.map(i=>[i,void 0,Wr(i,t)]);n.sort(t.sortKeys),r=n.map(([i])=>i);}return [rt.SET,r]}),xe.registerDecoder(rt.JSON,s=>(Jn(s.contents),JSON.parse(s.contents)),"JSON-encoded"),xe.registerDecoder(rt.SELF_DESCRIBED,s=>s.contents,"Self-Described"),xe.registerDecoder(rt.INVALID_16,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_16}`)},"Invalid"),xe.registerDecoder(rt.INVALID_32,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_32}`)},"Invalid"),xe.registerDecoder(rt.INVALID_64,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_64}`)},"Invalid");function y2(s){throw new Error(`Encoding ${s.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}ft(ArrayBuffer,y2),ft(DataView,y2),typeof SharedArrayBuffer<"u"&&ft(SharedArrayBuffer,y2);function N1(s){return [NaN,s.valueOf()]}ft(Boolean,N1),ft(Number,N1),ft(String,N1),ft(BigInt,N1);var JV="[object ArrayBuffer]",ae=class s{static isArrayBuffer(e){return Object.prototype.toString.call(e)===JV}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let r=s.toUint8Array(e),n=s.toUint8Array(t);if(r.length!==n.byteLength)return !1;for(let i=0;i<r.length;i++)if(r[i]!==n[i])return !1;return !0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let r=0;for(let a of t)r+=a.byteLength;let n=new Uint8Array(r),i=0;for(let a of t){let o=this.toUint8Array(a);n.set(o,i),i+=o.length;}return e[e.length-1]instanceof Function?this.toView(n,e[e.length-1]):n.buffer}},w2="string",zV=/^[0-9a-f\s]+$/i,YV=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,ZV=/^[a-zA-Z0-9-_]+$/,k1=class{static fromString(e){let t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r.buffer}static toString(e){let t=ae.toUint8Array(e),r="";for(let i=0;i<t.length;i++)r+=String.fromCharCode(t[i]);return decodeURIComponent(escape(r))}},Os=class{static toString(e,t=!1){let r=ae.toArrayBuffer(e),n=new DataView(r),i="";for(let a=0;a<r.byteLength;a+=2){let o=n.getUint16(a,t);i+=String.fromCharCode(o);}return i}static fromString(e,t=!1){let r=new ArrayBuffer(e.length*2),n=new DataView(r);for(let i=0;i<e.length;i++)n.setUint16(i*2,e.charCodeAt(i),t);return r}},fe=class s{static isHex(e){return typeof e===w2&&zV.test(e)}static isBase64(e){return typeof e===w2&&YV.test(e)}static isBase64Url(e){return typeof e===w2&&ZV.test(e)}static ToString(e,t="utf8"){let r=ae.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(r);case"binary":return this.ToBinary(r);case"hex":return this.ToHex(r);case"base64":return this.ToBase64(r);case"base64url":return this.ToBase64Url(r);case"utf16le":return Os.toString(r,!0);case"utf16":case"utf16be":return Os.toString(r);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Os.fromString(e,!0);case"utf16":case"utf16be":return Os.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=ae.toUint8Array(e);if(typeof btoa<"u"){let r=this.ToString(t,"binary");return btoa(r)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return k1.fromString(e);case"utf16":case"utf16be":return Os.fromString(e);case"utf16le":case"usc2":return Os.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return k1.toString(e);case"utf16":case"utf16be":return Os.toString(e);case"utf16le":case"usc2":return Os.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);return r.buffer}static ToBinary(e){let t=ae.toUint8Array(e),r="";for(let n=0;n<t.length;n++)r+=String.fromCharCode(t[n]);return r}static ToHex(e){let t=ae.toUint8Array(e),r="",n=t.length;for(let i=0;i<n;i++){let a=t[i];a<16&&(r+="0"),r+=a.toString(16);}return r}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n=n+2){let i=t.slice(n,n+2);r[n/2]=parseInt(i,16);}return r.buffer}static ToUtf16String(e,t=!1){return Os.toString(e,t)}static FromUtf16String(e,t=!1){return Os.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let r=0;r<t;r++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};fe.DEFAULT_UTF8_ENCODING="utf8";function d(s,e,t){var r;return s instanceof Object&&(r=s[e])!==null&&r!==void 0?r:t}function P1(s,e=0,t=s.byteLength-e,r=!1){let n="";for(let i of new Uint8Array(s,e,t)){let a=i.toString(16).toUpperCase();a.length===1&&(n+="0"),n+=a,r&&(n+=" ");}return n.trim()}function zr(s,e){let t=0;if(s.length===1)return s[0];for(let r=s.length-1;r>=0;r--)t+=s[s.length-1-r]*Math.pow(2,e*r);return t}function Xs(s,e,t=-1){let r=t,n=s,i=0,a=Math.pow(2,e);for(let o=1;o<8;o++){if(s<a){let c;if(r<0)c=new ArrayBuffer(o),i=o;else {if(r<o)return new ArrayBuffer(0);c=new ArrayBuffer(r),i=r;}let u=new Uint8Array(c);for(let l=o-1;l>=0;l--){let h=Math.pow(2,l*e);u[i-l-1]=Math.floor(n/h),n-=u[i-l-1]*h;}return c}a*=Math.pow(2,e);}return new ArrayBuffer(0)}function Ra(...s){let e=0,t=0;for(let i of s)e+=i.byteLength;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(new Uint8Array(i),t),t+=i.byteLength;return r}function B1(...s){let e=0,t=0;for(let i of s)e+=i.length;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(i,t),t+=i.length;return n}function b2(){let s=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let o=s[0]===255&&s[1]&128,c=s[0]===0&&(s[1]&128)===0;(o||c)&&this.warnings.push("Needlessly long format");}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let o=0;o<this.valueHex.byteLength;o++)t[o]=0;t[0]=s[0]&128;let r=zr(t,8),n=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(n);for(let o=0;o<this.valueHex.byteLength;o++)i[o]=s[o];return i[0]&=127,zr(i,8)-r}function MN(s){let e=s<0?s*-1:s,t=128;for(let r=1;r<8;r++){if(e<=t){if(s<0){let a=t-e,o=Xs(a,8,r),c=new Uint8Array(o);return c[0]|=128,o}let n=Xs(e,8,r),i=new Uint8Array(n);if(i[0]&128){let a=n.slice(0),o=new Uint8Array(a);n=new ArrayBuffer(n.byteLength+1),i=new Uint8Array(n);for(let c=0;c<a.byteLength;c++)i[c+1]=o[c];i[0]=0;}return n}t*=Math.pow(2,8);}return new ArrayBuffer(0)}function zn(s,e){if(s.byteLength!==e.byteLength)return !1;let t=new Uint8Array(s),r=new Uint8Array(e);for(let n=0;n<t.length;n++)if(t[n]!==r[n])return !1;return !0}function ds(s,e){let t=s.toString(10);if(e<t.length)return "";let r=e-t.length,n=new Array(r);for(let a=0;a<r;a++)n[a]="0";return n.join("").concat(t)}var $N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",qN="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";function O1(s,e=!1,t=!1,r=!1){let n=0,i=0,a=0,o="",c=e?qN:$N;if(r){let u=0;for(let l=0;l<s.length;l++)if(s.charCodeAt(l)!==0){u=l;break}s=s.slice(u);}for(;n<s.length;){let u=s.charCodeAt(n++);n>=s.length&&(i=1);let l=s.charCodeAt(n++);n>=s.length&&(a=1);let h=s.charCodeAt(n++),m=u>>2,y=(u&3)<<4|l>>4,g=(l&15)<<2|h>>6,w=h&63;i===1?g=w=64:a===1&&(w=64),t?g===64?o+=`${c.charAt(m)}${c.charAt(y)}`:w===64?o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}`:o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}${c.charAt(w)}`:o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}${c.charAt(w)}`;}return o}function Jc(s,e=!1,t=!1){let r=e?qN:$N;function n(c){for(let u=0;u<64;u++)if(r.charAt(u)===c)return u;return 64}function i(c){return c===64?0:c}let a=0,o="";for(;a<s.length;){let c=n(s.charAt(a++)),u=a>=s.length?0:n(s.charAt(a++)),l=a>=s.length?0:n(s.charAt(a++)),h=a>=s.length?0:n(s.charAt(a++)),m=i(c)<<2|i(u)>>4,y=(i(u)&15)<<4|i(l)>>2,g=(i(l)&3)<<6|i(h);o+=String.fromCharCode(m),l!==64&&(o+=String.fromCharCode(y)),h!==64&&(o+=String.fromCharCode(g));}if(t){let c=o.length,u=-1;for(let l=c-1;l>=0;l--)if(o.charCodeAt(l)!==0){u=l;break}u!==-1?o=o.slice(0,u+1):o="";}return o}function bh(s){let e="",t=new Uint8Array(s);for(let r of t)e+=String.fromCharCode(r);return e}function Va(s){let e=s.length,t=new ArrayBuffer(e),r=new Uint8Array(t);for(let n=0;n<e;n++)r[n]=s.charCodeAt(n);return t}var XV=Math.log(2);function FN(s){let e=Math.log(s)/XV,t=Math.floor(e),r=Math.round(e);return t===r?t:r}function V(s,e){for(let t of e)delete s[t];}function R1(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function v2(s){let e=0,t=0;for(let n=0;n<s.length;n++){let i=s[n];e+=i.byteLength;}let r=new Uint8Array(e);for(let n=0;n<s.length;n++){let i=s[n];r.set(new Uint8Array(i),t),t+=i.byteLength;}return r.buffer}function Qr(s,e,t,r){return e instanceof Uint8Array?e.byteLength?t<0?(s.error="Wrong parameter: inputOffset less than zero",!1):r<0?(s.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-r<0?(s.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(s.error="Wrong parameter: inputBuffer has zero length",!1):(s.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var Eh=class{constructor(){this.items=[];}write(e){this.items.push(e);}final(){return v2(this.items)}},Sh=[new Uint8Array([1])],GN="0123456789",S2="name",WN="valueHexView",QV="isHexOnly",eD="idBlock",tD="tagClass",sD="tagNumber",rD="isConstructed",nD="fromBER",iD="toBER",aD="local",ms="",Sr=new ArrayBuffer(0),sy=new Uint8Array(0),xh="EndOfContent",zN="OCTET STRING",YN="BIT STRING";function en(s){var e;return e=class extends s{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(r){this.valueHexView=new Uint8Array(r);}constructor(...r){var n;super(...r);let i=r[0]||{};this.isHexOnly=(n=i.isHexOnly)!==null&&n!==void 0?n:!1,this.valueHexView=i.valueHex?ae.toUint8Array(i.valueHex):sy;}fromBER(r,n,i){let a=r instanceof ArrayBuffer?new Uint8Array(r):r;if(!Qr(this,a,n,i))return -1;let o=n+i;return this.valueHexView=a.subarray(n,o),this.valueHexView.length?(this.blockLength=i,o):(this.warnings.push("Zero buffer length"),n)}toBER(r=!1){return this.isHexOnly?r?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",Sr)}toJSON(){return {...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:fe.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Yr=class{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e);}constructor({blockLength:e=0,error:t=ms,warnings:r=[],valueBeforeDecode:n=sy}={}){this.blockLength=e,this.error=t,this.warnings=r,this.valueBeforeDecodeView=ae.toUint8Array(n);}toJSON(){return {blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:fe.ToHex(this.valueBeforeDecodeView)}}};Yr.NAME="baseBlock";var Yt=class extends Yr{fromBER(e,t,r){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Yt.NAME="valueBlock";var V1=class extends en(Yr){constructor({idBlock:e={}}={}){var t,r,n,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?ae.toUint8Array(e.valueHex):sy,this.tagClass=(r=e.tagClass)!==null&&r!==void 0?r:-1,this.tagNumber=(n=e.tagNumber)!==null&&n!==void 0?n:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1);}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",Sr}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let n=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,n[0]=t;}return n.buffer}if(!this.isHexOnly){let n=Xs(this.tagNumber,7),i=new Uint8Array(n),a=n.byteLength,o=new Uint8Array(a+1);if(o[0]=t|31,!e){for(let c=0;c<a-1;c++)o[c+1]=i[c]|128;o[a]=i[a-1];}return o.buffer}let r=new Uint8Array(this.valueHexView.byteLength+1);if(r[0]=t|31,!e){let n=this.valueHexView;for(let i=0;i<n.length-1;i++)r[i+1]=n[i]|128;r[this.valueHexView.byteLength]=n[n.length-1];}return r.buffer}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let o=i[0]&31;if(o!==31)this.tagNumber=o,this.blockLength=1;else {let c=1,u=this.valueHexView=new Uint8Array(255),l=255;for(;i[c]&128;){if(u[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===l){l+=255;let m=new Uint8Array(l);for(let y=0;y<u.length;y++)m[y]=u[y];u=this.valueHexView=new Uint8Array(l);}}this.blockLength=c+1,u[c-1]=i[c]&127;let h=new Uint8Array(c);for(let m=0;m<c;m++)h[m]=u[m];u=this.valueHexView=new Uint8Array(c),u.set(h),this.blockLength<=9?this.tagNumber=zr(u,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"));}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return {...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};V1.NAME="identificationBlock";var D1=class extends Yr{constructor({lenBlock:e={}}={}){var t,r,n;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(r=e.longFormUsed)!==null&&r!==void 0?r:!1,this.length=(n=e.length)!==null&&n!==void 0?n:0;}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let a=i[0]&127;if(a>8)return this.error="Too big integer",-1;if(a+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let o=t+1,c=n.subarray(o,o+a);return c[a-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=zr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=a+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){let n=Xs(this.length,8);if(n.byteLength>127)return this.error="Too big length",Sr;if(t=new ArrayBuffer(n.byteLength+1),e)return t;let i=new Uint8Array(n);r=new Uint8Array(t),r[0]=n.byteLength|128;for(let a=0;a<n.byteLength;a++)r[a+1]=i[a];return t}return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=this.length),t}toJSON(){return {...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};D1.NAME="lengthBlock";var X={},_t=class extends Yr{constructor({name:e=ms,optional:t=!1,primitiveSchema:r,...n}={},i){super(n),this.name=e,this.optional=t,r&&(this.primitiveSchema=r),this.idBlock=new V1(n),this.lenBlock=new D1(n),this.valueBlock=i?new i(n):new Yt(n);}fromBER(e,t,r){let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}toBER(e,t){let r=t||new Eh;t||ZN(this);let n=this.idBlock.toBER(e);if(r.write(n),this.lenBlock.isIndefiniteForm)r.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,r),r.write(new ArrayBuffer(2));else {let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let a=this.lenBlock.toBER(e);r.write(a),r.write(i);}return t?Sr:r.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():fe.ToHex(this.toBER())}onAsciiEncoding(){let e=this.constructor.NAME,t=fe.ToHex(this.valueBlock.valueBeforeDecodeView);return `${e} : ${t}`}isEqual(e){if(this===e)return !0;if(!(e instanceof this.constructor))return !1;let t=this.toBER(),r=e.toBER();return zn(t,r)}};_t.NAME="BaseBlock";function ZN(s){var e;if(s instanceof X.Constructed)for(let t of s.valueBlock.value)ZN(t)&&(s.lenBlock.isIndefiniteForm=!0);return !!(!((e=s.lenBlock)===null||e===void 0)&&e.isIndefiniteForm)}var L1=class extends _t{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e;}constructor({value:e=ms,...t}={},r){super(t,r),e&&this.fromString(e);}fromBER(e,t,r){let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}onAsciiEncoding(){return `${this.constructor.NAME} : '${this.valueBlock.value}'`}};L1.NAME="BaseStringBlock";var U1=class extends en(Yt){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e;}};U1.NAME="PrimitiveValueBlock";var XN,oe=class extends _t{constructor(e={}){super(e,U1),this.idBlock.isConstructed=!1;}};XN=oe;X.Primitive=XN;oe.NAME="PRIMITIVE";function oD(s,e){if(s instanceof e)return s;let t=new e;return t.idBlock=s.idBlock,t.lenBlock=s.lenBlock,t.warnings=s.warnings,t.valueBeforeDecodeView=s.valueBeforeDecodeView,t}function Nh(s,e=0,t=s.length){let r=e,n=new _t({},Yt),i=new Yr;if(!Qr(i,s,e,t))return n.error=i.error,{offset:-1,result:n};if(!s.subarray(e,e+t).length)return n.error="Zero buffer length",{offset:-1,result:n};let o=n.idBlock.fromBER(s,e,t);if(n.idBlock.warnings.length&&n.warnings.concat(n.idBlock.warnings),o===-1)return n.error=n.idBlock.error,{offset:-1,result:n};if(e=o,t-=n.idBlock.blockLength,o=n.lenBlock.fromBER(s,e,t),n.lenBlock.warnings.length&&n.warnings.concat(n.lenBlock.warnings),o===-1)return n.error=n.lenBlock.error,{offset:-1,result:n};if(e=o,t-=n.lenBlock.blockLength,!n.idBlock.isConstructed&&n.lenBlock.isIndefiniteForm)return n.error="Indefinite length form used for primitive encoding form",{offset:-1,result:n};let c=_t;switch(n.idBlock.tagClass){case 1:if(n.idBlock.tagNumber>=37&&n.idBlock.isHexOnly===!1)return n.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:n};switch(n.idBlock.tagNumber){case 0:if(n.idBlock.isConstructed&&n.lenBlock.length>0)return n.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:n};c=X.EndOfContent;break;case 1:c=X.Boolean;break;case 2:c=X.Integer;break;case 3:c=X.BitString;break;case 4:c=X.OctetString;break;case 5:c=X.Null;break;case 6:c=X.ObjectIdentifier;break;case 10:c=X.Enumerated;break;case 12:c=X.Utf8String;break;case 13:c=X.RelativeObjectIdentifier;break;case 14:c=X.TIME;break;case 15:return n.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:n};case 16:c=X.Sequence;break;case 17:c=X.Set;break;case 18:c=X.NumericString;break;case 19:c=X.PrintableString;break;case 20:c=X.TeletexString;break;case 21:c=X.VideotexString;break;case 22:c=X.IA5String;break;case 23:c=X.UTCTime;break;case 24:c=X.GeneralizedTime;break;case 25:c=X.GraphicString;break;case 26:c=X.VisibleString;break;case 27:c=X.GeneralString;break;case 28:c=X.UniversalString;break;case 29:c=X.CharacterString;break;case 30:c=X.BmpString;break;case 31:c=X.DATE;break;case 32:c=X.TimeOfDay;break;case 33:c=X.DateTime;break;case 34:c=X.Duration;break;default:{let u=n.idBlock.isConstructed?new X.Constructed:new X.Primitive;u.idBlock=n.idBlock,u.lenBlock=n.lenBlock,u.warnings=n.warnings,n=u;}}break;case 2:case 3:case 4:default:c=n.idBlock.isConstructed?X.Constructed:X.Primitive;}return n=oD(n,c),o=n.fromBER(s,e,n.lenBlock.isIndefiniteForm?t:n.lenBlock.length),n.valueBeforeDecodeView=s.subarray(r,r+n.blockLength),{offset:o,result:n}}function pt(s){if(!s.byteLength){let e=new _t({},Yt);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Nh(ae.toUint8Array(s).slice(),0,s.byteLength)}function cD(s,e){return s?1:e}var wr=class extends Yt{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t;}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;cD(this.isIndefiniteForm,r)>0;){let a=Nh(n,i,r);if(a.offset===-1)return this.error=a.result.error,this.warnings.concat(a.result.warnings),-1;if(i=a.offset,this.blockLength+=a.result.blockLength,r-=a.result.blockLength,this.value.push(a.result),this.isIndefiniteForm&&a.result.constructor.NAME===xh)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===xh?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let r=t||new Eh;for(let n=0;n<this.value.length;n++)this.value[n].toBER(e,r);return t?Sr:r.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};wr.NAME="ConstructedValueBlock";var QN,A=class extends _t{constructor(e={}){super(e,wr),this.idBlock.isConstructed=!0;}fromBER(e,t,r){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}onAsciiEncoding(){let e=[];for(let r of this.valueBlock.value)e.push(r.toString("ascii").split(`
|
|
372
|
+
`,u+=c,u},p2.noChildren=!0,xe.registerDecoder(rt.CBOR,p2),xe.registerDecoder(rt.URI,s=>(Jn(s.contents),new URL(s.contents)),"URI"),ft(URL,s=>[rt.URI,s.toString()]),xe.registerDecoder(rt.BASE64URL,s=>(Jn(s.contents),EN(s.contents)),"Base64url-encoded"),xe.registerDecoder(rt.BASE64,s=>(Jn(s.contents),mh(s.contents)),"Base64-encoded"),xe.registerDecoder(35,s=>(Jn(s.contents),new RegExp(s.contents)),"RegExp"),xe.registerDecoder(21065,s=>{Jn(s.contents);let e=`^(?:${s.contents})$`;return new RegExp(e,"u")},"I-RegExp"),xe.registerDecoder(rt.REGEXP,s=>{if(HN(s.contents),s.contents.length<1||s.contents.length>2)throw new Error(`Invalid RegExp Array: ${s.contents}`);return new RegExp(s.contents[0],s.contents[1])},"RegExp"),ft(RegExp,s=>[rt.REGEXP,[s.source,s.flags]]),xe.registerDecoder(64,s=>(Oa(s.contents),s.contents),"uint8 Typed Array");function zt(s,e,t){Oa(s.contents);let r=s.contents.length;if(r%e.BYTES_PER_ELEMENT!==0)throw new Error(`Number of bytes must be divisible by ${e.BYTES_PER_ELEMENT}, got: ${r}`);r/=e.BYTES_PER_ELEMENT;let n=new e(r),i=new DataView(s.contents.buffer,s.contents.byteOffset,s.contents.byteLength),a=i[`get${e.name.replace(/Array/,"")}`].bind(i);for(let o=0;o<r;o++)n[o]=a(o*e.BYTES_PER_ELEMENT,t);return n}function Wn(s,e,t,r,n){let i=n.forceEndian??ON;if(gh(i?e:t,s,n),Is(r.byteLength,s,F.BYTE_STRING),ON===i)s.write(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));else {let a=`write${r.constructor.name.replace(/Array/,"")}`,o=s[a].bind(s);for(let c of r)o(c,i);}}xe.registerDecoder(65,s=>zt(s,Uint16Array,!1),"uint16, big endian, Typed Array"),xe.registerDecoder(66,s=>zt(s,Uint32Array,!1),"uint32, big endian, Typed Array"),xe.registerDecoder(67,s=>zt(s,BigUint64Array,!1),"uint64, big endian, Typed Array"),xe.registerDecoder(68,s=>(Oa(s.contents),new Uint8ClampedArray(s.contents)),"uint8 Typed Array, clamped arithmetic"),ft(Uint8ClampedArray,s=>[68,new Uint8Array(s.buffer,s.byteOffset,s.byteLength)]),xe.registerDecoder(69,s=>zt(s,Uint16Array,!0),"uint16, little endian, Typed Array"),ft(Uint16Array,(s,e,t)=>Wn(e,69,65,s,t)),xe.registerDecoder(70,s=>zt(s,Uint32Array,!0),"uint32, little endian, Typed Array"),ft(Uint32Array,(s,e,t)=>Wn(e,70,66,s,t)),xe.registerDecoder(71,s=>zt(s,BigUint64Array,!0),"uint64, little endian, Typed Array"),ft(BigUint64Array,(s,e,t)=>Wn(e,71,67,s,t)),xe.registerDecoder(72,s=>(Oa(s.contents),new Int8Array(s.contents)),"sint8 Typed Array"),ft(Int8Array,s=>[72,new Uint8Array(s.buffer,s.byteOffset,s.byteLength)]),xe.registerDecoder(73,s=>zt(s,Int16Array,!1),"sint16, big endian, Typed Array"),xe.registerDecoder(74,s=>zt(s,Int32Array,!1),"sint32, big endian, Typed Array"),xe.registerDecoder(75,s=>zt(s,BigInt64Array,!1),"sint64, big endian, Typed Array"),xe.registerDecoder(77,s=>zt(s,Int16Array,!0),"sint16, little endian, Typed Array"),ft(Int16Array,(s,e,t)=>Wn(e,77,73,s,t)),xe.registerDecoder(78,s=>zt(s,Int32Array,!0),"sint32, little endian, Typed Array"),ft(Int32Array,(s,e,t)=>Wn(e,78,74,s,t)),xe.registerDecoder(79,s=>zt(s,BigInt64Array,!0),"sint64, little endian, Typed Array"),ft(BigInt64Array,(s,e,t)=>Wn(e,79,75,s,t)),xe.registerDecoder(81,s=>zt(s,Float32Array,!1),"IEEE 754 binary32, big endian, Typed Array"),xe.registerDecoder(82,s=>zt(s,Float64Array,!1),"IEEE 754 binary64, big endian, Typed Array"),xe.registerDecoder(85,s=>zt(s,Float32Array,!0),"IEEE 754 binary32, little endian, Typed Array"),ft(Float32Array,(s,e,t)=>Wn(e,85,81,s,t)),xe.registerDecoder(86,s=>zt(s,Float64Array,!0),"IEEE 754 binary64, big endian, Typed Array"),ft(Float64Array,(s,e,t)=>Wn(e,86,82,s,t)),xe.registerDecoder(rt.SET,(s,e)=>{if(HN(s.contents),e.sortKeys){let t=is.decodeToEncodeOpts(e),r=null;for(let n of s.contents){let i=[n,void 0,Wr(n,t)];if(r&&e.sortKeys(r,i)>=0)throw new Error(`Set items out of order in tag #${rt.SET}`);r=i;}}return new Set(s.contents)},"Set"),ft(Set,(s,e,t)=>{let r=[...s];if(t.sortKeys){let n=r.map(i=>[i,void 0,Wr(i,t)]);n.sort(t.sortKeys),r=n.map(([i])=>i);}return [rt.SET,r]}),xe.registerDecoder(rt.JSON,s=>(Jn(s.contents),JSON.parse(s.contents)),"JSON-encoded"),xe.registerDecoder(rt.SELF_DESCRIBED,s=>s.contents,"Self-Described"),xe.registerDecoder(rt.INVALID_16,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_16}`)},"Invalid"),xe.registerDecoder(rt.INVALID_32,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_32}`)},"Invalid"),xe.registerDecoder(rt.INVALID_64,()=>{throw new Error(`Tag always invalid: ${rt.INVALID_64}`)},"Invalid");function g2(s){throw new Error(`Encoding ${s.constructor.name} intentionally unimplmented. It is not concrete enough to interoperate. Convert to Uint8Array first.`)}ft(ArrayBuffer,g2),ft(DataView,g2),typeof SharedArrayBuffer<"u"&&ft(SharedArrayBuffer,g2);function C1(s){return [NaN,s.valueOf()]}ft(Boolean,C1),ft(Number,C1),ft(String,C1),ft(BigInt,C1);var YV="[object ArrayBuffer]",ae=class s{static isArrayBuffer(e){return Object.prototype.toString.call(e)===YV}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let r=s.toUint8Array(e),n=s.toUint8Array(t);if(r.length!==n.byteLength)return !1;for(let i=0;i<r.length;i++)if(r[i]!==n[i])return !1;return !0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let r=0;for(let a of t)r+=a.byteLength;let n=new Uint8Array(r),i=0;for(let a of t){let o=this.toUint8Array(a);n.set(o,i),i+=o.length;}return e[e.length-1]instanceof Function?this.toView(n,e[e.length-1]):n.buffer}},y2="string",ZV=/^[0-9a-f\s]+$/i,XV=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,QV=/^[a-zA-Z0-9-_]+$/,T1=class{static fromString(e){let t=unescape(encodeURIComponent(e)),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r.buffer}static toString(e){let t=ae.toUint8Array(e),r="";for(let i=0;i<t.length;i++)r+=String.fromCharCode(t[i]);return decodeURIComponent(escape(r))}},Os=class{static toString(e,t=!1){let r=ae.toArrayBuffer(e),n=new DataView(r),i="";for(let a=0;a<r.byteLength;a+=2){let o=n.getUint16(a,t);i+=String.fromCharCode(o);}return i}static fromString(e,t=!1){let r=new ArrayBuffer(e.length*2),n=new DataView(r);for(let i=0;i<e.length;i++)n.setUint16(i*2,e.charCodeAt(i),t);return r}},fe=class s{static isHex(e){return typeof e===y2&&ZV.test(e)}static isBase64(e){return typeof e===y2&&XV.test(e)}static isBase64Url(e){return typeof e===y2&&QV.test(e)}static ToString(e,t="utf8"){let r=ae.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(r);case"binary":return this.ToBinary(r);case"hex":return this.ToHex(r);case"base64":return this.ToBase64(r);case"base64url":return this.ToBase64Url(r);case"utf16le":return Os.toString(r,!0);case"utf16":case"utf16be":return Os.toString(r);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Os.fromString(e,!0);case"utf16":case"utf16be":return Os.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=ae.toUint8Array(e);if(typeof btoa<"u"){let r=this.ToString(t,"binary");return btoa(r)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return T1.fromString(e);case"utf16":case"utf16be":return Os.fromString(e);case"utf16le":case"usc2":return Os.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=s.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return T1.toString(e);case"utf16":case"utf16be":return Os.toString(e);case"utf16le":case"usc2":return Os.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);return r.buffer}static ToBinary(e){let t=ae.toUint8Array(e),r="";for(let n=0;n<t.length;n++)r+=String.fromCharCode(t[n]);return r}static ToHex(e){let t=ae.toUint8Array(e),r="",n=t.length;for(let i=0;i<n;i++){let a=t[i];a<16&&(r+="0"),r+=a.toString(16);}return r}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!s.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n=n+2){let i=t.slice(n,n+2);r[n/2]=parseInt(i,16);}return r.buffer}static ToUtf16String(e,t=!1){return Os.toString(e,t)}static FromUtf16String(e,t=!1){return Os.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let r=0;r<t;r++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};fe.DEFAULT_UTF8_ENCODING="utf8";function d(s,e,t){var r;return s instanceof Object&&(r=s[e])!==null&&r!==void 0?r:t}function k1(s,e=0,t=s.byteLength-e,r=!1){let n="";for(let i of new Uint8Array(s,e,t)){let a=i.toString(16).toUpperCase();a.length===1&&(n+="0"),n+=a,r&&(n+=" ");}return n.trim()}function zr(s,e){let t=0;if(s.length===1)return s[0];for(let r=s.length-1;r>=0;r--)t+=s[s.length-1-r]*Math.pow(2,e*r);return t}function Xs(s,e,t=-1){let r=t,n=s,i=0,a=Math.pow(2,e);for(let o=1;o<8;o++){if(s<a){let c;if(r<0)c=new ArrayBuffer(o),i=o;else {if(r<o)return new ArrayBuffer(0);c=new ArrayBuffer(r),i=r;}let u=new Uint8Array(c);for(let l=o-1;l>=0;l--){let h=Math.pow(2,l*e);u[i-l-1]=Math.floor(n/h),n-=u[i-l-1]*h;}return c}a*=Math.pow(2,e);}return new ArrayBuffer(0)}function Ra(...s){let e=0,t=0;for(let i of s)e+=i.byteLength;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(new Uint8Array(i),t),t+=i.byteLength;return r}function P1(...s){let e=0,t=0;for(let i of s)e+=i.length;let r=new ArrayBuffer(e),n=new Uint8Array(r);for(let i of s)n.set(i,t),t+=i.length;return n}function w2(){let s=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let o=s[0]===255&&s[1]&128,c=s[0]===0&&(s[1]&128)===0;(o||c)&&this.warnings.push("Needlessly long format");}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let o=0;o<this.valueHex.byteLength;o++)t[o]=0;t[0]=s[0]&128;let r=zr(t,8),n=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(n);for(let o=0;o<this.valueHex.byteLength;o++)i[o]=s[o];return i[0]&=127,zr(i,8)-r}function jN(s){let e=s<0?s*-1:s,t=128;for(let r=1;r<8;r++){if(e<=t){if(s<0){let a=t-e,o=Xs(a,8,r),c=new Uint8Array(o);return c[0]|=128,o}let n=Xs(e,8,r),i=new Uint8Array(n);if(i[0]&128){let a=n.slice(0),o=new Uint8Array(a);n=new ArrayBuffer(n.byteLength+1),i=new Uint8Array(n);for(let c=0;c<a.byteLength;c++)i[c+1]=o[c];i[0]=0;}return n}t*=Math.pow(2,8);}return new ArrayBuffer(0)}function zn(s,e){if(s.byteLength!==e.byteLength)return !1;let t=new Uint8Array(s),r=new Uint8Array(e);for(let n=0;n<t.length;n++)if(t[n]!==r[n])return !1;return !0}function ds(s,e){let t=s.toString(10);if(e<t.length)return "";let r=e-t.length,n=new Array(r);for(let a=0;a<r;a++)n[a]="0";return n.join("").concat(t)}var MN="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",$N="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";function B1(s,e=!1,t=!1,r=!1){let n=0,i=0,a=0,o="",c=e?$N:MN;if(r){let u=0;for(let l=0;l<s.length;l++)if(s.charCodeAt(l)!==0){u=l;break}s=s.slice(u);}for(;n<s.length;){let u=s.charCodeAt(n++);n>=s.length&&(i=1);let l=s.charCodeAt(n++);n>=s.length&&(a=1);let h=s.charCodeAt(n++),m=u>>2,y=(u&3)<<4|l>>4,g=(l&15)<<2|h>>6,w=h&63;i===1?g=w=64:a===1&&(w=64),t?g===64?o+=`${c.charAt(m)}${c.charAt(y)}`:w===64?o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}`:o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}${c.charAt(w)}`:o+=`${c.charAt(m)}${c.charAt(y)}${c.charAt(g)}${c.charAt(w)}`;}return o}function Jc(s,e=!1,t=!1){let r=e?$N:MN;function n(c){for(let u=0;u<64;u++)if(r.charAt(u)===c)return u;return 64}function i(c){return c===64?0:c}let a=0,o="";for(;a<s.length;){let c=n(s.charAt(a++)),u=a>=s.length?0:n(s.charAt(a++)),l=a>=s.length?0:n(s.charAt(a++)),h=a>=s.length?0:n(s.charAt(a++)),m=i(c)<<2|i(u)>>4,y=(i(u)&15)<<4|i(l)>>2,g=(i(l)&3)<<6|i(h);o+=String.fromCharCode(m),l!==64&&(o+=String.fromCharCode(y)),h!==64&&(o+=String.fromCharCode(g));}if(t){let c=o.length,u=-1;for(let l=c-1;l>=0;l--)if(o.charCodeAt(l)!==0){u=l;break}u!==-1?o=o.slice(0,u+1):o="";}return o}function bh(s){let e="",t=new Uint8Array(s);for(let r of t)e+=String.fromCharCode(r);return e}function Va(s){let e=s.length,t=new ArrayBuffer(e),r=new Uint8Array(t);for(let n=0;n<e;n++)r[n]=s.charCodeAt(n);return t}var eD=Math.log(2);function FN(s){let e=Math.log(s)/eD,t=Math.floor(e),r=Math.round(e);return t===r?t:r}function V(s,e){for(let t of e)delete s[t];}function O1(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function S2(s){let e=0,t=0;for(let n=0;n<s.length;n++){let i=s[n];e+=i.byteLength;}let r=new Uint8Array(e);for(let n=0;n<s.length;n++){let i=s[n];r.set(new Uint8Array(i),t),t+=i.byteLength;}return r.buffer}function Qr(s,e,t,r){return e instanceof Uint8Array?e.byteLength?t<0?(s.error="Wrong parameter: inputOffset less than zero",!1):r<0?(s.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-r<0?(s.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(s.error="Wrong parameter: inputBuffer has zero length",!1):(s.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var Eh=class{constructor(){this.items=[];}write(e){this.items.push(e);}final(){return S2(this.items)}},Sh=[new Uint8Array([1])],GN="0123456789",b2="name",KN="valueHexView",tD="isHexOnly",sD="idBlock",rD="tagClass",nD="tagNumber",iD="isConstructed",aD="fromBER",oD="toBER",cD="local",ms="",Sr=new ArrayBuffer(0),ty=new Uint8Array(0),xh="EndOfContent",JN="OCTET STRING",zN="BIT STRING";function en(s){var e;return e=class extends s{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(r){this.valueHexView=new Uint8Array(r);}constructor(...r){var n;super(...r);let i=r[0]||{};this.isHexOnly=(n=i.isHexOnly)!==null&&n!==void 0?n:!1,this.valueHexView=i.valueHex?ae.toUint8Array(i.valueHex):ty;}fromBER(r,n,i){let a=r instanceof ArrayBuffer?new Uint8Array(r):r;if(!Qr(this,a,n,i))return -1;let o=n+i;return this.valueHexView=a.subarray(n,o),this.valueHexView.length?(this.blockLength=i,o):(this.warnings.push("Zero buffer length"),n)}toBER(r=!1){return this.isHexOnly?r?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",Sr)}toJSON(){return {...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:fe.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Yr=class{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e);}constructor({blockLength:e=0,error:t=ms,warnings:r=[],valueBeforeDecode:n=ty}={}){this.blockLength=e,this.error=t,this.warnings=r,this.valueBeforeDecodeView=ae.toUint8Array(n);}toJSON(){return {blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:fe.ToHex(this.valueBeforeDecodeView)}}};Yr.NAME="baseBlock";var Yt=class extends Yr{fromBER(e,t,r){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Yt.NAME="valueBlock";var R1=class extends en(Yr){constructor({idBlock:e={}}={}){var t,r,n,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?ae.toUint8Array(e.valueHex):ty,this.tagClass=(r=e.tagClass)!==null&&r!==void 0?r:-1,this.tagNumber=(n=e.tagNumber)!==null&&n!==void 0?n:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1);}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",Sr}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let n=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,n[0]=t;}return n.buffer}if(!this.isHexOnly){let n=Xs(this.tagNumber,7),i=new Uint8Array(n),a=n.byteLength,o=new Uint8Array(a+1);if(o[0]=t|31,!e){for(let c=0;c<a-1;c++)o[c+1]=i[c]|128;o[a]=i[a-1];}return o.buffer}let r=new Uint8Array(this.valueHexView.byteLength+1);if(r[0]=t|31,!e){let n=this.valueHexView;for(let i=0;i<n.length-1;i++)r[i+1]=n[i]|128;r[this.valueHexView.byteLength]=n[n.length-1];}return r.buffer}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let o=i[0]&31;if(o!==31)this.tagNumber=o,this.blockLength=1;else {let c=1,u=this.valueHexView=new Uint8Array(255),l=255;for(;i[c]&128;){if(u[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===l){l+=255;let m=new Uint8Array(l);for(let y=0;y<u.length;y++)m[y]=u[y];u=this.valueHexView=new Uint8Array(l);}}this.blockLength=c+1,u[c-1]=i[c]&127;let h=new Uint8Array(c);for(let m=0;m<c;m++)h[m]=u[m];u=this.valueHexView=new Uint8Array(c),u.set(h),this.blockLength<=9?this.tagNumber=zr(u,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"));}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return {...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};R1.NAME="identificationBlock";var V1=class extends Yr{constructor({lenBlock:e={}}={}){var t,r,n;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(r=e.longFormUsed)!==null&&r!==void 0?r:!1,this.length=(n=e.length)!==null&&n!==void 0?n:0;}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let a=i[0]&127;if(a>8)return this.error="Too big integer",-1;if(a+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let o=t+1,c=n.subarray(o,o+a);return c[a-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=zr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=a+1,t+this.blockLength}toBER(e=!1){let t,r;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=128),t;if(this.longFormUsed){let n=Xs(this.length,8);if(n.byteLength>127)return this.error="Too big length",Sr;if(t=new ArrayBuffer(n.byteLength+1),e)return t;let i=new Uint8Array(n);r=new Uint8Array(t),r[0]=n.byteLength|128;for(let a=0;a<n.byteLength;a++)r[a+1]=i[a];return t}return t=new ArrayBuffer(1),e===!1&&(r=new Uint8Array(t),r[0]=this.length),t}toJSON(){return {...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};V1.NAME="lengthBlock";var X={},_t=class extends Yr{constructor({name:e=ms,optional:t=!1,primitiveSchema:r,...n}={},i){super(n),this.name=e,this.optional=t,r&&(this.primitiveSchema=r),this.idBlock=new R1(n),this.lenBlock=new V1(n),this.valueBlock=i?new i(n):new Yt(n);}fromBER(e,t,r){let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}toBER(e,t){let r=t||new Eh;t||YN(this);let n=this.idBlock.toBER(e);if(r.write(n),this.lenBlock.isIndefiniteForm)r.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,r),r.write(new ArrayBuffer(2));else {let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let a=this.lenBlock.toBER(e);r.write(a),r.write(i);}return t?Sr:r.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():fe.ToHex(this.toBER())}onAsciiEncoding(){let e=this.constructor.NAME,t=fe.ToHex(this.valueBlock.valueBeforeDecodeView);return `${e} : ${t}`}isEqual(e){if(this===e)return !0;if(!(e instanceof this.constructor))return !1;let t=this.toBER(),r=e.toBER();return zn(t,r)}};_t.NAME="BaseBlock";function YN(s){var e;if(s instanceof X.Constructed)for(let t of s.valueBlock.value)YN(t)&&(s.lenBlock.isIndefiniteForm=!0);return !!(!((e=s.lenBlock)===null||e===void 0)&&e.isIndefiniteForm)}var D1=class extends _t{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e;}constructor({value:e=ms,...t}={},r){super(t,r),e&&this.fromString(e);}fromBER(e,t,r){let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}onAsciiEncoding(){return `${this.constructor.NAME} : '${this.valueBlock.value}'`}};D1.NAME="BaseStringBlock";var L1=class extends en(Yt){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e;}};L1.NAME="PrimitiveValueBlock";var ZN,oe=class extends _t{constructor(e={}){super(e,L1),this.idBlock.isConstructed=!1;}};ZN=oe;X.Primitive=ZN;oe.NAME="PRIMITIVE";function uD(s,e){if(s instanceof e)return s;let t=new e;return t.idBlock=s.idBlock,t.lenBlock=s.lenBlock,t.warnings=s.warnings,t.valueBeforeDecodeView=s.valueBeforeDecodeView,t}function Nh(s,e=0,t=s.length){let r=e,n=new _t({},Yt),i=new Yr;if(!Qr(i,s,e,t))return n.error=i.error,{offset:-1,result:n};if(!s.subarray(e,e+t).length)return n.error="Zero buffer length",{offset:-1,result:n};let o=n.idBlock.fromBER(s,e,t);if(n.idBlock.warnings.length&&n.warnings.concat(n.idBlock.warnings),o===-1)return n.error=n.idBlock.error,{offset:-1,result:n};if(e=o,t-=n.idBlock.blockLength,o=n.lenBlock.fromBER(s,e,t),n.lenBlock.warnings.length&&n.warnings.concat(n.lenBlock.warnings),o===-1)return n.error=n.lenBlock.error,{offset:-1,result:n};if(e=o,t-=n.lenBlock.blockLength,!n.idBlock.isConstructed&&n.lenBlock.isIndefiniteForm)return n.error="Indefinite length form used for primitive encoding form",{offset:-1,result:n};let c=_t;switch(n.idBlock.tagClass){case 1:if(n.idBlock.tagNumber>=37&&n.idBlock.isHexOnly===!1)return n.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:n};switch(n.idBlock.tagNumber){case 0:if(n.idBlock.isConstructed&&n.lenBlock.length>0)return n.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:n};c=X.EndOfContent;break;case 1:c=X.Boolean;break;case 2:c=X.Integer;break;case 3:c=X.BitString;break;case 4:c=X.OctetString;break;case 5:c=X.Null;break;case 6:c=X.ObjectIdentifier;break;case 10:c=X.Enumerated;break;case 12:c=X.Utf8String;break;case 13:c=X.RelativeObjectIdentifier;break;case 14:c=X.TIME;break;case 15:return n.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:n};case 16:c=X.Sequence;break;case 17:c=X.Set;break;case 18:c=X.NumericString;break;case 19:c=X.PrintableString;break;case 20:c=X.TeletexString;break;case 21:c=X.VideotexString;break;case 22:c=X.IA5String;break;case 23:c=X.UTCTime;break;case 24:c=X.GeneralizedTime;break;case 25:c=X.GraphicString;break;case 26:c=X.VisibleString;break;case 27:c=X.GeneralString;break;case 28:c=X.UniversalString;break;case 29:c=X.CharacterString;break;case 30:c=X.BmpString;break;case 31:c=X.DATE;break;case 32:c=X.TimeOfDay;break;case 33:c=X.DateTime;break;case 34:c=X.Duration;break;default:{let u=n.idBlock.isConstructed?new X.Constructed:new X.Primitive;u.idBlock=n.idBlock,u.lenBlock=n.lenBlock,u.warnings=n.warnings,n=u;}}break;case 2:case 3:case 4:default:c=n.idBlock.isConstructed?X.Constructed:X.Primitive;}return n=uD(n,c),o=n.fromBER(s,e,n.lenBlock.isIndefiniteForm?t:n.lenBlock.length),n.valueBeforeDecodeView=s.subarray(r,r+n.blockLength),{offset:o,result:n}}function pt(s){if(!s.byteLength){let e=new _t({},Yt);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Nh(ae.toUint8Array(s).slice(),0,s.byteLength)}function lD(s,e){return s?1:e}var wr=class extends Yt{constructor({value:e=[],isIndefiniteForm:t=!1,...r}={}){super(r),this.value=e,this.isIndefiniteForm=t;}fromBER(e,t,r){let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;if(this.valueBeforeDecodeView=n.subarray(t,t+r),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;lD(this.isIndefiniteForm,r)>0;){let a=Nh(n,i,r);if(a.offset===-1)return this.error=a.result.error,this.warnings.concat(a.result.warnings),-1;if(i=a.offset,this.blockLength+=a.result.blockLength,r-=a.result.blockLength,this.value.push(a.result),this.isIndefiniteForm&&a.result.constructor.NAME===xh)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===xh?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let r=t||new Eh;for(let n=0;n<this.value.length;n++)this.value[n].toBER(e,r);return t?Sr:r.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};wr.NAME="ConstructedValueBlock";var XN,A=class extends _t{constructor(e={}){super(e,wr),this.idBlock.isConstructed=!0;}fromBER(e,t,r){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let n=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?r:this.lenBlock.length);return n===-1?(this.error=this.valueBlock.error,n):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),n)}onAsciiEncoding(){let e=[];for(let r of this.valueBlock.value)e.push(r.toString("ascii").split(`
|
|
373
373
|
`).map(n=>` ${n}`).join(`
|
|
374
374
|
`));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
|
|
375
375
|
${e.join(`
|
|
376
|
-
`)}`:`${t} :`}};QN=A;X.Constructed=QN;A.NAME="CONSTRUCTED";var H1=class extends Yt{fromBER(e,t,r){return t}toBER(e){return Sr}};H1.override="EndOfContentValueBlock";var eT,_1=class extends _t{constructor(e={}){super(e,H1),this.idBlock.tagClass=1,this.idBlock.tagNumber=0;}};eT=_1;X.EndOfContent=eT;_1.NAME=xh;var tT,it=class extends _t{constructor(e={}){super(e,Yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5;}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){let r=new ArrayBuffer(2);if(!e){let n=new Uint8Array(r);n[0]=5,n[1]=0;}return t&&t.write(r),r}onAsciiEncoding(){return `${this.constructor.NAME}`}};tT=it;X.Null=tT;it.NAME="NULL";var j1=class extends en(Yt){get value(){for(let e of this.valueHexView)if(e>0)return !0;return !1}set value(e){this.valueHexView[0]=e?255:0;}constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=ae.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e);}fromBER(e,t,r){let n=ae.toUint8Array(e);return Qr(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,b2.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return {...super.toJSON(),value:this.value}}};j1.NAME="BooleanValueBlock";var sT,Cs=class extends _t{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e;}constructor(e={}){super(e,j1),this.idBlock.tagClass=1,this.idBlock.tagNumber=1;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.getValue}`}};sT=Cs;X.Boolean=sT;Cs.NAME="BOOLEAN";var M1=class extends en(wr){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e;}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=wr.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let i=0;i<this.value.length;i++){let a=this.value[i].constructor.NAME;if(a===xh){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(a!==zN)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,n=super.fromBER(e,t,r),this.blockLength=r;return n}toBER(e,t){return this.isConstructed?wr.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return {...super.toJSON(),isConstructed:this.isConstructed}}};M1.NAME="OctetStringValueBlock";var E2,L=class extends _t{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},M1),this.idBlock.tagClass=1,this.idBlock.tagNumber=4;}fromBER(e,t,r){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,r===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+r);try{if(i.byteLength){let a=Nh(i,0,i.byteLength);a.offset!==-1&&a.offset===r&&(this.valueBlock.value=[a.result]);}}catch{}}return super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return A.prototype.onAsciiEncoding.call(this);let e=this.constructor.NAME,t=fe.ToHex(this.valueBlock.valueHexView);return `${e} : ${t}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof E2&&e.push(t.valueBlock.valueHexView);return ae.concat(e)}};E2=L;X.OctetString=E2;L.NAME=zN;var $1=class extends en(wr){constructor({unusedBits:e=0,isConstructed:t=!1,...r}={}){super(r),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength;}fromBER(e,t,r){if(!r)return t;let n=-1;if(this.isConstructed){if(n=wr.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let o of this.value){let c=o.constructor.NAME;if(c===xh){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==YN)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=o.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits;}return n}let i=ae.toUint8Array(e);if(!Qr(this,i,t,r))return -1;let a=i.subarray(t,t+r);if(this.unusedBits=a[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let o=a.subarray(1);try{if(o.byteLength){let c=Nh(o,0,o.byteLength);c.offset!==-1&&c.offset===r-1&&(this.value=[c.result]);}}catch{}}return this.valueHexView=a.subarray(1),this.blockLength=a.length,t+r}toBER(e,t){if(this.isConstructed)return wr.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let n=new Uint8Array(1);return n[0]=0,n.buffer}let r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return {...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};$1.NAME="BitStringValueBlock";var rT,Te=class extends _t{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},$1),this.idBlock.tagClass=1,this.idBlock.tagNumber=3;}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return A.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let a of t)e.push(a.toString(2).padStart(8,"0"));let r=e.join(""),n=this.constructor.NAME,i=r.substring(0,r.length-this.valueBlock.unusedBits);return `${n} : ${i}`}}};rT=Te;X.BitString=rT;Te.NAME=YN;var nT;function uD(s,e){let t=new Uint8Array([0]),r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),a=i.length-1,o=n.slice(0),c=o.length-1,u=0,l=c<a?a:c,h=0;for(let m=l;m>=0;m--,h++){switch(!0){case h<o.length:u=i[a-h]+o[c-h]+t[0];break;default:u=i[a-h]+t[0];}switch(t[0]=u/10,!0){case h>=i.length:i=B1(new Uint8Array([u%10]),i);break;default:i[a-h]=u%10;}}return t[0]>0&&(i=B1(t,i)),i}function JN(s){if(s>=Sh.length)for(let e=Sh.length;e<=s;e++){let t=new Uint8Array([0]),r=Sh[e-1].slice(0);for(let n=r.length-1;n>=0;n--){let i=new Uint8Array([(r[n]<<1)+t[0]]);t[0]=i[0]/10,r[n]=i[0]%10;}t[0]>0&&(r=B1(t,r)),Sh.push(r);}return Sh[s]}function lD(s,e){let t=0,r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),a=i.length-1,o=n.slice(0),c=o.length-1,u,l=0;for(let h=c;h>=0;h--,l++)switch(u=i[a-l]-o[c-l]-t,!0){case u<0:t=1,i[a-l]=u+10;break;default:t=0,i[a-l]=u;}if(t>0)for(let h=a-c+1;h>=0;h--,l++)if(u=i[a-l]-t,u<0)t=1,i[a-l]=u+10;else {t=0,i[a-l]=u;break}return i.slice()}var Ah=class extends en(Yt){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=b2.call(this)));}constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e);}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(MN(e));}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){let i=this.fromBER(e,t,r);if(i===-1)return i;let a=this.valueHexView;return a[0]===0&&a[1]&128?this.valueHexView=a.subarray(1):n!==0&&a.length<n&&(n-a.length>1&&(n=a.length+1),this.valueHexView=a.subarray(n-a.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let r=new Uint8Array(this.valueHexView.length+1);r[0]=0,r.set(t,1),this.valueHexView=r;}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,r){let n=super.fromBER(e,t,r);return n===-1||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return {...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),r=0,n,i=this.valueHexView,a="",o=!1;for(let c=i.byteLength-1;c>=0;c--){n=i[c];for(let u=0;u<8;u++){if((n&1)===1)switch(r){case e:t=lD(JN(r),t),a="-";break;default:t=uD(t,JN(r));}r++,n>>=1;}}for(let c=0;c<t.length;c++)t[c]&&(o=!0),o&&(a+=GN.charAt(t[c]));return o===!1&&(a+=GN.charAt(0)),a}};nT=Ah;Ah.NAME="IntegerValueBlock";Object.defineProperty(nT.prototype,"valueHex",{set:function(s){this.valueHexView=new Uint8Array(s),this.setValueHex();},get:function(){return this.valueHexView.slice().buffer}});var vh,T=class extends _t{constructor(e={}){super(e,Ah),this.idBlock.tagClass=1,this.idBlock.tagNumber=2;}toBigInt(){return R1(),BigInt(this.valueBlock.toString())}static fromBigInt(e){R1();let t=BigInt(e),r=new Eh,n=t.toString(16).replace(/^-/,""),i=new Uint8Array(fe.FromHex(n));if(t<0){let o=new Uint8Array(i.length+(i[0]&128?1:0));o[0]|=128;let u=BigInt(`0x${fe.ToHex(o)}`)+t,l=ae.toUint8Array(fe.FromHex(u.toString(16)));l[0]|=128,r.write(l);}else i[0]&128&&r.write(new Uint8Array([0])),r.write(i);return new vh({valueHex:r.final()})}convertToDER(){let e=new vh({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new vh({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()}`}};vh=T;X.Integer=vh;T.NAME="INTEGER";var iT,br=class extends T{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10;}};iT=br;X.Enumerated=iT;br.NAME="ENUMERATED";var Ih=class extends en(Yt){constructor({valueDec:e=-1,isFirstSid:t=!1,...r}={}){super(r),this.valueDec=e,this.isFirstSid=t;}fromBER(e,t,r){if(!r)return t;let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);this.valueHexView=new Uint8Array(r);for(let o=0;o<r&&(this.valueHexView[o]=i[o]&127,this.blockLength++,!!(i[o]&128));o++);let a=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength;o++)a[o]=this.valueHexView[o];return this.valueHexView=a,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=zr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){R1();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let r=new Uint8Array(t.length/7);for(let n=0;n<r.length;n++)r[n]=parseInt(t.slice(n*7,n*7+7),2)+(n+1<r.length?128:0);this.fromBER(r.buffer,0,r.length);}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)i[a]=n[a]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Xs(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Sr;let r=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let a=0;a<i;a++)r[a]=n[a]|128;r[i]=n[i];}return r}toString(){let e="";if(this.isHexOnly)e=fe.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString();}else e=this.valueDec.toString();return e}toJSON(){return {...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Ih.NAME="sidBlock";var q1=class extends Yt{constructor({value:e=ms,...t}={}){super(t),this.value=[],e&&this.fromString(e);}fromBER(e,t,r){let n=t;for(;r>0;){let i=new Ih;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i);}return n}toBER(e){let t=[];for(let r=0;r<this.value.length;r++){let n=this.value[r].toBER(e);if(n.byteLength===0)return this.error=this.value[r].error,Sr;t.push(n);}return v2(t)}fromString(e){this.value=[];let t=0,r=0,n="",i=!1;do if(r=e.indexOf(".",t),r===-1?n=e.substring(t):n=e.substring(t,r),t=r+1,i){let a=this.value[0],o=0;switch(a.valueDec){case 0:break;case 1:o=40;break;case 2:o=80;break;default:this.value=[];return}let c=parseInt(n,10);if(isNaN(c))return;a.valueDec=c+o,i=!1;}else {let a=new Ih;if(n>Number.MAX_SAFE_INTEGER){R1();let o=BigInt(n);a.valueBigInt=o;}else if(a.valueDec=parseInt(n,10),isNaN(a.valueDec))return;this.value.length||(a.isFirstSid=!0,i=!0),this.value.push(a);}while(r!==-1)}toString(){let e="",t=!1;for(let r=0;r<this.value.length;r++){t=this.value[r].isHexOnly;let n=this.value[r].toString();r!==0&&(e=`${e}.`),t?(n=`{${n}}`,this.value[r].isFirstSid?e=`2.{${n} - 80}`:e+=n):e+=n;}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};q1.NAME="ObjectIdentifierValueBlock";var aT,W=class extends _t{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e);}constructor(e={}){super(e,q1),this.idBlock.tagClass=1,this.idBlock.tagNumber=6;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return {...super.toJSON(),value:this.getValue()}}};aT=W;X.ObjectIdentifier=aT;W.NAME="OBJECT IDENTIFIER";var Ch=class extends en(Yr){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e;}fromBER(e,t,r){if(r===0)return t;let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);this.valueHexView=new Uint8Array(r);for(let o=0;o<r&&(this.valueHexView[o]=i[o]&127,this.blockLength++,!!(i[o]&128));o++);let a=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength;o++)a[o]=this.valueHexView[o];return this.valueHexView=a,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=zr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)i[a]=n[a]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Xs(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Sr;let r=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let a=0;a<i;a++)r[a]=n[a]|128;r[i]=n[i];}return r.buffer}toString(){let e="";return this.isHexOnly?e=fe.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return {...super.toJSON(),valueDec:this.valueDec}}};Ch.NAME="relativeSidBlock";var F1=class extends Yt{constructor({value:e=ms,...t}={}){super(t),this.value=[],e&&this.fromString(e);}fromBER(e,t,r){let n=t;for(;r>0;){let i=new Ch;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i);}return n}toBER(e,t){let r=[];for(let n=0;n<this.value.length;n++){let i=this.value[n].toBER(e);if(i.byteLength===0)return this.error=this.value[n].error,Sr;r.push(i);}return v2(r)}fromString(e){this.value=[];let t=0,r=0,n="";do{r=e.indexOf(".",t),r===-1?n=e.substring(t):n=e.substring(t,r),t=r+1;let i=new Ch;if(i.valueDec=parseInt(n,10),isNaN(i.valueDec))return !0;this.value.push(i);}while(r!==-1);return !0}toString(){let e="",t=!1;for(let r=0;r<this.value.length;r++){t=this.value[r].isHexOnly;let n=this.value[r].toString();r!==0&&(e=`${e}.`),t&&(n=`{${n}}`),e+=n;}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};F1.NAME="RelativeObjectIdentifierValueBlock";var oT,K1=class extends _t{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e);}constructor(e={}){super(e,F1),this.idBlock.tagClass=1,this.idBlock.tagNumber=13;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return {...super.toJSON(),value:this.getValue()}}};oT=K1;X.RelativeObjectIdentifier=oT;K1.NAME="RelativeObjectIdentifier";var cT,S=class extends A{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16;}};cT=S;X.Sequence=cT;S.NAME="SEQUENCE";var uT,at=class extends A{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17;}};uT=at;X.Set=uT;at.NAME="SET";var G1=class extends en(Yt){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=ms;}toJSON(){return {...super.toJSON(),value:this.value}}};G1.NAME="StringValueBlock";var W1=class extends G1{};W1.NAME="SimpleStringValueBlock";var as=class extends L1{constructor({...e}={}){super(e,W1);}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,ae.toUint8Array(e));}fromString(e){let t=e.length,r=this.valueBlock.valueHexView=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);this.valueBlock.value=e;}};as.NAME="SIMPLE STRING";var J1=class extends as{fromBuffer(e){this.valueBlock.valueHexView=ae.toUint8Array(e);try{this.valueBlock.value=fe.ToUtf8String(e);}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=fe.ToBinary(e);}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(fe.FromUtf8String(e)),this.valueBlock.value=e;}};J1.NAME="Utf8StringValueBlock";var lT,ps=class extends J1{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12;}};lT=ps;X.Utf8String=lT;ps.NAME="UTF8String";var z1=class extends as{fromBuffer(e){this.valueBlock.value=fe.ToUtf16String(e),this.valueBlock.valueHexView=ae.toUint8Array(e);}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(fe.FromUtf16String(e));}};z1.NAME="BmpStringValueBlock";var fT,Yn=class extends z1{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30;}};fT=Yn;X.BmpString=fT;Yn.NAME="BMPString";var Y1=class extends as{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),r=new Uint8Array(t);for(let n=0;n<r.length;n+=4)r[n]=r[n+3],r[n+1]=r[n+2],r[n+2]=0,r[n+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t));}fromString(e){let t=e.length,r=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let n=0;n<t;n++){let i=Xs(e.charCodeAt(n),8),a=new Uint8Array(i);if(a.length>4)continue;let o=4-a.length;for(let c=a.length-1;c>=0;c--)r[n*4+c+o]=a[c];}this.valueBlock.value=e;}};Y1.NAME="UniversalStringValueBlock";var hT,Zn=class extends Y1{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28;}};hT=Zn;X.UniversalString=hT;Zn.NAME="UniversalString";var dT,Zr=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18;}};dT=Zr;X.NumericString=dT;Zr.NAME="NumericString";var mT,gs=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19;}};mT=gs;X.PrintableString=mT;gs.NAME="PrintableString";var pT,Xn=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20;}};pT=Xn;X.TeletexString=pT;Xn.NAME="TeletexString";var gT,zc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21;}};gT=zc;X.VideotexString=gT;zc.NAME="VideotexString";var yT,Da=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22;}};yT=Da;X.IA5String=yT;Da.NAME="IA5String";var wT,Yc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25;}};wT=Yc;X.GraphicString=wT;Yc.NAME="GraphicString";var bT,La=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26;}};bT=La;X.VisibleString=bT;La.NAME="VisibleString";var ST,Zc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27;}};ST=Zc;X.GeneralString=ST;Zc.NAME="GeneralString";var vT,Xc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29;}};vT=Xc;X.CharacterString=vT;Xc.NAME="CharacterString";var ET,Xr=class extends La{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let n=0;n<e.length;n++)this.valueBlock.valueHexView[n]=e.charCodeAt(n);}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23;}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,ae.toUint8Array(e)));}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds();}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let r=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(r===null){this.error="Wrong input string for conversion";return}let n=parseInt(r[1],10);n>=50?this.year=1900+n:this.year=2e3+n,this.month=parseInt(r[2],10),this.day=parseInt(r[3],10),this.hour=parseInt(r[4],10),this.minute=parseInt(r[5],10),this.second=parseInt(r[6],10);}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=ds(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=ds(this.month,2),t[2]=ds(this.day,2),t[3]=ds(this.hour,2),t[4]=ds(this.minute,2),t[5]=ds(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return {...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};ET=Xr;X.UTCTime=ET;Xr.NAME="UTCTime";var xT,Ye=class extends Xr{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24;}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds();}toDate(){let e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(e)}fromString(e){let t=!1,r="",n="",i=0,a,o=0,c=0;if(e[e.length-1]==="Z")r=e.substring(0,e.length-1),t=!0;else {let h=new Number(e[e.length-1]);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");r=e;}if(t){if(r.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(r.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else {let h=1,m=r.indexOf("+"),y="";if(m===-1&&(m=r.indexOf("-"),h=-1),m!==-1){if(y=r.substring(m+1),r=r.substring(0,m),y.length!==2&&y.length!==4)throw new Error("Wrong input string for conversion");let g=parseInt(y.substring(0,2),10);if(isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");if(o=h*g,y.length===4){if(g=parseInt(y.substring(2,4),10),isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");c=h*g;}}}let u=r.indexOf(".");if(u===-1&&(u=r.indexOf(",")),u!==-1){let h=new Number(`0${r.substring(u)}`);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");i=h.valueOf(),n=r.substring(0,u);}else n=r;switch(!0){case n.length===8:if(a=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case n.length===10:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=60*i;this.minute=Math.floor(h),h=60*(h-this.minute),this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h);}break;case n.length===12:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=60*i;this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h);}break;case n.length===14:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=1e3*i;this.millisecond=Math.floor(h);}break;default:throw new Error("Wrong input string for conversion")}let l=a.exec(n);if(l===null)throw new Error("Wrong input string for conversion");for(let h=1;h<l.length;h++)switch(h){case 1:this.year=parseInt(l[h],10);break;case 2:this.month=parseInt(l[h],10);break;case 3:this.day=parseInt(l[h],10);break;case 4:this.hour=parseInt(l[h],10)+o;break;case 5:this.minute=parseInt(l[h],10)+c;break;case 6:this.second=parseInt(l[h],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let h=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=h.getUTCFullYear(),this.month=h.getUTCMonth(),this.day=h.getUTCDay(),this.hour=h.getUTCHours(),this.minute=h.getUTCMinutes(),this.second=h.getUTCSeconds(),this.millisecond=h.getUTCMilliseconds();}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(ds(this.year,4)),t.push(ds(this.month,2)),t.push(ds(this.day,2)),t.push(ds(this.hour,2)),t.push(ds(this.minute,2)),t.push(ds(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(ds(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return {...super.toJSON(),millisecond:this.millisecond}}};xT=Ye;X.GeneralizedTime=xT;Ye.NAME="GeneralizedTime";var AT,Z1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31;}};AT=Z1;X.DATE=AT;Z1.NAME="DATE";var IT,X1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32;}};IT=X1;X.TimeOfDay=IT;X1.NAME="TimeOfDay";var CT,Q1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33;}};CT=Q1;X.DateTime=CT;Q1.NAME="DateTime";var NT,ey=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34;}};NT=ey;X.Duration=NT;ey.NAME="Duration";var TT,ty=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14;}};TT=ty;X.TIME=TT;ty.NAME="TIME";var ue=class{constructor({name:e=ms,optional:t=!1}={}){this.name=e,this.optional=t;}},Ze=class extends ue{constructor({value:e=[],...t}={}){super(t),this.value=e;}},he=class extends ue{constructor({value:e=new ue,local:t=!1,...r}={}){super(r),this.value=e,this.local=t;}},Ua=class{get data(){return this.dataView.slice().buffer}set data(e){this.dataView=ae.toUint8Array(e);}constructor({data:e=sy}={}){this.dataView=ae.toUint8Array(e);}fromBER(e,t,r){let n=t+r;return this.dataView=ae.toUint8Array(e).subarray(t,n),n}toBER(e){return this.dataView.slice().buffer}};function R(s,e,t){if(t instanceof Ze){for(let i of t.value)if(R(s,e,i).verified)return {verified:!0,result:s};{let i={verified:!1,result:{error:"Wrong values for Choice type"}};return t.hasOwnProperty(S2)&&(i.name=t.name),i}}if(t instanceof ue)return t.hasOwnProperty(S2)&&(s[t.name]=e),{verified:!0,result:s};if(!(s instanceof Object))return {verified:!1,result:{error:"Wrong root object"}};if(!(e instanceof Object))return {verified:!1,result:{error:"Wrong ASN.1 data"}};if(!(t instanceof Object))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(eD in t))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(nD in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(iD in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};let r=t.idBlock.toBER(!1);if(r.byteLength===0)return {verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(t.idBlock.fromBER(r,0,r.byteLength)===-1)return {verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(t.idBlock.hasOwnProperty(tD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagClass!==e.idBlock.tagClass)return {verified:!1,result:s};if(t.idBlock.hasOwnProperty(sD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagNumber!==e.idBlock.tagNumber)return {verified:!1,result:s};if(t.idBlock.hasOwnProperty(rD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isConstructed!==e.idBlock.isConstructed)return {verified:!1,result:s};if(!(QV in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isHexOnly!==e.idBlock.isHexOnly)return {verified:!1,result:s};if(t.idBlock.isHexOnly){if(!(WN in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};let i=t.idBlock.valueHexView,a=e.idBlock.valueHexView;if(i.length!==a.length)return {verified:!1,result:s};for(let o=0;o<i.length;o++)if(i[o]!==a[1])return {verified:!1,result:s}}if(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(s[t.name]=e)),t instanceof X.Constructed){let i=0,a={verified:!1,result:{error:"Unknown error"}},o=t.valueBlock.value.length;if(o>0&&t.valueBlock.value[0]instanceof he&&(o=e.valueBlock.value.length),o===0)return {verified:!0,result:s};if(e.valueBlock.value.length===0&&t.valueBlock.value.length!==0){let c=!0;for(let u=0;u<t.valueBlock.value.length;u++)c=c&&(t.valueBlock.value[u].optional||!1);return c?{verified:!0,result:s}:(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),s.error="Inconsistent object length",{verified:!1,result:s})}for(let c=0;c<o;c++)if(c-i>=e.valueBlock.value.length){if(t.valueBlock.value[c].optional===!1){let u={verified:!1,result:s};return s.error="Inconsistent length between ASN.1 data and schema",t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],u.name=t.name)),u}}else if(t.valueBlock.value[0]instanceof he){if(a=R(s,e.valueBlock.value[c],t.valueBlock.value[0].value),a.verified===!1)if(t.valueBlock.value[0].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),a;if(S2 in t.valueBlock.value[0]&&t.valueBlock.value[0].name.length>0){let u={};aD in t.valueBlock.value[0]&&t.valueBlock.value[0].local?u=e:u=s,typeof u[t.valueBlock.value[0].name]>"u"&&(u[t.valueBlock.value[0].name]=[]),u[t.valueBlock.value[0].name].push(e.valueBlock.value[c]);}}else if(a=R(s,e.valueBlock.value[c-i],t.valueBlock.value[c]),a.verified===!1)if(t.valueBlock.value[c].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),a;if(a.verified===!1){let c={verified:!1,result:s};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],c.name=t.name)),c}return {verified:!0,result:s}}if(t.primitiveSchema&&WN in e.valueBlock){let i=Nh(e.valueBlock.valueHexView);if(i.offset===-1){let a={verified:!1,result:i.result};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],a.name=t.name)),a}return R(s,i.result,t.primitiveSchema)}return {verified:!0,result:s}}var jt=class s{constructor(e={}){if("view"in e)this.fromUint8Array(e.view);else if("buffer"in e)this.fromArrayBuffer(e.buffer);else if("string"in e)this.fromString(e.string);else if("hexstring"in e)this.fromHexString(e.hexstring);else if("length"in e&&e.length>0){if(this.length=e.length,e.stub)for(let t=0;t<this._view.length;t++)this._view[t]=e.stub;}else this.length=0;}set buffer(e){this._buffer=e,this._view=new Uint8Array(this._buffer);}get buffer(){return this._buffer}set view(e){this._buffer=new ArrayBuffer(e.length),this._view=new Uint8Array(this._buffer),this._view.set(e);}get view(){return this._view}get length(){return this.view.byteLength}set length(e){this._buffer=new ArrayBuffer(e),this._view=new Uint8Array(this._buffer);}clear(){this._buffer=new ArrayBuffer(0),this._view=new Uint8Array(this._buffer);}fromArrayBuffer(e){this._buffer=e,this._view=new Uint8Array(this._buffer);}fromUint8Array(e){this.fromArrayBuffer(new Uint8Array(e).buffer);}fromString(e){let t=e.length;this.length=t;for(let r=0;r<t;r++)this.view[r]=e.charCodeAt(r);}toString(e=0,t=this.view.length-e){let r="";(e>=this.view.length||e<0)&&(e=0),(t>=this.view.length||t<0)&&(t=this.view.length-e);for(let n=e;n<e+t;n++)r+=String.fromCharCode(this.view[n]);return r}fromHexString(e){let t=e.length;this.buffer=new ArrayBuffer(t>>1),this.view=new Uint8Array(this.buffer);let r=new Map;r.set("0",0),r.set("1",1),r.set("2",2),r.set("3",3),r.set("4",4),r.set("5",5),r.set("6",6),r.set("7",7),r.set("8",8),r.set("9",9),r.set("A",10),r.set("a",10),r.set("B",11),r.set("b",11),r.set("C",12),r.set("c",12),r.set("D",13),r.set("d",13),r.set("E",14),r.set("e",14),r.set("F",15),r.set("f",15);let n=0,i=0;for(let a=0;a<t;a++)a%2?(i|=r.get(e.charAt(a)),this.view[n]=i,n++):i=r.get(e.charAt(a))<<4;}toHexString(e=0,t=this.view.length-e){let r="";(e>=this.view.length||e<0)&&(e=0),(t>=this.view.length||t<0)&&(t=this.view.length-e);for(let n=e;n<e+t;n++){let i=this.view[n].toString(16).toUpperCase();r=r+(i.length==1?"0":"")+i;}return r}copy(e=0,t=this.length-e){if(!e&&!this.length)return new s;if(e<0||e>this.length-1)throw new Error(`Wrong start position: ${e}`);return new s({buffer:this._buffer.slice(e,e+t)})}slice(e=0,t=this.length){if(!e&&!this.length)return new s;if(e<0||e>this.length-1)throw new Error(`Wrong start position: ${e}`);return new s({buffer:this._buffer.slice(e,t)})}realloc(e){let t=new ArrayBuffer(e),r=new Uint8Array(t);e>this._view.length?r.set(this._view):r.set(new Uint8Array(this._buffer,0,e)),this._buffer=t,this._view=new Uint8Array(this._buffer);}append(e){let t=this.length,r=e.length,n=e._view.subarray();this.realloc(t+r),this._view.set(n,t);}insert(e,t=0,r=this.length-t){return t>this.length-1?!1:(r>this.length-t&&(r=this.length-t),r>e.length&&(r=e.length),r==e.length?this._view.set(e._view,t):this._view.set(e._view.subarray(0,r),t),!0)}isEqual(e){if(this.length!=e.length)return !1;for(let t=0;t<e.length;t++)if(this.view[t]!=e.view[t])return !1;return !0}isEqualView(e){if(e.length!=this.view.length)return !1;for(let t=0;t<e.length;t++)if(this.view[t]!=e[t])return !1;return !0}findPattern(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=e.length;if(c>a)return -1;let u=[];for(let l=0;l<c;l++)u.push(e.view[l]);for(let l=0;l<=a-c;l++){let h=!0,m=o?i-c-l:i+l;for(let y=0;y<c;y++)if(this.view[y+m]!=u[y]){h=!1;break}if(h)return o?i-c-l:i+c+l}return -1}findFirstIn(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c={id:-1,position:o?0:i+a,length:0};for(let u=0;u<e.length;u++){let l=this.findPattern(e[u],i,a,o);if(l!=-1){let h=!1,m=e[u].length;o?l-m>=c.position-c.length&&(h=!0):l-m<=c.position-c.length&&(h=!0),h&&(c.position=l,c.id=u,c.length=m);}}return c}findAllIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={id:-1,position:n};do{let c=o.position;if(o=this.findFirstIn(e,o.position,i),o.id==-1)break;i-=o.position-c,a.push({id:o.id,position:o.position});}while(!0);return a}findAllPatternIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o=e.length;if(o>i)return -1;let c=Array.from(e.view);for(let u=0;u<=i-o;u++){let l=!0,h=n+u;for(let m=0;m<o;m++)if(this.view[m+h]!=c[m]){l=!1;break}l&&(a.push(n+o+u),u+=o-1);}return a}findFirstNotIn(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c={left:{id:-1,position:i},right:{id:-1,position:0},value:new s},u=a;for(;u>0;){if(c.right=this.findFirstIn(e,o?i-a+u:i+a-u,u,o),c.right.id==-1){a=u,o?i-=a:i=c.left.position,c.value=new s({buffer:this._buffer.slice(i,i+a)});break}if(c.right.position!=(o?c.left.position-e[c.right.id].length:c.left.position+e[c.right.id].length)){o?(i=c.right.position+e[c.right.id].length,a=c.left.position-c.right.position-e[c.right.id].length):(i=c.left.position,a=c.right.position-c.left.position-e[c.right.id].length),c.value=new s({buffer:this._buffer.slice(i,i+a)});break}c.left=c.right,u-=e[c.right.id].length;}if(o){let l=c.right;c.right=c.left,c.left=l;}return c}findAllNotIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={left:{id:-1,position:n},right:{id:-1,position:n},value:new s};do{let c=o.right.position;o=this.findFirstNotIn(e,o.right.position,i),i-=o.right.position-c,a.push({left:{id:o.left.id,position:o.left.position},right:{id:o.right.id,position:o.right.position},value:o.value});}while(o.right.id!=-1);return a}findFirstSequence(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=this.skipNotPatterns(e,i,a,o);if(c==-1)return {position:-1,value:new s};let u=this.skipPatterns(e,c,a-(o?i-c:c-i),o);o?(i=u,a=c-u):(i=c,a=u-c);let l=new s({buffer:this._buffer.slice(i,i+a)});return {position:u,value:l}}findAllSequences(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={position:n,value:new s};do{let c=o.position;o=this.findFirstSequence(e,o.position,i),o.position!=-1&&(i-=o.position-c,a.push({position:o.position,value:o.value}));}while(o.position!=-1);return a}findPairedPatterns(e,t,r,n){let i=[];if(e.isEqual(t))return i;let{start:a,length:o}=this.prepareFindParameters(r,n),c=0,u=this.findAllPatternIn(e,a,o);if(!Array.isArray(u)||u.length==0)return i;let l=this.findAllPatternIn(t,a,o);if(!Array.isArray(l)||l.length==0)return i;for(;c<u.length&&l.length!=0;){if(u[0]==l[0]){i.push({left:u[0],right:l[0]}),u.splice(0,1),l.splice(0,1);continue}if(u[c]>l[0])break;for(;u[c]<l[0]&&(c++,!(c>=u.length)););i.push({left:u[c-1],right:l[0]}),u.splice(c-1,1),l.splice(0,1),c=0;}return i.sort((h,m)=>h.left-m.left),i}findPairedArrays(e,t,r,n){let{start:i,length:a}=this.prepareFindParameters(r,n),o=[],c=0,u=this.findAllIn(e,i,a);if(u.length==0)return o;let l=this.findAllIn(t,i,a);if(l.length==0)return o;for(;c<u.length&&l.length!=0;){if(u[0].position==l[0].position){o.push({left:u[0],right:l[0]}),u.splice(0,1),l.splice(0,1);continue}if(u[c].position>l[0].position)break;for(;u[c].position<l[0].position&&(c++,!(c>=u.length)););o.push({left:u[c-1],right:l[0]}),u.splice(c-1,1),l.splice(0,1),c=0;}return o.sort((h,m)=>h.left.position-m.left.position),o}replacePattern(e,t,r,n,i=null){let a=[],o,c={status:-1,searchPatternPositions:[],replacePatternPositions:[]},{start:u,length:l}=this.prepareFindParameters(r,n);if(i==null){if(a=this.findAllIn([e],u,l),a.length==0)return c}else a=i;c.searchPatternPositions.push(...Array.from(a,g=>g.position));let h=e.length-t.length,m=new ArrayBuffer(this.view.length-a.length*h),y=new Uint8Array(m);for(y.set(new Uint8Array(this.buffer,0,u)),o=0;o<a.length;o++){let g=o==0?u:a[o-1].position;y.set(new Uint8Array(this.buffer,g,a[o].position-e.length-g),g-o*h),y.set(t.view,a[o].position-e.length-o*h),c.replacePatternPositions.push(a[o].position-e.length-o*h);}return o--,y.set(new Uint8Array(this.buffer,a[o].position,this.length-a[o].position),a[o].position-e.length+t.length-o*h),this.buffer=m,this.view=new Uint8Array(this.buffer),c.status=1,c}skipPatterns(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=i;for(let u=0;u<e.length;u++){let l=e[u].length,h=o?c-l:c,m=!0;for(let y=0;y<l;y++)if(this.view[y+h]!=e[u].view[y]){m=!1;break}if(m){if(u=-1,o){if(c-=l,c<=0)return c}else if(c+=l,c>=i+a)return c}}return c}skipNotPatterns(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=-1;for(let u=0;u<a;u++){for(let l=0;l<e.length;l++){let h=e[l].length,m=o?i-u-h:i+u,y=!0;for(let g=0;g<h;g++)if(this.view[g+m]!=e[l].view[g]){y=!1;break}if(y){c=o?i-u:i+u;break}}if(c!=-1)break}return c}prepareFindParameters(e=null,t=null,r=!1){return e===null&&(e=r?this.length:0),e>this.length&&(e=this.length),r?(t===null&&(t=e),t>e&&(t=e)):(t===null&&(t=this.length-e),t>this.length-e&&(t=this.length-e)),{start:e,length:t,backward:r}}};var hD=16777216,tn=class s{constructor(e={}){this._stream=new jt,this._length=0,this._start=0,this.backward=!1,this.appendBlock=0,this.prevLength=0,this.prevStart=0,"view"in e?this.stream=new jt({view:e.view}):"buffer"in e?this.stream=new jt({buffer:e.buffer}):"string"in e?this.stream=new jt({string:e.string}):"hexstring"in e?this.stream=new jt({hexstring:e.hexstring}):"stream"in e?this.stream=e.stream.slice():this.stream=new jt,"backward"in e&&e.backward&&(this.backward=e.backward,this._start=this.stream.length),"length"in e&&e.length>0&&(this._length=e.length),"start"in e&&e.start&&e.start>0&&(this._start=e.start),"appendBlock"in e&&e.appendBlock&&e.appendBlock>0&&(this.appendBlock=e.appendBlock);}set stream(e){this._stream=e,this.prevLength=this._length,this._length=e.length,this.prevStart=this._start,this._start=0;}get stream(){return this._stream}set length(e){this.prevLength=this._length,this._length=e;}get length(){return this.appendBlock?this.start:this._length}set start(e){e>this.stream.length||(this.prevStart=this._start,this.prevLength=this._length,this._length-=this.backward?this._start-e:e-this._start,this._start=e);}get start(){return this._start}get buffer(){return this._stream.buffer.slice(0,this._length)}resetPosition(){this._start=this.prevStart,this._length=this.prevLength;}findPattern(e,t=null){(t==null||t>this.length)&&(t=this.length);let r=this.stream.findPattern(e,this.start,this.length,this.backward);if(r==-1)return r;if(this.backward){if(r<this.start-e.length-t)return -1}else if(r>this.start+e.length+t)return -1;return this.start=r,r}findFirstIn(e,t=null){(t==null||t>this.length)&&(t=this.length);let r=this.stream.findFirstIn(e,this.start,this.length,this.backward);if(r.id==-1)return r;if(this.backward){if(r.position<this.start-e[r.id].length-t)return {id:-1,position:this.backward?0:this.start+this.length}}else if(r.position>this.start+e[r.id].length+t)return {id:-1,position:this.backward?0:this.start+this.length};return this.start=r.position,r}findAllIn(e){let t=this.backward?this.start-this.length:this.start;return this.stream.findAllIn(e,t,this.length)}findFirstNotIn(e,t=null){(t==null||t>this._length)&&(t=this._length);let r=this._stream.findFirstNotIn(e,this._start,this._length,this.backward);if(r.left.id==-1&&r.right.id==-1)return r;if(this.backward){if(r.right.id!=-1&&r.right.position<this._start-e[r.right.id].length-t)return {left:{id:-1,position:this._start},right:{id:-1,position:0},value:new jt}}else if(r.left.id!=-1&&r.left.position>this._start+e[r.left.id].length+t)return {left:{id:-1,position:this._start},right:{id:-1,position:0},value:new jt};return this.backward?r.left.id==-1?this.start=0:this.start=r.left.position:r.right.id==-1?this.start=this._start+this._length:this.start=r.right.position,r}findAllNotIn(e){let t=this.backward?this._start-this._length:this._start;return this._stream.findAllNotIn(e,t,this._length)}findFirstSequence(e,t=null,r=null){(t==null||t>this._length)&&(t=this._length),(r==null||r>t)&&(r=t);let n=this._stream.findFirstSequence(e,this._start,t,this.backward);if(n.value.length==0)return n;if(this.backward){if(n.position<this._start-n.value.length-r)return {position:-1,value:new jt}}else if(n.position>this._start+n.value.length+r)return {position:-1,value:new jt};return this.start=n.position,n}findAllSequences(e){let t=this.backward?this.start-this.length:this.start;return this.stream.findAllSequences(e,t,this.length)}findPairedPatterns(e,t,r=null){(r==null||r>this.length)&&(r=this.length);let n=this.backward?this.start-this.length:this.start,i=this.stream.findPairedPatterns(e,t,n,this.length);if(i.length){if(this.backward){if(i[0].right<this.start-t.length-r)return []}else if(i[0].left>this.start+e.length+r)return []}return i}findPairedArrays(e,t,r=null){(r==null||r>this.length)&&(r=this.length);let n=this.backward?this.start-this.length:this.start,i=this.stream.findPairedArrays(e,t,n,this.length);if(i.length){if(this.backward){if(i[0].right.position<this.start-t[i[0].right.id].length-r)return []}else if(i[0].left.position>this.start+e[i[0].left.id].length+r)return []}return i}replacePattern(e,t){let r=this.backward?this.start-this.length:this.start;return this.stream.replacePattern(e,t,r,this.length)}skipPatterns(e){let t=this.stream.skipPatterns(e,this.start,this.length,this.backward);return this.start=t,t}skipNotPatterns(e){let t=this.stream.skipNotPatterns(e,this.start,this.length,this.backward);return t==-1?-1:(this.start=t,t)}append(e){this.beforeAppend(e.length),this._stream.view.set(e.view,this._start),this._length+=e.length*2,this.start=this._start+e.length,this.prevLength-=e.length*2;}appendView(e){this.beforeAppend(e.length),this._stream.view.set(e,this._start),this._length+=e.length*2,this.start=this._start+e.length,this.prevLength-=e.length*2;}appendChar(e){this.beforeAppend(1),this._stream.view[this._start]=e,this._length+=2,this.start=this._start+1,this.prevLength-=2;}appendUint16(e){this.beforeAppend(2);let t=new Uint16Array([e]),r=new Uint8Array(t.buffer);this.stream.view[this._start]=r[1],this._stream.view[this._start+1]=r[0],this._length+=4,this.start=this._start+2,this.prevLength-=4;}appendUint24(e){this.beforeAppend(3);let t=new Uint32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[2],this._stream.view[this._start+1]=r[1],this._stream.view[this._start+2]=r[0],this._length+=6,this.start=this._start+3,this.prevLength-=6;}appendUint32(e){this.beforeAppend(4);let t=new Uint32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[3],this._stream.view[this._start+1]=r[2],this._stream.view[this._start+2]=r[1],this._stream.view[this._start+3]=r[0],this._length+=8,this.start=this._start+4,this.prevLength-=8;}appendInt16(e){this.beforeAppend(2);let t=new Int16Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[1],this._stream.view[this._start+1]=r[0],this._length+=4,this.start=this._start+2,this.prevLength-=4;}appendInt32(e){this.beforeAppend(4);let t=new Int32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[3],this._stream.view[this._start+1]=r[2],this._stream.view[this._start+2]=r[1],this._stream.view[this._start+3]=r[0],this._length+=8,this.start=this._start+4,this.prevLength-=8;}getBlock(e,t=!0){if(this._length<=0)return new Uint8Array(0);this._length<e&&(e=this._length);let r;if(this.backward){let n=this._stream.view.subarray(this._length-e,this._length);r=new Uint8Array(e);for(let i=0;i<e;i++)r[e-1-i]=n[i];}else r=this._stream.view.subarray(this._start,this._start+e);return t&&(this.start+=this.backward?-1*e:e),r}getUint16(e=!0){let t=this.getBlock(2,e);return t.length<2?0:t[0]<<8|t[1]}getInt16(e=!0){let t=this.getUint16(e),r=32768;return t&r?-(r-(t^r)):t}getUint24(e=!0){let t=this.getBlock(4,e);return t.length<3?0:t[0]<<16|t[1]<<8|t[2]}getUint32(e=!0){let t=this.getBlock(4,e);return t.length<4?0:t[0]*hD+(t[1]<<16)+(t[2]<<8)+t[3]}getInt32(e=!0){let t=this.getUint32(e),r=2147483648;return t&r?-(r-(t^r)):t}beforeAppend(e){this._start+e>this._stream.length&&(e>this.appendBlock&&(this.appendBlock=e+s.APPEND_BLOCK),this._stream.realloc(this._stream.length+this.appendBlock));}};tn.APPEND_BLOCK=1e3;function mD(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function x2(s,...e){if(!mD(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${s.length}`)}function A2(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function kT(s,e){x2(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var ny=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),Qs=(s,e)=>s<<32-e|s>>>e,iy=(s,e)=>s<<e|s>>>32-e>>>0;new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function pD(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function I2(s){return typeof s=="string"&&(s=pD(s)),x2(s),s}var ry=class{clone(){return this._cloneInto()}};function Ha(s){let e=r=>s().update(I2(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function gD(s,e,t,r){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,r);let n=BigInt(32),i=BigInt(4294967295),a=Number(t>>n&i),o=Number(t&i),c=r?4:0,u=r?0:4;s.setUint32(e+c,a,r),s.setUint32(e+u,o,r);}var ay=(s,e,t)=>s&e^~s&t,oy=(s,e,t)=>s&e^s&t^e&t,Qn=class extends ry{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=ny(this.buffer);}update(e){A2(this);let{view:t,buffer:r,blockLen:n}=this;e=I2(e);let i=e.length;for(let a=0;a<i;){let o=Math.min(n-this.pos,i-a);if(o===n){let c=ny(e);for(;n<=i-a;a+=n)this.process(c,a);continue}r.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0);}return this.length+=e.length,this.roundClean(),this}digestInto(e){A2(this),kT(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:a}=this;t[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>n-a&&(this.process(r,0),a=0);for(let h=a;h<n;h++)t[h]=0;gD(r,n-8,BigInt(this.length*8),i),this.process(r,0);let o=ny(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)o.setUint32(4*h,l[h],i);}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:a,pos:o}=this;return e.length=n,e.pos=o,e.finished=i,e.destroyed=a,n%t&&e.buffer.set(r),e}};var Th=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),ei=new Uint32Array(80),C2=class extends Qn{constructor(){super(64,20,8,!1),this.A=Th[0]|0,this.B=Th[1]|0,this.C=Th[2]|0,this.D=Th[3]|0,this.E=Th[4]|0;}get(){let{A:e,B:t,C:r,D:n,E:i}=this;return [e,t,r,n,i]}set(e,t,r,n,i){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0;}process(e,t){for(let c=0;c<16;c++,t+=4)ei[c]=e.getUint32(t,!1);for(let c=16;c<80;c++)ei[c]=iy(ei[c-3]^ei[c-8]^ei[c-14]^ei[c-16],1);let{A:r,B:n,C:i,D:a,E:o}=this;for(let c=0;c<80;c++){let u,l;c<20?(u=ay(n,i,a),l=1518500249):c<40?(u=n^i^a,l=1859775393):c<60?(u=oy(n,i,a),l=2400959708):(u=n^i^a,l=3395469782);let h=iy(r,5)+u+o+l+ei[c]|0;o=a,a=i,i=iy(n,30),n=r,r=h;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,this.set(r,n,i,a,o);}roundClean(){ei.fill(0);}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0);}},PT=Ha(()=>new C2);var yD=new Uint32Array([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]),ti=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),si=new Uint32Array(64),N2=class extends Qn{constructor(){super(64,32,8,!1),this.A=ti[0]|0,this.B=ti[1]|0,this.C=ti[2]|0,this.D=ti[3]|0,this.E=ti[4]|0,this.F=ti[5]|0,this.G=ti[6]|0,this.H=ti[7]|0;}get(){let{A:e,B:t,C:r,D:n,E:i,F:a,G:o,H:c}=this;return [e,t,r,n,i,a,o,c]}set(e,t,r,n,i,a,o,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0;}process(e,t){for(let h=0;h<16;h++,t+=4)si[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){let m=si[h-15],y=si[h-2],g=Qs(m,7)^Qs(m,18)^m>>>3,w=Qs(y,17)^Qs(y,19)^y>>>10;si[h]=w+si[h-7]+g+si[h-16]|0;}let{A:r,B:n,C:i,D:a,E:o,F:c,G:u,H:l}=this;for(let h=0;h<64;h++){let m=Qs(o,6)^Qs(o,11)^Qs(o,25),y=l+m+ay(o,c,u)+yD[h]+si[h]|0,w=(Qs(r,2)^Qs(r,13)^Qs(r,22))+oy(r,n,i)|0;l=u,u=c,c=o,o=a+y|0,a=i,i=n,n=r,r=y+w|0;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,n,i,a,o,c,u,l);}roundClean(){si.fill(0);}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0);}};var T2=Ha(()=>new N2);var cy=BigInt(4294967295),k2=BigInt(32);function BT(s,e=!1){return e?{h:Number(s&cy),l:Number(s>>k2&cy)}:{h:Number(s>>k2&cy)|0,l:Number(s&cy)|0}}function wD(s,e=!1){let t=new Uint32Array(s.length),r=new Uint32Array(s.length);for(let n=0;n<s.length;n++){let{h:i,l:a}=BT(s[n],e);[t[n],r[n]]=[i,a];}return [t,r]}var bD=(s,e)=>BigInt(s>>>0)<<k2|BigInt(e>>>0),SD=(s,e,t)=>s>>>t,vD=(s,e,t)=>s<<32-t|e>>>t,ED=(s,e,t)=>s>>>t|e<<32-t,xD=(s,e,t)=>s<<32-t|e>>>t,AD=(s,e,t)=>s<<64-t|e>>>t-32,ID=(s,e,t)=>s>>>t-32|e<<64-t,CD=(s,e)=>e,ND=(s,e)=>s,TD=(s,e,t)=>s<<t|e>>>32-t,kD=(s,e,t)=>e<<t|s>>>32-t,PD=(s,e,t)=>e<<t-32|s>>>64-t,BD=(s,e,t)=>s<<t-32|e>>>64-t;function OD(s,e,t,r){let n=(e>>>0)+(r>>>0);return {h:s+t+(n/2**32|0)|0,l:n|0}}var RD=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),VD=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,DD=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),LD=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,UD=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),HD=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var _D={fromBig:BT,split:wD,toBig:bD,shrSH:SD,shrSL:vD,rotrSH:ED,rotrSL:xD,rotrBH:AD,rotrBL:ID,rotr32H:CD,rotr32L:ND,rotlSH:TD,rotlSL:kD,rotlBH:PD,rotlBL:BD,add:OD,add3L:RD,add3H:VD,add4L:DD,add4H:LD,add5H:HD,add5L:UD},Be=_D;var[jD,MD]=Be.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(s=>BigInt(s))),ri=new Uint32Array(80),ni=new Uint32Array(80),uy=class extends Qn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209;}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:h,Fl:m,Gh:y,Gl:g,Hh:w,Hl:b}=this;return [e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,b]}set(e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,b){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=h|0,this.Fl=m|0,this.Gh=y|0,this.Gl=g|0,this.Hh=w|0,this.Hl=b|0;}process(e,t){for(let x=0;x<16;x++,t+=4)ri[x]=e.getUint32(t),ni[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let E=ri[x-15]|0,I=ni[x-15]|0,D=Be.rotrSH(E,I,1)^Be.rotrSH(E,I,8)^Be.shrSH(E,I,7),K=Be.rotrSL(E,I,1)^Be.rotrSL(E,I,8)^Be.shrSL(E,I,7),$=ri[x-2]|0,J=ni[x-2]|0,ne=Be.rotrSH($,J,19)^Be.rotrBH($,J,61)^Be.shrSH($,J,6),F=Be.rotrSL($,J,19)^Be.rotrBL($,J,61)^Be.shrSL($,J,6),z=Be.add4L(K,F,ni[x-7],ni[x-16]),ce=Be.add4H(z,D,ne,ri[x-7],ri[x-16]);ri[x]=ce|0,ni[x]=z|0;}let{Ah:r,Al:n,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:h,El:m,Fh:y,Fl:g,Gh:w,Gl:b,Hh:C,Hl:N}=this;for(let x=0;x<80;x++){let E=Be.rotrSH(h,m,14)^Be.rotrSH(h,m,18)^Be.rotrBH(h,m,41),I=Be.rotrSL(h,m,14)^Be.rotrSL(h,m,18)^Be.rotrBL(h,m,41),D=h&y^~h&w,K=m&g^~m&b,$=Be.add5L(N,I,K,MD[x],ni[x]),J=Be.add5H($,C,E,D,jD[x],ri[x]),ne=$|0,F=Be.rotrSH(r,n,28)^Be.rotrBH(r,n,34)^Be.rotrBH(r,n,39),z=Be.rotrSL(r,n,28)^Be.rotrBL(r,n,34)^Be.rotrBL(r,n,39),ce=r&i^r&o^i&o,Le=n&a^n&c^a&c;C=w|0,N=b|0,w=y|0,b=g|0,y=h|0,g=m|0,{h,l:m}=Be.add(u|0,l|0,J|0,ne|0),u=o|0,l=c|0,o=i|0,c=a|0,i=r|0,a=n|0;let U=Be.add3L(ne,z,Le);r=Be.add3H(U,J,F,ce),n=U|0;}(({h:r,l:n}=Be.add(this.Ah|0,this.Al|0,r|0,n|0))),{h:i,l:a}=Be.add(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=Be.add(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l}=Be.add(this.Dh|0,this.Dl|0,u|0,l|0),{h,l:m}=Be.add(this.Eh|0,this.El|0,h|0,m|0),{h:y,l:g}=Be.add(this.Fh|0,this.Fl|0,y|0,g|0),{h:w,l:b}=Be.add(this.Gh|0,this.Gl|0,w|0,b|0),{h:C,l:N}=Be.add(this.Hh|0,this.Hl|0,C|0,N|0),this.set(r,n,i,a,o,c,u,l,h,m,y,g,w,b,C,N);}roundClean(){ri.fill(0),ni.fill(0);}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);}};var P2=class extends uy{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48;}},B2=Ha(()=>new uy);var O2=Ha(()=>new P2);var dt=new ArrayBuffer(0),p="",Ge=class s extends TypeError{constructor(){super(...arguments),this.name=s.NAME;}static isType(e,t){if(typeof t=="string"){if(t==="Array"&&Array.isArray(e))return !0;if(t==="ArrayBuffer"&&e instanceof ArrayBuffer)return !0;if(t==="ArrayBufferView"&&ArrayBuffer.isView(e))return !0;if(typeof e===t)return !0}else if(e instanceof t)return !0;return !1}static assert(e,t,...r){for(let i of r)if(this.isType(e,i))return;let n=r.map(i=>i instanceof Function&&"name"in i?i.name:`${i}`);throw new s(`Parameter '${t}' is not of type ${n.length>1?`(${n.join(" or ")})`:n[0]}`)}};Ge.NAME="ArgumentError";var He=class s extends TypeError{static assert(...e){let t=null,r,n;typeof e[0]=="string"?(t=e[0],r=e[1],n=e.slice(2)):(r=e[0],n=e.slice(1)),Ge.assert(r,"parameters","object");for(let i of n){let a=r[i];if(a==null)throw new s(i,t)}}static assertEmpty(e,t,r){if(e==null)throw new s(t,r)}constructor(e,t=null,r){super(),this.name=s.NAME,this.field=e,t&&(this.target=t),r?this.message=r:this.message=`Absent mandatory parameter '${e}' ${t?` in '${t}'`:p}`;}};He.NAME="ParameterError";var B=class s extends Error{static assertSchema(e,t){if(!e.verified)throw new Error(`Object's schema was not verified against input data for ${t}`)}static assert(e,t){if(e.offset===-1)throw new s(`Error during parsing of ASN.1 data. Data is not correct for '${t}'.`)}constructor(e){super(e),this.name="AsnError";}},O=class{static blockName(){return this.CLASS_NAME}static fromBER(e){let t=pt(e);B.assert(t,this.name);try{return new this({schema:t.result})}catch{throw new B(`Cannot create '${this.CLASS_NAME}' from ASN.1 object`)}}static defaultValues(e){throw new Error(`Invalid member name for ${this.CLASS_NAME} class: ${e}`)}static schema(e={}){throw new Error(`Method '${this.CLASS_NAME}.schema' should be overridden`)}get className(){return this.constructor.CLASS_NAME}toString(e="hex"){let t;try{t=this.toSchema();}catch{t=this.toSchema(!0);}return fe.ToString(t.toBER(),e)}};O.CLASS_NAME="PkiObject";function Fi(s){let e=!1,t=p,r=s.trim();for(let n=0;n<r.length;n++)r.charCodeAt(n)===32?e===!1&&(e=!0):(e&&(t+=" ",e=!1),t+=r[n]);return t.toLowerCase()}var kh="type",R2="value",H0=class s extends O{constructor(e={}){super(),this.type=d(e,kh,s.defaultValues(kh)),this.value=d(e,R2,s.defaultValues(R2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case kh:return p;case R2:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.type||p}),new ue({name:t.value||p})]})}fromSchema(e){V(e,[kh,"typeValue"]);let t=R(e,e,s.schema({names:{type:kh,value:"typeValue"}}));B.assertSchema(t,this.className),this.type=t.result.type.valueBlock.toString(),this.value=t.result.typeValue;}toSchema(){return new S({value:[new W({value:this.type}),this.value]})}toJSON(){let e={type:this.type};return Object.keys(this.value).length!==0?e.value=this.value.toJSON():e.value=this.value,e}isEqual(e){let t=[ps.blockName(),Yn.blockName(),Zn.blockName(),Zr.blockName(),gs.blockName(),Xn.blockName(),zc.blockName(),Da.blockName(),Yc.blockName(),La.blockName(),Zc.blockName(),Xc.blockName()];if(e instanceof ArrayBuffer)return ae.isEqual(this.value.valueBeforeDecodeView,e);if(e.constructor.blockName()===s.blockName()){if(this.type!==e.type)return !1;let r=[!1,!1],n=this.value.constructor.blockName();for(let a of t)n===a&&(r[0]=!0),e.value.constructor.blockName()===a&&(r[1]=!0);if(r[0]!==r[1])return !1;if(r[0]&&r[1]){let a=Fi(this.value.valueBlock.value),o=Fi(e.value.valueBlock.value);if(a.localeCompare(o)!==0)return !1}else if(!ae.isEqual(this.value.valueBeforeDecodeView,e.value.valueBeforeDecodeView))return !1;return !0}return !1}};H0.CLASS_NAME="AttributeTypeAndValue";var _a="typesAndValues",ly="valueBeforeDecode",OT="RDN",Xe=class s extends O{constructor(e={}){super(),this.typesAndValues=d(e,_a,s.defaultValues(_a)),this.valueBeforeDecode=d(e,ly,s.defaultValues(ly)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case _a:return [];case ly:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case _a:return t.length===0;case ly:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.repeatedSequence||p,value:new at({value:[new he({name:t.repeatedSet||p,value:H0.schema(t.typeAndValue||{})})]})})]})}fromSchema(e){V(e,[OT,_a]);let t=R(e,e,s.schema({names:{blockName:OT,repeatedSet:_a}}));B.assertSchema(t,this.className),_a in t.result&&(this.typesAndValues=Array.from(t.result.typesAndValues,r=>new H0({schema:r}))),this.valueBeforeDecode=t.result.RDN.valueBeforeDecodeView.slice().buffer;}toSchema(){if(this.valueBeforeDecode.byteLength===0)return new S({value:[new at({value:Array.from(this.typesAndValues,t=>t.toSchema())})]});let e=pt(this.valueBeforeDecode);if(B.assert(e,"RelativeDistinguishedNames"),!(e.result instanceof S))throw new Error("ASN.1 result should be SEQUENCE");return e.result}toJSON(){return {typesAndValues:Array.from(this.typesAndValues,e=>e.toJSON())}}isEqual(e){if(e instanceof s){if(this.typesAndValues.length!==e.typesAndValues.length)return !1;for(let[t,r]of this.typesAndValues.entries())if(r.isEqual(e.typesAndValues[t])===!1)return !1;return !0}return e instanceof ArrayBuffer?zn(this.valueBeforeDecode,e):!1}};Xe.CLASS_NAME="RelativeDistinguishedNames";var $h="type",qh="value";function $D(s={},e=!1){let t=d(s,"names",{});return new S({optional:e,value:[new A({optional:!0,idBlock:{tagClass:2,tagNumber:1},name:t.country_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new A({optional:!0,idBlock:{tagClass:2,tagNumber:2},name:t.administration_domain_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:0},name:t.network_address||p,isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},name:t.terminal_identifier||p,isHexOnly:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:2},name:t.private_domain_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:3},name:t.organization_name||p,isHexOnly:!0}),new oe({optional:!0,name:t.numeric_user_identifier||p,idBlock:{tagClass:3,tagNumber:4},isHexOnly:!0}),new A({optional:!0,name:t.personal_name||p,idBlock:{tagClass:3,tagNumber:5},value:[new oe({idBlock:{tagClass:3,tagNumber:0},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:2},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:3},isHexOnly:!0})]}),new A({optional:!0,name:t.organizational_unit_names||p,idBlock:{tagClass:3,tagNumber:6},value:[new he({value:new gs})]})]})}function qD(s=!1){return new S({optional:s,value:[new gs,new gs]})}function FD(s=!1){return new at({optional:s,value:[new oe({optional:!0,idBlock:{tagClass:3,tagNumber:0},isHexOnly:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new ue]})]})}var We=class s extends O{constructor(e={}){super(),this.type=d(e,$h,s.defaultValues($h)),this.value=d(e,qh,s.defaultValues(qh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $h:return 9;case qh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $h:return t===s.defaultValues(e);case qh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[new A({idBlock:{tagClass:3,tagNumber:0},name:t.blockName||p,value:[new W,new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue]})]}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:2}}),new A({idBlock:{tagClass:3,tagNumber:3},name:t.blockName||p,value:[$D(t.builtInStandardAttributes||{},!1),qD(!0),FD(!0)]}),new A({idBlock:{tagClass:3,tagNumber:4},name:t.blockName||p,value:[Xe.schema(t.directoryName||{})]}),new A({idBlock:{tagClass:3,tagNumber:5},name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new Xn,new gs,new Zn,new ps,new Yn]})]}),new A({idBlock:{tagClass:3,tagNumber:1},value:[new Ze({value:[new Xn,new gs,new Zn,new ps,new Yn]})]})]}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:6}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:7}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:8}})]})}fromSchema(e){V(e,["blockName","otherName","rfc822Name","dNSName","x400Address","directoryName","ediPartyName","uniformResourceIdentifier","iPAddress","registeredID"]);let t=R(e,e,s.schema({names:{blockName:"blockName",otherName:"otherName",rfc822Name:"rfc822Name",dNSName:"dNSName",x400Address:"x400Address",directoryName:{names:{blockName:"directoryName"}},ediPartyName:"ediPartyName",uniformResourceIdentifier:"uniformResourceIdentifier",iPAddress:"iPAddress",registeredID:"registeredID"}}));switch(B.assertSchema(t,this.className),this.type=t.result.blockName.idBlock.tagNumber,this.type){case 0:this.value=t.result.blockName;break;case 1:case 2:case 6:{let r=t.result.blockName;r.idBlock.tagClass=1,r.idBlock.tagNumber=22;let n=r.toBER(!1),i=pt(n);B.assert(i,"GeneralName value"),this.value=i.result.valueBlock.value;}break;case 3:this.value=t.result.blockName;break;case 4:this.value=new Xe({schema:t.result.directoryName});break;case 5:this.value=t.result.ediPartyName;break;case 7:this.value=new L({valueHex:t.result.blockName.valueBlock.valueHex});break;case 8:{let r=t.result.blockName;r.idBlock.tagClass=1,r.idBlock.tagNumber=6;let n=r.toBER(!1),i=pt(n);B.assert(i,"GeneralName registeredID"),this.value=i.result.valueBlock.toString();}break}}toSchema(){switch(this.type){case 0:case 3:case 5:return new A({idBlock:{tagClass:3,tagNumber:this.type},value:[this.value]});case 1:case 2:case 6:{let e=new Da({value:this.value});return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}case 4:return new A({idBlock:{tagClass:3,tagNumber:4},value:[this.value.toSchema()]});case 7:{let e=this.value;return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}case 8:{let e=new W({value:this.value});return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}default:return s.schema()}}toJSON(){let e={type:this.type,value:p};if(typeof this.value=="string")e.value=this.value;else try{e.value=this.value.toJSON();}catch{}return e}};We.CLASS_NAME="GeneralName";var Fh="accessMethod",Kh="accessLocation",KD=[Fh,Kh],_0=class s extends O{constructor(e={}){super(),this.accessMethod=d(e,Fh,s.defaultValues(Fh)),this.accessLocation=d(e,Kh,s.defaultValues(Kh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Fh:return p;case Kh:return new We;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.accessMethod||p}),We.schema(t.accessLocation||{})]})}fromSchema(e){V(e,KD);let t=R(e,e,s.schema({names:{accessMethod:Fh,accessLocation:{names:{blockName:Kh}}}}));B.assertSchema(t,this.className),this.accessMethod=t.result.accessMethod.valueBlock.toString(),this.accessLocation=new We({schema:t.result.accessLocation});}toSchema(){return new S({value:[new W({value:this.accessMethod}),this.accessLocation.toSchema()]})}toJSON(){return {accessMethod:this.accessMethod,accessLocation:this.accessLocation.toJSON()}}};_0.CLASS_NAME="AccessDescription";var ai="seconds",oi="millis",ci="micros",gn=class s extends O{constructor(e={}){super(),ai in e&&(this.seconds=d(e,ai,s.defaultValues(ai))),oi in e&&(this.millis=d(e,oi,s.defaultValues(oi))),ci in e&&(this.micros=d(e,ci,s.defaultValues(ci))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ai:case oi:case ci:return 0;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ai:case oi:case ci:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,optional:!0,value:[new T({optional:!0,name:t.seconds||p}),new oe({name:t.millis||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.micros||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,[ai,oi,ci]);let t=R(e,e,s.schema({names:{seconds:ai,millis:oi,micros:ci}}));if(B.assertSchema(t,this.className),"seconds"in t.result&&(this.seconds=t.result.seconds.valueBlock.valueDec),"millis"in t.result){let r=new T({valueHex:t.result.millis.valueBlock.valueHex});this.millis=r.valueBlock.valueDec;}if("micros"in t.result){let r=new T({valueHex:t.result.micros.valueBlock.valueHex});this.micros=r.valueBlock.valueDec;}}toSchema(){let e=[];if(this.seconds!==void 0&&e.push(new T({value:this.seconds})),this.millis!==void 0){let t=new T({value:this.millis});e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:t.valueBlock.valueHexView}));}if(this.micros!==void 0){let t=new T({value:this.micros});e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:t.valueBlock.valueHexView}));}return new S({value:e})}toJSON(){let e={};return this.seconds!==void 0&&(e.seconds=this.seconds),this.millis!==void 0&&(e.millis=this.millis),this.micros!==void 0&&(e.micros=this.micros),e}};gn.CLASS_NAME="Accuracy";var fy="algorithmId",Ph="algorithmParams",r4="algorithm",cA="params",GD=[r4,cA],k=class s extends O{constructor(e={}){super(),this.algorithmId=d(e,fy,s.defaultValues(fy)),Ph in e&&(this.algorithmParams=d(e,Ph,s.defaultValues(Ph))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fy:return p;case Ph:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fy:return t===p;case Ph:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,optional:t.optional||!1,value:[new W({name:t.algorithmIdentifier||p}),new ue({name:t.algorithmParams||p,optional:!0})]})}fromSchema(e){V(e,GD);let t=R(e,e,s.schema({names:{algorithmIdentifier:r4,algorithmParams:cA}}));B.assertSchema(t,this.className),this.algorithmId=t.result.algorithm.valueBlock.toString(),cA in t.result&&(this.algorithmParams=t.result.params);}toSchema(){let e=[];return e.push(new W({value:this.algorithmId})),this.algorithmParams&&!(this.algorithmParams instanceof ue)&&e.push(this.algorithmParams),new S({value:e})}toJSON(){let e={algorithmId:this.algorithmId};return this.algorithmParams&&!(this.algorithmParams instanceof ue)&&(e.algorithmParams=this.algorithmParams.toJSON()),e}isEqual(e){return !(e instanceof s)||this.algorithmId!==e.algorithmId?!1:this.algorithmParams?e.algorithmParams?JSON.stringify(this.algorithmParams)===JSON.stringify(e.algorithmParams):!1:!e.algorithmParams}};k.CLASS_NAME="AlgorithmIdentifier";var au="altNames",WD=[au],j0=class s extends O{constructor(e={}){super(),this.altNames=d(e,au,s.defaultValues(au)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case au:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.altNames||p,value:We.schema()})]})}fromSchema(e){V(e,WD);let t=R(e,e,s.schema({names:{altNames:au}}));B.assertSchema(t,this.className),au in t.result&&(this.altNames=Array.from(t.result.altNames,r=>new We({schema:r})));}toSchema(){return new S({value:Array.from(this.altNames,e=>e.toSchema())})}toJSON(){return {altNames:Array.from(this.altNames,e=>e.toJSON())}}};j0.CLASS_NAME="AltName";var ou="type",cu="values",JD=[ou,cu],ut=class s extends O{constructor(e={}){super(),this.type=d(e,ou,s.defaultValues(ou)),this.values=d(e,cu,s.defaultValues(cu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ou:return p;case cu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ou:return t===p;case cu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.type||p}),new at({name:t.setName||p,value:[new he({name:t.values||p,value:new ue})]})]})}fromSchema(e){V(e,JD);let t=R(e,e,s.schema({names:{type:ou,values:cu}}));B.assertSchema(t,this.className),this.type=t.result.type.valueBlock.toString(),this.values=t.result.values;}toSchema(){return new S({value:[new W({value:this.type}),new at({value:this.values})]})}toJSON(){return {type:this.type,values:Array.from(this.values,e=>e.toJSON())}}};ut.CLASS_NAME="Attribute";var Gh="notBeforeTime",Wh="notAfterTime",zD=[Gh,Wh],vn=class s extends O{constructor(e={}){super(),this.notBeforeTime=d(e,Gh,s.defaultValues(Gh)),this.notAfterTime=d(e,Wh,s.defaultValues(Wh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Gh:case Wh:return new Date(0,0,0);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new Ye({name:t.notBeforeTime||p}),new Ye({name:t.notAfterTime||p})]})}fromSchema(e){V(e,zD);let t=R(e,e,s.schema({names:{notBeforeTime:Gh,notAfterTime:Wh}}));B.assertSchema(t,this.className),this.notBeforeTime=t.result.notBeforeTime.toDate(),this.notAfterTime=t.result.notAfterTime.toDate();}toSchema(){return new S({value:[new Ye({valueDate:this.notBeforeTime}),new Ye({valueDate:this.notAfterTime})]})}toJSON(){return {notBeforeTime:this.notBeforeTime,notAfterTime:this.notAfterTime}}};vn.CLASS_NAME="AttCertValidityPeriod";var Bh="names",RT="generalNames",xt=class s extends O{constructor(e={}){super(),this.names=d(e,Bh,s.defaultValues(Bh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case"names":return [];default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,Bh,{});return new S({optional:t,name:r.blockName||p,value:[new he({name:r.generalNames||p,value:We.schema()})]})}fromSchema(e){V(e,[Bh,RT]);let t=R(e,e,s.schema({names:{blockName:Bh,generalNames:RT}}));B.assertSchema(t,this.className),this.names=Array.from(t.result.generalNames,r=>new We({schema:r}));}toSchema(){return new S({value:Array.from(this.names,e=>e.toSchema())})}toJSON(){return {names:Array.from(this.names,e=>e.toJSON())}}};xt.CLASS_NAME="GeneralNames";var YD="2.5.29.9",ZD="2.5.29.14",XD="2.5.29.15",QD="2.5.29.16",n4="2.5.29.17",i4="2.5.29.18",MA="2.5.29.19",eL="2.5.29.20",tL="2.5.29.27",sL="2.5.29.21",rL="2.5.29.24",a4="2.5.29.28",o4="2.5.29.29",c4="2.5.29.30",u4="2.5.29.31",$A="2.5.29.46",l4="2.5.29.32",Rs="2.5.29.32.0",nL="1.3.6.1.4.1.311.21.10",f4="2.5.29.33",qA="2.5.29.35",h4="2.5.29.36",iL="2.5.29.37",aL="2.5.29.54",FA="1.3.6.1.5.5.7.1.1",oL="1.3.6.1.5.5.7.1.11",cL="1.3.6.1.4.1.11129.2.4.2";var uL="1.3.6.1.4.1.311.21.7",lL="1.3.6.1.4.1.311.21.1",fL="1.3.6.1.5.5.7.1.3",KA="1.2.840.113549.1.7.1",d4="1.2.840.113549.1.7.2",m4="1.2.840.113549.1.7.3",p4="1.2.840.113549.1.7.6",hL="1.2.840.113549.1.9.16.1.4",VT="1.2.840.113549.1.9.22.1",dL="1.2.840.113549.1.9.22.2",DT="1.2.840.113549.1.9.22.3",LT="1.2.840.113549.1.9.23.1",mL="1.3.6.1.5.5.7",GA=`${mL}.48`,Ly=`${GA}.1.1`;var qa="keyIdentifier",Fa="authorityCertIssuer",Ka="authorityCertSerialNumber",pL=[qa,Fa,Ka],M0=class s extends O{constructor(e={}){super(),qa in e&&(this.keyIdentifier=d(e,qa,s.defaultValues(qa))),Fa in e&&(this.authorityCertIssuer=d(e,Fa,s.defaultValues(Fa))),Ka in e&&(this.authorityCertSerialNumber=d(e,Ka,s.defaultValues(Ka))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case qa:return new L;case Fa:return [];case Ka:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new oe({name:t.keyIdentifier||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.authorityCertIssuer||p,value:We.schema()})]}),new oe({name:t.authorityCertSerialNumber||p,optional:!0,idBlock:{tagClass:3,tagNumber:2}})]})}fromSchema(e){V(e,pL);let t=R(e,e,s.schema({names:{keyIdentifier:qa,authorityCertIssuer:Fa,authorityCertSerialNumber:Ka}}));B.assertSchema(t,this.className),qa in t.result&&(this.keyIdentifier=new L({valueHex:t.result.keyIdentifier.valueBlock.valueHex})),Fa in t.result&&(this.authorityCertIssuer=Array.from(t.result.authorityCertIssuer,r=>new We({schema:r}))),Ka in t.result&&(this.authorityCertSerialNumber=new T({valueHex:t.result.authorityCertSerialNumber.valueBlock.valueHex}));}toSchema(){let e=[];return this.keyIdentifier&&e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.keyIdentifier.valueBlock.valueHexView})),this.authorityCertIssuer&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.authorityCertIssuer,t=>t.toSchema())})),this.authorityCertSerialNumber&&e.push(new oe({idBlock:{tagClass:3,tagNumber:2},valueHex:this.authorityCertSerialNumber.valueBlock.valueHexView})),new S({value:e})}toJSON(){let e={};return this.keyIdentifier&&(e.keyIdentifier=this.keyIdentifier.toJSON()),this.authorityCertIssuer&&(e.authorityCertIssuer=Array.from(this.authorityCertIssuer,t=>t.toJSON())),this.authorityCertSerialNumber&&(e.authorityCertSerialNumber=this.authorityCertSerialNumber.toJSON()),e}};M0.CLASS_NAME="AuthorityKeyIdentifier";var ja="pathLenConstraint",Ma="cA",$0=class s extends O{constructor(e={}){super(),this.cA=d(e,Ma,!1),ja in e&&(this.pathLenConstraint=d(e,ja,0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ma:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new Cs({optional:!0,name:t.cA||p}),new T({optional:!0,name:t.pathLenConstraint||p})]})}fromSchema(e){V(e,[Ma,ja]);let t=R(e,e,s.schema({names:{cA:Ma,pathLenConstraint:ja}}));B.assertSchema(t,this.className),Ma in t.result&&(this.cA=t.result.cA.valueBlock.value),ja in t.result&&(t.result.pathLenConstraint.valueBlock.isHexOnly?this.pathLenConstraint=t.result.pathLenConstraint:this.pathLenConstraint=t.result.pathLenConstraint.valueBlock.valueDec);}toSchema(){let e=[];return this.cA!==s.defaultValues(Ma)&&e.push(new Cs({value:this.cA})),ja in this&&(this.pathLenConstraint instanceof T?e.push(this.pathLenConstraint):e.push(new T({value:this.pathLenConstraint}))),new S({value:e})}toJSON(){let e={};return this.cA!==s.defaultValues(Ma)&&(e.cA=this.cA),ja in this&&(this.pathLenConstraint instanceof T?e.pathLenConstraint=this.pathLenConstraint.toJSON():e.pathLenConstraint=this.pathLenConstraint),e}};$0.CLASS_NAME="BasicConstraints";var V2="certificateIndex",D2="keyIndex",dw=class s extends O{constructor(e={}){super(),this.certificateIndex=d(e,V2,s.defaultValues(V2)),this.keyIndex=d(e,D2,s.defaultValues(D2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case V2:case D2:return 0;default:return super.defaultValues(e)}}static schema(){return new T}fromSchema(e){if(e.constructor.blockName()!==T.blockName())throw new Error("Object's schema was not verified against input data for CAVersion");let t=e.valueBlock.valueHex.slice(0),r=new Uint8Array(t);switch(!0){case t.byteLength<4:{let h=new ArrayBuffer(4);new Uint8Array(h).set(r,4-t.byteLength),t=h.slice(0);}break;case t.byteLength>4:{let h=new ArrayBuffer(4);new Uint8Array(h).set(r.slice(0,4)),t=h.slice(0);}break}let n=t.slice(0,2),i=new Uint8Array(n),a=i[0];i[0]=i[1],i[1]=a;let o=new Uint16Array(n);this.keyIndex=o[0];let c=t.slice(2),u=new Uint8Array(c);a=u[0],u[0]=u[1],u[1]=a;let l=new Uint16Array(c);this.certificateIndex=l[0];}toSchema(){let e=new ArrayBuffer(2),t=new Uint16Array(e);t[0]=this.certificateIndex;let r=new Uint8Array(e),n=r[0];r[0]=r[1],r[1]=n;let i=new ArrayBuffer(2),a=new Uint16Array(i);a[0]=this.keyIndex;let o=new Uint8Array(i);return n=o[0],o[0]=o[1],o[1]=n,new T({valueHex:Ra(i,e)})}toJSON(){return {certificateIndex:this.certificateIndex,keyIndex:this.keyIndex}}};dw.CLASS_NAME="CAVersion";var Jh="policyQualifierId",zh="qualifier",gL=[Jh,zh],q0=class s extends O{constructor(e={}){super(),this.policyQualifierId=d(e,Jh,s.defaultValues(Jh)),this.qualifier=d(e,zh,s.defaultValues(zh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Jh:return p;case zh:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.policyQualifierId||p}),new ue({name:t.qualifier||p})]})}fromSchema(e){V(e,gL);let t=R(e,e,s.schema({names:{policyQualifierId:Jh,qualifier:zh}}));B.assertSchema(t,this.className),this.policyQualifierId=t.result.policyQualifierId.valueBlock.toString(),this.qualifier=t.result.qualifier;}toSchema(){return new S({value:[new W({value:this.policyQualifierId}),this.qualifier]})}toJSON(){return {policyQualifierId:this.policyQualifierId,qualifier:this.qualifier.toJSON()}}};q0.CLASS_NAME="PolicyQualifierInfo";var Yh="policyIdentifier",Ga="policyQualifiers",yL=[Yh,Ga],F0=class s extends O{constructor(e={}){super(),this.policyIdentifier=d(e,Yh,s.defaultValues(Yh)),Ga in e&&(this.policyQualifiers=d(e,Ga,s.defaultValues(Ga))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Yh:return p;case Ga:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.policyIdentifier||p}),new S({optional:!0,value:[new he({name:t.policyQualifiers||p,value:q0.schema()})]})]})}fromSchema(e){V(e,yL);let t=R(e,e,s.schema({names:{policyIdentifier:Yh,policyQualifiers:Ga}}));B.assertSchema(t,this.className),this.policyIdentifier=t.result.policyIdentifier.valueBlock.toString(),Ga in t.result&&(this.policyQualifiers=Array.from(t.result.policyQualifiers,r=>new q0({schema:r})));}toSchema(){let e=[];return e.push(new W({value:this.policyIdentifier})),this.policyQualifiers&&e.push(new S({value:Array.from(this.policyQualifiers,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={policyIdentifier:this.policyIdentifier};return this.policyQualifiers&&(e.policyQualifiers=Array.from(this.policyQualifiers,t=>t.toJSON())),e}};F0.CLASS_NAME="PolicyInformation";var Zh="certificatePolicies",wL=[Zh],K0=class s extends O{constructor(e={}){super(),this.certificatePolicies=d(e,Zh,s.defaultValues(Zh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Zh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.certificatePolicies||p,value:F0.schema()})]})}fromSchema(e){V(e,wL);let t=R(e,e,s.schema({names:{certificatePolicies:Zh}}));B.assertSchema(t,this.className),this.certificatePolicies=Array.from(t.result.certificatePolicies,r=>new F0({schema:r}));}toSchema(){return new S({value:Array.from(this.certificatePolicies,e=>e.toSchema())})}toJSON(){return {certificatePolicies:Array.from(this.certificatePolicies,e=>e.toJSON())}}};K0.CLASS_NAME="CertificatePolicies";var Xh="templateID",rn="templateMajorVersion",nn="templateMinorVersion",bL=[Xh,rn,nn],uA=class s extends O{constructor(e={}){super(),this.templateID=d(e,Xh,s.defaultValues(Xh)),rn in e&&(this.templateMajorVersion=d(e,rn,s.defaultValues(rn))),nn in e&&(this.templateMinorVersion=d(e,nn,s.defaultValues(nn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Xh:return p;case rn:case nn:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.templateID||p}),new T({name:t.templateMajorVersion||p,optional:!0}),new T({name:t.templateMinorVersion||p,optional:!0})]})}fromSchema(e){V(e,bL);let t=R(e,e,s.schema({names:{templateID:Xh,templateMajorVersion:rn,templateMinorVersion:nn}}));B.assertSchema(t,this.className),this.templateID=t.result.templateID.valueBlock.toString(),rn in t.result&&(this.templateMajorVersion=t.result.templateMajorVersion.valueBlock.valueDec),nn in t.result&&(this.templateMinorVersion=t.result.templateMinorVersion.valueBlock.valueDec);}toSchema(){let e=[];return e.push(new W({value:this.templateID})),rn in this&&e.push(new T({value:this.templateMajorVersion})),nn in this&&e.push(new T({value:this.templateMinorVersion})),new S({value:e})}toJSON(){let e={templateID:this.templateID};return rn in this&&(e.templateMajorVersion=this.templateMajorVersion),nn in this&&(e.templateMinorVersion=this.templateMinorVersion),e}},Wa="distributionPoint",g4="distributionPointNames",Ja="reasons",za="cRLIssuer",y4="cRLIssuerNames",SL=[Wa,g4,Ja,za,y4],G0=class s extends O{constructor(e={}){super(),Wa in e&&(this.distributionPoint=d(e,Wa,s.defaultValues(Wa))),Ja in e&&(this.reasons=d(e,Ja,s.defaultValues(Ja))),za in e&&(this.cRLIssuer=d(e,za,s.defaultValues(za))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Wa:return [];case Ja:return new Te;case za:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new A({name:t.distributionPoint||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.distributionPointNames||p,value:We.schema()})]}),new A({name:t.distributionPoint||p,optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Xe.schema().valueBlock.value})]})]}),new oe({name:t.reasons||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new A({name:t.cRLIssuer||p,optional:!0,idBlock:{tagClass:3,tagNumber:2},value:[new he({name:t.cRLIssuerNames||p,value:We.schema()})]})]})}fromSchema(e){V(e,SL);let t=R(e,e,s.schema({names:{distributionPoint:Wa,distributionPointNames:g4,reasons:Ja,cRLIssuer:za,cRLIssuerNames:y4}}));B.assertSchema(t,this.className),Wa in t.result&&(t.result.distributionPoint.idBlock.tagNumber===0&&(this.distributionPoint=Array.from(t.result.distributionPointNames,r=>new We({schema:r}))),t.result.distributionPoint.idBlock.tagNumber===1&&(this.distributionPoint=new Xe({schema:new S({value:t.result.distributionPoint.valueBlock.value})}))),Ja in t.result&&(this.reasons=new Te({valueHex:t.result.reasons.valueBlock.valueHex})),za in t.result&&(this.cRLIssuer=Array.from(t.result.cRLIssuerNames,r=>new We({schema:r})));}toSchema(){let e=[];if(this.distributionPoint){let t;this.distributionPoint instanceof Array?t=new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.distributionPoint,r=>r.toSchema())}):t=new A({idBlock:{tagClass:3,tagNumber:1},value:[this.distributionPoint.toSchema()]}),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[t]}));}return this.reasons&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:this.reasons.valueBlock.valueHexView})),this.cRLIssuer&&e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:Array.from(this.cRLIssuer,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={};return this.distributionPoint&&(this.distributionPoint instanceof Array?e.distributionPoint=Array.from(this.distributionPoint,t=>t.toJSON()):e.distributionPoint=this.distributionPoint.toJSON()),this.reasons&&(e.reasons=this.reasons.toJSON()),this.cRLIssuer&&(e.cRLIssuer=Array.from(this.cRLIssuer,t=>t.toJSON())),e}};G0.CLASS_NAME="DistributionPoint";var Qh="distributionPoints",vL=[Qh],W0=class s extends O{constructor(e={}){super(),this.distributionPoints=d(e,Qh,s.defaultValues(Qh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Qh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.distributionPoints||p,value:G0.schema()})]})}fromSchema(e){V(e,vL);let t=R(e,e,s.schema({names:{distributionPoints:Qh}}));B.assertSchema(t,this.className),this.distributionPoints=Array.from(t.result.distributionPoints,r=>new G0({schema:r}));}toSchema(){return new S({value:Array.from(this.distributionPoints,e=>e.toSchema())})}toJSON(){return {distributionPoints:Array.from(this.distributionPoints,e=>e.toJSON())}}};W0.CLASS_NAME="CRLDistributionPoints";var ed="keyPurposes",EL=[ed],mw=class s extends O{constructor(e={}){super(),this.keyPurposes=d(e,ed,s.defaultValues(ed)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ed:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.keyPurposes||p,value:new W})]})}fromSchema(e){V(e,EL);let t=R(e,e,s.schema({names:{keyPurposes:ed}}));B.assertSchema(t,this.className),this.keyPurposes=Array.from(t.result.keyPurposes,r=>r.valueBlock.toString());}toSchema(){return new S({value:Array.from(this.keyPurposes,e=>new W({value:e}))})}toJSON(){return {keyPurposes:Array.from(this.keyPurposes)}}};mw.CLASS_NAME="ExtKeyUsage";var Oh="accessDescriptions",J0=class s extends O{constructor(e={}){super(),this.accessDescriptions=d(e,Oh,s.defaultValues(Oh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Oh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.accessDescriptions||p,value:_0.schema()})]})}fromSchema(e){V(e,[Oh]);let t=R(e,e,s.schema({names:{accessDescriptions:Oh}}));B.assertSchema(t,this.className),this.accessDescriptions=Array.from(t.result.accessDescriptions,r=>new _0({schema:r}));}toSchema(){return new S({value:Array.from(this.accessDescriptions,e=>e.toSchema())})}toJSON(){return {accessDescriptions:Array.from(this.accessDescriptions,e=>e.toJSON())}}};J0.CLASS_NAME="InfoAccess";var Ya="distributionPoint",w4="distributionPointNames",ui="onlyContainsUserCerts",li="onlyContainsCACerts",fi="onlySomeReasons",hi="indirectCRL",di="onlyContainsAttributeCerts",xL=[Ya,w4,ui,li,fi,hi,di],pw=class s extends O{constructor(e={}){super(),Ya in e&&(this.distributionPoint=d(e,Ya,s.defaultValues(Ya))),this.onlyContainsUserCerts=d(e,ui,s.defaultValues(ui)),this.onlyContainsCACerts=d(e,li,s.defaultValues(li)),fi in e&&(this.onlySomeReasons=d(e,fi,s.defaultValues(fi))),this.indirectCRL=d(e,hi,s.defaultValues(hi)),this.onlyContainsAttributeCerts=d(e,di,s.defaultValues(di)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ya:return [];case ui:return !1;case li:return !1;case fi:return 0;case hi:return !1;case di:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new A({name:t.distributionPoint||p,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.distributionPointNames||p,value:We.schema()})]}),new A({name:t.distributionPoint||p,idBlock:{tagClass:3,tagNumber:1},value:Xe.schema().valueBlock.value})]})]}),new oe({name:t.onlyContainsUserCerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:t.onlyContainsCACerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:2}}),new oe({name:t.onlySomeReasons||p,optional:!0,idBlock:{tagClass:3,tagNumber:3}}),new oe({name:t.indirectCRL||p,optional:!0,idBlock:{tagClass:3,tagNumber:4}}),new oe({name:t.onlyContainsAttributeCerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:5}})]})}fromSchema(e){V(e,xL);let t=R(e,e,s.schema({names:{distributionPoint:Ya,distributionPointNames:w4,onlyContainsUserCerts:ui,onlyContainsCACerts:li,onlySomeReasons:fi,indirectCRL:hi,onlyContainsAttributeCerts:di}}));if(B.assertSchema(t,this.className),Ya in t.result)switch(!0){case t.result.distributionPoint.idBlock.tagNumber===0:this.distributionPoint=Array.from(t.result.distributionPointNames,r=>new We({schema:r}));break;case t.result.distributionPoint.idBlock.tagNumber===1:this.distributionPoint=new Xe({schema:new S({value:t.result.distributionPoint.valueBlock.value})});break;default:throw new Error("Unknown tagNumber for distributionPoint: {$asn1.result.distributionPoint.idBlock.tagNumber}")}if(ui in t.result){let r=new Uint8Array(t.result.onlyContainsUserCerts.valueBlock.valueHex);this.onlyContainsUserCerts=r[0]!==0;}if(li in t.result){let r=new Uint8Array(t.result.onlyContainsCACerts.valueBlock.valueHex);this.onlyContainsCACerts=r[0]!==0;}if(fi in t.result){let r=new Uint8Array(t.result.onlySomeReasons.valueBlock.valueHex);this.onlySomeReasons=r[0];}if(hi in t.result){let r=new Uint8Array(t.result.indirectCRL.valueBlock.valueHex);this.indirectCRL=r[0]!==0;}if(di in t.result){let r=new Uint8Array(t.result.onlyContainsAttributeCerts.valueBlock.valueHex);this.onlyContainsAttributeCerts=r[0]!==0;}}toSchema(){let e=[];if(this.distributionPoint){let t;this.distributionPoint instanceof Array?t=new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.distributionPoint,r=>r.toSchema())}):(t=this.distributionPoint.toSchema(),t.idBlock.tagClass=3,t.idBlock.tagNumber=1),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[t]}));}if(this.onlyContainsUserCerts!==s.defaultValues(ui)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:new Uint8Array([255]).buffer})),this.onlyContainsCACerts!==s.defaultValues(li)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:2},valueHex:new Uint8Array([255]).buffer})),this.onlySomeReasons!==void 0){let t=new ArrayBuffer(1),r=new Uint8Array(t);r[0]=this.onlySomeReasons,e.push(new oe({idBlock:{tagClass:3,tagNumber:3},valueHex:t}));}return this.indirectCRL!==s.defaultValues(hi)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:4},valueHex:new Uint8Array([255]).buffer})),this.onlyContainsAttributeCerts!==s.defaultValues(di)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:5},valueHex:new Uint8Array([255]).buffer})),new S({value:e})}toJSON(){let e={};return this.distributionPoint&&(this.distributionPoint instanceof Array?e.distributionPoint=Array.from(this.distributionPoint,t=>t.toJSON()):e.distributionPoint=this.distributionPoint.toJSON()),this.onlyContainsUserCerts!==s.defaultValues(ui)&&(e.onlyContainsUserCerts=this.onlyContainsUserCerts),this.onlyContainsCACerts!==s.defaultValues(li)&&(e.onlyContainsCACerts=this.onlyContainsCACerts),fi in this&&(e.onlySomeReasons=this.onlySomeReasons),this.indirectCRL!==s.defaultValues(hi)&&(e.indirectCRL=this.indirectCRL),this.onlyContainsAttributeCerts!==s.defaultValues(di)&&(e.onlyContainsAttributeCerts=this.onlyContainsAttributeCerts),e}};pw.CLASS_NAME="IssuingDistributionPoint";var td="base",uu="minimum",mi="maximum",AL=[td,uu,mi],Wo=class s extends O{constructor(e={}){super(),this.base=d(e,td,s.defaultValues(td)),this.minimum=d(e,uu,s.defaultValues(uu)),mi in e&&(this.maximum=d(e,mi,s.defaultValues(mi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case td:return new We;case uu:return 0;case mi:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[We.schema(t.base||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.minimum||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new T({name:t.maximum||p})]})]})}fromSchema(e){V(e,AL);let t=R(e,e,s.schema({names:{base:{names:{blockName:td}},minimum:uu,maximum:mi}}));B.assertSchema(t,this.className),this.base=new We({schema:t.result.base}),uu in t.result&&(t.result.minimum.valueBlock.isHexOnly?this.minimum=t.result.minimum:this.minimum=t.result.minimum.valueBlock.valueDec),mi in t.result&&(t.result.maximum.valueBlock.isHexOnly?this.maximum=t.result.maximum:this.maximum=t.result.maximum.valueBlock.valueDec);}toSchema(){let e=[];if(e.push(this.base.toSchema()),this.minimum!==0){let t=0;this.minimum instanceof T?t=this.minimum:t=new T({value:this.minimum}),e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[t]}));}if(mi in this){let t=0;this.maximum instanceof T?t=this.maximum:t=new T({value:this.maximum}),e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[t]}));}return new S({value:e})}toJSON(){let e={base:this.base.toJSON()};return this.minimum!==0&&(typeof this.minimum=="number"?e.minimum=this.minimum:e.minimum=this.minimum.toJSON()),this.maximum!==void 0&&(typeof this.maximum=="number"?e.maximum=this.maximum:e.maximum=this.maximum.toJSON()),e}};Wo.CLASS_NAME="GeneralSubtree";var Za="permittedSubtrees",Xa="excludedSubtrees",IL=[Za,Xa],gw=class s extends O{constructor(e={}){super(),Za in e&&(this.permittedSubtrees=d(e,Za,s.defaultValues(Za))),Xa in e&&(this.excludedSubtrees=d(e,Xa,s.defaultValues(Xa))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Za:case Xa:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.permittedSubtrees||p,value:Wo.schema()})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.excludedSubtrees||p,value:Wo.schema()})]})]})}fromSchema(e){V(e,IL);let t=R(e,e,s.schema({names:{permittedSubtrees:Za,excludedSubtrees:Xa}}));B.assertSchema(t,this.className),Za in t.result&&(this.permittedSubtrees=Array.from(t.result.permittedSubtrees,r=>new Wo({schema:r}))),Xa in t.result&&(this.excludedSubtrees=Array.from(t.result.excludedSubtrees,r=>new Wo({schema:r})));}toSchema(){let e=[];return this.permittedSubtrees&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.permittedSubtrees,t=>t.toSchema())})),this.excludedSubtrees&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.excludedSubtrees,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={};return this.permittedSubtrees&&(e.permittedSubtrees=Array.from(this.permittedSubtrees,t=>t.toJSON())),this.excludedSubtrees&&(e.excludedSubtrees=Array.from(this.excludedSubtrees,t=>t.toJSON())),e}};gw.CLASS_NAME="NameConstraints";var an="requireExplicitPolicy",on="inhibitPolicyMapping",CL=[an,on],yw=class s extends O{constructor(e={}){super(),an in e&&(this.requireExplicitPolicy=d(e,an,s.defaultValues(an))),on in e&&(this.inhibitPolicyMapping=d(e,on,s.defaultValues(on))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case an:return 0;case on:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new oe({name:t.requireExplicitPolicy||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.inhibitPolicyMapping||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,CL);let t=R(e,e,s.schema({names:{requireExplicitPolicy:an,inhibitPolicyMapping:on}}));if(B.assertSchema(t,this.className),an in t.result){let r=t.result.requireExplicitPolicy;r.idBlock.tagClass=1,r.idBlock.tagNumber=2;let n=r.toBER(!1),i=pt(n);B.assert(i,"Integer"),this.requireExplicitPolicy=i.result.valueBlock.valueDec;}if(on in t.result){let r=t.result.inhibitPolicyMapping;r.idBlock.tagClass=1,r.idBlock.tagNumber=2;let n=r.toBER(!1),i=pt(n);B.assert(i,"Integer"),this.inhibitPolicyMapping=i.result.valueBlock.valueDec;}}toSchema(){let e=[];if(an in this){let t=new T({value:this.requireExplicitPolicy});t.idBlock.tagClass=3,t.idBlock.tagNumber=0,e.push(t);}if(on in this){let t=new T({value:this.inhibitPolicyMapping});t.idBlock.tagClass=3,t.idBlock.tagNumber=1,e.push(t);}return new S({value:e})}toJSON(){let e={};return an in this&&(e.requireExplicitPolicy=this.requireExplicitPolicy),on in this&&(e.inhibitPolicyMapping=this.inhibitPolicyMapping),e}};yw.CLASS_NAME="PolicyConstraints";var sd="issuerDomainPolicy",rd="subjectDomainPolicy",NL=[sd,rd],z0=class s extends O{constructor(e={}){super(),this.issuerDomainPolicy=d(e,sd,s.defaultValues(sd)),this.subjectDomainPolicy=d(e,rd,s.defaultValues(rd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case sd:return p;case rd:return p;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.issuerDomainPolicy||p}),new W({name:t.subjectDomainPolicy||p})]})}fromSchema(e){V(e,NL);let t=R(e,e,s.schema({names:{issuerDomainPolicy:sd,subjectDomainPolicy:rd}}));B.assertSchema(t,this.className),this.issuerDomainPolicy=t.result.issuerDomainPolicy.valueBlock.toString(),this.subjectDomainPolicy=t.result.subjectDomainPolicy.valueBlock.toString();}toSchema(){return new S({value:[new W({value:this.issuerDomainPolicy}),new W({value:this.subjectDomainPolicy})]})}toJSON(){return {issuerDomainPolicy:this.issuerDomainPolicy,subjectDomainPolicy:this.subjectDomainPolicy}}};z0.CLASS_NAME="PolicyMapping";var nd="mappings",TL=[nd],ww=class s extends O{constructor(e={}){super(),this.mappings=d(e,nd,s.defaultValues(nd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case nd:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.mappings||p,value:z0.schema()})]})}fromSchema(e){V(e,TL);let t=R(e,e,s.schema({names:{mappings:nd}}));B.assertSchema(t,this.className),this.mappings=Array.from(t.result.mappings,r=>new z0({schema:r}));}toSchema(){return new S({value:Array.from(this.mappings,e=>e.toSchema())})}toJSON(){return {mappings:Array.from(this.mappings,e=>e.toJSON())}}};ww.CLASS_NAME="PolicyMappings";var pi="notBefore",gi="notAfter",kL=[pi,gi],bw=class s extends O{constructor(e={}){super(),pi in e&&(this.notBefore=d(e,pi,s.defaultValues(pi))),gi in e&&(this.notAfter=d(e,gi,s.defaultValues(gi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case pi:return new Date;case gi:return new Date;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new oe({name:t.notBefore||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.notAfter||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,kL);let t=R(e,e,s.schema({names:{notBefore:pi,notAfter:gi}}));if(B.assertSchema(t,this.className),pi in t.result){let r=new Ye;r.fromBuffer(t.result.notBefore.valueBlock.valueHex),this.notBefore=r.toDate();}if(gi in t.result){let r=new Ye({valueHex:t.result.notAfter.valueBlock.valueHex});r.fromBuffer(t.result.notAfter.valueBlock.valueHex),this.notAfter=r.toDate();}}toSchema(){let e=[];return pi in this&&e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:new Ye({valueDate:this.notBefore}).valueBlock.valueHexView})),gi in this&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:new Ye({valueDate:this.notAfter}).valueBlock.valueHexView})),new S({value:e})}toJSON(){let e={};return this.notBefore&&(e.notBefore=this.notBefore),this.notAfter&&(e.notAfter=this.notAfter),e}};bw.CLASS_NAME="PrivateKeyUsagePeriod";var lu="id",cn="type",fu="values",PL=[lu,cn],BL=[fu],Y0=class s extends O{constructor(e={}){super(),this.id=d(e,lu,s.defaultValues(lu)),cn in e&&(this.type=d(e,cn,s.defaultValues(cn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case lu:return p;case cn:return new it;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case lu:return t===p;case cn:return t instanceof it;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.id||p}),new ue({name:t.type||p,optional:!0})]})}fromSchema(e){V(e,PL);let t=R(e,e,s.schema({names:{id:lu,type:cn}}));B.assertSchema(t,this.className),this.id=t.result.id.valueBlock.toString(),cn in t.result&&(this.type=t.result.type);}toSchema(){let e=[new W({value:this.id})];return cn in this&&e.push(this.type),new S({value:e})}toJSON(){let e={id:this.id};return this.type&&(e.type=this.type.toJSON()),e}};Y0.CLASS_NAME="QCStatement";var Sw=class s extends O{constructor(e={}){super(),this.values=d(e,fu,s.defaultValues(fu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.values||p,value:Y0.schema(t.value||{})})]})}fromSchema(e){V(e,BL);let t=R(e,e,s.schema({names:{values:fu}}));B.assertSchema(t,this.className),this.values=Array.from(t.result.values,r=>new Y0({schema:r}));}toSchema(){return new S({value:Array.from(this.values,e=>e.toSchema())})}toJSON(){return {values:Array.from(this.values,e=>e.toJSON())}}};Sw.CLASS_NAME="QCStatements";var Qa,Ar=class{static register(e,t,r){this.namedCurves[e.toLowerCase()]=this.namedCurves[t]={name:e,id:t,size:r};}static find(e){return this.namedCurves[e.toLowerCase()]||null}};Qa=Ar;Ar.namedCurves={};Qa.register("P-256","1.2.840.10045.3.1.7",32),Qa.register("P-384","1.3.132.0.34",48),Qa.register("P-521","1.3.132.0.35",66),Qa.register("brainpoolP256r1","1.3.36.3.3.2.8.1.1.7",32),Qa.register("brainpoolP384r1","1.3.36.3.3.2.8.1.1.11",48),Qa.register("brainpoolP512r1","1.3.36.3.3.2.8.1.1.13",64);var hy="x",dy="y",my="namedCurve",ir=class s extends O{constructor(e={}){super(),this.x=d(e,hy,s.defaultValues(hy)),this.y=d(e,dy,s.defaultValues(dy)),this.namedCurve=d(e,my,s.defaultValues(my)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case hy:case dy:return dt;case my:return p;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case hy:case dy:return t instanceof ArrayBuffer&&zn(t,s.defaultValues(e));case my:return typeof t=="string"&&t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(){return new Ua}fromSchema(e){let t=ae.toUint8Array(e);if(t[0]!==4)throw new Error("Object's schema was not verified against input data for ECPublicKey");let r=Ar.find(this.namedCurve);if(!r)throw new Error(`Incorrect curve OID: ${this.namedCurve}`);let n=r.size;if(t.byteLength!==n*2+1)throw new Error("Object's schema was not verified against input data for ECPublicKey");this.namedCurve=r.name,this.x=t.slice(1,n+1).buffer,this.y=t.slice(1+n,n*2+1).buffer;}toSchema(){return new Ua({data:Ra(new Uint8Array([4]).buffer,this.x,this.y)})}toJSON(){let e=Ar.find(this.namedCurve);return {crv:e?e.name:this.namedCurve,x:O1(bh(this.x),!0,!0,!1),y:O1(bh(this.y),!0,!0,!1)}}fromJSON(e){He.assert("json",e,"crv","x","y");let t=0,r=Ar.find(e.crv);r&&(this.namedCurve=r.id,t=r.size);let n=Va(Jc(e.x,!0));if(n.byteLength<t){this.x=new ArrayBuffer(t);let a=new Uint8Array(this.x),o=new Uint8Array(n);a.set(o,1);}else this.x=n.slice(0,t);let i=Va(Jc(e.y,!0));if(i.byteLength<t){this.y=new ArrayBuffer(t);let a=new Uint8Array(this.y),o=new Uint8Array(i);a.set(o,1);}else this.y=i.slice(0,t);}};ir.CLASS_NAME="ECPublicKey";var id="modulus",ad="publicExponent",OL=[id,ad],Z0=class s extends O{constructor(e={}){super(),this.modulus=d(e,id,s.defaultValues(id)),this.publicExponent=d(e,ad,s.defaultValues(ad)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case id:return new T;case ad:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.modulus||p}),new T({name:t.publicExponent||p})]})}fromSchema(e){V(e,OL);let t=R(e,e,s.schema({names:{modulus:id,publicExponent:ad}}));B.assertSchema(t,this.className),this.modulus=t.result.modulus.convertFromDER(256),this.publicExponent=t.result.publicExponent;}toSchema(){return new S({value:[this.modulus.convertToDER(),this.publicExponent]})}toJSON(){return {n:fe.ToBase64Url(this.modulus.valueBlock.valueHexView),e:fe.ToBase64Url(this.publicExponent.valueBlock.valueHexView)}}fromJSON(e){He.assert("json",e,"n","e");let t=Va(Jc(e.n,!0));this.modulus=new T({valueHex:t.slice(0,Math.pow(2,FN(t.byteLength)))}),this.publicExponent=new T({valueHex:Va(Jc(e.e,!0)).slice(0,3)});}};Z0.CLASS_NAME="RSAPublicKey";var od="algorithm",cd="subjectPublicKey",RL=[od,cd],Ts=class s extends O{get parsedKey(){if(this._parsedKey===void 0){switch(this.algorithm.algorithmId){case"1.2.840.10045.2.1":if("algorithmParams"in this.algorithm&&this.algorithm.algorithmParams.constructor.blockName()===W.blockName())try{this._parsedKey=new ir({namedCurve:this.algorithm.algorithmParams.valueBlock.toString(),schema:this.subjectPublicKey.valueBlock.valueHexView});}catch{}break;case"1.2.840.113549.1.1.1":{let e=pt(this.subjectPublicKey.valueBlock.valueHexView);if(e.offset!==-1)try{this._parsedKey=new Z0({schema:e.result});}catch{}}break}this._parsedKey||(this._parsedKey=null);}return this._parsedKey||void 0}set parsedKey(e){this._parsedKey=e;}constructor(e={}){super(),this.algorithm=d(e,od,s.defaultValues(od)),this.subjectPublicKey=d(e,cd,s.defaultValues(cd));let t=d(e,"parsedKey",null);t&&(this.parsedKey=t),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case od:return new k;case cd:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.algorithm||{}),new Te({name:t.subjectPublicKey||p})]})}fromSchema(e){V(e,RL);let t=R(e,e,s.schema({names:{algorithm:{names:{blockName:od}},subjectPublicKey:cd}}));B.assertSchema(t,this.className),this.algorithm=new k({schema:t.result.algorithm}),this.subjectPublicKey=t.result.subjectPublicKey;}toSchema(){return new S({value:[this.algorithm.toSchema(),this.subjectPublicKey]})}toJSON(){if(!this.parsedKey)return {algorithm:this.algorithm.toJSON(),subjectPublicKey:this.subjectPublicKey.toJSON()};let e={};switch(this.algorithm.algorithmId){case"1.2.840.10045.2.1":e.kty="EC";break;case"1.2.840.113549.1.1.1":e.kty="RSA";break}let t=this.parsedKey.toJSON();return Object.assign(e,t),e}fromJSON(e){if("kty"in e){switch(e.kty.toUpperCase()){case"EC":this.parsedKey=new ir({json:e}),this.algorithm=new k({algorithmId:"1.2.840.10045.2.1",algorithmParams:new W({value:this.parsedKey.namedCurve})});break;case"RSA":this.parsedKey=new Z0({json:e}),this.algorithm=new k({algorithmId:"1.2.840.113549.1.1.1",algorithmParams:new it});break;default:throw new Error(`Invalid value for "kty" parameter: ${e.kty}`)}this.subjectPublicKey=new Te({valueHex:this.parsedKey.toSchema().toBER(!1)});}}async importKey(e,t=Ie(!0)){try{if(!e)throw new Error("Need to provide publicKey input parameter");let r=await t.exportKey("spki",e),n=pt(r);try{this.fromSchema(n.result);}catch{throw new Error("Error during initializing object from schema")}}catch(r){let n=r instanceof Error?r.message:`${r}`;throw new Error(`Error during exporting public key: ${n}`)}}};Ts.CLASS_NAME="PublicKeyInfo";var hu="version",du="privateKey",er="namedCurve",yi="publicKey",VL=[hu,du,er,yi],X0=class s extends O{constructor(e={}){super(),this.version=d(e,hu,s.defaultValues(hu)),this.privateKey=d(e,du,s.defaultValues(du)),er in e&&(this.namedCurve=d(e,er,s.defaultValues(er))),yi in e&&(this.publicKey=d(e,yi,s.defaultValues(yi))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case hu:return 1;case du:return new L;case er:return p;case yi:return new ir;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case hu:return t===s.defaultValues(e);case du:return t.isEqual(s.defaultValues(e));case er:return t===p;case yi:return ir.compareWithDefault(er,t.namedCurve)&&ir.compareWithDefault("x",t.x)&&ir.compareWithDefault("y",t.y);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new L({name:t.privateKey||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new W({name:t.namedCurve||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new Te({name:t.publicKey||p})]})]})}fromSchema(e){V(e,VL);let t=R(e,e,s.schema({names:{version:hu,privateKey:du,namedCurve:er,publicKey:yi}}));if(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.privateKey=t.result.privateKey,er in t.result&&(this.namedCurve=t.result.namedCurve.valueBlock.toString()),yi in t.result){let r={schema:t.result.publicKey.valueBlock.valueHex};er in this&&(r.namedCurve=this.namedCurve),this.publicKey=new ir(r);}}toSchema(){let e=[new T({value:this.version}),this.privateKey];return this.namedCurve&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new W({value:this.namedCurve})]})),this.publicKey&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new Te({valueHex:this.publicKey.toSchema().toBER(!1)})]})),new S({value:e})}toJSON(){if(!this.namedCurve||s.compareWithDefault(er,this.namedCurve))throw new Error('Not enough information for making JSON: absent "namedCurve" value');let e=Ar.find(this.namedCurve),t={crv:e?e.name:this.namedCurve,d:fe.ToBase64Url(this.privateKey.valueBlock.valueHexView)};if(this.publicKey){let r=this.publicKey.toJSON();t.x=r.x,t.y=r.y;}return t}fromJSON(e){He.assert("json",e,"crv","d");let t=0,r=Ar.find(e.crv);r&&(this.namedCurve=r.id,t=r.size);let n=fe.FromBase64Url(e.d);if(n.byteLength<t){let i=new ArrayBuffer(t),a=new Uint8Array(i),o=new Uint8Array(n);a.set(o,1),this.privateKey=new L({valueHex:i});}else this.privateKey=new L({valueHex:n.slice(0,t)});e.x&&e.y&&(this.publicKey=new ir({json:e}));}};X0.CLASS_NAME="ECPrivateKey";var ud="prime",ld="exponent",fd="coefficient",DL=[ud,ld,fd],Cl=class s extends O{constructor(e={}){super(),this.prime=d(e,ud,s.defaultValues(ud)),this.exponent=d(e,ld,s.defaultValues(ld)),this.coefficient=d(e,fd,s.defaultValues(fd)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ud:return new T;case ld:return new T;case fd:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.prime||p}),new T({name:t.exponent||p}),new T({name:t.coefficient||p})]})}fromSchema(e){V(e,DL);let t=R(e,e,s.schema({names:{prime:ud,exponent:ld,coefficient:fd}}));B.assertSchema(t,this.className),this.prime=t.result.prime.convertFromDER(),this.exponent=t.result.exponent.convertFromDER(),this.coefficient=t.result.coefficient.convertFromDER();}toSchema(){return new S({value:[this.prime.convertToDER(),this.exponent.convertToDER(),this.coefficient.convertToDER()]})}toJSON(){return {r:fe.ToBase64Url(this.prime.valueBlock.valueHexView),d:fe.ToBase64Url(this.exponent.valueBlock.valueHexView),t:fe.ToBase64Url(this.coefficient.valueBlock.valueHexView)}}fromJSON(e){He.assert("json",e,"r","d","r"),this.prime=new T({valueHex:fe.FromBase64Url(e.r)}),this.exponent=new T({valueHex:fe.FromBase64Url(e.d)}),this.coefficient=new T({valueHex:fe.FromBase64Url(e.t)});}};Cl.CLASS_NAME="OtherPrimeInfo";var hd="version",dd="modulus",md="publicExponent",pd="privateExponent",gd="prime1",yd="prime2",wd="exponent1",bd="exponent2",Sd="coefficient",eo="otherPrimeInfos",LL=[hd,dd,md,pd,gd,yd,wd,bd,Sd,eo],Q0=class s extends O{constructor(e={}){super(),this.version=d(e,hd,s.defaultValues(hd)),this.modulus=d(e,dd,s.defaultValues(dd)),this.publicExponent=d(e,md,s.defaultValues(md)),this.privateExponent=d(e,pd,s.defaultValues(pd)),this.prime1=d(e,gd,s.defaultValues(gd)),this.prime2=d(e,yd,s.defaultValues(yd)),this.exponent1=d(e,wd,s.defaultValues(wd)),this.exponent2=d(e,bd,s.defaultValues(bd)),this.coefficient=d(e,Sd,s.defaultValues(Sd)),eo in e&&(this.otherPrimeInfos=d(e,eo,s.defaultValues(eo))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case hd:return 0;case dd:return new T;case md:return new T;case pd:return new T;case gd:return new T;case yd:return new T;case wd:return new T;case bd:return new T;case Sd:return new T;case eo:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new T({name:t.modulus||p}),new T({name:t.publicExponent||p}),new T({name:t.privateExponent||p}),new T({name:t.prime1||p}),new T({name:t.prime2||p}),new T({name:t.exponent1||p}),new T({name:t.exponent2||p}),new T({name:t.coefficient||p}),new S({optional:!0,value:[new he({name:t.otherPrimeInfosName||p,value:Cl.schema(t.otherPrimeInfo||{})})]})]})}fromSchema(e){V(e,LL);let t=R(e,e,s.schema({names:{version:hd,modulus:dd,publicExponent:md,privateExponent:pd,prime1:gd,prime2:yd,exponent1:wd,exponent2:bd,coefficient:Sd,otherPrimeInfo:{names:{blockName:eo}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.modulus=t.result.modulus.convertFromDER(256),this.publicExponent=t.result.publicExponent,this.privateExponent=t.result.privateExponent.convertFromDER(256),this.prime1=t.result.prime1.convertFromDER(128),this.prime2=t.result.prime2.convertFromDER(128),this.exponent1=t.result.exponent1.convertFromDER(128),this.exponent2=t.result.exponent2.convertFromDER(128),this.coefficient=t.result.coefficient.convertFromDER(128),eo in t.result&&(this.otherPrimeInfos=Array.from(t.result.otherPrimeInfos,r=>new Cl({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.modulus.convertToDER()),e.push(this.publicExponent),e.push(this.privateExponent.convertToDER()),e.push(this.prime1.convertToDER()),e.push(this.prime2.convertToDER()),e.push(this.exponent1.convertToDER()),e.push(this.exponent2.convertToDER()),e.push(this.coefficient.convertToDER()),this.otherPrimeInfos&&e.push(new S({value:Array.from(this.otherPrimeInfos,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={n:fe.ToBase64Url(this.modulus.valueBlock.valueHexView),e:fe.ToBase64Url(this.publicExponent.valueBlock.valueHexView),d:fe.ToBase64Url(this.privateExponent.valueBlock.valueHexView),p:fe.ToBase64Url(this.prime1.valueBlock.valueHexView),q:fe.ToBase64Url(this.prime2.valueBlock.valueHexView),dp:fe.ToBase64Url(this.exponent1.valueBlock.valueHexView),dq:fe.ToBase64Url(this.exponent2.valueBlock.valueHexView),qi:fe.ToBase64Url(this.coefficient.valueBlock.valueHexView)};return this.otherPrimeInfos&&(e.oth=Array.from(this.otherPrimeInfos,t=>t.toJSON())),e}fromJSON(e){He.assert("json",e,"n","e","d","p","q","dp","dq","qi"),this.modulus=new T({valueHex:fe.FromBase64Url(e.n)}),this.publicExponent=new T({valueHex:fe.FromBase64Url(e.e)}),this.privateExponent=new T({valueHex:fe.FromBase64Url(e.d)}),this.prime1=new T({valueHex:fe.FromBase64Url(e.p)}),this.prime2=new T({valueHex:fe.FromBase64Url(e.q)}),this.exponent1=new T({valueHex:fe.FromBase64Url(e.dp)}),this.exponent2=new T({valueHex:fe.FromBase64Url(e.dq)}),this.coefficient=new T({valueHex:fe.FromBase64Url(e.qi)}),e.oth&&(this.otherPrimeInfos=Array.from(e.oth,t=>new Cl({json:t})));}};Q0.CLASS_NAME="RSAPrivateKey";var vd="version",Ed="privateKeyAlgorithm",xd="privateKey",to="attributes",py="parsedKey",UL=[vd,Ed,xd,to],tc=class s extends O{constructor(e={}){super(),this.version=d(e,vd,s.defaultValues(vd)),this.privateKeyAlgorithm=d(e,Ed,s.defaultValues(Ed)),this.privateKey=d(e,xd,s.defaultValues(xd)),to in e&&(this.attributes=d(e,to,s.defaultValues(to))),py in e&&(this.parsedKey=d(e,py,s.defaultValues(py))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vd:return 0;case Ed:return new k;case xd:return new L;case to:return [];case py:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),k.schema(t.privateKeyAlgorithm||{}),new L({name:t.privateKey||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.attributes||p,value:ut.schema()})]})]})}fromSchema(e){V(e,UL);let t=R(e,e,s.schema({names:{version:vd,privateKeyAlgorithm:{names:{blockName:Ed}},privateKey:xd,attributes:to}}));switch(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.privateKeyAlgorithm=new k({schema:t.result.privateKeyAlgorithm}),this.privateKey=t.result.privateKey,to in t.result&&(this.attributes=Array.from(t.result.attributes,r=>new ut({schema:r}))),this.privateKeyAlgorithm.algorithmId){case"1.2.840.113549.1.1.1":{let r=pt(this.privateKey.valueBlock.valueHexView);r.offset!==-1&&(this.parsedKey=new Q0({schema:r.result}));}break;case"1.2.840.10045.2.1":if("algorithmParams"in this.privateKeyAlgorithm&&this.privateKeyAlgorithm.algorithmParams instanceof W){let r=pt(this.privateKey.valueBlock.valueHexView);r.offset!==-1&&(this.parsedKey=new X0({namedCurve:this.privateKeyAlgorithm.algorithmParams.valueBlock.toString(),schema:r.result}));}break}}toSchema(){let e=[new T({value:this.version}),this.privateKeyAlgorithm.toSchema(),this.privateKey];return this.attributes&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.attributes,t=>t.toSchema())})),new S({value:e})}toJSON(){if(!this.parsedKey){let r={version:this.version,privateKeyAlgorithm:this.privateKeyAlgorithm.toJSON(),privateKey:this.privateKey.toJSON()};return this.attributes&&(r.attributes=Array.from(this.attributes,n=>n.toJSON())),r}let e={};switch(this.privateKeyAlgorithm.algorithmId){case"1.2.840.10045.2.1":e.kty="EC";break;case"1.2.840.113549.1.1.1":e.kty="RSA";break}let t=this.parsedKey.toJSON();return Object.assign(e,t),e}fromJSON(e){if("kty"in e){switch(e.kty.toUpperCase()){case"EC":this.parsedKey=new X0({json:e}),this.privateKeyAlgorithm=new k({algorithmId:"1.2.840.10045.2.1",algorithmParams:new W({value:this.parsedKey.namedCurve})});break;case"RSA":this.parsedKey=new Q0({json:e}),this.privateKeyAlgorithm=new k({algorithmId:"1.2.840.113549.1.1.1",algorithmParams:new it});break;default:throw new Error(`Invalid value for "kty" parameter: ${e.kty}`)}this.privateKey=new L({valueHex:this.parsedKey.toSchema().toBER(!1)});}}};tc.CLASS_NAME="PrivateKeyInfo";var mu="contentType",pu="contentEncryptionAlgorithm",so="encryptedContent",HL=[mu,pu,so],UT=1024,Ot=class s extends O{constructor(e={}){if(super(),this.contentType=d(e,mu,s.defaultValues(mu)),this.contentEncryptionAlgorithm=d(e,pu,s.defaultValues(pu)),so in e&&e.encryptedContent&&(this.encryptedContent=e.encryptedContent,this.encryptedContent.idBlock.tagClass===1&&this.encryptedContent.idBlock.tagNumber===4&&this.encryptedContent.idBlock.isConstructed===!1&&!e.disableSplit)){let t=new L({idBlock:{isConstructed:!0},isConstructed:!0}),r=0,n=this.encryptedContent.valueBlock.valueHexView.slice().buffer,i=n.byteLength;for(;i>0;){let a=new Uint8Array(n,r,r+UT>n.byteLength?n.byteLength-r:UT),o=new ArrayBuffer(a.length),c=new Uint8Array(o);for(let u=0;u<c.length;u++)c[u]=a[u];t.valueBlock.value.push(new L({valueHex:o})),i-=a.length,r+=a.length;}this.encryptedContent=t;}e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case mu:return p;case pu:return new k;case so:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case mu:return t===p;case pu:return t.algorithmId===p&&!("algorithmParams"in t);case so:return t.isEqual(s.defaultValues(so));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.contentType||p}),k.schema(t.contentEncryptionAlgorithm||{}),new Ze({value:[new A({name:t.encryptedContent||p,idBlock:{tagClass:3,tagNumber:0},value:[new he({value:new L})]}),new oe({name:t.encryptedContent||p,idBlock:{tagClass:3,tagNumber:0}})]})]})}fromSchema(e){V(e,HL);let t=R(e,e,s.schema({names:{contentType:mu,contentEncryptionAlgorithm:{names:{blockName:pu}},encryptedContent:so}}));B.assertSchema(t,this.className),this.contentType=t.result.contentType.valueBlock.toString(),this.contentEncryptionAlgorithm=new k({schema:t.result.contentEncryptionAlgorithm}),so in t.result&&(this.encryptedContent=t.result.encryptedContent,this.encryptedContent.idBlock.tagClass=1,this.encryptedContent.idBlock.tagNumber=4);}toSchema(){let e={isIndefiniteForm:!1},t=[];if(t.push(new W({value:this.contentType})),t.push(this.contentEncryptionAlgorithm.toSchema()),this.encryptedContent){e.isIndefiniteForm=this.encryptedContent.idBlock.isConstructed;let r=this.encryptedContent;r.idBlock.tagClass=3,r.idBlock.tagNumber=0,r.lenBlock.isIndefiniteForm=this.encryptedContent.idBlock.isConstructed,t.push(r);}return new S({lenBlock:e,value:t})}toJSON(){let e={contentType:this.contentType,contentEncryptionAlgorithm:this.contentEncryptionAlgorithm.toJSON()};return this.encryptedContent&&(e.encryptedContent=this.encryptedContent.toJSON()),e}getEncryptedContent(){if(!this.encryptedContent)throw new Error("Parameter 'encryptedContent' is undefined");return L.prototype.getValue.call(this.encryptedContent)}};Ot.CLASS_NAME="EncryptedContentInfo";var wi="hashAlgorithm",bi="maskGenAlgorithm",Si="saltLength",vi="trailerField",_L=[wi,bi,Si,vi],Nl=class s extends O{constructor(e={}){super(),this.hashAlgorithm=d(e,wi,s.defaultValues(wi)),this.maskGenAlgorithm=d(e,bi,s.defaultValues(bi)),this.saltLength=d(e,Si,s.defaultValues(Si)),this.trailerField=d(e,vi,s.defaultValues(vi)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wi:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});case bi:return new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it}).toSchema()});case Si:return 20;case vi:return 1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[k.schema(t.hashAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:1},optional:!0,value:[k.schema(t.maskGenAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:2},optional:!0,value:[new T({name:t.saltLength||p})]}),new A({idBlock:{tagClass:3,tagNumber:3},optional:!0,value:[new T({name:t.trailerField||p})]})]})}fromSchema(e){V(e,_L);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:wi}},maskGenAlgorithm:{names:{blockName:bi}},saltLength:Si,trailerField:vi}}));B.assertSchema(t,this.className),wi in t.result&&(this.hashAlgorithm=new k({schema:t.result.hashAlgorithm})),bi in t.result&&(this.maskGenAlgorithm=new k({schema:t.result.maskGenAlgorithm})),Si in t.result&&(this.saltLength=t.result.saltLength.valueBlock.valueDec),vi in t.result&&(this.trailerField=t.result.trailerField.valueBlock.valueDec);}toSchema(){let e=[];return this.hashAlgorithm.isEqual(s.defaultValues(wi))||e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.hashAlgorithm.toSchema()]})),this.maskGenAlgorithm.isEqual(s.defaultValues(bi))||e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.maskGenAlgorithm.toSchema()]})),this.saltLength!==s.defaultValues(Si)&&e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[new T({value:this.saltLength})]})),this.trailerField!==s.defaultValues(vi)&&e.push(new A({idBlock:{tagClass:3,tagNumber:3},value:[new T({value:this.trailerField})]})),new S({value:e})}toJSON(){let e={};return this.hashAlgorithm.isEqual(s.defaultValues(wi))||(e.hashAlgorithm=this.hashAlgorithm.toJSON()),this.maskGenAlgorithm.isEqual(s.defaultValues(bi))||(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),this.saltLength!==s.defaultValues(Si)&&(e.saltLength=this.saltLength),this.trailerField!==s.defaultValues(vi)&&(e.trailerField=this.trailerField),e}};Nl.CLASS_NAME="RSASSAPSSParams";var gu="salt",Ad="iterationCount",tr="keyLength",un="prf",jL=[gu,Ad,tr,un],Ji=class s extends O{constructor(e={}){super(),this.salt=d(e,gu,s.defaultValues(gu)),this.iterationCount=d(e,Ad,s.defaultValues(Ad)),tr in e&&(this.keyLength=d(e,tr,s.defaultValues(tr))),un in e&&(this.prf=d(e,un,s.defaultValues(un))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case gu:return {};case Ad:return -1;case tr:return 0;case un:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new Ze({value:[new L({name:t.saltPrimitive||p}),k.schema(t.saltConstructed||{})]}),new T({name:t.iterationCount||p}),new T({name:t.keyLength||p,optional:!0}),k.schema(t.prf||{names:{optional:!0}})]})}fromSchema(e){V(e,jL);let t=R(e,e,s.schema({names:{saltPrimitive:gu,saltConstructed:{names:{blockName:gu}},iterationCount:Ad,keyLength:tr,prf:{names:{blockName:un,optional:!0}}}}));B.assertSchema(t,this.className),this.salt=t.result.salt,this.iterationCount=t.result.iterationCount.valueBlock.valueDec,tr in t.result&&(this.keyLength=t.result.keyLength.valueBlock.valueDec),un in t.result&&(this.prf=new k({schema:t.result.prf}));}toSchema(){let e=[];return e.push(this.salt),e.push(new T({value:this.iterationCount})),tr in this&&s.defaultValues(tr)!==this.keyLength&&e.push(new T({value:this.keyLength})),this.prf&&s.defaultValues(un).isEqual(this.prf)===!1&&e.push(this.prf.toSchema()),new S({value:e})}toJSON(){let e={salt:this.salt.toJSON(),iterationCount:this.iterationCount};return tr in this&&s.defaultValues(tr)!==this.keyLength&&(e.keyLength=this.keyLength),this.prf&&s.defaultValues(un).isEqual(this.prf)===!1&&(e.prf=this.prf.toJSON()),e}};Ji.CLASS_NAME="PBKDF2Params";var Id="keyDerivationFunc",Cd="encryptionScheme",ML=[Id,Cd],em=class s extends O{constructor(e={}){super(),this.keyDerivationFunc=d(e,Id,s.defaultValues(Id)),this.encryptionScheme=d(e,Cd,s.defaultValues(Cd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Id:return new k;case Cd:return new k;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.keyDerivationFunc||{}),k.schema(t.encryptionScheme||{})]})}fromSchema(e){V(e,ML);let t=R(e,e,s.schema({names:{keyDerivationFunc:{names:{blockName:Id}},encryptionScheme:{names:{blockName:Cd}}}}));B.assertSchema(t,this.className),this.keyDerivationFunc=new k({schema:t.result.keyDerivationFunc}),this.encryptionScheme=new k({schema:t.result.encryptionScheme});}toSchema(){return new S({value:[this.keyDerivationFunc.toSchema(),this.encryptionScheme.toSchema()]})}toJSON(){return {keyDerivationFunc:this.keyDerivationFunc.toJSON(),encryptionScheme:this.encryptionScheme.toJSON()}}};em.CLASS_NAME="PBES2Params";var lA=class{constructor(e){this.crypto=e.crypto,this.subtle="webkitSubtle"in e.crypto?e.crypto.webkitSubtle:e.crypto.subtle,this.name=d(e,"name",p);}async encrypt(...e){return this.subtle.encrypt(...e)}async decrypt(...e){return this.subtle.decrypt(...e)}sign(...e){return this.subtle.sign(...e)}async verify(...e){return this.subtle.verify(...e)}async digest(...e){return this.subtle.digest(...e)}async generateKey(...e){return this.subtle.generateKey(...e)}async deriveKey(...e){return this.subtle.deriveKey(...e)}async deriveBits(...e){return this.subtle.deriveBits(...e)}async wrapKey(...e){return this.subtle.wrapKey(...e)}async unwrapKey(...e){return this.subtle.unwrapKey(...e)}exportKey(...e){return this.subtle.exportKey(...e)}importKey(...e){return this.subtle.importKey(...e)}getRandomValues(e){if(e===null)throw new Error('Argument "array" must not be null');return this.crypto.getRandomValues(e)}};async function HT(s,e,t,r,n){let i,a,o;switch(s.toUpperCase()){case"SHA-1":i=20,a=64,o=PT;break;case"SHA-256":i=32,a=64,o=T2;break;case"SHA-384":i=48,a=128,o=O2;break;case"SHA-512":i=64,a=128,o=B2;break;default:throw new Error("Unsupported hashing algorithm")}let c=new Uint8Array(t),u=new TextDecoder().decode(t);new TextEncoder().encode(u).some((E,I)=>E!==c[I])&&(u=String.fromCharCode(...c));let h=new Uint8Array(u.length*2+2),m=new DataView(h.buffer);for(let E=0;E<u.length;E++)m.setUint16(E*2,u.charCodeAt(E),!1);m.setUint16(u.length*2,0,!1);let y=new Uint8Array(a).fill(3),g=new Uint8Array(r),w=new Uint8Array(a*Math.ceil(g.length/a)).map((E,I)=>g[I%g.length]),b=new Uint8Array(a*Math.ceil(h.length/a)).map((E,I)=>h[I%h.length]),C=new Uint8Array(w.length+b.length);C.set(w),C.set(b,w.length);let N=Math.ceil((e>>3)/i),x=[];for(let E=0;E<N;E++){let I=new Uint8Array(y.length+C.length);I.set(y),I.set(C,y.length);for(let J=0;J<n;J++)I=o(I);let D=new Uint8Array(a).map((J,ne)=>I[ne%I.length]),K=Math.ceil(g.length/a)+Math.ceil(h.length/a),$=[];for(let J=0;J<K;J++){let ne=Array.from(C.slice(J*a,(J+1)*a)),F=511;for(let z=D.length-1;z>=0;z--)F>>=8,F+=D[z]+(ne[z]||0),ne[z]=F&255;$.push(...ne);}C=new Uint8Array($),x.push(...I);}return new Uint8Array(x.slice(0,e>>3)).buffer}function b4(s){let e=typeof s=="string"?{name:s}:s;return "hash"in e?{...e,hash:b4(e.hash)}:e}var Vl=class extends lA{async importKey(e,t,r,n,i){var a,o,c,u,l,h;let m={},y=b4(r);switch(e.toLowerCase()){case"raw":return this.subtle.importKey("raw",t,r,n,i);case"spki":{let g=pt(ae.toArrayBuffer(t));B.assert(g,"keyData");let w=new Ts;try{w.fromSchema(g.result);}catch{throw new Ge("Incorrect keyData")}switch(y.name.toUpperCase()){case"RSA-PSS":{if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="PS1";break;case"SHA-256":m.alg="PS256";break;case"SHA-384":m.alg="PS384";break;case"SHA-512":m.alg="PS512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}case"RSASSA-PKCS1-V1_5":{if(i=["verify"],m.kty="RSA",m.ext=n,m.key_ops=i,w.algorithm.algorithmId!=="1.2.840.113549.1.1.1")throw new Error(`Incorrect public key algorithm: ${w.algorithm.algorithmId}`);if(!m.alg){if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="RS1";break;case"SHA-256":m.alg="RS256";break;case"SHA-384":m.alg="RS384";break;case"SHA-512":m.alg="RS512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}let b=w.toJSON();Object.assign(m,b);}break;case"ECDSA":i=["verify"];case"ECDH":{if(m={kty:"EC",ext:n,key_ops:i},w.algorithm.algorithmId!=="1.2.840.10045.2.1")throw new Error(`Incorrect public key algorithm: ${w.algorithm.algorithmId}`);let b=w.toJSON();Object.assign(m,b);}break;case"RSA-OAEP":{if(m.kty="RSA",m.ext=n,m.key_ops=i,this.name.toLowerCase()==="safari")m.alg="RSA-OAEP";else {if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="RSA-OAEP";break;case"SHA-256":m.alg="RSA-OAEP-256";break;case"SHA-384":m.alg="RSA-OAEP-384";break;case"SHA-512":m.alg="RSA-OAEP-512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}let b=w.toJSON();Object.assign(m,b);}break;case"RSAES-PKCS1-V1_5":{m.kty="RSA",m.ext=n,m.key_ops=i,m.alg="PS1";let b=w.toJSON();Object.assign(m,b);}break;default:throw new Error(`Incorrect algorithm name: ${y.name.toUpperCase()}`)}}break;case"pkcs8":{let g=new tc,w=pt(ae.toArrayBuffer(t));B.assert(w,"keyData");try{g.fromSchema(w.result);}catch{throw new Error("Incorrect keyData")}if(!g.parsedKey)throw new Error("Incorrect keyData");switch(y.name.toUpperCase()){case"RSA-PSS":switch((a=y.hash)===null||a===void 0?void 0:a.name.toUpperCase()){case"SHA-1":m.alg="PS1";break;case"SHA-256":m.alg="PS256";break;case"SHA-384":m.alg="PS384";break;case"SHA-512":m.alg="PS512";break;default:throw new Error(`Incorrect hash algorithm: ${(o=y.hash)===null||o===void 0?void 0:o.name.toUpperCase()}`)}case"RSASSA-PKCS1-V1_5":{if(i=["sign"],m.kty="RSA",m.ext=n,m.key_ops=i,g.privateKeyAlgorithm.algorithmId!=="1.2.840.113549.1.1.1")throw new Error(`Incorrect private key algorithm: ${g.privateKeyAlgorithm.algorithmId}`);if(!("alg"in m))switch((c=y.hash)===null||c===void 0?void 0:c.name.toUpperCase()){case"SHA-1":m.alg="RS1";break;case"SHA-256":m.alg="RS256";break;case"SHA-384":m.alg="RS384";break;case"SHA-512":m.alg="RS512";break;default:throw new Error(`Incorrect hash algorithm: ${(u=y.hash)===null||u===void 0?void 0:u.name.toUpperCase()}`)}let b=g.toJSON();Object.assign(m,b);}break;case"ECDSA":i=["sign"];case"ECDH":{if(m={kty:"EC",ext:n,key_ops:i},g.privateKeyAlgorithm.algorithmId!=="1.2.840.10045.2.1")throw new Error(`Incorrect algorithm: ${g.privateKeyAlgorithm.algorithmId}`);let b=g.toJSON();Object.assign(m,b);}break;case"RSA-OAEP":{if(m.kty="RSA",m.ext=n,m.key_ops=i,this.name.toLowerCase()==="safari")m.alg="RSA-OAEP";else switch((l=y.hash)===null||l===void 0?void 0:l.name.toUpperCase()){case"SHA-1":m.alg="RSA-OAEP";break;case"SHA-256":m.alg="RSA-OAEP-256";break;case"SHA-384":m.alg="RSA-OAEP-384";break;case"SHA-512":m.alg="RSA-OAEP-512";break;default:throw new Error(`Incorrect hash algorithm: ${(h=y.hash)===null||h===void 0?void 0:h.name.toUpperCase()}`)}let b=g.toJSON();Object.assign(m,b);}break;case"RSAES-PKCS1-V1_5":{i=["decrypt"],m.kty="RSA",m.ext=n,m.key_ops=i,m.alg="PS1";let b=g.toJSON();Object.assign(m,b);}break;default:throw new Error(`Incorrect algorithm name: ${y.name.toUpperCase()}`)}}break;case"jwk":m=t;break;default:throw new Error(`Incorrect format: ${e}`)}if(this.name.toLowerCase()==="safari")try{return this.subtle.importKey("jwk",Va(JSON.stringify(m)),r,n,i)}catch{return this.subtle.importKey("jwk",m,r,n,i)}return this.subtle.importKey("jwk",m,r,n,i)}async exportKey(e,t){let r=await this.subtle.exportKey("jwk",t);switch(this.name.toLowerCase()==="safari"&&r instanceof ArrayBuffer&&(r=JSON.parse(bh(r))),e.toLowerCase()){case"raw":return this.subtle.exportKey("raw",t);case"spki":{let n=new Ts;try{n.fromJSON(r);}catch{throw new Error("Incorrect key data")}return n.toSchema().toBER(!1)}case"pkcs8":{let n=new tc;try{n.fromJSON(r);}catch{throw new Error("Incorrect key data")}return n.toSchema().toBER(!1)}case"jwk":return r;default:throw new Error(`Incorrect format: ${e}`)}}async convert(e,t,r,n,i,a){if(e.toLowerCase()===t.toLowerCase())return r;let o=await this.importKey(e,r,n,i,a);return this.exportKey(t,o)}getAlgorithmByOID(e,t=!1,r){switch(e){case"1.2.840.113549.1.1.1":return {name:"RSAES-PKCS1-v1_5"};case"1.2.840.113549.1.1.5":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case"1.2.840.113549.1.1.11":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"1.2.840.113549.1.1.12":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"1.2.840.113549.1.1.13":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"1.2.840.113549.1.1.10":return {name:"RSA-PSS"};case"1.2.840.113549.1.1.7":return {name:"RSA-OAEP"};case"1.2.840.10045.2.1":case"1.2.840.10045.4.1":return {name:"ECDSA",hash:{name:"SHA-1"}};case"1.2.840.10045.4.3.2":return {name:"ECDSA",hash:{name:"SHA-256"}};case"1.2.840.10045.4.3.3":return {name:"ECDSA",hash:{name:"SHA-384"}};case"1.2.840.10045.4.3.4":return {name:"ECDSA",hash:{name:"SHA-512"}};case"1.3.133.16.840.63.0.2":return {name:"ECDH",kdf:"SHA-1"};case"1.3.132.1.11.1":return {name:"ECDH",kdf:"SHA-256"};case"1.3.132.1.11.2":return {name:"ECDH",kdf:"SHA-384"};case"1.3.132.1.11.3":return {name:"ECDH",kdf:"SHA-512"};case"2.16.840.1.101.3.4.1.2":return {name:"AES-CBC",length:128};case"2.16.840.1.101.3.4.1.22":return {name:"AES-CBC",length:192};case"2.16.840.1.101.3.4.1.42":return {name:"AES-CBC",length:256};case"2.16.840.1.101.3.4.1.6":return {name:"AES-GCM",length:128};case"2.16.840.1.101.3.4.1.26":return {name:"AES-GCM",length:192};case"2.16.840.1.101.3.4.1.46":return {name:"AES-GCM",length:256};case"2.16.840.1.101.3.4.1.4":return {name:"AES-CFB",length:128};case"2.16.840.1.101.3.4.1.24":return {name:"AES-CFB",length:192};case"2.16.840.1.101.3.4.1.44":return {name:"AES-CFB",length:256};case"2.16.840.1.101.3.4.1.5":return {name:"AES-KW",length:128};case"2.16.840.1.101.3.4.1.25":return {name:"AES-KW",length:192};case"2.16.840.1.101.3.4.1.45":return {name:"AES-KW",length:256};case"1.2.840.113549.2.7":return {name:"HMAC",hash:{name:"SHA-1"}};case"1.2.840.113549.2.9":return {name:"HMAC",hash:{name:"SHA-256"}};case"1.2.840.113549.2.10":return {name:"HMAC",hash:{name:"SHA-384"}};case"1.2.840.113549.2.11":return {name:"HMAC",hash:{name:"SHA-512"}};case"1.2.840.113549.1.9.16.3.5":return {name:"DH"};case"1.3.14.3.2.26":return {name:"SHA-1"};case"2.16.840.1.101.3.4.2.1":return {name:"SHA-256"};case"2.16.840.1.101.3.4.2.2":return {name:"SHA-384"};case"2.16.840.1.101.3.4.2.3":return {name:"SHA-512"};case"1.2.840.113549.1.5.12":return {name:"PBKDF2"};case"1.2.840.10045.3.1.7":return {name:"P-256"};case"1.3.132.0.34":return {name:"P-384"};case"1.3.132.0.35":return {name:"P-521"}}if(t)throw new Error(`Unsupported algorithm identifier ${r?`for ${r} `:p}: ${e}`);return {}}getOIDByAlgorithm(e,t=!1,r){let n=p;switch(e.name.toUpperCase()){case"RSAES-PKCS1-V1_5":n="1.2.840.113549.1.1.1";break;case"RSASSA-PKCS1-V1_5":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.113549.1.1.5";break;case"SHA-256":n="1.2.840.113549.1.1.11";break;case"SHA-384":n="1.2.840.113549.1.1.12";break;case"SHA-512":n="1.2.840.113549.1.1.13";break}break;case"RSA-PSS":n="1.2.840.113549.1.1.10";break;case"RSA-OAEP":n="1.2.840.113549.1.1.7";break;case"ECDSA":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.10045.4.1";break;case"SHA-256":n="1.2.840.10045.4.3.2";break;case"SHA-384":n="1.2.840.10045.4.3.3";break;case"SHA-512":n="1.2.840.10045.4.3.4";break}break;case"ECDH":switch(e.kdf.toUpperCase()){case"SHA-1":n="1.3.133.16.840.63.0.2";break;case"SHA-256":n="1.3.132.1.11.1";break;case"SHA-384":n="1.3.132.1.11.2";break;case"SHA-512":n="1.3.132.1.11.3";break}break;case"AES-CTR":break;case"AES-CBC":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.2";break;case 192:n="2.16.840.1.101.3.4.1.22";break;case 256:n="2.16.840.1.101.3.4.1.42";break}break;case"AES-CMAC":break;case"AES-GCM":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.6";break;case 192:n="2.16.840.1.101.3.4.1.26";break;case 256:n="2.16.840.1.101.3.4.1.46";break}break;case"AES-CFB":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.4";break;case 192:n="2.16.840.1.101.3.4.1.24";break;case 256:n="2.16.840.1.101.3.4.1.44";break}break;case"AES-KW":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.5";break;case 192:n="2.16.840.1.101.3.4.1.25";break;case 256:n="2.16.840.1.101.3.4.1.45";break}break;case"HMAC":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.113549.2.7";break;case"SHA-256":n="1.2.840.113549.2.9";break;case"SHA-384":n="1.2.840.113549.2.10";break;case"SHA-512":n="1.2.840.113549.2.11";break}break;case"DH":n="1.2.840.113549.1.9.16.3.5";break;case"SHA-1":n="1.3.14.3.2.26";break;case"SHA-256":n="2.16.840.1.101.3.4.2.1";break;case"SHA-384":n="2.16.840.1.101.3.4.2.2";break;case"SHA-512":n="2.16.840.1.101.3.4.2.3";break;case"CONCAT":break;case"HKDF":break;case"PBKDF2":n="1.2.840.113549.1.5.12";break;case"P-256":n="1.2.840.10045.3.1.7";break;case"P-384":n="1.3.132.0.34";break;case"P-521":n="1.3.132.0.35";break}if(!n&&t)throw new Error(`Unsupported algorithm ${r?`for ${r} `:p}: ${e.name}`);return n}getAlgorithmParameters(e,t){let r={algorithm:{},usages:[]};switch(e.toUpperCase()){case"RSAES-PKCS1-V1_5":case"RSASSA-PKCS1-V1_5":switch(t.toLowerCase()){case"generatekey":r={algorithm:{name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["sign","verify"]};break;case"verify":case"sign":case"importkey":r={algorithm:{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},usages:["verify"]};break;case"exportkey":default:return {algorithm:{name:"RSASSA-PKCS1-v1_5"},usages:[]}}break;case"RSA-PSS":switch(t.toLowerCase()){case"sign":case"verify":r={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"},saltLength:20},usages:["sign","verify"]};break;case"generatekey":r={algorithm:{name:"RSA-PSS",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},usages:["sign","verify"]};break;case"importkey":r={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"}},usages:["verify"]};break;case"exportkey":default:return {algorithm:{name:"RSA-PSS"},usages:[]}}break;case"RSA-OAEP":switch(t.toLowerCase()){case"encrypt":case"decrypt":r={algorithm:{name:"RSA-OAEP"},usages:["encrypt","decrypt"]};break;case"generatekey":r={algorithm:{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"importkey":r={algorithm:{name:"RSA-OAEP",hash:{name:"SHA-256"}},usages:["encrypt"]};break;case"exportkey":default:return {algorithm:{name:"RSA-OAEP"},usages:[]}}break;case"ECDSA":switch(t.toLowerCase()){case"generatekey":r={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["sign","verify"]};break;case"importkey":r={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["verify"]};break;case"verify":case"sign":r={algorithm:{name:"ECDSA",hash:{name:"SHA-256"}},usages:["sign"]};break;default:return {algorithm:{name:"ECDSA"},usages:[]}}break;case"ECDH":switch(t.toLowerCase()){case"exportkey":case"importkey":case"generatekey":r={algorithm:{name:"ECDH",namedCurve:"P-256"},usages:["deriveKey","deriveBits"]};break;case"derivekey":case"derivebits":r={algorithm:{name:"ECDH",namedCurve:"P-256",public:[]},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"ECDH"},usages:[]}}break;case"AES-CTR":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-CTR",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-CTR",counter:new Uint8Array(16),length:10},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-CTR"},usages:[]}}break;case"AES-CBC":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-CBC",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-CBC",iv:this.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-CBC"},usages:[]}}break;case"AES-GCM":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-GCM",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-GCM",iv:this.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-GCM"},usages:[]}}break;case"AES-KW":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":case"wrapkey":case"unwrapkey":r={algorithm:{name:"AES-KW",length:256},usages:["wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-KW"},usages:[]}}break;case"HMAC":switch(t.toLowerCase()){case"sign":case"verify":r={algorithm:{name:"HMAC"},usages:["sign","verify"]};break;case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"HMAC",length:32,hash:{name:"SHA-256"}},usages:["sign","verify"]};break;default:return {algorithm:{name:"HMAC"},usages:[]}}break;case"HKDF":switch(t.toLowerCase()){case"derivekey":r={algorithm:{name:"HKDF",hash:"SHA-256",salt:new Uint8Array([]),info:new Uint8Array([])},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"HKDF"},usages:[]}}break;case"PBKDF2":switch(t.toLowerCase()){case"derivekey":r={algorithm:{name:"PBKDF2",hash:{name:"SHA-256"},salt:new Uint8Array([]),iterations:1e4},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"PBKDF2"},usages:[]}}break}return r}getHashAlgorithm(e){let t=p;switch(e.algorithmId){case"1.2.840.10045.4.1":case"1.2.840.113549.1.1.5":t="SHA-1";break;case"1.2.840.10045.4.3.2":case"1.2.840.113549.1.1.11":t="SHA-256";break;case"1.2.840.10045.4.3.3":case"1.2.840.113549.1.1.12":t="SHA-384";break;case"1.2.840.10045.4.3.4":case"1.2.840.113549.1.1.13":t="SHA-512";break;case"1.2.840.113549.1.1.10":try{let r=new Nl({schema:e.algorithmParams});if(r.hashAlgorithm){let n=this.getAlgorithmByOID(r.hashAlgorithm.algorithmId);if("name"in n)t=n.name;else return p}else t="SHA-1";}catch{}break}return t}async encryptEncryptedContentInfo(e){He.assert(e,"password","contentEncryptionAlgorithm","hmacHashAlgorithm","iterationCount","contentToEncrypt","contentToEncrypt","contentType");let t=this.getOIDByAlgorithm(e.contentEncryptionAlgorithm,!0,"contentEncryptionAlgorithm"),r=this.getOIDByAlgorithm({name:"PBKDF2"},!0,"PBKDF2"),n=this.getOIDByAlgorithm({name:"HMAC",hash:{name:e.hmacHashAlgorithm}},!0,"hmacHashAlgorithm"),i=new ArrayBuffer(16),a=new Uint8Array(i);this.getRandomValues(a);let o=new ArrayBuffer(64),c=new Uint8Array(o);this.getRandomValues(c);let u=new Uint8Array(e.contentToEncrypt),l=new Ji({salt:new L({valueHex:o}),iterationCount:e.iterationCount,prf:new k({algorithmId:n,algorithmParams:new it})}),h=new Uint8Array(e.password),m=await this.importKey("raw",h,"PBKDF2",!1,["deriveKey"]),y=await this.deriveKey({name:"PBKDF2",hash:{name:e.hmacHashAlgorithm},salt:c,iterations:e.iterationCount},m,e.contentEncryptionAlgorithm,!1,["encrypt"]),g=await this.encrypt({name:e.contentEncryptionAlgorithm.name,iv:a},y,u),w=new em({keyDerivationFunc:new k({algorithmId:r,algorithmParams:l.toSchema()}),encryptionScheme:new k({algorithmId:t,algorithmParams:new L({valueHex:i})})});return new Ot({contentType:e.contentType,contentEncryptionAlgorithm:new k({algorithmId:"1.2.840.113549.1.5.13",algorithmParams:w.toSchema()}),encryptedContent:new L({valueHex:g})})}async decryptEncryptedContentInfo(e){if(He.assert(e,"password","encryptedContentInfo"),e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId!=="1.2.840.113549.1.5.13")throw new Error(`Unknown "contentEncryptionAlgorithm": ${e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId}`);let t;try{t=new em({schema:e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "pbes2Parameters"')}let r;try{r=new Ji({schema:t.keyDerivationFunc.algorithmParams});}catch{throw new Error('Incorrectly encoded "pbkdf2Params"')}let n=this.getAlgorithmByOID(t.encryptionScheme.algorithmId,!0),i=t.encryptionScheme.algorithmParams.valueBlock.valueHex,a=new Uint8Array(i),o=r.salt.valueBlock.valueHex,c=new Uint8Array(o),u=r.iterationCount,l="SHA-1";r.prf&&(l=this.getAlgorithmByOID(r.prf.algorithmId,!0).hash.name);let h=await this.importKey("raw",e.password,"PBKDF2",!1,["deriveKey"]),m=await this.deriveKey({name:"PBKDF2",hash:{name:l},salt:c,iterations:u},h,n,!1,["decrypt"]),y=e.encryptedContentInfo.getEncryptedContent();return this.decrypt({name:n.name,iv:a},m,y)}async stampDataWithPassword(e){if(!(e instanceof Object))throw new Error('Parameters must have type "Object"');He.assert(e,"password","hashAlgorithm","iterationCount","salt","contentToStamp");let t;switch(e.hashAlgorithm.toLowerCase()){case"sha-1":t=160;break;case"sha-256":t=256;break;case"sha-384":t=384;break;case"sha-512":t=512;break;default:throw new Error(`Incorrect "parameters.hashAlgorithm" parameter: ${e.hashAlgorithm}`)}let r={name:"HMAC",length:t,hash:{name:e.hashAlgorithm}},n=await HT(e.hashAlgorithm,t,e.password,e.salt,e.iterationCount),i=await this.importKey("raw",new Uint8Array(n),r,!1,["sign"]);return this.sign(r,i,new Uint8Array(e.contentToStamp))}async verifyDataStampedWithPassword(e){He.assert(e,"password","hashAlgorithm","salt","iterationCount","contentToVerify","signatureToVerify");let t=0;switch(e.hashAlgorithm.toLowerCase()){case"sha-1":t=160;break;case"sha-256":t=256;break;case"sha-384":t=384;break;case"sha-512":t=512;break;default:throw new Error(`Incorrect "parameters.hashAlgorithm" parameter: ${e.hashAlgorithm}`)}let r={name:"HMAC",length:t,hash:{name:e.hashAlgorithm}},n=await HT(e.hashAlgorithm,t,e.password,e.salt,e.iterationCount),i=await this.importKey("raw",new Uint8Array(n),r,!1,["verify"]);return this.verify(r,i,new Uint8Array(e.signatureToVerify),new Uint8Array(e.contentToVerify))}async getSignatureParameters(e,t="SHA-1"){this.getOIDByAlgorithm({name:t},!0,"hashAlgorithm");let r=new k,n=this.getAlgorithmParameters(e.algorithm.name,"sign");if(!Object.keys(n.algorithm).length)throw new Error("Parameter 'algorithm' is empty");let i=n.algorithm;switch("hash"in e.algorithm&&e.algorithm.hash&&e.algorithm.hash.name?i.hash.name=e.algorithm.hash.name:i.hash.name=t,e.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":r.algorithmId=this.getOIDByAlgorithm(i,!0);break;case"RSA-PSS":{switch(i.hash.name.toUpperCase()){case"SHA-256":i.saltLength=32;break;case"SHA-384":i.saltLength=48;break;case"SHA-512":i.saltLength=64;break}let a={};if(i.hash.name.toUpperCase()!=="SHA-1"){let c=this.getOIDByAlgorithm({name:i.hash.name},!0,"hashAlgorithm");a.hashAlgorithm=new k({algorithmId:c,algorithmParams:new it}),a.maskGenAlgorithm=new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:a.hashAlgorithm.toSchema()});}i.saltLength!==20&&(a.saltLength=i.saltLength);let o=new Nl(a);r.algorithmId="1.2.840.113549.1.1.10",r.algorithmParams=o.toSchema();}break;default:throw new Error(`Unsupported signature algorithm: ${e.algorithm.name}`)}return {signatureAlgorithm:r,parameters:n}}async signWithPrivateKey(e,t,r){let n=await this.sign(r.algorithm,t,e);return r.algorithm.name==="ECDSA"?qL(n):n}fillPublicKeyParameters(e,t){let r={},n=this.getHashAlgorithm(t);if(n===p)throw new Error(`Unsupported signature algorithm: ${t.algorithmId}`);let i;t.algorithmId==="1.2.840.113549.1.1.10"?i=t.algorithmId:i=e.algorithm.algorithmId;let a=this.getAlgorithmByOID(i,!0);if(r.algorithm=this.getAlgorithmParameters(a.name,"importKey"),"hash"in r.algorithm.algorithm&&(r.algorithm.algorithm.hash.name=n),a.name==="ECDSA"){let o=e.algorithm;if(!o.algorithmParams)throw new Error("Algorithm parameters for ECDSA public key are missed");let c=o.algorithmParams;if("idBlock"in o.algorithmParams&&!(c.idBlock.tagClass===1&&c.idBlock.tagNumber===6))throw new Error("Incorrect type for ECDSA public key parameters");let u=this.getAlgorithmByOID(c.valueBlock.toString(),!0);r.algorithm.algorithm.namedCurve=u.name;}return r}async getPublicKey(e,t,r){r||(r=this.fillPublicKeyParameters(e,t));let n=e.toSchema().toBER(!1);return this.importKey("spki",n,r.algorithm.algorithm,!0,r.algorithm.usages)}async verifyWithPublicKey(e,t,r,n,i){let a;if(i){let u={},l;n.algorithmId==="1.2.840.113549.1.1.10"?l=n.algorithmId:l=r.algorithm.algorithmId;let h=this.getAlgorithmByOID(l,!0);if(u.algorithm=this.getAlgorithmParameters(h.name,"importKey"),"hash"in u.algorithm.algorithm&&(u.algorithm.algorithm.hash.name=i),h.name==="ECDSA"){let m=!1;if("algorithmParams"in r.algorithm&&"idBlock"in r.algorithm.algorithmParams&&r.algorithm.algorithmParams.idBlock.tagClass===1&&r.algorithm.algorithmParams.idBlock.tagNumber===6&&(m=!0),m===!1)throw new Error("Incorrect type for ECDSA public key parameters");let y=this.getAlgorithmByOID(r.algorithm.algorithmParams.valueBlock.toString(),!0);u.algorithm.algorithm.namedCurve=y.name;}a=await this.getPublicKey(r,null,u);}else {if(i=this.getHashAlgorithm(n),!i)throw new Error(`Unsupported signature algorithm: ${n.algorithmId}`);a=await this.getPublicKey(r,n);}let o=this.getAlgorithmParameters(a.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=i);let c=t.valueBlock.valueHexView;if(a.algorithm.name==="ECDSA"){let u=Ar.find(a.algorithm.namedCurve);if(!u)throw new Error("Unsupported named curve in use");let l=pt(c);B.assert(l,"Signature value"),c=FL(l.result,u.size);}if(a.algorithm.name==="RSA-PSS"){let u=new Nl({schema:n.algorithmParams});"saltLength"in u?o.algorithm.saltLength=u.saltLength:o.algorithm.saltLength=20;let l="SHA-1";"hashAlgorithm"in u&&(l=this.getAlgorithmByOID(u.hashAlgorithm.algorithmId,!0).name),o.algorithm.hash.name=l;}return this.verify(o.algorithm,a,c,e)}},S4={name:"none",crypto:null};function _T(s){return !!(s&&typeof s=="object"&&"crypto"in s)}function jT(s,...e){let t=null;if(e.length<2)e.length?t=e[0]:t=typeof self<"u"&&self.crypto?new Vl({name:"browser",crypto:self.crypto}):null;else {let r=e[0],n=e[1];_T(n)?t=n:_T(r)?t=r:"subtle"in r&&"getRandomValues"in r&&(t=new Vl({crypto:r}));}if(typeof process<"u"&&"pid"in process&&typeof global<"u"&&typeof window>"u"){if(typeof global[process.pid]>"u")global[process.pid]={};else if(typeof global[process.pid]!="object")throw new Error(`Name global.${process.pid} already exists and it is not an object`);if(typeof global[process.pid].pkijs>"u")global[process.pid].pkijs={};else if(typeof global[process.pid].pkijs!="object")throw new Error(`Name global.${process.pid}.pkijs already exists and it is not an object`);global[process.pid].pkijs.engine={name:s,crypto:t};}else S4={name:s,crypto:t};}function $L(){if(typeof process<"u"&&"pid"in process&&typeof global<"u"&&typeof window>"u"){let s;try{s=global[process.pid].pkijs.engine;}catch{throw new Error("Please call 'setEngine' before call to 'getEngine'")}return s}return S4}function Ie(s=!1){let e=$L();if(!e.crypto&&s)throw new Error("Unable to create WebCrypto object");return e.crypto}function qL(s){if(s.byteLength%2!==0)return dt;let e=s.byteLength/2,t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(s,0,e));let n=new T({valueHex:t}),i=new ArrayBuffer(e);new Uint8Array(i).set(new Uint8Array(s,e,e));let o=new T({valueHex:i});return new S({value:[n.convertToDER(),o.convertToDER()]}).toBER(!1)}function FL(s,e){if(!(s instanceof S&&s.valueBlock.value.length===2&&s.valueBlock.value[0]instanceof T&&s.valueBlock.value[1]instanceof T))return dt;let t=s.valueBlock.value[0].convertFromDER().valueBlock.valueHexView,r=s.valueBlock.value[1].convertFromDER().valueBlock.valueHexView,n=new Uint8Array(e*2);return n.set(t,e-t.byteLength),n.set(r,2*e-r.byteLength),n.buffer}async function KL(s,e,t,r,n){switch(s.toUpperCase()){case"SHA-1":case"SHA-256":case"SHA-384":case"SHA-512":break;default:throw new Ge(`Unknown hash function: ${s}`)}if(Ge.assert(e,"zBuffer","ArrayBuffer"),e.byteLength===0)throw new Ge("'zBuffer' has zero length, error");if(Ge.assert(r,"SharedInfo","ArrayBuffer"),t>255)throw new Ge("Please set 'Counter' argument to value less or equal to 255");let i=new ArrayBuffer(4),a=new Uint8Array(i);a[0]=0,a[1]=0,a[2]=0,a[3]=t;let o=dt;o=Ra(o,e),o=Ra(o,i),o=Ra(o,r);let c=await n.digest({name:s},o);return {counter:t,result:c}}async function MT(s,e,t,r,n=Ie(!0)){let i=0,a=1;switch(s.toUpperCase()){case"SHA-1":i=160;break;case"SHA-256":i=256;break;case"SHA-384":i=384;break;case"SHA-512":i=512;break;default:throw new Ge(`Unknown hash function: ${s}`)}if(Ge.assert(e,"Zbuffer","ArrayBuffer"),e.byteLength===0)throw new Ge("'Zbuffer' has zero length, error");Ge.assert(r,"SharedInfo","ArrayBuffer");let o=t/i;Math.floor(o)>0&&(a=Math.floor(o),o-a>0&&a++);let c=[];for(let m=1;m<=a;m++)c.push(await KL(s,e,m,r,n));let u=dt,l=1,h=!0;for(;h;){h=!1;for(let m of c)if(m.counter===l){u=Ra(u,m.result),h=!0;break}l++;}if(t>>=3,u.byteLength>t){let m=new ArrayBuffer(t),y=new Uint8Array(m),g=new Uint8Array(u);for(let w=0;w<t;w++)y[w]=g[w];return m}return u}var L2="version",U2="logID",H2="extensions",_2="timestamp",j2="hashAlgorithm",M2="signatureAlgorithm",$2="signature",$T="none",qT="md5",FT="sha1",KT="sha224",GT="sha256",WT="sha384",JT="sha512",zT="anonymous",YT="rsa",ZT="dsa",XT="ecdsa",vw=class s extends O{constructor(e={}){super(),this.version=d(e,L2,s.defaultValues(L2)),this.logID=d(e,U2,s.defaultValues(U2)),this.timestamp=d(e,_2,s.defaultValues(_2)),this.extensions=d(e,H2,s.defaultValues(H2)),this.hashAlgorithm=d(e,j2,s.defaultValues(j2)),this.signatureAlgorithm=d(e,M2,s.defaultValues(M2)),this.signature=d(e,$2,s.defaultValues($2)),"stream"in e&&e.stream&&this.fromStream(e.stream),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case L2:return 0;case U2:case H2:return dt;case _2:return new Date(0);case j2:case M2:return p;case $2:return dt;default:return super.defaultValues(e)}}fromSchema(e){if(!(e instanceof Ua))throw new Error("Object's schema was not verified against input data for SignedCertificateTimestamp");let t=new tn({stream:new jt({buffer:e.data})});this.fromStream(t);}fromStream(e){let t=e.getUint16();if(this.version=e.getBlock(1)[0],this.version===0){this.logID=new Uint8Array(e.getBlock(32)).buffer.slice(0),this.timestamp=new Date(zr(new Uint8Array(e.getBlock(8)),8));let r=e.getUint16();switch(this.extensions=new Uint8Array(e.getBlock(r)).buffer.slice(0),e.getBlock(1)[0]){case 0:this.hashAlgorithm=$T;break;case 1:this.hashAlgorithm=qT;break;case 2:this.hashAlgorithm=FT;break;case 3:this.hashAlgorithm=KT;break;case 4:this.hashAlgorithm=GT;break;case 5:this.hashAlgorithm=WT;break;case 6:this.hashAlgorithm=JT;break;default:throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}switch(e.getBlock(1)[0]){case 0:this.signatureAlgorithm=zT;break;case 1:this.signatureAlgorithm=YT;break;case 2:this.signatureAlgorithm=ZT;break;case 3:this.signatureAlgorithm=XT;break;default:throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}let n=e.getUint16();if(this.signature=new Uint8Array(e.getBlock(n)).buffer.slice(0),t!==47+r+n)throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}}toSchema(){let e=this.toStream();return new Ua({data:e.stream.buffer})}toStream(){let e=new tn;e.appendUint16(47+this.extensions.byteLength+this.signature.byteLength),e.appendChar(this.version),e.appendView(new Uint8Array(this.logID));let t=new ArrayBuffer(8),r=new Uint8Array(t),n=Xs(this.timestamp.valueOf(),8);r.set(new Uint8Array(n),8-n.byteLength),e.appendView(r),e.appendUint16(this.extensions.byteLength),this.extensions.byteLength&&e.appendView(new Uint8Array(this.extensions));let i;switch(this.hashAlgorithm.toLowerCase()){case $T:i=0;break;case qT:i=1;break;case FT:i=2;break;case KT:i=3;break;case GT:i=4;break;case WT:i=5;break;case JT:i=6;break;default:throw new Error(`Incorrect data for hashAlgorithm: ${this.hashAlgorithm}`)}e.appendChar(i);let a;switch(this.signatureAlgorithm.toLowerCase()){case zT:a=0;break;case YT:a=1;break;case ZT:a=2;break;case XT:a=3;break;default:throw new Error(`Incorrect data for signatureAlgorithm: ${this.signatureAlgorithm}`)}return e.appendChar(a),e.appendUint16(this.signature.byteLength),e.appendView(new Uint8Array(this.signature)),e}toJSON(){return {version:this.version,logID:P1(this.logID),timestamp:this.timestamp,extensions:P1(this.extensions),hashAlgorithm:this.hashAlgorithm,signatureAlgorithm:this.signatureAlgorithm,signature:P1(this.signature)}}async verify(e,t,r=0,n=Ie(!0)){let i=O1(bh(this.logID)),a=null,o=new tn;for(let y of e)if(y.log_id===i){a=y.key;break}if(!a)throw new Error(`Public key not found for CT with logId: ${i}`);let c=Va(Jc(a)),u=Ts.fromBER(c);o.appendChar(0),o.appendChar(0);let l=new ArrayBuffer(8),h=new Uint8Array(l),m=Xs(this.timestamp.valueOf(),8);return h.set(new Uint8Array(m),8-m.byteLength),o.appendView(h),o.appendUint16(r),r===0&&o.appendUint24(t.byteLength),o.appendView(new Uint8Array(t)),o.appendUint16(this.extensions.byteLength),this.extensions.byteLength!==0&&o.appendView(new Uint8Array(this.extensions)),n.verifyWithPublicKey(o.buffer.slice(0,o.length),new L({valueHex:this.signature}),u,{algorithmId:p},"SHA-256")}};vw.CLASS_NAME="SignedCertificateTimestamp";var gy="timestamps",Ew=class s extends O{constructor(e={}){super(),this.timestamps=d(e,gy,s.defaultValues(gy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case gy:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case gy:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){var t;let r=d(e,"names",{});return (t=r.optional)!==null&&t!==void 0||(r.optional=!1),new L({name:r.blockName||"SignedCertificateTimestampList",optional:r.optional})}fromSchema(e){if(!(e instanceof L))throw new Error("Object's schema was not verified against input data for SignedCertificateTimestampList");let t=new tn({stream:new jt({buffer:e.valueBlock.valueHex})});if(t.getUint16()!==t.length)throw new Error("Object's schema was not verified against input data for SignedCertificateTimestampList");for(;t.length;)this.timestamps.push(new vw({stream:t}));}toSchema(){let e=new tn,t=0,r=[];for(let n of this.timestamps){let i=n.toStream();r.push(i),t+=i.stream.buffer.byteLength;}e.appendUint16(t);for(let n of r)e.appendView(n.stream.view);return new L({valueHex:e.stream.buffer.slice(0)})}toJSON(){return {timestamps:Array.from(this.timestamps,e=>e.toJSON())}}};Ew.CLASS_NAME="SignedCertificateTimestampList";var Nd="attributes",GL=[Nd],xw=class s extends O{constructor(e={}){super(),this.attributes=d(e,Nd,s.defaultValues(Nd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Nd:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.attributes||p,value:ut.schema()})]})}fromSchema(e){V(e,GL);let t=R(e,e,s.schema({names:{attributes:Nd}}));B.assertSchema(t,this.className),this.attributes=Array.from(t.result.attributes,r=>new ut({schema:r}));}toSchema(){return new S({value:Array.from(this.attributes,e=>e.toSchema())})}toJSON(){return {attributes:Array.from(this.attributes,e=>e.toJSON())}}};xw.CLASS_NAME="SubjectDirectoryAttributes";var fA=class s{static getItems(){return this.types||(this.types={},s.register(n4,"SubjectAltName",j0),s.register(i4,"IssuerAltName",j0),s.register(qA,"AuthorityKeyIdentifier",M0),s.register(MA,"BasicConstraints",$0),s.register(lL,"MicrosoftCaVersion",dw),s.register(l4,"CertificatePolicies",K0),s.register(nL,"CertificatePoliciesMicrosoft",K0),s.register(uL,"MicrosoftCertTemplateV2",uA),s.register(u4,"CRLDistributionPoints",W0),s.register($A,"FreshestCRL",W0),s.register(iL,"ExtKeyUsage",mw),s.register(o4,"CertificateIssuer",xt),s.register(FA,"AuthorityInfoAccess",J0),s.register(oL,"SubjectInfoAccess",J0),s.register(a4,"IssuingDistributionPoint",pw),s.register(c4,"NameConstraints",gw),s.register(h4,"PolicyConstraints",yw),s.register(f4,"PolicyMappings",ww),s.register(QD,"PrivateKeyUsagePeriod",bw),s.register(fL,"QCStatements",Sw),s.register(cL,"SignedCertificateTimestampList",Ew),s.register(YD,"SubjectDirectoryAttributes",xw)),this.types}static fromBER(e,t){let r=pt(t);if(r.offset===-1)return null;let n=this.find(e);if(n)try{return new n.type({schema:r.result})}catch{let i=new n.type;return i.parsingError=`Incorrectly formatted value of extension ${n.name} (${e})`,i}return r.result}static find(e){return this.getItems()[e]||null}static register(e,t,r){this.getItems()[e]={name:t,type:r};}},Td="extnID",Ei="critical",kd="extnValue",yy="parsedValue",WL=[Td,Ei,kd],ys=class s extends O{get parsedValue(){if(this._parsedValue===void 0){let e=fA.fromBER(this.extnID,this.extnValue.valueBlock.valueHexView);this._parsedValue=e;}return this._parsedValue||void 0}set parsedValue(e){this._parsedValue=e;}constructor(e={}){super(),this.extnID=d(e,Td,s.defaultValues(Td)),this.critical=d(e,Ei,s.defaultValues(Ei)),kd in e?this.extnValue=new L({valueHex:e.extnValue}):this.extnValue=s.defaultValues(kd),yy in e&&(this.parsedValue=d(e,yy,s.defaultValues(yy))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Td:return p;case Ei:return !1;case kd:return new L;case yy:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.extnID||p}),new Cs({name:t.critical||p,optional:!0}),new L({name:t.extnValue||p})]})}fromSchema(e){V(e,WL);let t=R(e,e,s.schema({names:{extnID:Td,critical:Ei,extnValue:kd}}));B.assertSchema(t,this.className),this.extnID=t.result.extnID.valueBlock.toString(),Ei in t.result&&(this.critical=t.result.critical.valueBlock.value),this.extnValue=t.result.extnValue;}toSchema(){let e=[];return e.push(new W({value:this.extnID})),this.critical!==s.defaultValues(Ei)&&e.push(new Cs({value:this.critical})),e.push(this.extnValue),new S({value:e})}toJSON(){let e={extnID:this.extnID,extnValue:this.extnValue.toJSON()};return this.critical!==s.defaultValues(Ei)&&(e.critical=this.critical),this.parsedValue&&this.parsedValue.toJSON&&(e.parsedValue=this.parsedValue.toJSON()),e}};ys.CLASS_NAME="Extension";var Pd="extensions",JL=[Pd],gt=class s extends O{constructor(e={}){super(),this.extensions=d(e,Pd,s.defaultValues(Pd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Pd:return [];default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,"names",{});return new S({optional:t,name:r.blockName||p,value:[new he({name:r.extensions||p,value:ys.schema(r.extension||{})})]})}fromSchema(e){V(e,JL);let t=R(e,e,s.schema({names:{extensions:Pd}}));B.assertSchema(t,this.className),this.extensions=Array.from(t.result.extensions,r=>new ys({schema:r}));}toSchema(){return new S({value:Array.from(this.extensions,e=>e.toSchema())})}toJSON(){return {extensions:this.extensions.map(e=>e.toJSON())}}};gt.CLASS_NAME="Extensions";var Bd="issuer",Od="serialNumber",ro="issuerUID",zL=[Bd,Od,ro],Vs=class s extends O{constructor(e={}){super(),this.issuer=d(e,Bd,s.defaultValues(Bd)),this.serialNumber=d(e,Od,s.defaultValues(Od)),ro in e&&(this.issuerUID=d(e,ro,s.defaultValues(ro))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bd:return new xt;case Od:return new T;case ro:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[xt.schema(t.issuer||{}),new T({name:t.serialNumber||p}),new Te({optional:!0,name:t.issuerUID||p})]})}fromSchema(e){V(e,zL);let t=R(e,e,s.schema({names:{issuer:{names:{blockName:Bd}},serialNumber:Od,issuerUID:ro}}));B.assertSchema(t,this.className),this.issuer=new xt({schema:t.result.issuer}),this.serialNumber=t.result.serialNumber,ro in t.result&&(this.issuerUID=t.result.issuerUID);}toSchema(){let e=new S({value:[this.issuer.toSchema(),this.serialNumber]});return this.issuerUID&&e.valueBlock.value.push(this.issuerUID),e}toJSON(){let e={issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()};return this.issuerUID&&(e.issuerUID=this.issuerUID.toJSON()),e}};Vs.CLASS_NAME="IssuerSerial";var Rd="version",no="baseCertificateID",io="subjectName",Vd="issuer",Dd="signature",Ld="serialNumber",Ud="attrCertValidityPeriod",Hd="attributes",ao="issuerUniqueID",oo="extensions",YL=[Rd,no,io,Vd,Dd,Ld,Ud,Hd,ao,oo],Tl=class s extends O{constructor(e={}){super(),this.version=d(e,Rd,s.defaultValues(Rd)),no in e&&(this.baseCertificateID=d(e,no,s.defaultValues(no))),io in e&&(this.subjectName=d(e,io,s.defaultValues(io))),this.issuer=d(e,Vd,s.defaultValues(Vd)),this.signature=d(e,Dd,s.defaultValues(Dd)),this.serialNumber=d(e,Ld,s.defaultValues(Ld)),this.attrCertValidityPeriod=d(e,Ud,s.defaultValues(Ud)),this.attributes=d(e,Hd,s.defaultValues(Hd)),ao in e&&(this.issuerUniqueID=d(e,ao,s.defaultValues(ao))),oo in e&&(this.extensions=d(e,oo,s.defaultValues(oo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Rd:return 0;case no:return new Vs;case io:return new xt;case Vd:return new xt;case Dd:return new k;case Ld:return new T;case Ud:return new vn;case Hd:return [];case ao:return new Te;case oo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new Ze({value:[new A({name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({name:t.subjectName||p,idBlock:{tagClass:3,tagNumber:1},value:xt.schema().valueBlock.value})]}),xt.schema({names:{blockName:t.issuer||p}}),k.schema(t.signature||{}),new T({name:t.serialNumber||p}),vn.schema(t.attrCertValidityPeriod||{}),new S({name:t.attributes||p,value:[new he({value:ut.schema()})]}),new Te({optional:!0,name:t.issuerUniqueID||p}),gt.schema(t.extensions||{},!0)]})}fromSchema(e){V(e,YL);let t=R(e,e,s.schema({names:{version:Rd,baseCertificateID:no,subjectName:io,issuer:Vd,signature:{names:{blockName:Dd}},serialNumber:Ld,attrCertValidityPeriod:{names:{blockName:Ud}},attributes:Hd,issuerUniqueID:ao,extensions:{names:{blockName:oo}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,no in t.result&&(this.baseCertificateID=new Vs({schema:new S({value:t.result.baseCertificateID.valueBlock.value})})),io in t.result&&(this.subjectName=new xt({schema:new S({value:t.result.subjectName.valueBlock.value})})),this.issuer=t.result.issuer,this.signature=new k({schema:t.result.signature}),this.serialNumber=t.result.serialNumber,this.attrCertValidityPeriod=new vn({schema:t.result.attrCertValidityPeriod}),this.attributes=Array.from(t.result.attributes.valueBlock.value,r=>new ut({schema:r})),ao in t.result&&(this.issuerUniqueID=t.result.issuerUniqueID),oo in t.result&&(this.extensions=new gt({schema:t.result.extensions}));}toSchema(){let e=new S({value:[new T({value:this.version})]});return this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.subjectName&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.subjectName.toSchema().valueBlock.value})),e.valueBlock.value.push(this.issuer.toSchema()),e.valueBlock.value.push(this.signature.toSchema()),e.valueBlock.value.push(this.serialNumber),e.valueBlock.value.push(this.attrCertValidityPeriod.toSchema()),e.valueBlock.value.push(new S({value:Array.from(this.attributes,t=>t.toSchema())})),this.issuerUniqueID&&e.valueBlock.value.push(this.issuerUniqueID),this.extensions&&e.valueBlock.value.push(this.extensions.toSchema()),e}toJSON(){let e={version:this.version};return this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.subjectName&&(e.subjectName=this.subjectName.toJSON()),e.issuer=this.issuer.toJSON(),e.signature=this.signature.toJSON(),e.serialNumber=this.serialNumber.toJSON(),e.attrCertValidityPeriod=this.attrCertValidityPeriod.toJSON(),e.attributes=Array.from(this.attributes,t=>t.toJSON()),this.issuerUniqueID&&(e.issuerUniqueID=this.issuerUniqueID.toJSON()),this.extensions&&(e.extensions=this.extensions.toJSON()),e}};Tl.CLASS_NAME="AttributeCertificateInfoV1";var _d="acinfo",jd="signatureAlgorithm",Md="signatureValue",ZL=[_d,Md,jd],Dl=class s extends O{constructor(e={}){super(),this.acinfo=d(e,_d,s.defaultValues(_d)),this.signatureAlgorithm=d(e,jd,s.defaultValues(jd)),this.signatureValue=d(e,Md,s.defaultValues(Md)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case _d:return new Tl;case jd:return new k;case Md:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[Tl.schema(t.acinfo||{}),k.schema(t.signatureAlgorithm||{}),new Te({name:t.signatureValue||p})]})}fromSchema(e){V(e,ZL);let t=R(e,e,s.schema({names:{acinfo:{names:{blockName:_d}},signatureAlgorithm:{names:{blockName:jd}},signatureValue:Md}}));B.assertSchema(t,this.className),this.acinfo=new Tl({schema:t.result.acinfo}),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}toSchema(){return new S({value:[this.acinfo.toSchema(),this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){return {acinfo:this.acinfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()}}};Dl.CLASS_NAME="AttributeCertificateV1";var $d="digestedObjectType",co="otherObjectTypeID",qd="digestAlgorithm",Fd="objectDigest",XL=[$d,co,qd,Fd],En=class s extends O{constructor(e={}){super(),this.digestedObjectType=d(e,$d,s.defaultValues($d)),co in e&&(this.otherObjectTypeID=d(e,co,s.defaultValues(co))),this.digestAlgorithm=d(e,qd,s.defaultValues(qd)),this.objectDigest=d(e,Fd,s.defaultValues(Fd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $d:return new br;case co:return new W;case qd:return new k;case Fd:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new br({name:t.digestedObjectType||p}),new W({optional:!0,name:t.otherObjectTypeID||p}),k.schema(t.digestAlgorithm||{}),new Te({name:t.objectDigest||p})]})}fromSchema(e){V(e,XL);let t=R(e,e,s.schema({names:{digestedObjectType:$d,otherObjectTypeID:co,digestAlgorithm:{names:{blockName:qd}},objectDigest:Fd}}));B.assertSchema(t,this.className),this.digestedObjectType=t.result.digestedObjectType,co in t.result&&(this.otherObjectTypeID=t.result.otherObjectTypeID),this.digestAlgorithm=new k({schema:t.result.digestAlgorithm}),this.objectDigest=t.result.objectDigest;}toSchema(){let e=new S({value:[this.digestedObjectType]});return this.otherObjectTypeID&&e.valueBlock.value.push(this.otherObjectTypeID),e.valueBlock.value.push(this.digestAlgorithm.toSchema()),e.valueBlock.value.push(this.objectDigest),e}toJSON(){let e={digestedObjectType:this.digestedObjectType.toJSON(),digestAlgorithm:this.digestAlgorithm.toJSON(),objectDigest:this.objectDigest.toJSON()};return this.otherObjectTypeID&&(e.otherObjectTypeID=this.otherObjectTypeID.toJSON()),e}};En.CLASS_NAME="ObjectDigestInfo";var uo="issuerName",lo="baseCertificateID",fo="objectDigestInfo",QL=[uo,lo,fo],tm=class s extends O{constructor(e={}){super(),uo in e&&(this.issuerName=d(e,uo,s.defaultValues(uo))),lo in e&&(this.baseCertificateID=d(e,lo,s.defaultValues(lo))),fo in e&&(this.objectDigestInfo=d(e,fo,s.defaultValues(fo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case uo:return new xt;case lo:return new Vs;case fo:return new En;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[xt.schema({names:{blockName:t.issuerName}},!0),new A({optional:!0,name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({optional:!0,name:t.objectDigestInfo||p,idBlock:{tagClass:3,tagNumber:1},value:En.schema().valueBlock.value})]})}fromSchema(e){V(e,QL);let t=R(e,e,s.schema({names:{issuerName:uo,baseCertificateID:lo,objectDigestInfo:fo}}));B.assertSchema(t,this.className),uo in t.result&&(this.issuerName=new xt({schema:t.result.issuerName})),lo in t.result&&(this.baseCertificateID=new Vs({schema:new S({value:t.result.baseCertificateID.valueBlock.value})})),fo in t.result&&(this.objectDigestInfo=new En({schema:new S({value:t.result.objectDigestInfo.valueBlock.value})}));}toSchema(){let e=new S;return this.issuerName&&e.valueBlock.value.push(this.issuerName.toSchema()),this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.objectDigestInfo&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.objectDigestInfo.toSchema().valueBlock.value})),e}toJSON(){let e={};return this.issuerName&&(e.issuerName=this.issuerName.toJSON()),this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.objectDigestInfo&&(e.objectDigestInfo=this.objectDigestInfo.toJSON()),e}};tm.CLASS_NAME="V2Form";var ho="baseCertificateID",mo="entityName",po="objectDigestInfo",eU=[ho,mo,po],kl=class s extends O{constructor(e={}){super(),ho in e&&(this.baseCertificateID=d(e,ho,s.defaultValues(ho))),mo in e&&(this.entityName=d(e,mo,s.defaultValues(mo))),po in e&&(this.objectDigestInfo=d(e,po,s.defaultValues(po))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ho:return new Vs;case mo:return new xt;case po:return new En;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({optional:!0,name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({optional:!0,name:t.entityName||p,idBlock:{tagClass:3,tagNumber:1},value:xt.schema().valueBlock.value}),new A({optional:!0,name:t.objectDigestInfo||p,idBlock:{tagClass:3,tagNumber:2},value:En.schema().valueBlock.value})]})}fromSchema(e){V(e,eU);let t=R(e,e,s.schema({names:{baseCertificateID:ho,entityName:mo,objectDigestInfo:po}}));B.assertSchema(t,this.className),ho in t.result&&(this.baseCertificateID=new Vs({schema:new S({value:t.result.baseCertificateID.valueBlock.value})})),mo in t.result&&(this.entityName=new xt({schema:new S({value:t.result.entityName.valueBlock.value})})),po in t.result&&(this.objectDigestInfo=new En({schema:new S({value:t.result.objectDigestInfo.valueBlock.value})}));}toSchema(){let e=new S;return this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.entityName&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.entityName.toSchema().valueBlock.value})),this.objectDigestInfo&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:2},value:this.objectDigestInfo.toSchema().valueBlock.value})),e}toJSON(){let e={};return this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.entityName&&(e.entityName=this.entityName.toJSON()),this.objectDigestInfo&&(e.objectDigestInfo=this.objectDigestInfo.toJSON()),e}};kl.CLASS_NAME="Holder";var Kd="version",Gd="holder",Wd="issuer",Jd="signature",zd="serialNumber",Yd="attrCertValidityPeriod",Zd="attributes",go="issuerUniqueID",yo="extensions",tU=[Kd,Gd,Wd,Jd,zd,Yd,Zd,go,yo],Pl=class s extends O{constructor(e={}){super(),this.version=d(e,Kd,s.defaultValues(Kd)),this.holder=d(e,Gd,s.defaultValues(Gd)),this.issuer=d(e,Wd,s.defaultValues(Wd)),this.signature=d(e,Jd,s.defaultValues(Jd)),this.serialNumber=d(e,zd,s.defaultValues(zd)),this.attrCertValidityPeriod=d(e,Yd,s.defaultValues(Yd)),this.attributes=d(e,Zd,s.defaultValues(Zd)),go in e&&(this.issuerUniqueID=d(e,go,s.defaultValues(go))),yo in e&&(this.extensions=d(e,yo,s.defaultValues(yo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Kd:return 1;case Gd:return new kl;case Wd:return {};case Jd:return new k;case zd:return new T;case Yd:return new vn;case Zd:return [];case go:return new Te;case yo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),kl.schema(t.holder||{}),new Ze({value:[xt.schema({names:{blockName:t.issuer||p}}),new A({name:t.issuer||p,idBlock:{tagClass:3,tagNumber:0},value:tm.schema().valueBlock.value})]}),k.schema(t.signature||{}),new T({name:t.serialNumber||p}),vn.schema(t.attrCertValidityPeriod||{}),new S({name:t.attributes||p,value:[new he({value:ut.schema()})]}),new Te({optional:!0,name:t.issuerUniqueID||p}),gt.schema(t.extensions||{},!0)]})}fromSchema(e){V(e,tU);let t=R(e,e,s.schema({names:{version:Kd,holder:{names:{blockName:Gd}},issuer:Wd,signature:{names:{blockName:Jd}},serialNumber:zd,attrCertValidityPeriod:{names:{blockName:Yd}},attributes:Zd,issuerUniqueID:go,extensions:{names:{blockName:yo}}}}));switch(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.holder=new kl({schema:t.result.holder}),t.result.issuer.idBlock.tagClass){case 3:this.issuer=new tm({schema:new S({value:t.result.issuer.valueBlock.value})});break;case 1:default:throw new Error("Incorrect value for 'issuer' in AttributeCertificateInfoV2")}this.signature=new k({schema:t.result.signature}),this.serialNumber=t.result.serialNumber,this.attrCertValidityPeriod=new vn({schema:t.result.attrCertValidityPeriod}),this.attributes=Array.from(t.result.attributes.valueBlock.value,r=>new ut({schema:r})),go in t.result&&(this.issuerUniqueID=t.result.issuerUniqueID),yo in t.result&&(this.extensions=new gt({schema:t.result.extensions}));}toSchema(){let e=new S({value:[new T({value:this.version}),this.holder.toSchema(),new A({idBlock:{tagClass:3,tagNumber:0},value:this.issuer.toSchema().valueBlock.value}),this.signature.toSchema(),this.serialNumber,this.attrCertValidityPeriod.toSchema(),new S({value:Array.from(this.attributes,t=>t.toSchema())})]});return this.issuerUniqueID&&e.valueBlock.value.push(this.issuerUniqueID),this.extensions&&e.valueBlock.value.push(this.extensions.toSchema()),e}toJSON(){let e={version:this.version,holder:this.holder.toJSON(),issuer:this.issuer.toJSON(),signature:this.signature.toJSON(),serialNumber:this.serialNumber.toJSON(),attrCertValidityPeriod:this.attrCertValidityPeriod.toJSON(),attributes:Array.from(this.attributes,t=>t.toJSON())};return this.issuerUniqueID&&(e.issuerUniqueID=this.issuerUniqueID.toJSON()),this.extensions&&(e.extensions=this.extensions.toJSON()),e}};Pl.CLASS_NAME="AttributeCertificateInfoV2";var Xd="acinfo",Qd="signatureAlgorithm",e0="signatureValue",sU=[Xd,Qd,e0],xr=class s extends O{constructor(e={}){super(),this.acinfo=d(e,Xd,s.defaultValues(Xd)),this.signatureAlgorithm=d(e,Qd,s.defaultValues(Qd)),this.signatureValue=d(e,e0,s.defaultValues(e0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Xd:return new Pl;case Qd:return new k;case e0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[Pl.schema(t.acinfo||{}),k.schema(t.signatureAlgorithm||{}),new Te({name:t.signatureValue||p})]})}fromSchema(e){V(e,sU);let t=R(e,e,s.schema({names:{acinfo:{names:{blockName:Xd}},signatureAlgorithm:{names:{blockName:Qd}},signatureValue:e0}}));B.assertSchema(t,this.className),this.acinfo=new Pl({schema:t.result.acinfo}),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}toSchema(){return new S({value:[this.acinfo.toSchema(),this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){return {acinfo:this.acinfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()}}};xr.CLASS_NAME="AttributeCertificateV2";var wo="contentType",yu="content",rU=[wo,yu],ot=class s extends O{constructor(e={}){super(),this.contentType=d(e,wo,s.defaultValues(wo)),this.content=d(e,yu,s.defaultValues(yu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wo:return p;case yu:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case wo:return typeof t=="string"&&t===this.defaultValues(wo);case yu:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return "optional"in t||(t.optional=!1),new S({name:t.blockName||"ContentInfo",optional:t.optional,value:[new W({name:t.contentType||wo}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.content||yu})]})]})}fromSchema(e){V(e,rU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.contentType=t.result.contentType.valueBlock.toString(),this.content=t.result.content;}toSchema(){return new S({value:[new W({value:this.contentType}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.content]})]})}toJSON(){let e={contentType:this.contentType};return this.content instanceof ue||(e.content=this.content.toJSON()),e}};ot.CLASS_NAME="ContentInfo";ot.DATA=KA;ot.SIGNED_DATA=d4;ot.ENVELOPED_DATA=m4;ot.ENCRYPTED_DATA=p4;var q2="type",F2="value",hA="utcTimeName",dA="generalTimeName",nU=[hA,dA],QT;(function(s){s[s.UTCTime=0]="UTCTime",s[s.GeneralizedTime=1]="GeneralizedTime",s[s.empty=2]="empty";})(QT||(QT={}));var At=class s extends O{constructor(e={}){super(),this.type=d(e,q2,s.defaultValues(q2)),this.value=d(e,F2,s.defaultValues(F2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case q2:return 0;case F2:return new Date(0,0,0);default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,"names",{});return new Ze({optional:t,value:[new Xr({name:r.utcTimeName||p}),new Ye({name:r.generalTimeName||p})]})}fromSchema(e){V(e,nU);let t=R(e,e,s.schema({names:{utcTimeName:hA,generalTimeName:dA}}));B.assertSchema(t,this.className),hA in t.result&&(this.type=0,this.value=t.result.utcTimeName.toDate()),dA in t.result&&(this.type=1,this.value=t.result.generalTimeName.toDate());}toSchema(){return this.type===0?new Xr({valueDate:this.value}):this.type===1?new Ye({valueDate:this.value}):{}}toJSON(){return {type:this.type,value:this.value}}};At.CLASS_NAME="Time";var K2="tbs",xi="version",Uy="serialNumber",Hy="signature",_y="issuer",jy="notBefore",My="notAfter",$y="subject",qy="subjectPublicKeyInfo",t0="issuerUniqueID",s0="subjectUniqueID",r0="extensions",n0="signatureAlgorithm",i0="signatureValue",ks="tbsCertificate",Aw=`${ks}.${xi}`,WA=`${ks}.${Uy}`,JA=`${ks}.${Hy}`,zA=`${ks}.${_y}`,Iw=`${ks}.${jy}`,Cw=`${ks}.${My}`,YA=`${ks}.${$y}`,ZA=`${ks}.${qy}`,Nw=`${ks}.${t0}`,Tw=`${ks}.${s0}`,U0=`${ks}.${r0}`,iU=[ks,Aw,WA,JA,zA,Iw,Cw,YA,ZA,Nw,Tw,U0,n0,i0];function aU(s={}){let e=d(s,"names",{});return new S({name:e.blockName||ks,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:e.tbsCertificateVersion||Aw})]}),new T({name:e.tbsCertificateSerialNumber||WA}),k.schema(e.signature||{names:{blockName:JA}}),Xe.schema(e.issuer||{names:{blockName:zA}}),new S({name:e.tbsCertificateValidity||"tbsCertificate.validity",value:[At.schema(e.notBefore||{names:{utcTimeName:Iw,generalTimeName:Iw}}),At.schema(e.notAfter||{names:{utcTimeName:Cw,generalTimeName:Cw}})]}),Xe.schema(e.subject||{names:{blockName:YA}}),Ts.schema(e.subjectPublicKeyInfo||{names:{blockName:ZA}}),new oe({name:e.tbsCertificateIssuerUniqueID||Nw,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:e.tbsCertificateSubjectUniqueID||Tw,optional:!0,idBlock:{tagClass:3,tagNumber:2}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:3},value:[gt.schema(e.extensions||{names:{blockName:U0}})]})]})}var Mt=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,K2,s.defaultValues(K2))),this.version=d(e,xi,s.defaultValues(xi)),this.serialNumber=d(e,Uy,s.defaultValues(Uy)),this.signature=d(e,Hy,s.defaultValues(Hy)),this.issuer=d(e,_y,s.defaultValues(_y)),this.notBefore=d(e,jy,s.defaultValues(jy)),this.notAfter=d(e,My,s.defaultValues(My)),this.subject=d(e,$y,s.defaultValues($y)),this.subjectPublicKeyInfo=d(e,qy,s.defaultValues(qy)),t0 in e&&(this.issuerUniqueID=d(e,t0,s.defaultValues(t0))),s0 in e&&(this.subjectUniqueID=d(e,s0,s.defaultValues(s0))),r0 in e&&(this.extensions=d(e,r0,s.defaultValues(r0))),this.signatureAlgorithm=d(e,n0,s.defaultValues(n0)),this.signatureValue=d(e,i0,s.defaultValues(i0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case K2:return dt;case xi:return 0;case Uy:return new T;case Hy:return new k;case _y:return new Xe;case jy:return new At;case My:return new At;case $y:return new Xe;case qy:return new Ts;case t0:return dt;case s0:return dt;case r0:return [];case n0:return new k;case i0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[aU(t.tbsCertificate),k.schema(t.signatureAlgorithm||{names:{blockName:n0}}),new Te({name:t.signatureValue||i0})]})}fromSchema(e){V(e,iU);let t=R(e,e,s.schema({names:{tbsCertificate:{names:{extensions:{names:{extensions:U0}}}}}}));B.assertSchema(t,this.className),this.tbsView=t.result.tbsCertificate.valueBeforeDecodeView,Aw in t.result&&(this.version=t.result[Aw].valueBlock.valueDec),this.serialNumber=t.result[WA],this.signature=new k({schema:t.result[JA]}),this.issuer=new Xe({schema:t.result[zA]}),this.notBefore=new At({schema:t.result[Iw]}),this.notAfter=new At({schema:t.result[Cw]}),this.subject=new Xe({schema:t.result[YA]}),this.subjectPublicKeyInfo=new Ts({schema:t.result[ZA]}),Nw in t.result&&(this.issuerUniqueID=t.result[Nw].valueBlock.valueHex),Tw in t.result&&(this.subjectUniqueID=t.result[Tw].valueBlock.valueHex),U0 in t.result&&(this.extensions=Array.from(t.result[U0],r=>new ys({schema:r}))),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[];return xi in this&&this.version!==s.defaultValues(xi)&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),e.push(this.serialNumber),e.push(this.signature.toSchema()),e.push(this.issuer.toSchema()),e.push(new S({value:[this.notBefore.toSchema(),this.notAfter.toSchema()]})),e.push(this.subject.toSchema()),e.push(this.subjectPublicKeyInfo.toSchema()),this.issuerUniqueID&&e.push(new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},valueHex:this.issuerUniqueID})),this.subjectUniqueID&&e.push(new oe({optional:!0,idBlock:{tagClass:3,tagNumber:2},valueHex:this.subjectUniqueID})),this.extensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:3},value:[new S({value:Array.from(this.extensions,t=>t.toSchema())})]})),new S({value:e})}toSchema(e=!1){let t;if(e===!1){if(!this.tbsView.byteLength)return s.schema().value[0];let r=pt(this.tbsView);B.assert(r,"TBS Certificate"),t=r.result;}else t=this.encodeTBS();return new S({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,serialNumber:this.serialNumber.toJSON(),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),notBefore:this.notBefore.toJSON(),notAfter:this.notAfter.toJSON(),subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return xi in this&&this.version!==s.defaultValues(xi)&&(e.version=this.version),this.issuerUniqueID&&(e.issuerUniqueID=fe.ToHex(this.issuerUniqueID)),this.subjectUniqueID&&(e.subjectUniqueID=fe.ToHex(this.subjectUniqueID)),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}async getPublicKey(e,t=Ie(!0)){return t.getPublicKey(this.subjectPublicKeyInfo,this.signatureAlgorithm,e)}async getKeyHash(e="SHA-1",t=Ie(!0)){return t.digest({name:e},this.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView)}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters;this.signature=n.signatureAlgorithm,this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e,t=Ie(!0)){let r;if(e?r=e.subjectPublicKeyInfo:this.issuer.isEqual(this.subject)&&(r=this.subjectPublicKeyInfo),!(r instanceof Ts))throw new Error("Please provide issuer certificate as a parameter");return t.verifyWithPublicKey(this.tbsView,this.signatureValue,r,this.signatureAlgorithm)}};Mt.CLASS_NAME="Certificate";function v4(s,e=null){if(e&&s.issuer.isEqual(e.issuer)&&s.serialNumber.isEqual(e.serialNumber))return null;let t=!1;if(s.extensions){for(let r of s.extensions)if(r.extnID===MA&&r.parsedValue instanceof $0&&r.parsedValue.cA){t=!0;break}}return t?s:null}var wu="certId",bu="certValue",Qc="parsedValue",oU=[wu,bu],kw=class s extends O{constructor(e={}){super(),this.certId=d(e,wu,s.defaultValues(wu)),this.certValue=d(e,bu,s.defaultValues(bu)),Qc in e&&(this.parsedValue=d(e,Qc,s.defaultValues(Qc))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wu:return p;case bu:return new ue;case Qc:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case wu:return t===p;case bu:return t instanceof ue;case Qc:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,oU);let t=R(e,e,s.schema({names:{id:wu,value:bu}}));B.assertSchema(t,this.className),this.certId=t.result.certId.valueBlock.toString(),this.certValue=t.result.certValue;let r=this.certValue.valueBlock.valueHexView;switch(this.certId){case VT:try{this.parsedValue=Mt.fromBER(r);}catch{xr.fromBER(r);}break;case DT:this.parsedValue=xr.fromBER(r);break;case dL:default:throw new Error(`Incorrect CERT_ID value in CertBag: ${this.certId}`)}}toSchema(){return Qc in this&&("acinfo"in this.parsedValue?this.certId=DT:this.certId=VT,this.certValue=new L({valueHex:this.parsedValue.toSchema().toBER(!1)})),new S({value:[new W({value:this.certId}),new A({idBlock:{tagClass:3,tagNumber:0},value:["toSchema"in this.certValue?this.certValue.toSchema():this.certValue]})]})}toJSON(){return {certId:this.certId,certValue:this.certValue.toJSON()}}};kw.CLASS_NAME="CertBag";var a0="userCertificate",Su="revocationDate",bo="crlEntryExtensions",cU=[a0,Su,bo],Pw=class s extends O{constructor(e={}){super(),this.userCertificate=d(e,a0,s.defaultValues(a0)),this.revocationDate=d(e,Su,s.defaultValues(Su)),bo in e&&(this.crlEntryExtensions=d(e,bo,s.defaultValues(bo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case a0:return new T;case Su:return new At;case bo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.userCertificate||a0}),At.schema({names:{utcTimeName:t.revocationDate||Su,generalTimeName:t.revocationDate||Su}}),gt.schema({names:{blockName:t.crlEntryExtensions||bo}},!0)]})}fromSchema(e){V(e,cU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.userCertificate=t.result.userCertificate,this.revocationDate=new At({schema:t.result.revocationDate}),bo in t.result&&(this.crlEntryExtensions=new gt({schema:t.result.crlEntryExtensions}));}toSchema(){let e=[this.userCertificate,this.revocationDate.toSchema()];return this.crlEntryExtensions&&e.push(this.crlEntryExtensions.toSchema()),new S({value:e})}toJSON(){let e={userCertificate:this.userCertificate.toJSON(),revocationDate:this.revocationDate.toJSON()};return this.crlEntryExtensions&&(e.crlEntryExtensions=this.crlEntryExtensions.toJSON()),e}};Pw.CLASS_NAME="RevokedCertificate";var G2="tbs",Rh="version",W2="signature",J2="issuer",z2="thisUpdate",wy="nextUpdate",by="revokedCertificates",Sy="crlExtensions",o0="signatureAlgorithm",c0="signatureValue",In="tbsCertList",Bw=`${In}.version`,XA=`${In}.signature`,QA=`${In}.issuer`,Ow=`${In}.thisUpdate`,sm=`${In}.nextUpdate`,Rw=`${In}.revokedCertificates`,Vw=`${In}.extensions`,uU=[In,Bw,XA,QA,Ow,sm,Rw,Vw,o0,c0];function lU(s={}){let e=d(s,"names",{});return new S({name:e.blockName||In,value:[new T({optional:!0,name:e.tbsCertListVersion||Bw,value:2}),k.schema(e.signature||{names:{blockName:XA}}),Xe.schema(e.issuer||{names:{blockName:QA}}),At.schema(e.tbsCertListThisUpdate||{names:{utcTimeName:Ow,generalTimeName:Ow}}),At.schema(e.tbsCertListNextUpdate||{names:{utcTimeName:sm,generalTimeName:sm}},!0),new S({optional:!0,value:[new he({name:e.tbsCertListRevokedCertificates||Rw,value:new S({value:[new T,At.schema(),gt.schema({},!0)]})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[gt.schema(e.crlExtensions||{names:{blockName:Vw}})]})]})}var fU=[qA,i4,eL,tL,a4,$A,FA,sL,rL,o4],sc=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,G2,s.defaultValues(G2))),this.version=d(e,Rh,s.defaultValues(Rh)),this.signature=d(e,W2,s.defaultValues(W2)),this.issuer=d(e,J2,s.defaultValues(J2)),this.thisUpdate=d(e,z2,s.defaultValues(z2)),wy in e&&(this.nextUpdate=d(e,wy,s.defaultValues(wy))),by in e&&(this.revokedCertificates=d(e,by,s.defaultValues(by))),Sy in e&&(this.crlExtensions=d(e,Sy,s.defaultValues(Sy))),this.signatureAlgorithm=d(e,o0,s.defaultValues(o0)),this.signatureValue=d(e,c0,s.defaultValues(c0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case G2:return dt;case Rh:return 0;case W2:return new k;case J2:return new Xe;case z2:return new At;case wy:return new At;case by:return [];case Sy:return new gt;case o0:return new k;case c0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||"CertificateList",value:[lU(e),k.schema(t.signatureAlgorithm||{names:{blockName:o0}}),new Te({name:t.signatureValue||c0})]})}fromSchema(e){V(e,uU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.tbsCertList.valueBeforeDecodeView,Bw in t.result&&(this.version=t.result[Bw].valueBlock.valueDec),this.signature=new k({schema:t.result[XA]}),this.issuer=new Xe({schema:t.result[QA]}),this.thisUpdate=new At({schema:t.result[Ow]}),sm in t.result&&(this.nextUpdate=new At({schema:t.result[sm]})),Rw in t.result&&(this.revokedCertificates=Array.from(t.result[Rw],r=>new Pw({schema:r}))),Vw in t.result&&(this.crlExtensions=new gt({schema:t.result[Vw]})),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[];return this.version!==s.defaultValues(Rh)&&e.push(new T({value:this.version})),e.push(this.signature.toSchema()),e.push(this.issuer.toSchema()),e.push(this.thisUpdate.toSchema()),this.nextUpdate&&e.push(this.nextUpdate.toSchema()),this.revokedCertificates&&e.push(new S({value:Array.from(this.revokedCertificates,t=>t.toSchema())})),this.crlExtensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.crlExtensions.toSchema()]})),new S({value:e})}toSchema(e=!1){let t;if(e)t=this.encodeTBS();else {if(!this.tbsView.byteLength)return s.schema();let r=pt(this.tbsView);B.assert(r,"TBS Certificate Revocation List"),t=r.result;}return new S({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),thisUpdate:this.thisUpdate.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return this.version!==s.defaultValues(Rh)&&(e.version=this.version),this.nextUpdate&&(e.nextUpdate=this.nextUpdate.toJSON()),this.revokedCertificates&&(e.revokedCertificates=Array.from(this.revokedCertificates,t=>t.toJSON())),this.crlExtensions&&(e.crlExtensions=this.crlExtensions.toJSON()),e}isCertificateRevoked(e){if(!this.issuer.isEqual(e.issuer)||!this.revokedCertificates)return !1;for(let t of this.revokedCertificates)if(t.userCertificate.isEqual(e.serialNumber))return !0;return !1}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),{parameters:i}=n;this.signature=n.signatureAlgorithm,this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e={},t=Ie(!0)){let r;if(e.issuerCertificate&&(r=e.issuerCertificate.subjectPublicKeyInfo,!this.issuer.isEqual(e.issuerCertificate.subject)))return !1;if(e.publicKeyInfo&&(r=e.publicKeyInfo),!r)throw new Error("Issuer's certificate must be provided as an input parameter");if(this.crlExtensions){for(let n of this.crlExtensions.extensions)if(n.critical&&!fU.includes(n.extnID))return !1}return t.verifyWithPublicKey(this.tbsView,this.signatureValue,r,this.signatureAlgorithm)}};sc.CLASS_NAME="CertificateRevocationList";var vu="crlId",Eu="crlValue",Vh="parsedValue",hU=[vu,Eu],Dw=class s extends O{constructor(e={}){super(),this.crlId=d(e,vu,s.defaultValues(vu)),this.crlValue=d(e,Eu,s.defaultValues(Eu)),Vh in e&&(this.parsedValue=d(e,Vh,s.defaultValues(Vh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vu:return p;case Eu:return new ue;case Vh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case vu:return t===p;case Eu:return t instanceof ue;case Vh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,hU);let t=R(e,e,s.schema({names:{id:vu,value:Eu}}));switch(B.assertSchema(t,this.className),this.crlId=t.result.crlId.valueBlock.toString(),this.crlValue=t.result.crlValue,this.crlId){case LT:this.parsedValue=sc.fromBER(this.certValue.valueBlock.valueHex);break;default:throw new Error(`Incorrect CRL_ID value in CRLBag: ${this.crlId}`)}}toSchema(){return this.parsedValue&&(this.crlId=LT,this.crlValue=new L({valueHex:this.parsedValue.toSchema().toBER(!1)})),new S({value:[new W({value:this.crlId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.crlValue.toSchema()]})]})}toJSON(){return {crlId:this.crlId,crlValue:this.crlValue.toJSON()}}};Dw.CLASS_NAME="CRLBag";var xu="version",Au="encryptedContentInfo",Ai="unprotectedAttrs",dU=[xu,Au,Ai],rc=class s extends O{constructor(e={}){super(),this.version=d(e,xu,s.defaultValues(xu)),this.encryptedContentInfo=d(e,Au,s.defaultValues(Au)),Ai in e&&(this.unprotectedAttrs=d(e,Ai,s.defaultValues(Ai))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case xu:return 0;case Au:return new Ot;case Ai:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case xu:return t===0;case Au:return Ot.compareWithDefault("contentType",t.contentType)&&Ot.compareWithDefault("contentEncryptionAlgorithm",t.contentEncryptionAlgorithm)&&Ot.compareWithDefault("encryptedContent",t.encryptedContent);case Ai:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),Ot.schema(t.encryptedContentInfo||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.unprotectedAttrs||p,value:ut.schema()})]})]})}fromSchema(e){V(e,dU);let t=R(e,e,s.schema({names:{version:xu,encryptedContentInfo:{names:{blockName:Au}},unprotectedAttrs:Ai}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.encryptedContentInfo=new Ot({schema:t.result.encryptedContentInfo}),Ai in t.result&&(this.unprotectedAttrs=Array.from(t.result.unprotectedAttrs,r=>new ut({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.encryptedContentInfo.toSchema()),this.unprotectedAttrs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.unprotectedAttrs,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={version:this.version,encryptedContentInfo:this.encryptedContentInfo.toJSON()};return this.unprotectedAttrs&&(e.unprotectedAttrs=Array.from(this.unprotectedAttrs,t=>t.toJSON())),e}async encrypt(e,t=Ie(!0)){Ge.assert(e,"parameters","object");let r={...e,contentType:"1.2.840.113549.1.7.1"};this.encryptedContentInfo=await t.encryptEncryptedContentInfo(r);}async decrypt(e,t=Ie(!0)){Ge.assert(e,"parameters","object");let r={...e,encryptedContentInfo:this.encryptedContentInfo};return t.decryptEncryptedContentInfo(r)}};rc.CLASS_NAME="EncryptedData";var So="encryptionAlgorithm",Ii="encryptedData",Dh="parsedValue",mU=[So,Ii],Lw=class s extends O{constructor(e={}){super(),this.encryptionAlgorithm=d(e,So,s.defaultValues(So)),this.encryptedData=d(e,Ii,s.defaultValues(Ii)),Dh in e&&(this.parsedValue=d(e,Dh,s.defaultValues(Dh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case So:return new k;case Ii:return new L;case Dh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case So:return k.compareWithDefault("algorithmId",t.algorithmId)&&!("algorithmParams"in t);case Ii:return t.isEqual(s.defaultValues(e));case Dh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.encryptionAlgorithm||{names:{blockName:So}}),new Ze({value:[new L({name:t.encryptedData||Ii}),new L({idBlock:{isConstructed:!0},name:t.encryptedData||Ii})]})]})}fromSchema(e){V(e,mU);let t=R(e,e,s.schema({names:{encryptionAlgorithm:{names:{blockName:So}},encryptedData:Ii}}));B.assertSchema(t,this.className),this.encryptionAlgorithm=new k({schema:t.result.encryptionAlgorithm}),this.encryptedData=t.result.encryptedData;}toSchema(){return new S({value:[this.encryptionAlgorithm.toSchema(),this.encryptedData]})}toJSON(){return {encryptionAlgorithm:this.encryptionAlgorithm.toJSON(),encryptedData:this.encryptedData.toJSON()}}async parseInternalValues(e,t=Ie(!0)){let n=await new rc({encryptedContentInfo:new Ot({contentEncryptionAlgorithm:this.encryptionAlgorithm,encryptedContent:this.encryptedData})}).decrypt(e,t);this.parsedValue=tc.fromBER(n);}async makeInternalValues(e,t=Ie(!0)){if(!this.parsedValue)throw new Error('Please initialize "parsedValue" first');let r=new rc,n={...e,contentToEncrypt:this.parsedValue.toSchema().toBER(!1)};if(await r.encrypt(n,t),!r.encryptedContentInfo.encryptedContent)throw new Error("The filed `encryptedContent` in EncryptedContentInfo is empty");this.encryptionAlgorithm=r.encryptedContentInfo.contentEncryptionAlgorithm,this.encryptedData=r.encryptedContentInfo.encryptedContent;}};Lw.CLASS_NAME="PKCS8ShroudedKeyBag";var Iu="secretTypeId",Cu="secretValue",pU=[Iu,Cu],Uw=class s extends O{constructor(e={}){super(),this.secretTypeId=d(e,Iu,s.defaultValues(Iu)),this.secretValue=d(e,Cu,s.defaultValues(Cu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Iu:return p;case Cu:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Iu:return t===p;case Cu:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,pU);let t=R(e,e,s.schema({names:{id:Iu,value:Cu}}));B.assertSchema(t,this.className),this.secretTypeId=t.result.secretTypeId.valueBlock.toString(),this.secretValue=t.result.secretValue;}toSchema(){return new S({value:[new W({value:this.secretTypeId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.secretValue.toSchema()]})]})}toJSON(){return {secretTypeId:this.secretTypeId,secretValue:this.secretValue.toJSON()}}};Uw.CLASS_NAME="SecretBag";var mA=class s{static getItems(){return this.items||(this.items={},s.register("1.2.840.113549.1.12.10.1.1",tc),s.register("1.2.840.113549.1.12.10.1.2",Lw),s.register("1.2.840.113549.1.12.10.1.3",kw),s.register("1.2.840.113549.1.12.10.1.4",Dw),s.register("1.2.840.113549.1.12.10.1.5",Uw),s.register("1.2.840.113549.1.12.10.1.6",Wi)),this.items}static register(e,t){this.getItems()[e]=t;}static find(e){return this.getItems()[e]||null}},vo="bagId",Eo="bagValue",ln="bagAttributes",gU=[vo,Eo,ln],rm=class s extends O{constructor(e={}){super(),this.bagId=d(e,vo,s.defaultValues(vo)),this.bagValue=d(e,Eo,s.defaultValues(Eo)),ln in e&&(this.bagAttributes=d(e,ln,s.defaultValues(ln))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vo:return p;case Eo:return new ue;case ln:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case vo:return t===p;case Eo:return t instanceof ue;case ln:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.bagId||vo}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.bagValue||Eo})]}),new at({optional:!0,value:[new he({name:t.bagAttributes||ln,value:ut.schema()})]})]})}fromSchema(e){V(e,gU);let t=R(e,e,s.schema({names:{bagId:vo,bagValue:Eo,bagAttributes:ln}}));B.assertSchema(t,this.className),this.bagId=t.result.bagId.valueBlock.toString();let r=mA.find(this.bagId);if(!r)throw new Error(`Invalid BAG_ID for SafeBag: ${this.bagId}`);this.bagValue=new r({schema:t.result.bagValue}),ln in t.result&&(this.bagAttributes=Array.from(t.result.bagAttributes,n=>new ut({schema:n})));}toSchema(){let e=[new W({value:this.bagId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.bagValue.toSchema()]})];return this.bagAttributes&&e.push(new at({value:Array.from(this.bagAttributes,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={bagId:this.bagId,bagValue:this.bagValue.toJSON()};return this.bagAttributes&&(e.bagAttributes=Array.from(this.bagAttributes,t=>t.toJSON())),e}};rm.CLASS_NAME="SafeBag";var eu="safeBags",Wi=class s extends O{constructor(e={}){super(),this.safeBags=d(e,eu,s.defaultValues(eu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case eu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case eu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.safeBags||p,value:rm.schema()})]})}fromSchema(e){V(e,[eu]);let t=R(e,e,s.schema({names:{safeBags:eu}}));B.assertSchema(t,this.className),this.safeBags=Array.from(t.result.safeBags,r=>new rm({schema:r}));}toSchema(){return new S({value:Array.from(this.safeBags,e=>e.toSchema())})}toJSON(){return {safeBags:Array.from(this.safeBags,e=>e.toJSON())}}};Wi.CLASS_NAME="SafeContents";var u0="otherCertFormat",l0="otherCert",yU=[u0,l0],Bl=class s extends O{constructor(e={}){super(),this.otherCertFormat=d(e,u0,s.defaultValues(u0)),this.otherCert=d(e,l0,s.defaultValues(l0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case u0:return p;case l0:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.otherCertFormat||u0}),new ue({name:t.otherCert||l0})]})}fromSchema(e){V(e,yU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.otherCertFormat=t.result.otherCertFormat.valueBlock.toString(),this.otherCert=t.result.otherCert;}toSchema(){return new S({value:[new W({value:this.otherCertFormat}),this.otherCert]})}toJSON(){let e={otherCertFormat:this.otherCertFormat};return this.otherCert instanceof ue||(e.otherCert=this.otherCert.toJSON()),e}},f0="certificates",wU=[f0],xn=class s extends O{constructor(e={}){super(),this.certificates=d(e,f0,s.defaultValues(f0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case f0:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new at({name:t.blockName||p,value:[new he({name:t.certificates||f0,value:new Ze({value:[Mt.schema(),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue]}),new A({idBlock:{tagClass:3,tagNumber:1},value:[new S]}),new A({idBlock:{tagClass:3,tagNumber:2},value:xr.schema().valueBlock.value}),new A({idBlock:{tagClass:3,tagNumber:3},value:Bl.schema().valueBlock.value})]})})]})}fromSchema(e){V(e,wU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.certificates=Array.from(t.result.certificates||[],r=>{let n=r.idBlock.tagNumber;if(r.idBlock.tagClass===1)return new Mt({schema:r});let i=new S({value:r.valueBlock.value});switch(n){case 1:return i.valueBlock.value[0].valueBlock.value[0].valueBlock.valueDec===1?new xr({schema:i}):new Dl({schema:i});case 2:return new xr({schema:i});case 3:return new Bl({schema:i})}return r});}toSchema(){return new at({value:Array.from(this.certificates,e=>{switch(!0){case e instanceof Mt:return e.toSchema();case e instanceof Dl:return new A({idBlock:{tagClass:3,tagNumber:1},value:e.toSchema().valueBlock.value});case e instanceof xr:return new A({idBlock:{tagClass:3,tagNumber:2},value:e.toSchema().valueBlock.value});case e instanceof Bl:return new A({idBlock:{tagClass:3,tagNumber:3},value:e.toSchema().valueBlock.value})}return e.toSchema()})})}toJSON(){return {certificates:Array.from(this.certificates,e=>e.toJSON())}}};xn.CLASS_NAME="CertificateSet";var h0="otherRevInfoFormat",d0="otherRevInfo",bU=[h0,d0],zo=class s extends O{constructor(e={}){super(),this.otherRevInfoFormat=d(e,h0,s.defaultValues(h0)),this.otherRevInfo=d(e,d0,s.defaultValues(d0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case h0:return p;case d0:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.otherRevInfoFormat||h0}),new ue({name:t.otherRevInfo||d0})]})}fromSchema(e){V(e,bU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.otherRevInfoFormat=t.result.otherRevInfoFormat.valueBlock.toString(),this.otherRevInfo=t.result.otherRevInfo;}toSchema(){return new S({value:[new W({value:this.otherRevInfoFormat}),this.otherRevInfo]})}toJSON(){let e={otherRevInfoFormat:this.otherRevInfoFormat};return this.otherRevInfo instanceof ue||(e.otherRevInfo=this.otherRevInfo.toJSON()),e}};zo.CLASS_NAME="OtherRevocationInfoFormat";var m0="crls",Y2="otherRevocationInfos",SU=[m0],Yo=class s extends O{constructor(e={}){super(),this.crls=d(e,m0,s.defaultValues(m0)),this.otherRevocationInfos=d(e,Y2,s.defaultValues(Y2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case m0:return [];case Y2:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new at({name:t.blockName||p,value:[new he({name:t.crls||p,value:new Ze({value:[sc.schema(),new A({idBlock:{tagClass:3,tagNumber:1},value:[new W,new ue]})]})})]})}fromSchema(e){V(e,SU);let t=R(e,e,s.schema({names:{crls:m0}}));if(B.assertSchema(t,this.className),t.result.crls)for(let r of t.result.crls)r.idBlock.tagClass===1?this.crls.push(new sc({schema:r})):this.otherRevocationInfos.push(new zo({schema:r}));}toSchema(){let e=[];return e.push(...Array.from(this.crls,t=>t.toSchema())),e.push(...Array.from(this.otherRevocationInfos,t=>{let r=t.toSchema();return r.idBlock.tagClass=3,r.idBlock.tagNumber=1,r})),new at({value:e})}toJSON(){return {crls:Array.from(this.crls,e=>e.toJSON()),otherRevocationInfos:Array.from(this.otherRevocationInfos,e=>e.toJSON())}}};Yo.CLASS_NAME="RevocationInfoChoices";var p0="certs",xo="crls",vU=[p0,xo],Ol=class s extends O{constructor(e={}){super(),this.crls=d(e,xo,s.defaultValues(xo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case p0:return new xn;case xo:return new Yo;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case p0:return t.certificates.length===0;case xo:return t.crls.length===0&&t.otherRevocationInfos.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({name:t.certs||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:xn.schema().valueBlock.value}),new A({name:t.crls||p,optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Yo.schema().valueBlock.value})]})}fromSchema(e){V(e,vU);let t=R(e,e,s.schema({names:{certs:p0,crls:xo}}));B.assertSchema(t,this.className),p0 in t.result&&(this.certs=new xn({schema:new at({value:t.result.certs.valueBlock.value})})),xo in t.result&&(this.crls=new Yo({schema:new at({value:t.result.crls.valueBlock.value})}));}toSchema(){let e=[];return this.certs&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.certs.toSchema().valueBlock.value})),this.crls&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.crls.toSchema().valueBlock.value})),new S({value:e})}toJSON(){let e={};return this.certs&&(e.certs=this.certs.toJSON()),this.crls&&(e.crls=this.crls.toJSON()),e}};Ol.CLASS_NAME="OriginatorInfo";var g0="issuer",y0="serialNumber",EU=[g0,y0],It=class s extends O{constructor(e={}){super(),this.issuer=d(e,g0,s.defaultValues(g0)),this.serialNumber=d(e,y0,s.defaultValues(y0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case g0:return new Xe;case y0:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[Xe.schema(t.issuer||{}),new T({name:t.serialNumber||p})]})}fromSchema(e){V(e,EU);let t=R(e,e,s.schema({names:{issuer:{names:{blockName:g0}},serialNumber:y0}}));B.assertSchema(t,this.className),this.issuer=new Xe({schema:t.result.issuer}),this.serialNumber=t.result.serialNumber;}toSchema(){return new S({value:[this.issuer.toSchema(),this.serialNumber]})}toJSON(){return {issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()}}};It.CLASS_NAME="IssuerAndSerialNumber";var vy="variant",Lh="value",xU=["blockName"],Hw=class s extends O{constructor(e={}){super(),this.variant=d(e,vy,s.defaultValues(vy)),Lh in e&&(this.value=d(e,Lh,s.defaultValues(Lh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vy:return -1;case Lh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case vy:return t===-1;case Lh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema({names:{blockName:t.blockName||p}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:0}})]})}fromSchema(e){V(e,xU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):(this.variant=2,this.value=new L({valueHex:t.result.blockName.valueBlock.valueHex}));}toSchema(){switch(this.variant){case 1:if(!(this.value instanceof It))throw new Error("Incorrect type of RecipientIdentifier.value. It should be IssuerAndSerialNumber.");return this.value.toSchema();case 2:if(!(this.value instanceof L))throw new Error("Incorrect type of RecipientIdentifier.value. It should be ASN.1 OctetString.");return new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.value.valueBlock.valueHexView});default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2)&&this.value&&(e.value=this.value.toJSON()),e}};Hw.CLASS_NAME="RecipientIdentifier";var Ao="version",Nu="rid",Tu="keyEncryptionAlgorithm",ku="encryptedKey",Ey="recipientCertificate",AU=[Ao,Nu,Tu,ku],Ll=class s extends O{constructor(e={}){super(),this.version=d(e,Ao,s.defaultValues(Ao)),this.rid=d(e,Nu,s.defaultValues(Nu)),this.keyEncryptionAlgorithm=d(e,Tu,s.defaultValues(Tu)),this.encryptedKey=d(e,ku,s.defaultValues(ku)),this.recipientCertificate=d(e,Ey,s.defaultValues(Ey)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ao:return -1;case Nu:return {};case Tu:return new k;case ku:return new L;case Ey:return new Mt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ao:return t===s.defaultValues(Ao);case Nu:return Object.keys(t).length===0;case Tu:case ku:return t.isEqual(s.defaultValues(e));case Ey:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),Hw.schema(t.rid||{}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,AU);let t=R(e,e,s.schema({names:{version:Ao,rid:{names:{blockName:Nu}},keyEncryptionAlgorithm:{names:{blockName:Tu}},encryptedKey:ku}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,t.result.rid.idBlock.tagClass===3?this.rid=new L({valueHex:t.result.rid.valueBlock.valueHex}):this.rid=new It({schema:t.result.rid}),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){let e=[];return this.rid instanceof It?(this.version=0,e.push(new T({value:this.version})),e.push(this.rid.toSchema())):(this.version=2,e.push(new T({value:this.version})),e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.rid.valueBlock.valueHexView}))),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.encryptedKey),new S({value:e})}toJSON(){return {version:this.version,rid:this.rid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};Ll.CLASS_NAME="KeyTransRecipientInfo";var Pu="algorithm",Bu="publicKey",IU=[Pu,Bu],Ul=class s extends O{constructor(e={}){super(),this.algorithm=d(e,Pu,s.defaultValues(Pu)),this.publicKey=d(e,Bu,s.defaultValues(Bu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Pu:return new k;case Bu:return new Te;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Pu:case Bu:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.algorithm||{}),new Te({name:t.publicKey||p})]})}fromSchema(e){V(e,IU);let t=R(e,e,s.schema({names:{algorithm:{names:{blockName:Pu}},publicKey:Bu}}));B.assertSchema(t,this.className),this.algorithm=new k({schema:t.result.algorithm}),this.publicKey=t.result.publicKey;}toSchema(){return new S({value:[this.algorithm.toSchema(),this.publicKey]})}toJSON(){return {algorithm:this.algorithm.toJSON(),publicKey:this.publicKey.toJSON()}}};Ul.CLASS_NAME="OriginatorPublicKey";var xy="variant",Uh="value",CU=["blockName"],Zo=class s extends O{constructor(e={}){super(),this.variant=d(e,xy,s.defaultValues(xy)),Uh in e&&(this.value=d(e,Uh,s.defaultValues(Uh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case xy:return -1;case Uh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case xy:return t===-1;case Uh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema({names:{blockName:t.blockName||p}}),new oe({idBlock:{tagClass:3,tagNumber:0},name:t.blockName||p}),new A({idBlock:{tagClass:3,tagNumber:1},name:t.blockName||p,value:Ul.schema().valueBlock.value})]})}fromSchema(e){V(e,CU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):t.result.blockName.idBlock.tagNumber===0?(t.result.blockName.idBlock.tagClass=1,t.result.blockName.idBlock.tagNumber=4,this.variant=2,this.value=t.result.blockName):(this.variant=3,this.value=new Ul({schema:new S({value:t.result.blockName.valueBlock.value})}));}toSchema(){switch(this.variant){case 1:return this.value.toSchema();case 2:return this.value.idBlock.tagClass=3,this.value.idBlock.tagNumber=0,this.value;case 3:{let e=this.value.toSchema();return e.idBlock.tagClass=3,e.idBlock.tagNumber=1,e}default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2||this.variant===3)&&(e.value=this.value.toJSON()),e}};Zo.CLASS_NAME="OriginatorIdentifierOrKey";var Ou="keyAttrId",vr="keyAttr",NU=[Ou,vr],An=class s extends O{constructor(e={}){super(),this.keyAttrId=d(e,Ou,s.defaultValues(Ou)),vr in e&&(this.keyAttr=d(e,vr,s.defaultValues(vr))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ou:return p;case vr:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ou:return typeof t=="string"&&t===p;case vr:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({optional:t.optional||!0,name:t.blockName||p,value:[new W({name:t.keyAttrId||p}),new ue({optional:!0,name:t.keyAttr||p})]})}fromSchema(e){V(e,NU);let t=R(e,e,s.schema({names:{keyAttrId:Ou,keyAttr:vr}}));B.assertSchema(t,this.className),this.keyAttrId=t.result.keyAttrId.valueBlock.toString(),vr in t.result&&(this.keyAttr=t.result.keyAttr);}toSchema(){let e=[];return e.push(new W({value:this.keyAttrId})),vr in this&&e.push(this.keyAttr),new S({value:e})}toJSON(){let e={keyAttrId:this.keyAttrId};return vr in this&&(e.keyAttr=this.keyAttr.toJSON()),e}};An.CLASS_NAME="OtherKeyAttribute";var Io="subjectKeyIdentifier",Ci="date",Ni="other",TU=[Io,Ci,Ni],Hl=class s extends O{constructor(e={}){super(),this.subjectKeyIdentifier=d(e,Io,s.defaultValues(Io)),Ci in e&&(this.date=d(e,Ci,s.defaultValues(Ci))),Ni in e&&(this.other=d(e,Ni,s.defaultValues(Ni))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Io:return new L;case Ci:return new Ye;case Ni:return new An;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Io:return t.isEqual(s.defaultValues(Io));case Ci:return t.year===0&&t.month===0&&t.day===0&&t.hour===0&&t.minute===0&&t.second===0&&t.millisecond===0;case Ni:return t.keyAttrId===p&&!("keyAttr"in t);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new L({name:t.subjectKeyIdentifier||p}),new Ye({optional:!0,name:t.date||p}),An.schema(t.other||{})]})}fromSchema(e){V(e,TU);let t=R(e,e,s.schema({names:{subjectKeyIdentifier:Io,date:Ci,other:{names:{blockName:Ni}}}}));B.assertSchema(t,this.className),this.subjectKeyIdentifier=t.result.subjectKeyIdentifier,Ci in t.result&&(this.date=t.result.date),Ni in t.result&&(this.other=new An({schema:t.result.other}));}toSchema(){let e=[];return e.push(this.subjectKeyIdentifier),this.date&&e.push(this.date),this.other&&e.push(this.other.toSchema()),new S({value:e})}toJSON(){let e={subjectKeyIdentifier:this.subjectKeyIdentifier.toJSON()};return this.date&&(e.date=this.date.toJSON()),this.other&&(e.other=this.other.toJSON()),e}};Hl.CLASS_NAME="RecipientKeyIdentifier";var Ay="variant",Iy="value",kU=["blockName"],zi=class s extends O{constructor(e={}){super(),this.variant=d(e,Ay,s.defaultValues(Ay)),this.value=d(e,Iy,s.defaultValues(Iy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ay:return -1;case Iy:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ay:return t===-1;case Iy:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema(t.issuerAndSerialNumber||{names:{blockName:t.blockName||p}}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:0},value:Hl.schema(t.rKeyId||{names:{blockName:t.blockName||p}}).valueBlock.value})]})}fromSchema(e){V(e,kU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):(this.variant=2,this.value=new Hl({schema:new S({value:t.result.blockName.valueBlock.value})}));}toSchema(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new A({idBlock:{tagClass:3,tagNumber:0},value:this.value.toSchema().valueBlock.value});default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2)&&(e.value=this.value.toJSON()),e}};zi.CLASS_NAME="KeyAgreeRecipientIdentifier";var Ru="rid",Co="encryptedKey",PU=[Ru,Co],_l=class s extends O{constructor(e={}){super(),this.rid=d(e,Ru,s.defaultValues(Ru)),this.encryptedKey=d(e,Co,s.defaultValues(Co)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ru:return new zi;case Co:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ru:return t.variant===-1&&!("value"in t);case Co:return t.isEqual(s.defaultValues(Co));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[zi.schema(t.rid||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,PU);let t=R(e,e,s.schema({names:{rid:{names:{blockName:Ru}},encryptedKey:Co}}));B.assertSchema(t,this.className),this.rid=new zi({schema:t.result.rid}),this.encryptedKey=t.result.encryptedKey;}toSchema(){return new S({value:[this.rid.toSchema(),this.encryptedKey]})}toJSON(){return {rid:this.rid.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};_l.CLASS_NAME="RecipientEncryptedKey";var Cy="encryptedKeys",E4="RecipientEncryptedKeys",BU=[E4],Xo=class s extends O{constructor(e={}){super(),this.encryptedKeys=d(e,Cy,s.defaultValues(Cy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Cy:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Cy:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.RecipientEncryptedKeys||p,value:_l.schema()})]})}fromSchema(e){V(e,BU);let t=R(e,e,s.schema({names:{RecipientEncryptedKeys:E4}}));B.assertSchema(t,this.className),this.encryptedKeys=Array.from(t.result.RecipientEncryptedKeys,r=>new _l({schema:r}));}toSchema(){return new S({value:Array.from(this.encryptedKeys,e=>e.toSchema())})}toJSON(){return {encryptedKeys:Array.from(this.encryptedKeys,e=>e.toJSON())}}};Xo.CLASS_NAME="RecipientEncryptedKeys";var Vu="version",Du="originator",fn="ukm",Lu="keyEncryptionAlgorithm",Uu="recipientEncryptedKeys",Ny="recipientCertificate",Ty="recipientPublicKey",OU=[Vu,Du,fn,Lu,Uu],jl=class s extends O{constructor(e={}){super(),this.version=d(e,Vu,s.defaultValues(Vu)),this.originator=d(e,Du,s.defaultValues(Du)),fn in e&&(this.ukm=d(e,fn,s.defaultValues(fn))),this.keyEncryptionAlgorithm=d(e,Lu,s.defaultValues(Lu)),this.recipientEncryptedKeys=d(e,Uu,s.defaultValues(Uu)),this.recipientCertificate=d(e,Ny,s.defaultValues(Ny)),this.recipientPublicKey=d(e,Ty,s.defaultValues(Ty)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Vu:return 0;case Du:return new Zo;case fn:return new L;case Lu:return new k;case Uu:return new Xo;case Ny:return new Mt;case Ty:return null;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Vu:return t===0;case Du:return t.variant===-1&&!("value"in t);case fn:return t.isEqual(s.defaultValues(fn));case Lu:return t.algorithmId===p&&!("algorithmParams"in t);case Uu:return t.encryptedKeys.length===0;case Ny:return !1;case Ty:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new A({idBlock:{tagClass:3,tagNumber:0},value:[Zo.schema(t.originator||{})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new L({name:t.ukm||p})]}),k.schema(t.keyEncryptionAlgorithm||{}),Xo.schema(t.recipientEncryptedKeys||{})]})}fromSchema(e){V(e,OU);let t=R(e,e,s.schema({names:{version:Vu,originator:{names:{blockName:Du}},ukm:fn,keyEncryptionAlgorithm:{names:{blockName:Lu}},recipientEncryptedKeys:{names:{blockName:Uu}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.originator=new Zo({schema:t.result.originator}),fn in t.result&&(this.ukm=t.result.ukm),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.recipientEncryptedKeys=new Xo({schema:t.result.recipientEncryptedKeys});}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.originator.toSchema()]})),this.ukm&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[this.ukm]})),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.recipientEncryptedKeys.toSchema()),new S({value:e})}toJSON(){let e={version:this.version,originator:this.originator.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),recipientEncryptedKeys:this.recipientEncryptedKeys.toJSON()};return this.ukm&&(e.ukm=this.ukm.toJSON()),e}};jl.CLASS_NAME="KeyAgreeRecipientInfo";var No="keyIdentifier",Ti="date",ki="other",RU=[No,Ti,ki],Qo=class s extends O{constructor(e={}){super(),this.keyIdentifier=d(e,No,s.defaultValues(No)),Ti in e&&(this.date=d(e,Ti,s.defaultValues(Ti))),ki in e&&(this.other=d(e,ki,s.defaultValues(ki))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case No:return new L;case Ti:return new Ye;case ki:return new An;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case No:return t.isEqual(s.defaultValues(No));case Ti:return t.year===0&&t.month===0&&t.day===0&&t.hour===0&&t.minute===0&&t.second===0&&t.millisecond===0;case ki:return t.compareWithDefault("keyAttrId",t.keyAttrId)&&!("keyAttr"in t);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new L({name:t.keyIdentifier||p}),new Ye({optional:!0,name:t.date||p}),An.schema(t.other||{})]})}fromSchema(e){V(e,RU);let t=R(e,e,s.schema({names:{keyIdentifier:No,date:Ti,other:{names:{blockName:ki}}}}));B.assertSchema(t,this.className),this.keyIdentifier=t.result.keyIdentifier,Ti in t.result&&(this.date=t.result.date),ki in t.result&&(this.other=new An({schema:t.result.other}));}toSchema(){let e=[];return e.push(this.keyIdentifier),this.date&&e.push(this.date),this.other&&e.push(this.other.toSchema()),new S({value:e})}toJSON(){let e={keyIdentifier:this.keyIdentifier.toJSON()};return this.date&&(e.date=this.date),this.other&&(e.other=this.other.toJSON()),e}};Qo.CLASS_NAME="KEKIdentifier";var Hu="version",_u="kekid",ju="keyEncryptionAlgorithm",To="encryptedKey",ky="preDefinedKEK",VU=[Hu,_u,ju,To],Ml=class s extends O{constructor(e={}){super(),this.version=d(e,Hu,s.defaultValues(Hu)),this.kekid=d(e,_u,s.defaultValues(_u)),this.keyEncryptionAlgorithm=d(e,ju,s.defaultValues(ju)),this.encryptedKey=d(e,To,s.defaultValues(To)),this.preDefinedKEK=d(e,ky,s.defaultValues(ky)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Hu:return 0;case _u:return new Qo;case ju:return new k;case To:return new L;case ky:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case"KEKRecipientInfo":return t===s.defaultValues(Hu);case _u:return t.compareWithDefault("keyIdentifier",t.keyIdentifier)&&!("date"in t)&&!("other"in t);case ju:return t.algorithmId===p&&!("algorithmParams"in t);case To:return t.isEqual(s.defaultValues(To));case ky:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),Qo.schema(t.kekid||{}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,VU);let t=R(e,e,s.schema({names:{version:Hu,kekid:{names:{blockName:_u}},keyEncryptionAlgorithm:{names:{blockName:ju}},encryptedKey:To}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.kekid=new Qo({schema:t.result.kekid}),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){return new S({value:[new T({value:this.version}),this.kekid.toSchema(),this.keyEncryptionAlgorithm.toSchema(),this.encryptedKey]})}toJSON(){return {version:this.version,kekid:this.kekid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};Ml.CLASS_NAME="KEKRecipientInfo";var Mu="version",Pi="keyDerivationAlgorithm",$u="keyEncryptionAlgorithm",ko="encryptedKey",Py="password",DU=[Mu,Pi,$u,ko],$l=class s extends O{constructor(e={}){super(),this.version=d(e,Mu,s.defaultValues(Mu)),Pi in e&&(this.keyDerivationAlgorithm=d(e,Pi,s.defaultValues(Pi))),this.keyEncryptionAlgorithm=d(e,$u,s.defaultValues($u)),this.encryptedKey=d(e,ko,s.defaultValues(ko)),this.password=d(e,Py,s.defaultValues(Py)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Mu:return -1;case Pi:return new k;case $u:return new k;case ko:return new L;case Py:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Mu:return t===-1;case Pi:case $u:return t.algorithmId===p&&!("algorithmParams"in t);case ko:return t.isEqual(s.defaultValues(ko));case Py:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new A({name:t.keyDerivationAlgorithm||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:k.schema().valueBlock.value}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,DU);let t=R(e,e,s.schema({names:{version:Mu,keyDerivationAlgorithm:Pi,keyEncryptionAlgorithm:{names:{blockName:$u}},encryptedKey:ko}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,Pi in t.result&&(this.keyDerivationAlgorithm=new k({schema:new S({value:t.result.keyDerivationAlgorithm.valueBlock.value})})),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){let e=[];return e.push(new T({value:this.version})),this.keyDerivationAlgorithm&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.keyDerivationAlgorithm.toSchema().valueBlock.value})),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.encryptedKey),new S({value:e})}toJSON(){let e={version:this.version,keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()};return this.keyDerivationAlgorithm&&(e.keyDerivationAlgorithm=this.keyDerivationAlgorithm.toJSON()),e}};$l.CLASS_NAME="PasswordRecipientInfo";var qu="oriType",Po="oriValue",LU=[qu,Po],nm=class s extends O{constructor(e={}){super(),this.oriType=d(e,qu,s.defaultValues(qu)),this.oriValue=d(e,Po,s.defaultValues(Po)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case qu:return p;case Po:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case qu:return t===p;case Po:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.oriType||p}),new ue({name:t.oriValue||p})]})}fromSchema(e){V(e,LU);let t=R(e,e,s.schema({names:{oriType:qu,oriValue:Po}}));B.assertSchema(t,this.className),this.oriType=t.result.oriType.valueBlock.toString(),this.oriValue=t.result.oriValue;}toSchema(){return new S({value:[new W({value:this.oriType}),this.oriValue]})}toJSON(){let e={oriType:this.oriType};return s.compareWithDefault(Po,this.oriValue)||(e.oriValue=this.oriValue.toJSON()),e}};nm.CLASS_NAME="OtherRecipientInfo";var By="variant",Hh="value",UU=["blockName"],yn=class s extends O{constructor(e={}){super(),this.variant=d(e,By,s.defaultValues(By)),Hh in e&&(this.value=d(e,Hh,s.defaultValues(Hh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case By:return -1;case Hh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case By:return t===s.defaultValues(e);case Hh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[Ll.schema({names:{blockName:t.blockName||p}}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:1},value:jl.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:2},value:Ml.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:3},value:$l.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:4},value:nm.schema().valueBlock.value})]})}fromSchema(e){V(e,UU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));if(B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1)this.variant=1,this.value=new Ll({schema:t.result.blockName});else {let r=new S({value:t.result.blockName.valueBlock.value});switch(t.result.blockName.idBlock.tagNumber){case 1:this.variant=2,this.value=new jl({schema:r});break;case 2:this.variant=3,this.value=new Ml({schema:r});break;case 3:this.variant=4,this.value=new $l({schema:r});break;case 4:this.variant=5,this.value=new nm({schema:r});break;default:throw new Error("Incorrect structure of RecipientInfo block")}}}toSchema(){He.assertEmpty(this.value,"value","RecipientInfo");let e=this.value.toSchema();switch(this.variant){case 1:return e;case 2:case 3:case 4:return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.variant-1,e;default:return new ue}}toJSON(){let e={variant:this.variant};return this.value&&this.variant>=1&&this.variant<=4&&(e.value=this.value.toJSON()),e}};yn.CLASS_NAME="RecipientInfo";var Bi="hashAlgorithm",Oi="maskGenAlgorithm",Ri="pSourceAlgorithm",HU=[Bi,Oi,Ri],Rl=class s extends O{constructor(e={}){super(),this.hashAlgorithm=d(e,Bi,s.defaultValues(Bi)),this.maskGenAlgorithm=d(e,Oi,s.defaultValues(Oi)),this.pSourceAlgorithm=d(e,Ri,s.defaultValues(Ri)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bi:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});case Oi:return new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it}).toSchema()});case Ri:return new k({algorithmId:"1.2.840.113549.1.1.9",algorithmParams:new L({valueHex:new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer})});default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new A({idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[k.schema(t.hashAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:1},optional:!0,value:[k.schema(t.maskGenAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:2},optional:!0,value:[k.schema(t.pSourceAlgorithm||{})]})]})}fromSchema(e){V(e,HU);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:Bi}},maskGenAlgorithm:{names:{blockName:Oi}},pSourceAlgorithm:{names:{blockName:Ri}}}}));B.assertSchema(t,this.className),Bi in t.result&&(this.hashAlgorithm=new k({schema:t.result.hashAlgorithm})),Oi in t.result&&(this.maskGenAlgorithm=new k({schema:t.result.maskGenAlgorithm})),Ri in t.result&&(this.pSourceAlgorithm=new k({schema:t.result.pSourceAlgorithm}));}toSchema(){let e=[];return this.hashAlgorithm.isEqual(s.defaultValues(Bi))||e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.hashAlgorithm.toSchema()]})),this.maskGenAlgorithm.isEqual(s.defaultValues(Oi))||e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.maskGenAlgorithm.toSchema()]})),this.pSourceAlgorithm.isEqual(s.defaultValues(Ri))||e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.pSourceAlgorithm.toSchema()]})),new S({value:e})}toJSON(){let e={};return this.hashAlgorithm.isEqual(s.defaultValues(Bi))||(e.hashAlgorithm=this.hashAlgorithm.toJSON()),this.maskGenAlgorithm.isEqual(s.defaultValues(Oi))||(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),this.pSourceAlgorithm.isEqual(s.defaultValues(Ri))||(e.pSourceAlgorithm=this.pSourceAlgorithm.toJSON()),e}};Rl.CLASS_NAME="RSAESOAEPParams";var Fu="keyInfo",Vi="entityUInfo",Ku="suppPubInfo",_U=[Fu,Vi,Ku],im=class s extends O{constructor(e={}){super(),this.keyInfo=d(e,Fu,s.defaultValues(Fu)),Vi in e&&(this.entityUInfo=d(e,Vi,s.defaultValues(Vi))),this.suppPubInfo=d(e,Ku,s.defaultValues(Ku)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Fu:return new k;case Vi:return new L;case Ku:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Fu:case Vi:case Ku:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.keyInfo||{}),new A({name:t.entityUInfo||p,idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[new L]}),new A({name:t.suppPubInfo||p,idBlock:{tagClass:3,tagNumber:2},value:[new L]})]})}fromSchema(e){V(e,_U);let t=R(e,e,s.schema({names:{keyInfo:{names:{blockName:Fu}},entityUInfo:Vi,suppPubInfo:Ku}}));B.assertSchema(t,this.className),this.keyInfo=new k({schema:t.result.keyInfo}),Vi in t.result&&(this.entityUInfo=t.result.entityUInfo.valueBlock.value[0]),this.suppPubInfo=t.result.suppPubInfo.valueBlock.value[0];}toSchema(){let e=[];return e.push(this.keyInfo.toSchema()),this.entityUInfo&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.entityUInfo]})),e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.suppPubInfo]})),new S({value:e})}toJSON(){let e={keyInfo:this.keyInfo.toJSON(),suppPubInfo:this.suppPubInfo.toJSON()};return this.entityUInfo&&(e.entityUInfo=this.entityUInfo.toJSON()),e}};im.CLASS_NAME="ECCCMSSharedInfo";var Gu="version",Di="originatorInfo",Wu="recipientInfos",Ju="encryptedContentInfo",Li="unprotectedAttrs",jU=[Gu,Di,Wu,Ju,Li],e4={kdfAlgorithm:"SHA-512",kekEncryptionLength:256},MU={"P-256":256,"P-384":384,"P-521":528},am=class s extends O{constructor(e={}){super(),this.version=d(e,Gu,s.defaultValues(Gu)),Di in e&&(this.originatorInfo=d(e,Di,s.defaultValues(Di))),this.recipientInfos=d(e,Wu,s.defaultValues(Wu)),this.encryptedContentInfo=d(e,Ju,s.defaultValues(Ju)),Li in e&&(this.unprotectedAttrs=d(e,Li,s.defaultValues(Li))),this.policy={disableSplit:!!e.disableSplit},e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Gu:return 0;case Di:return new Ol;case Wu:return [];case Ju:return new Ot;case Li:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Gu:return t===s.defaultValues(e);case Di:return t.certs.certificates.length===0&&t.crls.crls.length===0;case Wu:case Li:return t.length===0;case Ju:return Ot.compareWithDefault("contentType",t.contentType)&&Ot.compareWithDefault("contentEncryptionAlgorithm",t.contentEncryptionAlgorithm)&&Ot.compareWithDefault("encryptedContent",t.encryptedContent);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||p}),new A({name:t.originatorInfo||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:Ol.schema().valueBlock.value}),new at({value:[new he({name:t.recipientInfos||p,value:yn.schema()})]}),Ot.schema(t.encryptedContentInfo||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.unprotectedAttrs||p,value:ut.schema()})]})]})}fromSchema(e){V(e,jU);let t=R(e,e,s.schema({names:{version:Gu,originatorInfo:Di,recipientInfos:Wu,encryptedContentInfo:{names:{blockName:Ju}},unprotectedAttrs:Li}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,Di in t.result&&(this.originatorInfo=new Ol({schema:new S({value:t.result.originatorInfo.valueBlock.value})})),this.recipientInfos=Array.from(t.result.recipientInfos,r=>new yn({schema:r})),this.encryptedContentInfo=new Ot({schema:t.result.encryptedContentInfo}),Li in t.result&&(this.unprotectedAttrs=Array.from(t.result.unprotectedAttrs,r=>new ut({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),this.originatorInfo&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:this.originatorInfo.toSchema().valueBlock.value})),e.push(new at({value:Array.from(this.recipientInfos,t=>t.toSchema())})),e.push(this.encryptedContentInfo.toSchema()),this.unprotectedAttrs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.unprotectedAttrs,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={version:this.version,recipientInfos:Array.from(this.recipientInfos,t=>t.toJSON()),encryptedContentInfo:this.encryptedContentInfo.toJSON()};return this.originatorInfo&&(e.originatorInfo=this.originatorInfo.toJSON()),this.unprotectedAttrs&&(e.unprotectedAttrs=Array.from(this.unprotectedAttrs,t=>t.toJSON())),e}addRecipientByCertificate(e,t,r,n=Ie(!0)){let i=Object.assign({useOAEP:!0,oaepHashAlgorithm:"SHA-512"},e4,t||{});if(e.subjectPublicKeyInfo.algorithm.algorithmId.indexOf("1.2.840.113549")!==-1)r=1;else if(e.subjectPublicKeyInfo.algorithm.algorithmId.indexOf("1.2.840.10045")!==-1)r=2;else throw new Error(`Unknown type of certificate's public key: ${e.subjectPublicKeyInfo.algorithm.algorithmId}`);switch(r){case 1:{let a,o;if(i.useOAEP===!0){a=n.getOIDByAlgorithm({name:"RSA-OAEP"},!0,"keyEncryptionAlgorithm");let u=n.getOIDByAlgorithm({name:i.oaepHashAlgorithm},!0,"RSAES-OAEP-params"),l=new k({algorithmId:u,algorithmParams:new it});o=new Rl({hashAlgorithm:l,maskGenAlgorithm:new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:l.toSchema()})}).toSchema();}else {if(a=n.getOIDByAlgorithm({name:"RSAES-PKCS1-v1_5"}),a===p)throw new Error("Can not find OID for RSAES-PKCS1-v1_5");o=new it;}let c=new Ll({version:0,rid:new It({issuer:e.issuer,serialNumber:e.serialNumber}),keyEncryptionAlgorithm:new k({algorithmId:a,algorithmParams:o}),recipientCertificate:e});this.recipientInfos.push(new yn({variant:1,value:c}));}break;case 2:{let a=new zi({variant:1,value:new It({issuer:e.issuer,serialNumber:e.serialNumber})});this._addKeyAgreeRecipientInfo(a,i,{recipientCertificate:e},n);}break;default:throw new Error(`Unknown "variant" value: ${r}`)}return !0}addRecipientByPreDefinedData(e,t={},r,n=Ie(!0)){if(Ge.assert(e,"preDefinedData","ArrayBuffer"),!e.byteLength)throw new Error("Pre-defined data could have zero length");if(!t.keyIdentifier){let i=new ArrayBuffer(16),a=new Uint8Array(i);n.getRandomValues(a),t.keyIdentifier=i;}switch(t.hmacHashAlgorithm||(t.hmacHashAlgorithm="SHA-512"),t.iterationCount===void 0&&(t.iterationCount=2048),t.keyEncryptionAlgorithm||(t.keyEncryptionAlgorithm={name:"AES-KW",length:256}),t.keyEncryptionAlgorithmParams||(t.keyEncryptionAlgorithmParams=new it),r){case 1:{let i=n.getOIDByAlgorithm(t.keyEncryptionAlgorithm,!0,"keyEncryptionAlgorithm"),a=new Ml({version:4,kekid:new Qo({keyIdentifier:new L({valueHex:t.keyIdentifier})}),keyEncryptionAlgorithm:new k({algorithmId:i,algorithmParams:t.keyEncryptionAlgorithmParams}),preDefinedKEK:e});this.recipientInfos.push(new yn({variant:3,value:a}));}break;case 2:{let i=n.getOIDByAlgorithm({name:"PBKDF2"},!0,"keyDerivationAlgorithm"),a=new ArrayBuffer(64),o=new Uint8Array(a);n.getRandomValues(o);let c=n.getOIDByAlgorithm({name:"HMAC",hash:{name:t.hmacHashAlgorithm}},!0,"hmacHashAlgorithm"),u=new Ji({salt:new L({valueHex:a}),iterationCount:t.iterationCount,prf:new k({algorithmId:c,algorithmParams:new it})}),l=n.getOIDByAlgorithm(t.keyEncryptionAlgorithm,!0,"keyEncryptionAlgorithm"),h=new $l({version:0,keyDerivationAlgorithm:new k({algorithmId:i,algorithmParams:u.toSchema()}),keyEncryptionAlgorithm:new k({algorithmId:l,algorithmParams:t.keyEncryptionAlgorithmParams}),password:e});this.recipientInfos.push(new yn({variant:4,value:h}));}break;default:throw new Error(`Unknown value for "variant": ${r}`)}}addRecipientByKeyIdentifier(e,t,r,n=Ie(!0)){let i=Object.assign({},e4,r||{}),a=new zi({variant:2,value:new Hl({subjectKeyIdentifier:new L({valueHex:t})})});this._addKeyAgreeRecipientInfo(a,i,{recipientPublicKey:e},n);}_addKeyAgreeRecipientInfo(e,t,r,n=Ie(!0)){let i=new _l({rid:e}),a=n.getOIDByAlgorithm({name:"AES-KW",length:t.kekEncryptionLength},!0,"keyEncryptionAlgorithm"),o=new k({algorithmId:a}),c=n.getOIDByAlgorithm({name:"ECDH",kdf:t.kdfAlgorithm},!0,"KeyAgreeRecipientInfo"),u=new ArrayBuffer(64),l=new Uint8Array(u);n.getRandomValues(l);let h={version:3,ukm:new L({valueHex:u}),keyEncryptionAlgorithm:new k({algorithmId:c,algorithmParams:o.toSchema()}),recipientEncryptedKeys:new Xo({encryptedKeys:[i]})},m=new jl(Object.assign(h,r));this.recipientInfos.push(new yn({variant:2,value:m}));}async encrypt(e,t,r=Ie(!0)){let n=new ArrayBuffer(16),i=new Uint8Array(n);r.getRandomValues(i);let a=new Uint8Array(t),o=r.getOIDByAlgorithm(e,!0,"contentEncryptionAlgorithm"),c=await r.generateKey(e,!0,["encrypt"]),u=await r.encrypt({name:e.name,iv:i},c,a),l=await r.exportKey("raw",c);this.version=2,this.encryptedContentInfo=new Ot({disableSplit:this.policy.disableSplit,contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new k({algorithmId:o,algorithmParams:new L({valueHex:n})}),encryptedContent:new L({valueHex:u})});let h=async b=>{let C=this.recipientInfos[b].value,N,x;if(C.recipientPublicKey)N=C.recipientPublicKey.algorithm.namedCurve,x=C.recipientPublicKey;else if(C.recipientCertificate){let H=C.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithmParams;if(H.constructor.blockName()!==W.blockName())throw new Error(`Incorrect "recipientCertificate" for index ${b}`);switch(H.valueBlock.toString()){case"1.2.840.10045.3.1.7":N="P-256";break;case"1.3.132.0.34":N="P-384";break;case"1.3.132.0.35":N="P-521";break;default:throw new Error(`Incorrect curve OID for index ${b}`)}x=await C.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"ECDH",namedCurve:N},usages:[]}},r);}else throw new Error("Unsupported RecipientInfo");let E=MU[N],I=await r.generateKey({name:"ECDH",namedCurve:N},!0,["deriveBits"]),D=await r.exportKey("spki",I.publicKey),K=await r.deriveBits({name:"ECDH",public:x},I.privateKey,E),$=new k({schema:C.keyEncryptionAlgorithm.algorithmParams}),J=r.getAlgorithmByOID($.algorithmId,!0,"aesKWAlgorithm"),ne=J.length,F=new ArrayBuffer(4),z=new Uint8Array(F);for(let H=3;H>=0;H--)z[H]=ne,ne>>=8;let Le=new im({keyInfo:new k({algorithmId:$.algorithmId}),entityUInfo:C.ukm,suppPubInfo:new L({valueHex:F})}).toSchema().toBER(!1),U=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"ecdhAlgorithm"),M=await MT(U.kdf,K,J.length,Le,r),Q=await r.importKey("raw",M,{name:"AES-KW"},!0,["wrapKey"]),pe=await r.wrapKey("raw",c,Q,{name:"AES-KW"}),te=new Zo;return te.variant=3,te.value=Ul.fromBER(D),C.originator=te,C.recipientEncryptedKeys.encryptedKeys[0].encryptedKey=new L({valueHex:pe}),{ecdhPrivateKey:I.privateKey}},m=async b=>{let C=this.recipientInfos[b].value,N=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm");if(N.name==="RSA-OAEP"){let x=C.keyEncryptionAlgorithm.algorithmParams,E=new Rl({schema:x});if(N.hash=r.getAlgorithmByOID(E.hashAlgorithm.algorithmId),!("name"in N.hash))throw new Error(`Incorrect OID for hash algorithm: ${E.hashAlgorithm.algorithmId}`)}try{let x=await C.recipientCertificate.getPublicKey({algorithm:{algorithm:N,usages:["encrypt","wrapKey"]}},r),E=await r.encrypt(x.algorithm,x,l);C.encryptedKey=new L({valueHex:E});}catch{}},y=async b=>{let C=this.recipientInfos[b].value,N=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),x=await r.importKey("raw",new Uint8Array(C.preDefinedKEK),N,!0,["wrapKey"]),E=await r.wrapKey("raw",c,x,N);C.encryptedKey=new L({valueHex:E});},g=async b=>{let C=this.recipientInfos[b].value,N;if(!C.keyDerivationAlgorithm)throw new Error('Please append encoded "keyDerivationAlgorithm"');if(!C.keyDerivationAlgorithm.algorithmParams)throw new Error('Incorrectly encoded "keyDerivationAlgorithm"');try{N=new Ji({schema:C.keyDerivationAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "keyDerivationAlgorithm"')}let x=new Uint8Array(C.password),E=await r.importKey("raw",x,"PBKDF2",!1,["deriveKey"]),I=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),D="SHA-1";N.prf&&(D=r.getAlgorithmByOID(N.prf.algorithmId,!0,"prfAlgorithm").hash.name);let K=new Uint8Array(N.salt.valueBlock.valueHex),$=N.iterationCount,J=await r.deriveKey({name:"PBKDF2",hash:{name:D},salt:K,iterations:$},E,I,!0,["wrapKey"]),ne=await r.wrapKey("raw",c,J,I);C.encryptedKey=new L({valueHex:ne});},w=[];for(let b=0;b<this.recipientInfos.length;b++)switch(this.recipientInfos[b].variant){case 1:w.push(await m(b));break;case 2:w.push(await h(b));break;case 3:w.push(await y(b));break;case 4:w.push(await g(b));break;default:throw new Error(`Unknown recipient type in array with index ${b}`)}return w}async decrypt(e,t,r=Ie(!0)){let n=t||{};if(e+1>this.recipientInfos.length)throw new Error(`Maximum value for "index" is: ${this.recipientInfos.length-1}`);let i=async w=>{let b=this.recipientInfos[w].value,C,N,x,E=b.originator;if(n.recipientCertificate){let U=n.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithmParams;if(U.constructor.blockName()!==W.blockName())throw new Error(`Incorrect "recipientCertificate" for index ${w}`);C=U.valueBlock.toString();}else if(E.value.algorithm.algorithmParams){let U=E.value.algorithm.algorithmParams;if(U.constructor.blockName()!==W.blockName())throw new Error(`Incorrect originator for index ${w}`);C=U.valueBlock.toString();}else throw new Error('Parameter "recipientCertificate" is mandatory for "KeyAgreeRecipientInfo" if algorithm params are missing from originator');if(!n.recipientPrivateKey)throw new Error('Parameter "recipientPrivateKey" is mandatory for "KeyAgreeRecipientInfo"');switch(C){case"1.2.840.10045.3.1.7":N="P-256",x=256;break;case"1.3.132.0.34":N="P-384",x=384;break;case"1.3.132.0.35":N="P-521",x=528;break;default:throw new Error(`Incorrect curve OID for index ${w}`)}let I,D=r;ae.isBufferSource(n.recipientPrivateKey)?I=await r.importKey("pkcs8",n.recipientPrivateKey,{name:"ECDH",namedCurve:N},!0,["deriveBits"]):(I=n.recipientPrivateKey,"crypto"in n&&n.crypto&&(D=n.crypto.subtle)),"algorithmParams"in E.value.algorithm||(E.value.algorithm.algorithmParams=new W({value:C}));let K=E.value.toSchema().toBER(!1),$=await r.importKey("spki",K,{name:"ECDH",namedCurve:N},!0,[]),J=await D.deriveBits({name:"ECDH",public:$},I,x);async function ne(U){U=U||!1;let M=new k({schema:b.keyEncryptionAlgorithm.algorithmParams}),Q=r.getAlgorithmByOID(M.algorithmId,!0,"kwAlgorithm"),pe=Q.length,te=new ArrayBuffer(4),H=new Uint8Array(te);for(let _e=3;_e>=0;_e--)H[_e]=pe,pe>>=8;let Y={algorithmId:M.algorithmId};U&&(Y.algorithmParams=new it);let ge=new im({keyInfo:new k(Y),entityUInfo:b.ukm,suppPubInfo:new L({valueHex:te})}).toSchema().toBER(!1),Ce=r.getAlgorithmByOID(b.keyEncryptionAlgorithm.algorithmId,!0,"ecdhAlgorithm");if(!Ce.name)throw new Error(`Incorrect OID for key encryption algorithm: ${b.keyEncryptionAlgorithm.algorithmId}`);return MT(Ce.kdf,J,Q.length,ge,r)}let F=await ne(),z=async U=>r.importKey("raw",U,{name:"AES-KW"},!0,["unwrapKey"]),ce=await z(F),Le=async U=>{let M=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,Q=r.getAlgorithmByOID(M,!0,"contentEncryptionAlgorithm");return r.unwrapKey("raw",b.recipientEncryptedKeys.encryptedKeys[0].encryptedKey.valueBlock.valueHexView,U,{name:"AES-KW"},Q,!0,["decrypt"])};try{return await Le(ce)}catch{let U=await ne(!0),M=await z(U);return Le(M)}},a=async w=>{let b=this.recipientInfos[w].value;if(!n.recipientPrivateKey)throw new Error('Parameter "recipientPrivateKey" is mandatory for "KeyTransRecipientInfo"');let C=r.getAlgorithmByOID(b.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm");if(C.name==="RSA-OAEP"){let K=b.keyEncryptionAlgorithm.algorithmParams,$=new Rl({schema:K});if(C.hash=r.getAlgorithmByOID($.hashAlgorithm.algorithmId),!("name"in C.hash))throw new Error(`Incorrect OID for hash algorithm: ${$.hashAlgorithm.algorithmId}`)}let N,x=r;ae.isBufferSource(n.recipientPrivateKey)?N=await r.importKey("pkcs8",n.recipientPrivateKey,C,!0,["decrypt"]):(N=n.recipientPrivateKey,"crypto"in n&&n.crypto&&(x=n.crypto.subtle));let E=await x.decrypt(N.algorithm,N,b.encryptedKey.valueBlock.valueHexView),I=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,D=r.getAlgorithmByOID(I,!0,"contentEncryptionAlgorithm");if(!("name"in D))throw new Error(`Incorrect "contentEncryptionAlgorithm": ${I}`);return r.importKey("raw",E,D,!0,["decrypt"])},o=async w=>{let b=this.recipientInfos[w].value;if(!n.preDefinedData)throw new Error('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');let C=r.getAlgorithmByOID(b.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),N=await r.importKey("raw",n.preDefinedData,C,!0,["unwrapKey"]),x=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,E=r.getAlgorithmByOID(x,!0,"contentEncryptionAlgorithm");if(!E.name)throw new Error(`Incorrect "contentEncryptionAlgorithm": ${x}`);return r.unwrapKey("raw",b.encryptedKey.valueBlock.valueHexView,N,C,E,!0,["decrypt"])},c=async w=>{let b=this.recipientInfos[w].value,C;if(!n.preDefinedData)throw new Error('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');if(!b.keyDerivationAlgorithm)throw new Error('Please append encoded "keyDerivationAlgorithm"');if(!b.keyDerivationAlgorithm.algorithmParams)throw new Error('Incorrectly encoded "keyDerivationAlgorithm"');try{C=new Ji({schema:b.keyDerivationAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "keyDerivationAlgorithm"')}let N=await r.importKey("raw",n.preDefinedData,"PBKDF2",!1,["deriveKey"]),x=r.getAlgorithmByOID(b.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm"),E=C.prf?r.getAlgorithmByOID(C.prf.algorithmId,!0,"prfAlgorithm").hash.name:"SHA-1",I=new Uint8Array(C.salt.valueBlock.valueHex),D=C.iterationCount,K=await r.deriveKey({name:"PBKDF2",hash:{name:E},salt:I,iterations:D},N,x,!0,["unwrapKey"]),$=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,J=r.getAlgorithmByOID($,!0,"contentEncryptionAlgorithm");return r.unwrapKey("raw",b.encryptedKey.valueBlock.valueHexView,K,x,J,!0,["decrypt"])},u;switch(this.recipientInfos[e].variant){case 1:u=await a(e);break;case 2:u=await i(e);break;case 3:u=await o(e);break;case 4:u=await c(e);break;default:throw new Error(`Unknown recipient type in array with index ${e}`)}let l=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,h=r.getAlgorithmByOID(l,!0,"contentEncryptionAlgorithm"),m=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmParams.valueBlock.valueHex,y=new Uint8Array(m);if(!this.encryptedContentInfo.encryptedContent)throw new Error("Required property `encryptedContent` is empty");let g=this.encryptedContentInfo.getEncryptedContent();return r.decrypt({name:h.name,iv:y},u,g)}};am.CLASS_NAME="EnvelopedData";var tu="safeContents",_h="parsedValue",t4="contentInfos",om=class s extends O{constructor(e={}){super(),this.safeContents=d(e,tu,s.defaultValues(tu)),_h in e&&(this.parsedValue=d(e,_h,s.defaultValues(_h))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case tu:return [];case _h:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case tu:return t.length===0;case _h:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new he({name:t.contentInfos||p,value:ot.schema()})]})}fromSchema(e){V(e,[t4]);let t=R(e,e,s.schema({names:{contentInfos:t4}}));B.assertSchema(t,this.className),this.safeContents=Array.from(t.result.contentInfos,r=>new ot({schema:r}));}toSchema(){return new S({value:Array.from(this.safeContents,e=>e.toSchema())})}toJSON(){return {safeContents:Array.from(this.safeContents,e=>e.toJSON())}}async parseInternalValues(e,t=Ie(!0)){if(He.assert(e,tu),Ge.assert(e.safeContents,tu,"Array"),e.safeContents.length!==this.safeContents.length)throw new Ge('Length of "parameters.safeContents" must be equal to "this.safeContents.length"');this.parsedValue={safeContents:[]};for(let[r,n]of this.safeContents.entries()){let i=e.safeContents[r],a=`parameters.safeContents[${r}]`;switch(n.contentType){case KA:{Ge.assert(n.content,"this.safeContents[j].content",L);let o=n.content.getValue();this.parsedValue.safeContents.push({privacyMode:0,value:Wi.fromBER(o)});}break;case m4:{let o=new am({schema:n.content});He.assert(a,i,"recipientCertificate","recipientKey");let c=i,u=c.recipientCertificate,l=c.recipientKey,h=await o.decrypt(0,{recipientCertificate:u,recipientPrivateKey:l},t);this.parsedValue.safeContents.push({privacyMode:2,value:Wi.fromBER(h)});}break;case p4:{let o=new rc({schema:n.content});He.assert(a,i,"password");let c=i.password,u=await o.decrypt({password:c},t);this.parsedValue.safeContents.push({privacyMode:1,value:Wi.fromBER(u)});}break;default:throw new Error(`Unknown "contentType" for AuthenticatedSafe: " ${n.contentType}`)}}}async makeInternalValues(e,t=Ie(!0)){if(!this.parsedValue)throw new Error('Please run "parseValues" first or add "parsedValue" manually');if(Ge.assert(this.parsedValue,"this.parsedValue","object"),Ge.assert(this.parsedValue.safeContents,"this.parsedValue.safeContents","Array"),Ge.assert(e,"parameters","object"),He.assert(e,"safeContents"),Ge.assert(e.safeContents,"parameters.safeContents","Array"),e.safeContents.length!==this.parsedValue.safeContents.length)throw new Ge('Length of "parameters.safeContents" must be equal to "this.parsedValue.safeContents"');this.safeContents=[];for(let[r,n]of this.parsedValue.safeContents.entries())switch(He.assert("content",n,"privacyMode","value"),Ge.assert(n.value,"content.value",Wi),n.privacyMode){case 0:{let i=n.value.toSchema().toBER(!1);this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.1",content:new L({valueHex:i})}));}break;case 1:{let i=new rc,a=e.safeContents[r];a.contentToEncrypt=n.value.toSchema().toBER(!1),await i.encrypt(a,t),this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.6",content:i.toSchema()}));}break;case 2:{let i=new am,a=n.value.toSchema().toBER(!1),o=e.safeContents[r];switch(He.assert(`parameters.safeContents[${r}]`,o,"encryptingCertificate","encryptionAlgorithm"),!0){case o.encryptionAlgorithm.name.toLowerCase()==="aes-cbc":case o.encryptionAlgorithm.name.toLowerCase()==="aes-gcm":break;default:throw new Error(`Incorrect parameter "encryptionAlgorithm" in "parameters.safeContents[i]": ${o.encryptionAlgorithm}`)}switch(!0){case o.encryptionAlgorithm.length===128:case o.encryptionAlgorithm.length===192:case o.encryptionAlgorithm.length===256:break;default:throw new Error(`Incorrect parameter "encryptionAlgorithm.length" in "parameters.safeContents[i]": ${o.encryptionAlgorithm.length}`)}let c=o.encryptionAlgorithm;i.addRecipientByCertificate(o.encryptingCertificate,{},void 0,t),await i.encrypt(c,a,t),this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.3",content:i.toSchema()}));}break;default:throw new Error(`Incorrect value for "content.privacyMode": ${n.privacyMode}`)}return this}};om.CLASS_NAME="AuthenticatedSafe";var Bo="hashAlgorithm",zu="issuerNameHash",Yu="issuerKeyHash",Oo="serialNumber",$U=[Bo,zu,Yu,Oo],os=class s extends O{static async create(e,t,r=Ie(!0)){let n=new s;return await n.createForCertificate(e,t,r),n}constructor(e={}){super(),this.hashAlgorithm=d(e,Bo,s.defaultValues(Bo)),this.issuerNameHash=d(e,zu,s.defaultValues(zu)),this.issuerKeyHash=d(e,Yu,s.defaultValues(Yu)),this.serialNumber=d(e,Oo,s.defaultValues(Oo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bo:return new k;case zu:case Yu:return new L;case Oo:return new T;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Bo:return t.algorithmId===p&&!("algorithmParams"in t);case zu:case Yu:case Oo:return t.isEqual(s.defaultValues(Oo));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.hashAlgorithmObject||{names:{blockName:t.hashAlgorithm||p}}),new L({name:t.issuerNameHash||p}),new L({name:t.issuerKeyHash||p}),new T({name:t.serialNumber||p})]})}fromSchema(e){V(e,$U);let t=R(e,e,s.schema({names:{hashAlgorithm:Bo,issuerNameHash:zu,issuerKeyHash:Yu,serialNumber:Oo}}));B.assertSchema(t,this.className),this.hashAlgorithm=new k({schema:t.result.hashAlgorithm}),this.issuerNameHash=t.result.issuerNameHash,this.issuerKeyHash=t.result.issuerKeyHash,this.serialNumber=t.result.serialNumber;}toSchema(){return new S({value:[this.hashAlgorithm.toSchema(),this.issuerNameHash,this.issuerKeyHash,this.serialNumber]})}toJSON(){return {hashAlgorithm:this.hashAlgorithm.toJSON(),issuerNameHash:this.issuerNameHash.toJSON(),issuerKeyHash:this.issuerKeyHash.toJSON(),serialNumber:this.serialNumber.toJSON()}}isEqual(e){return !(this.hashAlgorithm.algorithmId!==e.hashAlgorithm.algorithmId||!ae.isEqual(this.issuerNameHash.valueBlock.valueHexView,e.issuerNameHash.valueBlock.valueHexView)||!ae.isEqual(this.issuerKeyHash.valueBlock.valueHexView,e.issuerKeyHash.valueBlock.valueHexView)||!this.serialNumber.isEqual(e.serialNumber))}async createForCertificate(e,t,r=Ie(!0)){He.assert(t,Bo,"issuerCertificate");let n=r.getOIDByAlgorithm({name:t.hashAlgorithm},!0,"hashAlgorithm");this.hashAlgorithm=new k({algorithmId:n,algorithmParams:new it});let i=t.issuerCertificate;this.serialNumber=e.serialNumber;let a=await r.digest({name:t.hashAlgorithm},i.subject.toSchema().toBER(!1));this.issuerNameHash=new L({valueHex:a});let o=i.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView,c=await r.digest({name:t.hashAlgorithm},o);this.issuerKeyHash=new L({valueHex:c});}};os.CLASS_NAME="CertID";var Zu="certID",Xu="certStatus",Qu="thisUpdate",Ui="nextUpdate",Ro="singleExtensions",qU=[Zu,Xu,Qu,Ui,Ro],cm=class s extends O{constructor(e={}){super(),this.certID=d(e,Zu,s.defaultValues(Zu)),this.certStatus=d(e,Xu,s.defaultValues(Xu)),this.thisUpdate=d(e,Qu,s.defaultValues(Qu)),Ui in e&&(this.nextUpdate=d(e,Ui,s.defaultValues(Ui))),Ro in e&&(this.singleExtensions=d(e,Ro,s.defaultValues(Ro))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Zu:return new os;case Xu:return {};case Qu:case Ui:return new Date(0,0,0);case Ro:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Zu:return os.compareWithDefault("hashAlgorithm",t.hashAlgorithm)&&os.compareWithDefault("issuerNameHash",t.issuerNameHash)&&os.compareWithDefault("issuerKeyHash",t.issuerKeyHash)&&os.compareWithDefault("serialNumber",t.serialNumber);case Xu:return Object.keys(t).length===0;case Qu:case Ui:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[os.schema(t.certID||{}),new Ze({value:[new oe({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:0}}),new A({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:1},value:[new Ye,new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new br]})]}),new oe({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:2},lenBlock:{length:1}})]}),new Ye({name:t.thisUpdate||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ye({name:t.nextUpdate||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[gt.schema(t.singleExtensions||{})]})]})}fromSchema(e){V(e,qU);let t=R(e,e,s.schema({names:{certID:{names:{blockName:Zu}},certStatus:Xu,thisUpdate:Qu,nextUpdate:Ui,singleExtensions:{names:{blockName:Ro}}}}));B.assertSchema(t,this.className),this.certID=new os({schema:t.result.certID}),this.certStatus=t.result.certStatus,this.thisUpdate=t.result.thisUpdate.toDate(),Ui in t.result&&(this.nextUpdate=t.result.nextUpdate.toDate()),Ro in t.result&&(this.singleExtensions=Array.from(t.result.singleExtensions.valueBlock.value,r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(this.certID.toSchema()),e.push(this.certStatus),e.push(new Ye({valueDate:this.thisUpdate})),this.nextUpdate&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new Ye({valueDate:this.nextUpdate})]})),this.singleExtensions&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new S({value:Array.from(this.singleExtensions,t=>t.toSchema())})]})),new S({value:e})}toJSON(){let e={certID:this.certID.toJSON(),certStatus:this.certStatus.toJSON(),thisUpdate:this.thisUpdate};return this.nextUpdate&&(e.nextUpdate=this.nextUpdate),this.singleExtensions&&(e.singleExtensions=Array.from(this.singleExtensions,t=>t.toJSON())),e}};cm.CLASS_NAME="SingleResponse";var Oy="tbs",Vo="version",w0="responderID",b0="producedAt",S0="responses",el="responseExtensions",nc="ResponseData",Fy=`${nc}.${Vo}`,tl=`${nc}.${w0}`,pA=`${nc}.${b0}`,gA=`${nc}.${S0}`,Ky=`${nc}.${el}`,FU=[nc,Fy,tl,pA,gA,Ky],rr=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,Oy,s.defaultValues(Oy))),Vo in e&&(this.version=d(e,Vo,s.defaultValues(Vo))),this.responderID=d(e,w0,s.defaultValues(w0)),this.producedAt=d(e,b0,s.defaultValues(b0)),this.responses=d(e,S0,s.defaultValues(S0)),el in e&&(this.responseExtensions=d(e,el,s.defaultValues(el))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Vo:return 0;case Oy:return dt;case w0:return {};case b0:return new Date(0,0,0);case S0:case el:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Oy:return t.byteLength===0;case w0:return Object.keys(t).length===0;case b0:return t===s.defaultValues(e);case S0:case el:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||nc,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.version||Fy})]}),new Ze({value:[new A({name:t.responderID||tl,idBlock:{tagClass:3,tagNumber:1},value:[Xe.schema(t.ResponseDataByName||{names:{blockName:"ResponseData.byName"}})]}),new A({name:t.responderID||tl,idBlock:{tagClass:3,tagNumber:2},value:[new L({name:t.ResponseDataByKey||"ResponseData.byKey"})]})]}),new Ye({name:t.producedAt||pA}),new S({value:[new he({name:gA,value:cm.schema(t.response||{})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[gt.schema(t.extensions||{names:{blockName:Ky}})]})]})}fromSchema(e){V(e,FU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.ResponseData.valueBeforeDecodeView,Fy in t.result&&(this.version=t.result[Fy].valueBlock.valueDec),t.result[tl].idBlock.tagNumber===1?this.responderID=new Xe({schema:t.result[tl].valueBlock.value[0]}):this.responderID=t.result[tl].valueBlock.value[0],this.producedAt=t.result[pA].toDate(),this.responses=Array.from(t.result[gA],r=>new cm({schema:r})),Ky in t.result&&(this.responseExtensions=Array.from(t.result[Ky].valueBlock.value,r=>new ys({schema:r})));}toSchema(e=!1){let t;if(e===!1){if(!this.tbsView.byteLength)return s.schema();let r=pt(this.tbsView);B.assert(r,"TBS Response Data"),t=r.result;}else {let r=[];Vo in this&&r.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),this.responderID instanceof Xe?r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.responderID.toSchema()]})):r.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.responderID]})),r.push(new Ye({valueDate:this.producedAt})),r.push(new S({value:Array.from(this.responses,n=>n.toSchema())})),this.responseExtensions&&r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new S({value:Array.from(this.responseExtensions,n=>n.toSchema())})]})),t=new S({value:r});}return t}toJSON(){let e={};return Vo in this&&(e.version=this.version),this.responderID&&(e.responderID=this.responderID),this.producedAt&&(e.producedAt=this.producedAt),this.responses&&(e.responses=Array.from(this.responses,t=>t.toJSON())),this.responseExtensions&&(e.responseExtensions=Array.from(this.responseExtensions,t=>t.toJSON())),e}};rr.CLASS_NAME="ResponseData";var Z2="trustedCerts",X2="certs",Q2="crls",eA="ocsps",tA="checkDate",sA="findOrigin",rA="findIssuer",Fo;(function(s){s[s.unknown=-1]="unknown",s[s.success=0]="success",s[s.noRevocation=11]="noRevocation",s[s.noPath=60]="noPath",s[s.noValidPath=97]="noValidPath";})(Fo||(Fo={}));var Ki=class s extends Error{constructor(e,t){super(t),this.name=s.NAME,this.code=e,this.message=t;}};Ki.NAME="ChainValidationError";function KU(s,e){for(let t=0;t<e.length;t++)if(ae.isEqual(s.tbsView,e[t].tbsView))return !0;return !1}var um=class s{constructor(e={}){this.trustedCerts=d(e,Z2,this.defaultValues(Z2)),this.certs=d(e,X2,this.defaultValues(X2)),this.crls=d(e,Q2,this.defaultValues(Q2)),this.ocsps=d(e,eA,this.defaultValues(eA)),this.checkDate=d(e,tA,this.defaultValues(tA)),this.findOrigin=d(e,sA,this.defaultValues(sA)),this.findIssuer=d(e,rA,this.defaultValues(rA));}static defaultFindOrigin(e,t){e.tbsView.byteLength===0&&(e.tbsView=new Uint8Array(e.encodeTBS().toBER()));for(let r of t.certs)if(r.tbsView.byteLength===0&&(r.tbsView=new Uint8Array(r.encodeTBS().toBER())),ae.isEqual(e.tbsView,r.tbsView))return "Intermediate Certificates";for(let r of t.trustedCerts)if(r.tbsView.byteLength===0&&(r.tbsView=new Uint8Array(r.encodeTBS().toBER())),ae.isEqual(e.tbsView,r.tbsView))return "Trusted Certificates";return "Unknown"}async defaultFindIssuer(e,t,r=Ie(!0)){let n=[],i=null,a=null,o=null;if(e.subject.isEqual(e.issuer))try{if(await e.verify(void 0,r))return [e]}catch{}if(e.extensions){for(let u of e.extensions)if(u.extnID===qA&&u.parsedValue instanceof M0){u.parsedValue.keyIdentifier?i=u.parsedValue.keyIdentifier:(u.parsedValue.authorityCertIssuer&&(a=u.parsedValue.authorityCertIssuer),u.parsedValue.authorityCertSerialNumber&&(o=u.parsedValue.authorityCertSerialNumber));break}}function c(u){if(i!==null&&u.extensions){let h=!1;for(let m of u.extensions)if(m.extnID===ZD&&m.parsedValue){h=!0,ae.isEqual(m.parsedValue.valueBlock.valueHex,i.valueBlock.valueHexView)&&n.push(u);break}if(h)return}let l=!1;o!==null&&(l=u.serialNumber.isEqual(o)),a!==null?u.subject.isEqual(a)&&l&&n.push(u):e.issuer.isEqual(u.subject)&&n.push(u);}for(let u of t.trustedCerts)c(u);for(let u of t.certs)c(u);for(let u=n.length-1;u>=0;u--)try{await e.verify(n[u],r)===!1&&n.splice(u,1);}catch{n.splice(u,1);}return n}defaultValues(e){switch(e){case Z2:return [];case X2:return [];case Q2:return [];case eA:return [];case tA:return new Date;case sA:return s.defaultFindOrigin;case rA:return this.defaultFindIssuer;default:throw new Error(`Invalid member name for CertificateChainValidationEngine class: ${e}`)}}async sort(e=!1,t=Ie(!0)){let r=[],n=async(g,w)=>{let b=[];function C(x){let E=!0;for(let I=0;I<x.length;I++){for(let D=0;D<x.length;D++)if(D!==I&&x[I]===x[D]){E=!1;break}if(!E)break}return E}if(KU(g,this.trustedCerts))return [[g]];let N=await this.findIssuer(g,this,w);if(N.length===0)throw new Error("No valid certificate paths found");for(let x=0;x<N.length;x++){if(ae.isEqual(N[x].tbsView,g.tbsView)){b.push([N[x]]);continue}let E=await n(N[x],w);for(let I=0;I<E.length;I++){let D=E[I].slice();D.splice(0,0,N[x]),C(D)?b.push(D):b.push(E[I]);}}return b},i=async g=>{let w=[],b=[],C=[];if(w.push(...r.filter(N=>g.issuer.isEqual(N.subject))),w.length===0)return {status:1,statusMessage:"No certificate's issuers"};if(b.push(...this.crls.filter(N=>N.issuer.isEqual(g.issuer))),b.length===0)return {status:2,statusMessage:"No CRLs for specific certificate issuer"};for(let N=0;N<b.length;N++){let x=b[N];if(!(x.nextUpdate&&x.nextUpdate.value<this.checkDate))for(let E=0;E<w.length;E++)try{if(await b[N].verify({issuerCertificate:w[E]},t)){C.push({crl:b[N],certificate:w[E]});break}}catch{}}return C.length?{status:0,statusMessage:p,result:C}:{status:3,statusMessage:"No valid CRLs found"}},a=async(g,w)=>{let b=t.getAlgorithmByOID(g.signatureAlgorithm.algorithmId);if(!b.name||!b.hash)return 1;for(let C=0;C<this.ocsps.length;C++){let x=await this.ocsps[C].getCertificateStatus(g,w,t);if(x.isForCertificate)return x.status===0?0:1}return 2};async function o(g,w=!1){let b=!1,C=!1,N=!1,x=!1;if(g.extensions){for(let E=0;E<g.extensions.length;E++){let I=g.extensions[E];if(I.critical&&!I.parsedValue)return {result:!1,resultCode:6,resultMessage:`Unable to parse critical certificate extension: ${I.extnID}`};if(I.extnID===XD){N=!0;let D=new Uint8Array(I.parsedValue.valueBlock.valueHex);(D[0]&4)===4&&(C=!0),(D[0]&2)===2&&(x=!0);}I.extnID===MA&&"cA"in I.parsedValue&&I.parsedValue.cA===!0&&(b=!0);}if(C===!0&&b===!1)return {result:!1,resultCode:3,resultMessage:'Unable to build certificate chain - using "keyCertSign" flag set without BasicConstraints'};if(N===!0&&b===!0&&C===!1)return {result:!1,resultCode:4,resultMessage:'Unable to build certificate chain - "keyCertSign" flag was not set'};if(b===!0&&N===!0&&w&&x===!1)return {result:!1,resultCode:5,resultMessage:'Unable to build certificate chain - intermediate certificate must have "cRLSign" key usage flag'}}return b===!1?{result:!1,resultCode:7,resultMessage:"Unable to build certificate chain - more than one possible end-user certificate"}:{result:!0,resultCode:0,resultMessage:p}}let c=async(g,w)=>{for(let b=0;b<g.length;b++)if(g[b].notBefore.value>w||g[b].notAfter.value<w)return {result:!1,resultCode:8,resultMessage:"The certificate is either not yet valid or expired"};if(g.length<2)return {result:!1,resultCode:9,resultMessage:"Too short certificate path"};for(let b=g.length-2;b>=0;b--)if(g[b].issuer.isEqual(g[b].subject)===!1&&g[b].issuer.isEqual(g[b+1].subject)===!1)return {result:!1,resultCode:10,resultMessage:"Incorrect name chaining"};if(this.crls.length!==0||this.ocsps.length!==0)for(let b=0;b<g.length-1;b++){let C=2,N={status:0,statusMessage:p};if(this.ocsps.length!==0)switch(C=await a(g[b],g[b+1]),C){case 0:continue;case 1:return {result:!1,resultCode:12,resultMessage:"One of certificates was revoked via OCSP response"}}if(this.crls.length!==0){if(N=await i(g[b]),N.status===0&&N.result)for(let x=0;x<N.result.length;x++){if(N.result[x].crl.isCertificateRevoked(g[b]))return {result:!1,resultCode:12,resultMessage:"One of certificates had been revoked"};if((await o(N.result[x].certificate,!0)).result===!1)return {result:!1,resultCode:13,resultMessage:"CRL issuer certificate is not a CA certificate or does not have crlSign flag"}}else if(e===!1)throw new Ki(Fo.noRevocation,`No revocation values found for one of certificates: ${N.statusMessage}`)}else if(C===2)return {result:!1,resultCode:11,resultMessage:"No revocation values found for one of certificates"};if(C===2&&N.status===2&&e){let x=g[b+1],E=!1;if(x.extensions)for(let I of x.extensions)switch(I.extnID){case u4:case $A:case FA:E=!0;break}if(E)throw new Ki(Fo.noRevocation,`No revocation values found for one of certificates: ${N.statusMessage}`)}}for(let[b,C]of g.entries()){if(!b)continue;if(!(await o(C)).result)return {result:!1,resultCode:14,resultMessage:"One of intermediate certificates is not a CA certificate"}}return {result:!0}};r.push(...this.trustedCerts),r.push(...this.certs);for(let g=0;g<r.length;g++)for(let w=0;w<r.length;w++)if(g!==w&&ae.isEqual(r[g].tbsView,r[w].tbsView)){r.splice(w,1),g=0;break}let u=r[r.length-1],l,h=[u];if(l=await n(u,t),l.length===0)throw new Ki(Fo.noPath,"Unable to find certificate path");for(let g=l.length-1;g>=0;g--){let w=!1;for(let b=0;b<l[g].length;b++){let C=l[g][b];for(let N=0;N<this.trustedCerts.length;N++)if(ae.isEqual(C.tbsView,this.trustedCerts[N].tbsView)){w=!0;break}if(w)break}w||l.splice(g,1);}if(l.length===0)throw new Ki(Fo.noValidPath,"No valid certificate paths found");let m=l[0].length,y=0;for(let g=0;g<l.length;g++)l[g].length<m&&(m=l[g].length,y=g);for(let g=0;g<l[y].length;g++)h.push(l[y][g]);if(l=await c(h,this.checkDate),l.result===!1)throw l;return h}async verify(e={},t=Ie(!0)){function r(c,u){let l=Fi(c),h=Fi(u),m=l.split("."),y=h.split("."),g=m.length,w=y.length;if(g===0||w===0||g<w)return !1;for(let b=0;b<g;b++)if(m[b].length===0)return !1;for(let b=0;b<w;b++)if(y[b].length===0){if(b===0){if(w===1)return !1;continue}return !1}for(let b=0;b<w;b++)if(y[w-1-b].length!==0&&m[g-1-b].localeCompare(y[w-1-b])!==0)return !1;return !0}function n(c,u){let l=Fi(c),h=Fi(u),m=l.split("@"),y=h.split("@");if(m.length===0||y.length===0||m.length<y.length)return !1;if(y.length===1){if(r(m[1],y[0])){let w=m[1].split("."),b=y[0].split(".");return b[0].length===0?!0:w.length===b.length}return !1}return l.localeCompare(h)===0}function i(c,u){let l=Fi(c),h=Fi(u),m=l.split("/");if(h.split("/").length>1)return !1;if(m.length>1){for(let w=0;w<m.length;w++)if(m[w].length>0&&m[w].charAt(m[w].length-1)!==":"){l=m[w].split(":")[0];break}}if(r(l,h)){let w=l.split("."),b=h.split(".");return b[0].length===0?!0:w.length===b.length}return !1}function a(c,u){let l=c.valueBlock.valueHexView,h=u.valueBlock.valueHexView;if(l.length===4&&h.length===8){for(let m=0;m<4;m++)if((l[m]^h[m])&h[m+4])return !1;return !0}if(l.length===16&&h.length===32){for(let m=0;m<16;m++)if((l[m]^h[m])&h[m+16])return !1;return !0}return !1}function o(c,u){if(c.typesAndValues.length===0||u.typesAndValues.length===0)return !0;if(c.typesAndValues.length<u.typesAndValues.length)return !1;let l=!0,h=0;for(let m=0;m<u.typesAndValues.length;m++){let y=!1;for(let g=h;g<c.typesAndValues.length;g++)if(y=c.typesAndValues[g].isEqual(u.typesAndValues[m]),c.typesAndValues[g].type===u.typesAndValues[m].type&&(l=l&&y),y===!0)if(h===0||h===g){h=g+1;break}else return !1;if(y===!1)return !1}return h===0?!1:l}try{if(this.certs.length===0)throw new Error("Empty certificate array");let c=e.passedWhenNotRevValues||!1,u=e.initialPolicySet||[Rs],l=e.initialExplicitPolicy||!1,h=e.initialPolicyMappingInhibit||!1,m=e.initialInhibitPolicy||!1,y=e.initialPermittedSubtreesSet||[],g=e.initialExcludedSubtreesSet||[],w=e.initialRequiredNameForms||[],b=l,C=h,N=m,x=[!1,!1,!1],E=0,I=0,D=0,K=y,$=g,J=w,ne=1;this.certs=await this.sort(c,t);let F=[];F.push(Rs);let z=[],ce=new Array(this.certs.length-1);for(let H=0;H<this.certs.length-1;H++)ce[H]=!0;z.push(ce);let Le=new Array(this.certs.length-1),U=new Array(this.certs.length-1),M=b?this.certs.length-1:-1;for(let H=this.certs.length-2;H>=0;H--,ne++){let Y=this.certs[H];if(Y.extensions){for(let Z=0;Z<Y.extensions.length;Z++){let ge=Y.extensions[Z];if(ge.extnID===l4){U[H]=ge.parsedValue;for(let Ce=0;Ce<F.length;Ce++)if(F[Ce]===Rs){delete z[Ce][H];break}for(let Ce=0;Ce<ge.parsedValue.certificatePolicies.length;Ce++){let _e=-1,$t=ge.parsedValue.certificatePolicies[Ce].policyIdentifier;for(let Fe=0;Fe<F.length;Fe++)if($t===F[Fe]){_e=Fe;break}if(_e===-1){F.push($t);let Fe=new Array(this.certs.length-1);Fe[H]=!0,z.push(Fe);}else z[_e][H]=!0;}}if(ge.extnID===f4){if(C)return {result:!1,resultCode:98,resultMessage:"Policy mapping prohibited"};Le[H]=ge.parsedValue;}ge.extnID===h4&&b===!1&&(ge.parsedValue.requireExplicitPolicy===0?(b=!0,M=H):x[0]===!1?(x[0]=!0,E=ge.parsedValue.requireExplicitPolicy):E=E>ge.parsedValue.requireExplicitPolicy?ge.parsedValue.requireExplicitPolicy:E,ge.parsedValue.inhibitPolicyMapping===0?C=!0:x[1]===!1?(x[1]=!0,I=ge.parsedValue.inhibitPolicyMapping+1):I=I>ge.parsedValue.inhibitPolicyMapping+1?ge.parsedValue.inhibitPolicyMapping+1:I),ge.extnID===aL&&N===!1&&(ge.parsedValue.valueBlock.valueDec===0?N=!0:x[2]===!1?(x[2]=!0,D=ge.parsedValue.valueBlock.valueDec):D=D>ge.parsedValue.valueBlock.valueDec?ge.parsedValue.valueBlock.valueDec:D);}if(N===!0){let Z=-1;for(let ge=0;ge<F.length;ge++)if(F[ge]===Rs){Z=ge;break}Z!==-1&&delete z[0][H];}b===!1&&x[0]===!0&&(E--,E===0&&(b=!0,M=H,x[0]=!1)),C===!1&&x[1]===!0&&(I--,I===0&&(C=!0,x[1]=!1)),N===!1&&x[2]===!0&&(D--,D===0&&(N=!0,x[2]=!1));}}for(let H=0;H<this.certs.length-1;H++)if(H<this.certs.length-2&&typeof Le[H+1]<"u")for(let Y=0;Y<Le[H+1].mappings.length;Y++){if(Le[H+1].mappings[Y].issuerDomainPolicy===Rs||Le[H+1].mappings[Y].subjectDomainPolicy===Rs)return {result:!1,resultCode:99,resultMessage:'The "anyPolicy" should not be a part of policy mapping scheme'};let Z=-1,ge=-1;for(let Ce=0;Ce<F.length;Ce++)F[Ce]===Le[H+1].mappings[Y].issuerDomainPolicy&&(Z=Ce),F[Ce]===Le[H+1].mappings[Y].subjectDomainPolicy&&(ge=Ce);typeof z[Z][H]<"u"&&delete z[Z][H];for(let Ce=0;Ce<U[H].certificatePolicies.length;Ce++)if(Le[H+1].mappings[Y].subjectDomainPolicy===U[H].certificatePolicies[Ce].policyIdentifier&&Z!==-1&&ge!==-1)for(let _e=0;_e<=H;_e++)typeof z[ge][_e]<"u"&&(z[Z][_e]=!0,delete z[ge][_e]);}for(let H=0;H<F.length;H++)if(F[H]===Rs)for(let Y=0;Y<M;Y++)delete z[H][Y];let Q=[];for(let H=0;H<z.length;H++){let Y=!0;for(let Z=0;Z<this.certs.length-1;Z++){let ge=!1;if(Z<M&&F[H]===Rs&&F.length>1){Y=!1;break}if(typeof z[H][Z]>"u"){if(Z>=M){for(let Ce=0;Ce<F.length;Ce++)if(F[Ce]===Rs){z[Ce][Z]===!0&&(ge=!0);break}}if(!ge){Y=!1;break}}}Y===!0&&Q.push(F[H]);}let pe=[];if(u.length===1&&u[0]===Rs&&b===!1)pe=u;else if(Q.length===1&&Q[0]===Rs)pe=u;else for(let H=0;H<Q.length;H++)for(let Y=0;Y<u.length;Y++)if(u[Y]===Q[H]||u[Y]===Rs){pe.push(Q[H]);break}let te={result:pe.length>0,resultCode:0,resultMessage:pe.length>0?p:'Zero "userConstrPolicies" array, no intersections with "authConstrPolicies"',authConstrPolicies:Q,userConstrPolicies:pe,explicitPolicyIndicator:b,policyMappings:Le,certificatePath:this.certs};if(pe.length===0||te.result===!1)return te;ne=1;for(let H=this.certs.length-2;H>=0;H--,ne++){let Y=this.certs[H],Z=[],ge=[],Ce=[];if(Y.extensions)for(let Re=0;Re<Y.extensions.length;Re++){let re=Y.extensions[Re];re.extnID===c4&&("permittedSubtrees"in re.parsedValue&&(ge=ge.concat(re.parsedValue.permittedSubtrees)),"excludedSubtrees"in re.parsedValue&&(Ce=Ce.concat(re.parsedValue.excludedSubtrees))),re.extnID===n4&&(Z=Z.concat(re.parsedValue.altNames));}let _e=J.length<=0;for(let Re=0;Re<J.length;Re++)switch(J[Re].base.type){case 4:{if(J[Re].base.value.typesAndValues.length!==Y.subject.typesAndValues.length)continue;_e=!0;for(let re=0;re<Y.subject.typesAndValues.length;re++)if(Y.subject.typesAndValues[re].type!==J[Re].base.value.typesAndValues[re].type){_e=!1;break}if(_e===!0)break}break;default:}if(_e===!1)throw te.result=!1,te.resultCode=21,te.resultMessage="No necessary name form found",te;let $t=[[],[],[],[],[]];for(let Re=0;Re<K.length;Re++)switch(K[Re].base.type){case 1:$t[0].push(K[Re]);break;case 2:$t[1].push(K[Re]);break;case 4:$t[2].push(K[Re]);break;case 6:$t[3].push(K[Re]);break;case 7:$t[4].push(K[Re]);break;default:}for(let Re=0;Re<5;Re++){let re=!1,cs=!1,Ps=$t[Re];for(let us=0;us<Ps.length;us++){switch(Re){case 0:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===1&&(cs=!0,re=re||n(Z[je].value,Ps[us].base.value));else for(let je=0;je<Y.subject.typesAndValues.length;je++)(Y.subject.typesAndValues[je].type==="1.2.840.113549.1.9.1"||Y.subject.typesAndValues[je].type==="0.9.2342.19200300.100.1.3")&&(cs=!0,re=re||n(Y.subject.typesAndValues[je].value.valueBlock.value,Ps[us].base.value));break;case 1:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===2&&(cs=!0,re=re||r(Z[je].value,Ps[us].base.value));break;case 2:cs=!0,re=o(Y.subject,Ps[us].base.value);break;case 3:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===6&&(cs=!0,re=re||i(Z[je].value,Ps[us].base.value));break;case 4:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===7&&(cs=!0,re=re||a(Z[je].value,Ps[us].base.value));break;default:}if(re)break}if(re===!1&&Ps.length>0&&cs)throw te.result=!1,te.resultCode=41,te.resultMessage='Failed to meet "permitted sub-trees" name constraint',te}let Fe=!1;for(let Re=0;Re<$.length;Re++){switch($[Re].base.type){case 1:if(Z.length>=0)for(let re=0;re<Z.length;re++)Z[re].type===1&&(Fe=Fe||n(Z[re].value,$[Re].base.value));else for(let re=0;re<Y.subject.typesAndValues.length;re++)(Y.subject.typesAndValues[re].type==="1.2.840.113549.1.9.1"||Y.subject.typesAndValues[re].type==="0.9.2342.19200300.100.1.3")&&(Fe=Fe||n(Y.subject.typesAndValues[re].value.valueBlock.value,$[Re].base.value));break;case 2:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===2&&(Fe=Fe||r(Z[re].value,$[Re].base.value));break;case 4:Fe=Fe||o(Y.subject,$[Re].base.value);break;case 6:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===6&&(Fe=Fe||i(Z[re].value,$[Re].base.value));break;case 7:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===7&&(Fe=Fe||a(Z[re].value,$[Re].base.value));break;default:}if(Fe)break}if(Fe===!0)throw te.result=!1,te.resultCode=42,te.resultMessage='Failed to meet "excluded sub-trees" name constraint',te;K=K.concat(ge),$=$.concat(Ce);}return te}catch(c){return c instanceof Error?c instanceof Ki?{result:!1,resultCode:c.code,resultMessage:c.message,error:c}:{result:!1,resultCode:Fo.unknown,resultMessage:c.message,error:c}:c&&typeof c=="object"&&"resultMessage"in c?c:{result:!1,resultCode:-1,resultMessage:`${c}`}}}},Gy="tbsResponseData",v0="signatureAlgorithm",E0="signature",sl="certs",lm="BasicOCSPResponse",yA=`${lm}.${Gy}`,wA=`${lm}.${v0}`,bA=`${lm}.${E0}`,Wy=`${lm}.${sl}`,GU=[yA,wA,bA,Wy],ec=class s extends O{constructor(e={}){super(),this.tbsResponseData=d(e,Gy,s.defaultValues(Gy)),this.signatureAlgorithm=d(e,v0,s.defaultValues(v0)),this.signature=d(e,E0,s.defaultValues(E0)),sl in e&&(this.certs=d(e,sl,s.defaultValues(sl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Gy:return new rr;case v0:return new k;case E0:return new Te;case sl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case"type":{let r=rr.compareWithDefault("tbs",t.tbs)&&rr.compareWithDefault("responderID",t.responderID)&&rr.compareWithDefault("producedAt",t.producedAt)&&rr.compareWithDefault("responses",t.responses);return "responseExtensions"in t&&(r=r&&rr.compareWithDefault("responseExtensions",t.responseExtensions)),r}case v0:return t.algorithmId===p&&!("algorithmParams"in t);case E0:return t.isEqual(s.defaultValues(e));case sl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||lm,value:[rr.schema(t.tbsResponseData||{names:{blockName:yA}}),k.schema(t.signatureAlgorithm||{names:{blockName:wA}}),new Te({name:t.signature||bA}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new S({value:[new he({name:Wy,value:Mt.schema(t.certs||{})})]})]})]})}fromSchema(e){V(e,GU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsResponseData=new rr({schema:t.result[yA]}),this.signatureAlgorithm=new k({schema:t.result[wA]}),this.signature=t.result[bA],Wy in t.result&&(this.certs=Array.from(t.result[Wy],r=>new Mt({schema:r})));}toSchema(){let e=[];return e.push(this.tbsResponseData.toSchema()),e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.certs&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new S({value:Array.from(this.certs,t=>t.toSchema())})]})),new S({value:e})}toJSON(){let e={tbsResponseData:this.tbsResponseData.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.certs&&(e.certs=Array.from(this.certs,t=>t.toJSON())),e}async getCertificateStatus(e,t,r=Ie(!0)){let n={isForCertificate:!1,status:2},i={},a=[];for(let o of this.tbsResponseData.responses){let c=r.getAlgorithmByOID(o.certID.hashAlgorithm.algorithmId,!0,"CertID.hashAlgorithm");if(!i[c.name]){i[c.name]=1;let u=new os;a.push(u),await u.createForCertificate(e,{hashAlgorithm:c.name,issuerCertificate:t},r);}}for(let o of this.tbsResponseData.responses)for(let c of a)if(o.certID.isEqual(c)){n.isForCertificate=!0;try{switch(o.certStatus.idBlock.isConstructed){case!0:o.certStatus.idBlock.tagNumber===1&&(n.status=1);break;case!1:switch(o.certStatus.idBlock.tagNumber){case 0:n.status=0;break;case 2:n.status=2;break;default:}break;default:}}catch{}return n}return n}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters.algorithm;if(!("name"in i))throw new Error("Empty algorithm");this.signatureAlgorithm=n.signatureAlgorithm,this.tbsResponseData.tbsView=new Uint8Array(this.tbsResponseData.toSchema(!0).toBER());let a=await r.signWithPrivateKey(this.tbsResponseData.tbsView,e,{algorithm:i});this.signature=new Te({valueHex:a});}async verify(e={},t=Ie(!0)){let r=null,n=-1,i=e.trustedCerts||[];if(!this.certs)throw new Error("No certificates attached to the BasicOCSPResponse");switch(!0){case this.tbsResponseData.responderID instanceof Xe:for(let[u,l]of this.certs.entries())if(l.subject.isEqual(this.tbsResponseData.responderID)){n=u;break}break;case this.tbsResponseData.responderID instanceof L:for(let[u,l]of this.certs.entries()){let h=await t.digest({name:"sha-1"},l.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView);if(zn(h,this.tbsResponseData.responderID.valueBlock.valueHex)){n=u;break}}break;default:throw new Error("Wrong value for responderID")}if(n===-1)throw new Error("Correct certificate was not found in OCSP response");r=this.certs[n];let a=[r];for(let u of this.certs){let l=await v4(u,r);l&&a.push(l);}if(!(await new um({certs:a,trustedCerts:i}).verify({},t)).result)throw new Error("Validation of signer's certificate failed");return t.verifyWithPublicKey(this.tbsResponseData.tbsView,this.signature,this.certs[n].subjectPublicKeyInfo,this.signatureAlgorithm)}};ec.CLASS_NAME="BasicOCSPResponse";var nA="tbs",iA="version",aA="subject",oA="subjectPublicKeyInfo",su="attributes",x0="signatureAlgorithm",A0="signatureValue",Kl="CertificationRequestInfo",e6=`${Kl}.version`,t6=`${Kl}.subject`,s6=`${Kl}.subjectPublicKeyInfo`,_w=`${Kl}.attributes`,WU=[Kl,e6,t6,s6,_w,x0,A0];function JU(s={}){let e=d(s,"names",{});return new S({name:e.CertificationRequestInfo||Kl,value:[new T({name:e.CertificationRequestInfoVersion||e6}),Xe.schema(e.subject||{names:{blockName:t6}}),Ts.schema({names:{blockName:s6}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({optional:!0,name:e.CertificationRequestInfoAttributes||_w,value:ut.schema(e.attributes||{})})]})]})}var SA=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,nA,s.defaultValues(nA))),this.version=d(e,iA,s.defaultValues(iA)),this.subject=d(e,aA,s.defaultValues(aA)),this.subjectPublicKeyInfo=d(e,oA,s.defaultValues(oA)),su in e&&(this.attributes=d(e,su,s.defaultValues(su))),this.signatureAlgorithm=d(e,x0,s.defaultValues(x0)),this.signatureValue=d(e,A0,s.defaultValues(A0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case nA:return dt;case iA:return 0;case aA:return new Xe;case oA:return new Ts;case su:return [];case x0:return new k;case A0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({value:[JU(t.certificationRequestInfo||{}),new S({name:t.signatureAlgorithm||x0,value:[new W,new ue({optional:!0})]}),new Te({name:t.signatureValue||A0})]})}fromSchema(e){V(e,WU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.CertificationRequestInfo.valueBeforeDecodeView,this.version=t.result[e6].valueBlock.valueDec,this.subject=new Xe({schema:t.result[t6]}),this.subjectPublicKeyInfo=new Ts({schema:t.result[s6]}),_w in t.result&&(this.attributes=Array.from(t.result[_w],r=>new ut({schema:r}))),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[new T({value:this.version}),this.subject.toSchema(),this.subjectPublicKeyInfo.toSchema()];return su in this&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.attributes||[],t=>t.toSchema())})),new S({value:e})}toSchema(e=!1){let t;if(e===!1){if(this.tbsView.byteLength===0)return s.schema();let r=pt(this.tbsView);B.assert(r,"PKCS#10 Certificate Request"),t=r.result;}else t=this.encodeTBS();return new S({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return su in this&&(e.attributes=Array.from(this.attributes||[],t=>t.toJSON())),e}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters;this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e=Ie(!0)){return e.verifyWithPublicKey(this.tbsView,this.signatureValue,this.subjectPublicKeyInfo,this.signatureAlgorithm)}async getPublicKey(e,t=Ie(!0)){return t.getPublicKey(this.subjectPublicKeyInfo,this.signatureAlgorithm,e)}};SA.CLASS_NAME="CertificationRequest";var Do="digestAlgorithm",Lo="digest",zU=[Do,Lo],bn=class s extends O{constructor(e={}){super(),this.digestAlgorithm=d(e,Do,s.defaultValues(Do)),this.digest=d(e,Lo,s.defaultValues(Lo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Do:return new k;case Lo:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Do:return k.compareWithDefault("algorithmId",t.algorithmId)&&!("algorithmParams"in t);case Lo:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.digestAlgorithm||{names:{blockName:Do}}),new L({name:t.digest||Lo})]})}fromSchema(e){V(e,zU);let t=R(e,e,s.schema({names:{digestAlgorithm:{names:{blockName:Do}},digest:Lo}}));B.assertSchema(t,this.className),this.digestAlgorithm=new k({schema:t.result.digestAlgorithm}),this.digest=t.result.digest;}toSchema(){return new S({value:[this.digestAlgorithm.toSchema(),this.digest]})}toJSON(){return {digestAlgorithm:this.digestAlgorithm.toJSON(),digest:this.digest.toJSON()}}};bn.CLASS_NAME="DigestInfo";var rl="eContentType",sr="eContent",YU=[rl,sr],Sn=class s extends O{constructor(e={}){if(super(),this.eContentType=d(e,rl,s.defaultValues(rl)),sr in e&&(this.eContent=d(e,sr,s.defaultValues(sr)),this.eContent.idBlock.tagClass===1&&this.eContent.idBlock.tagNumber===4&&this.eContent.idBlock.isConstructed===!1)){let t=new L({idBlock:{isConstructed:!0},isConstructed:!0}),r=0,n=this.eContent.valueBlock.valueHexView.slice().buffer,i=n.byteLength;for(;i>0;){let a=new Uint8Array(n,r,r+65536>n.byteLength?n.byteLength-r:65536),o=new ArrayBuffer(a.length),c=new Uint8Array(o);for(let u=0;u<c.length;u++)c[u]=a[u];t.valueBlock.value.push(new L({valueHex:o})),i-=a.length,r+=a.length;}this.eContent=t;}e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case rl:return p;case sr:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case rl:return t===p;case sr:return t.idBlock.tagClass===1&&t.idBlock.tagNumber===4?t.isEqual(s.defaultValues(sr)):!1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.eContentType||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.eContent||p})]})]})}fromSchema(e){V(e,YU);let t=R(e,e,s.schema({names:{eContentType:rl,eContent:sr}}));B.assertSchema(t,this.className),this.eContentType=t.result.eContentType.valueBlock.toString(),sr in t.result&&(this.eContent=t.result.eContent);}toSchema(){let e=[];return e.push(new W({value:this.eContentType})),this.eContent&&s.compareWithDefault(sr,this.eContent)===!1&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.eContent]})),new S({value:e})}toJSON(){let e={eContentType:this.eContentType};return this.eContent&&s.compareWithDefault(sr,this.eContent)===!1&&(e.eContent=this.eContent.toJSON()),e}};Sn.CLASS_NAME="EncapsulatedContentInfo";var Uo="mac",Ho="macSalt",hn="iterations",ZU=[Uo,Ho,hn],Er=class s extends O{constructor(e={}){super(),this.mac=d(e,Uo,s.defaultValues(Uo)),this.macSalt=d(e,Ho,s.defaultValues(Ho)),hn in e&&(this.iterations=d(e,hn,s.defaultValues(hn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Uo:return new bn;case Ho:return new L;case hn:return 1;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Uo:return bn.compareWithDefault("digestAlgorithm",t.digestAlgorithm)&&bn.compareWithDefault("digest",t.digest);case Ho:return t.isEqual(s.defaultValues(e));case hn:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,optional:t.optional||!0,value:[bn.schema(t.mac||{names:{blockName:Uo}}),new L({name:t.macSalt||Ho}),new T({optional:!0,name:t.iterations||hn})]})}fromSchema(e){V(e,ZU);let t=R(e,e,s.schema({names:{mac:{names:{blockName:Uo}},macSalt:Ho,iterations:hn}}));B.assertSchema(t,this.className),this.mac=new bn({schema:t.result.mac}),this.macSalt=t.result.macSalt,hn in t.result&&(this.iterations=t.result.iterations.valueBlock.valueDec);}toSchema(){let e=[this.mac.toSchema(),this.macSalt];return this.iterations!==void 0&&e.push(new T({value:this.iterations})),new S({value:e})}toJSON(){let e={mac:this.mac.toJSON(),macSalt:this.macSalt.toJSON()};return this.iterations!==void 0&&(e.iterations=this.iterations),e}};Er.CLASS_NAME="MacData";var Ko="hashAlgorithm",Go="hashedMessage",XU=[Ko,Go],Ns=class s extends O{static async create(e,t,r=Ie(!0)){let n=r.getOIDByAlgorithm({name:e},!0,"hashAlgorithm"),i=await r.digest(e,t);return new s({hashAlgorithm:new k({algorithmId:n,algorithmParams:new it}),hashedMessage:new L({valueHex:i})})}constructor(e={}){super(),this.hashAlgorithm=d(e,Ko,s.defaultValues(Ko)),this.hashedMessage=d(e,Go,s.defaultValues(Go)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ko:return new k;case Go:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ko:return t.algorithmId===p&&!("algorithmParams"in t);case Go:return t.isEqual(s.defaultValues(e))===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.hashAlgorithm||{}),new L({name:t.hashedMessage||p})]})}fromSchema(e){V(e,XU);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:Ko}},hashedMessage:Go}}));B.assertSchema(t,this.className),this.hashAlgorithm=new k({schema:t.result.hashAlgorithm}),this.hashedMessage=t.result.hashedMessage;}toSchema(){return new S({value:[this.hashAlgorithm.toSchema(),this.hashedMessage]})}toJSON(){return {hashAlgorithm:this.hashAlgorithm.toJSON(),hashedMessage:this.hashedMessage.toJSON()}}};Ns.CLASS_NAME="MessageImprint";var nl="reqCert",Hi="singleRequestExtensions",QU=[nl,Hi],ql=class s extends O{constructor(e={}){super(),this.reqCert=d(e,nl,s.defaultValues(nl)),Hi in e&&(this.singleRequestExtensions=d(e,Hi,s.defaultValues(Hi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case nl:return new os;case Hi:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case nl:return t.isEqual(s.defaultValues(e));case Hi:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[os.schema(t.reqCert||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[gt.schema(t.extensions||{names:{blockName:t.singleRequestExtensions||p}})]})]})}fromSchema(e){V(e,QU);let t=R(e,e,s.schema({names:{reqCert:{names:{blockName:nl}},extensions:{names:{blockName:Hi}}}}));B.assertSchema(t,this.className),this.reqCert=new os({schema:t.result.reqCert}),Hi in t.result&&(this.singleRequestExtensions=Array.from(t.result.singleRequestExtensions.valueBlock.value,r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(this.reqCert.toSchema()),this.singleRequestExtensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new S({value:Array.from(this.singleRequestExtensions,t=>t.toSchema())})]})),new S({value:e})}toJSON(){let e={reqCert:this.reqCert.toJSON()};return this.singleRequestExtensions&&(e.singleRequestExtensions=Array.from(this.singleRequestExtensions,t=>t.toJSON())),e}};ql.CLASS_NAME="Request";var Ry="tbs",il="version",al="requestorName",Vy="requestList",ol="requestExtensions",Gl="TBSRequest",Jy=`${Gl}.${il}`,zy=`${Gl}.${al}`,vA=`${Gl}.requests`,Yy=`${Gl}.${ol}`,eH=[Gl,Jy,zy,vA,Yy],nr=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,Ry,s.defaultValues(Ry))),il in e&&(this.version=d(e,il,s.defaultValues(il))),al in e&&(this.requestorName=d(e,al,s.defaultValues(al))),this.requestList=d(e,Vy,s.defaultValues(Vy)),ol in e&&(this.requestExtensions=d(e,ol,s.defaultValues(ol))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ry:return dt;case il:return 0;case al:return new We;case Vy:case ol:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ry:return t.byteLength===0;case il:return t===s.defaultValues(e);case al:return t.type===We.defaultValues("type")&&Object.keys(t.value).length===0;case Vy:case ol:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||Gl,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.TBSRequestVersion||Jy})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[We.schema(t.requestorName||{names:{blockName:zy}})]}),new S({name:t.requestList||"TBSRequest.requestList",value:[new he({name:t.requests||vA,value:ql.schema(t.requestNames||{})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:2},value:[gt.schema(t.extensions||{names:{blockName:t.requestExtensions||Yy}})]})]})}fromSchema(e){V(e,eH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.TBSRequest.valueBeforeDecodeView,Jy in t.result&&(this.version=t.result[Jy].valueBlock.valueDec),zy in t.result&&(this.requestorName=new We({schema:t.result[zy]})),this.requestList=Array.from(t.result[vA],r=>new ql({schema:r})),Yy in t.result&&(this.requestExtensions=Array.from(t.result[Yy].valueBlock.value,r=>new ys({schema:r})));}toSchema(e=!1){let t;if(e===!1){if(this.tbsView.byteLength===0)return s.schema();let r=pt(this.tbsView);if(B.assert(r,"TBS Request"),!(r.result instanceof S))throw new Error("ASN.1 result should be SEQUENCE");t=r.result;}else {let r=[];this.version!==void 0&&r.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),this.requestorName&&r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.requestorName.toSchema()]})),r.push(new S({value:Array.from(this.requestList,n=>n.toSchema())})),this.requestExtensions&&r.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[new S({value:Array.from(this.requestExtensions,n=>n.toSchema())})]})),t=new S({value:r});}return t}toJSON(){let e={};return this.version!=null&&(e.version=this.version),this.requestorName&&(e.requestorName=this.requestorName.toJSON()),e.requestList=Array.from(this.requestList,t=>t.toJSON()),this.requestExtensions&&(e.requestExtensions=Array.from(this.requestExtensions,t=>t.toJSON())),e}};nr.CLASS_NAME="TBSRequest";var ru="signatureAlgorithm",nu="signature",ii="certs",wn=class s extends O{constructor(e={}){super(),this.signatureAlgorithm=d(e,ru,s.defaultValues(ru)),this.signature=d(e,nu,s.defaultValues(nu)),ii in e&&(this.certs=d(e,ii,s.defaultValues(ii))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ru:return new k;case nu:return new Te;case ii:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ru:return t.algorithmId===p&&!("algorithmParams"in t);case nu:return t.isEqual(s.defaultValues(e));case ii:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[k.schema(t.signatureAlgorithm||{}),new Te({name:t.signature||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new S({value:[new he({name:t.certs||p,value:Mt.schema({})})]})]})]})}fromSchema(e){V(e,[ru,nu,ii]);let t=R(e,e,s.schema({names:{signatureAlgorithm:{names:{blockName:ru}},signature:nu,certs:ii}}));B.assertSchema(t,this.className),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signature=t.result.signature,ii in t.result&&(this.certs=Array.from(t.result.certs,r=>new Mt({schema:r})));}toSchema(){let e=[];return e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.certs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new S({value:Array.from(this.certs,t=>t.toSchema())})]})),new S({value:e})}toJSON(){let e={signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.certs&&(e.certs=Array.from(this.certs,t=>t.toJSON())),e}};wn.CLASS_NAME="Signature";var cl="tbsRequest",_i="optionalSignature",tH=[cl,_i],EA=class s extends O{constructor(e={}){super(),this.tbsRequest=d(e,cl,s.defaultValues(cl)),_i in e&&(this.optionalSignature=d(e,_i,s.defaultValues(_i))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case cl:return new nr;case _i:return new wn;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case cl:return nr.compareWithDefault("tbs",t.tbs)&&nr.compareWithDefault("version",t.version)&&nr.compareWithDefault("requestorName",t.requestorName)&&nr.compareWithDefault("requestList",t.requestList)&&nr.compareWithDefault("requestExtensions",t.requestExtensions);case _i:return wn.compareWithDefault("signatureAlgorithm",t.signatureAlgorithm)&&wn.compareWithDefault("signature",t.signature)&&wn.compareWithDefault("certs",t.certs);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||"OCSPRequest",value:[nr.schema(t.tbsRequest||{names:{blockName:cl}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[wn.schema(t.optionalSignature||{names:{blockName:_i}})]})]})}fromSchema(e){V(e,tH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsRequest=new nr({schema:t.result.tbsRequest}),_i in t.result&&(this.optionalSignature=new wn({schema:t.result.optionalSignature}));}toSchema(e=!1){let t=[];return t.push(this.tbsRequest.toSchema(e)),this.optionalSignature&&t.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.optionalSignature.toSchema()]})),new S({value:t})}toJSON(){let e={tbsRequest:this.tbsRequest.toJSON()};return this.optionalSignature&&(e.optionalSignature=this.optionalSignature.toJSON()),e}async createForCertificate(e,t,r=Ie(!0)){let n=new os;await n.createForCertificate(e,t,r),this.tbsRequest.requestList.push(new ql({reqCert:n}));}async sign(e,t="SHA-1",r=Ie(!0)){if(He.assertEmpty(e,"privateKey","OCSPRequest.sign method"),!this.optionalSignature)throw new Error('Need to create "optionalSignature" field before signing');let n=await r.getSignatureParameters(e,t),i=n.parameters;this.optionalSignature.signatureAlgorithm=n.signatureAlgorithm;let a=this.tbsRequest.toSchema(!0).toBER(!1),o=await r.signWithPrivateKey(a,e,i);this.optionalSignature.signature=new Te({valueHex:o});}verify(){}};EA.CLASS_NAME="OCSPRequest";var ul="responseType",ll="response",sH=[ul,ll],Gi=class s extends O{constructor(e={}){super(),this.responseType=d(e,ul,s.defaultValues(ul)),this.response=d(e,ll,s.defaultValues(ll)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ul:return p;case ll:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ul:return t===p;case ll:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new W({name:t.responseType||p}),new L({name:t.response||p})]})}fromSchema(e){V(e,sH);let t=R(e,e,s.schema({names:{responseType:ul,response:ll}}));B.assertSchema(t,this.className),this.responseType=t.result.responseType.valueBlock.toString(),this.response=t.result.response;}toSchema(){return new S({value:[new W({value:this.responseType}),this.response]})}toJSON(){return {responseType:this.responseType,response:this.response.toJSON()}}};Gi.CLASS_NAME="ResponseBytes";var iu="responseStatus",sn="responseBytes",xA=class s extends O{constructor(e={}){super(),this.responseStatus=d(e,iu,s.defaultValues(iu)),sn in e&&(this.responseBytes=d(e,sn,s.defaultValues(sn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case iu:return new br;case sn:return new Gi;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case iu:return t.isEqual(s.defaultValues(e));case sn:return Gi.compareWithDefault("responseType",t.responseType)&&Gi.compareWithDefault("response",t.response);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||"OCSPResponse",value:[new br({name:t.responseStatus||iu}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[Gi.schema(t.responseBytes||{names:{blockName:sn}})]})]})}fromSchema(e){V(e,[iu,sn]);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.responseStatus=t.result.responseStatus,sn in t.result&&(this.responseBytes=new Gi({schema:t.result.responseBytes}));}toSchema(){let e=[];return e.push(this.responseStatus),this.responseBytes&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.responseBytes.toSchema()]})),new S({value:e})}toJSON(){let e={responseStatus:this.responseStatus.toJSON()};return this.responseBytes&&(e.responseBytes=this.responseBytes.toJSON()),e}async getCertificateStatus(e,t,r=Ie(!0)){let n,i={isForCertificate:!1,status:2};if(!this.responseBytes||this.responseBytes.responseType!==Ly)return i;try{let a=pt(this.responseBytes.response.valueBlock.valueHexView);B.assert(a,"Basic OCSP response"),n=new ec({schema:a.result});}catch{return i}return n.getCertificateStatus(e,t,r)}async sign(e,t,r=Ie(!0)){var n;if(this.responseBytes&&this.responseBytes.responseType===Ly)return ec.fromBER(this.responseBytes.response.valueBlock.valueHexView).sign(e,t,r);throw new Error(`Unknown ResponseBytes type: ${((n=this.responseBytes)===null||n===void 0?void 0:n.responseType)||"Unknown"}`)}async verify(e=null,t=Ie(!0)){var r;if(!(sn in this))throw new Error("Empty ResponseBytes field");if(this.responseBytes&&this.responseBytes.responseType===Ly){let n=ec.fromBER(this.responseBytes.response.valueBlock.valueHexView);return e!==null&&(n.certs||(n.certs=[]),n.certs.push(e)),n.verify({},t)}throw new Error(`Unknown ResponseBytes type: ${((r=this.responseBytes)===null||r===void 0?void 0:r.responseType)||"Unknown"}`)}};xA.CLASS_NAME="OCSPResponse";var $a="type",dn="attributes",Dy="encodedValue",rH=[dn],Zt=class s extends O{constructor(e={}){super(),this.type=d(e,$a,s.defaultValues($a)),this.attributes=d(e,dn,s.defaultValues(dn)),this.encodedValue=d(e,Dy,s.defaultValues(Dy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $a:return -1;case dn:return [];case Dy:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $a:return t===s.defaultValues($a);case dn:return t.length===0;case Dy:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new A({name:t.blockName||p,optional:!0,idBlock:{tagClass:3,tagNumber:t.tagNumber||0},value:[new he({name:t.attributes||p,value:ut.schema()})]})}fromSchema(e){V(e,rH);let t=R(e,e,s.schema({names:{tagNumber:this.type,attributes:dn}}));B.assertSchema(t,this.className),this.type=t.result.idBlock.tagNumber,this.encodedValue=ae.toArrayBuffer(t.result.valueBeforeDecodeView);let r=new Uint8Array(this.encodedValue);if(r[0]=49,!(dn in t.result)){if(this.type===0)throw new Error("Wrong structure of SignedUnsignedAttributes");return}this.attributes=Array.from(t.result.attributes,n=>new ut({schema:n}));}toSchema(){if(s.compareWithDefault($a,this.type)||s.compareWithDefault(dn,this.attributes))throw new Error('Incorrectly initialized "SignedAndUnsignedAttributes" class');return new A({optional:!0,idBlock:{tagClass:3,tagNumber:this.type},value:Array.from(this.attributes,e=>e.toSchema())})}toJSON(){if(s.compareWithDefault($a,this.type)||s.compareWithDefault(dn,this.attributes))throw new Error('Incorrectly initialized "SignedAndUnsignedAttributes" class');return {type:this.type,attributes:Array.from(this.attributes,e=>e.toJSON())}}};Zt.CLASS_NAME="SignedAndUnsignedAttributes";var fl="version",_o="sid",hl="digestAlgorithm",ji="signedAttrs",dl="signatureAlgorithm",I0="signature",Mi="unsignedAttrs",Zi="SignerInfo",AA=`${Zi}.${fl}`,C0=`${Zi}.${_o}`,IA=`${Zi}.${hl}`,Zy=`${Zi}.${ji}`,CA=`${Zi}.${dl}`,NA=`${Zi}.${I0}`,Xy=`${Zi}.${Mi}`,nH=[AA,C0,IA,Zy,CA,NA,Xy],Fl=class s extends O{constructor(e={}){super(),this.version=d(e,fl,s.defaultValues(fl)),this.sid=d(e,_o,s.defaultValues(_o)),this.digestAlgorithm=d(e,hl,s.defaultValues(hl)),ji in e&&(this.signedAttrs=d(e,ji,s.defaultValues(ji))),this.signatureAlgorithm=d(e,dl,s.defaultValues(dl)),this.signature=d(e,I0,s.defaultValues(I0)),Mi in e&&(this.unsignedAttrs=d(e,Mi,s.defaultValues(Mi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fl:return 0;case _o:return new ue;case hl:return new k;case ji:return new Zt({type:0});case dl:return new k;case I0:return new L;case Mi:return new Zt({type:1});default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fl:return s.defaultValues(fl)===t;case _o:return t instanceof ue;case hl:return t instanceof k?t.isEqual(s.defaultValues(hl)):!1;case ji:return Zt.compareWithDefault("type",t.type)&&Zt.compareWithDefault("attributes",t.attributes)&&Zt.compareWithDefault("encodedValue",t.encodedValue);case dl:return t instanceof k?t.isEqual(s.defaultValues(dl)):!1;case I0:case Mi:return Zt.compareWithDefault("type",t.type)&&Zt.compareWithDefault("attributes",t.attributes)&&Zt.compareWithDefault("encodedValue",t.encodedValue);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:Zi,value:[new T({name:t.version||AA}),new Ze({value:[It.schema(t.sidSchema||{names:{blockName:C0}}),new Ze({value:[new A({optional:!0,name:t.sid||C0,idBlock:{tagClass:3,tagNumber:0},value:[new L]}),new oe({optional:!0,name:t.sid||C0,idBlock:{tagClass:3,tagNumber:0}})]})]}),k.schema(t.digestAlgorithm||{names:{blockName:IA}}),Zt.schema(t.signedAttrs||{names:{blockName:Zy,tagNumber:0}}),k.schema(t.signatureAlgorithm||{names:{blockName:CA}}),new L({name:t.signature||NA}),Zt.schema(t.unsignedAttrs||{names:{blockName:Xy,tagNumber:1}})]})}fromSchema(e){V(e,nH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[AA].valueBlock.valueDec;let r=t.result[C0];r.idBlock.tagClass===1?this.sid=new It({schema:r}):this.sid=r,this.digestAlgorithm=new k({schema:t.result[IA]}),Zy in t.result&&(this.signedAttrs=new Zt({type:0,schema:t.result[Zy]})),this.signatureAlgorithm=new k({schema:t.result[CA]}),this.signature=t.result[NA],Xy in t.result&&(this.unsignedAttrs=new Zt({type:1,schema:t.result[Xy]}));}toSchema(){if(s.compareWithDefault(_o,this.sid))throw new Error('Incorrectly initialized "SignerInfo" class');let e=[];return e.push(new T({value:this.version})),this.sid instanceof It?e.push(this.sid.toSchema()):e.push(this.sid),e.push(this.digestAlgorithm.toSchema()),this.signedAttrs&&s.compareWithDefault(ji,this.signedAttrs)===!1&&e.push(this.signedAttrs.toSchema()),e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.unsignedAttrs&&s.compareWithDefault(Mi,this.unsignedAttrs)===!1&&e.push(this.unsignedAttrs.toSchema()),new S({value:e})}toJSON(){if(s.compareWithDefault(_o,this.sid))throw new Error('Incorrectly initialized "SignerInfo" class');let e={version:this.version,digestAlgorithm:this.digestAlgorithm.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.sid instanceof ue||(e.sid=this.sid.toJSON()),this.signedAttrs&&s.compareWithDefault(ji,this.signedAttrs)===!1&&(e.signedAttrs=this.signedAttrs.toJSON()),this.unsignedAttrs&&s.compareWithDefault(Mi,this.unsignedAttrs)===!1&&(e.unsignedAttrs=this.unsignedAttrs.toJSON()),e}};Fl.CLASS_NAME="SignerInfo";var N0="version",T0="policy",k0="messageImprint",P0="serialNumber",B0="genTime",jo="ordering",Mo="nonce",ml="accuracy",pl="tsa",gl="extensions",ar="TSTInfo",TA=`${ar}.${N0}`,kA=`${ar}.${T0}`,PA=`${ar}.${k0}`,BA=`${ar}.${P0}`,OA=`${ar}.${B0}`,Qy=`${ar}.${ml}`,ew=`${ar}.${jo}`,tw=`${ar}.${Mo}`,sw=`${ar}.${pl}`,rw=`${ar}.${gl}`,iH=[TA,kA,PA,BA,OA,Qy,ew,tw,sw,rw],jw=class s extends O{constructor(e={}){super(),this.version=d(e,N0,s.defaultValues(N0)),this.policy=d(e,T0,s.defaultValues(T0)),this.messageImprint=d(e,k0,s.defaultValues(k0)),this.serialNumber=d(e,P0,s.defaultValues(P0)),this.genTime=d(e,B0,s.defaultValues(B0)),ml in e&&(this.accuracy=d(e,ml,s.defaultValues(ml))),jo in e&&(this.ordering=d(e,jo,s.defaultValues(jo))),Mo in e&&(this.nonce=d(e,Mo,s.defaultValues(Mo))),pl in e&&(this.tsa=d(e,pl,s.defaultValues(pl))),gl in e&&(this.extensions=d(e,gl,s.defaultValues(gl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case N0:return 0;case T0:return p;case k0:return new Ns;case P0:return new T;case B0:return new Date(0,0,0);case ml:return new gn;case jo:return !1;case Mo:return new T;case pl:return new We;case gl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case N0:case T0:case B0:case jo:return t===s.defaultValues(jo);case k0:return Ns.compareWithDefault(Ko,t.hashAlgorithm)&&Ns.compareWithDefault(Go,t.hashedMessage);case P0:case Mo:return t.isEqual(s.defaultValues(Mo));case ml:return gn.compareWithDefault(ai,t.seconds)&&gn.compareWithDefault(oi,t.millis)&&gn.compareWithDefault(ci,t.micros);case pl:return We.compareWithDefault($h,t.type)&&We.compareWithDefault(qh,t.value);case gl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||ar,value:[new T({name:t.version||TA}),new W({name:t.policy||kA}),Ns.schema(t.messageImprint||{names:{blockName:PA}}),new T({name:t.serialNumber||BA}),new Ye({name:t.genTime||OA}),gn.schema(t.accuracy||{names:{blockName:Qy}}),new Cs({name:t.ordering||ew,optional:!0}),new T({name:t.nonce||tw,optional:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[We.schema(t.tsa||{names:{blockName:sw}})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.extensions||rw,value:ys.schema(t.extension||{})})]})]})}fromSchema(e){V(e,iH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[TA].valueBlock.valueDec,this.policy=t.result[kA].valueBlock.toString(),this.messageImprint=new Ns({schema:t.result[PA]}),this.serialNumber=t.result[BA],this.genTime=t.result[OA].toDate(),Qy in t.result&&(this.accuracy=new gn({schema:t.result[Qy]})),ew in t.result&&(this.ordering=t.result[ew].valueBlock.value),tw in t.result&&(this.nonce=t.result[tw]),sw in t.result&&(this.tsa=new We({schema:t.result[sw]})),rw in t.result&&(this.extensions=Array.from(t.result[rw],r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(new W({value:this.policy})),e.push(this.messageImprint.toSchema()),e.push(this.serialNumber),e.push(new Ye({valueDate:this.genTime})),this.accuracy&&e.push(this.accuracy.toSchema()),this.ordering!==void 0&&e.push(new Cs({value:this.ordering})),this.nonce&&e.push(this.nonce),this.tsa&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.tsa.toSchema()]})),this.extensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.extensions,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={version:this.version,policy:this.policy,messageImprint:this.messageImprint.toJSON(),serialNumber:this.serialNumber.toJSON(),genTime:this.genTime};return this.accuracy&&(e.accuracy=this.accuracy.toJSON()),this.ordering!==void 0&&(e.ordering=this.ordering),this.nonce&&(e.nonce=this.nonce.toJSON()),this.tsa&&(e.tsa=this.tsa.toJSON()),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}async verify(e,t=Ie(!0)){if(!e.data)throw new Error('"data" is a mandatory attribute for TST_INFO verification');let r=e.data;if(e.notBefore&&this.genTime<e.notBefore)throw new Error("Generation time for TSTInfo object is less than notBefore value");if(e.notAfter&&this.genTime>e.notAfter)throw new Error("Generation time for TSTInfo object is more than notAfter value");let n=t.getAlgorithmByOID(this.messageImprint.hashAlgorithm.algorithmId,!0,"MessageImprint.hashAlgorithm"),i=await t.digest(n.name,new Uint8Array(r));return ae.isEqual(i,this.messageImprint.hashedMessage.valueBlock.valueHexView)}};jw.CLASS_NAME="TSTInfo";var yl="version",O0="digestAlgorithms",R0="encapContentInfo",wl="certificates",bl="crls",V0="signerInfos",jh="ocsps",ic="SignedData",RA=`${ic}.${yl}`,nw=`${ic}.${O0}`,VA=`${ic}.${R0}`,iw=`${ic}.${wl}`,aw=`${ic}.${bl}`,ow=`${ic}.${V0}`,aH=[RA,nw,VA,iw,aw,ow],Bt=class extends Error{constructor({message:e,code:t=0,date:r=new Date,signatureVerified:n=null,signerCertificate:i=null,signerCertificateVerified:a=null,timestampSerial:o=null,certificatePath:c=[]}){super(e),this.name="SignedDataVerifyError",this.date=r,this.code=t,this.timestampSerial=o,this.signatureVerified=n,this.signerCertificate=i,this.signerCertificateVerified=a,this.certificatePath=c;}},Yi=class s extends O{constructor(e={}){super(),this.version=d(e,yl,s.defaultValues(yl)),this.digestAlgorithms=d(e,O0,s.defaultValues(O0)),this.encapContentInfo=d(e,R0,s.defaultValues(R0)),wl in e&&(this.certificates=d(e,wl,s.defaultValues(wl))),bl in e&&(this.crls=d(e,bl,s.defaultValues(bl))),jh in e&&(this.ocsps=d(e,jh,s.defaultValues(jh))),this.signerInfos=d(e,V0,s.defaultValues(V0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case yl:return 0;case O0:return [];case R0:return new Sn;case wl:return [];case bl:return [];case jh:return [];case V0:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case yl:return t===s.defaultValues(yl);case R0:return Sn.compareWithDefault("eContentType",t.eContentType)&&Sn.compareWithDefault("eContent",t.eContent);case O0:case wl:case bl:case jh:case V0:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return t.optional===void 0&&(t.optional=!1),new S({name:t.blockName||ic,optional:t.optional,value:[new T({name:t.version||RA}),new at({value:[new he({name:t.digestAlgorithms||nw,value:k.schema()})]}),Sn.schema(t.encapContentInfo||{names:{blockName:VA}}),new A({name:t.certificates||iw,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:xn.schema().valueBlock.value}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Yo.schema(t.crls||{names:{crls:aw}}).valueBlock.value}),new at({value:[new he({name:t.signerInfos||ow,value:Fl.schema()})]})]})}fromSchema(e){V(e,aH);let t=R(e,e,s.schema());if(B.assertSchema(t,this.className),this.version=t.result[RA].valueBlock.valueDec,nw in t.result&&(this.digestAlgorithms=Array.from(t.result[nw],r=>new k({schema:r}))),this.encapContentInfo=new Sn({schema:t.result[VA]}),iw in t.result){let r=new xn({schema:new at({value:t.result[iw].valueBlock.value})});this.certificates=r.certificates.slice(0);}aw in t.result&&(this.crls=Array.from(t.result[aw],r=>r.idBlock.tagClass===1?new sc({schema:r}):(r.idBlock.tagClass=1,r.idBlock.tagNumber=16,new zo({schema:r})))),ow in t.result&&(this.signerInfos=Array.from(t.result[ow],r=>new Fl({schema:r})));}toSchema(e=!1){let t=[];if(this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof Bl)||this.crls&&this.crls.length&&this.crls.some(r=>r instanceof zo)?this.version=5:this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof xr)?this.version=4:this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof Dl)||this.signerInfos.some(r=>r.version===3)||this.encapContentInfo.eContentType!==s.ID_DATA?this.version=3:this.version=1,t.push(new T({value:this.version})),t.push(new at({value:Array.from(this.digestAlgorithms,r=>r.toSchema())})),t.push(this.encapContentInfo.toSchema()),this.certificates){let n=new xn({certificates:this.certificates}).toSchema();t.push(new A({idBlock:{tagClass:3,tagNumber:0},value:n.valueBlock.value}));}return this.crls&&t.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.crls,r=>{if(r instanceof zo){let n=r.toSchema();return n.idBlock.tagClass=3,n.idBlock.tagNumber=1,n}return r.toSchema(e)})})),t.push(new at({value:Array.from(this.signerInfos,r=>r.toSchema())})),new S({value:t})}toJSON(){let e={version:this.version,digestAlgorithms:Array.from(this.digestAlgorithms,t=>t.toJSON()),encapContentInfo:this.encapContentInfo.toJSON(),signerInfos:Array.from(this.signerInfos,t=>t.toJSON())};return this.certificates&&(e.certificates=Array.from(this.certificates,t=>t.toJSON())),this.crls&&(e.crls=Array.from(this.crls,t=>t.toJSON())),e}async verify({signer:e=-1,data:t=dt,trustedCerts:r=[],checkDate:n=new Date,checkChain:i=!1,passedWhenNotRevValues:a=!1,extendedMode:o=!1,findOrigin:c=null,findIssuer:u=null}={},l=Ie(!0)){let h=null,m=null;try{let y=dt,g=p,w=[],b=this.signerInfos[e];if(!b)throw new Bt({date:n,code:1,message:"Unable to get signer by supplied index"});if(!this.certificates)throw new Bt({date:n,code:2,message:"No certificates attached to this signed data"});if(b.sid instanceof It){for(let E of this.certificates)if(E instanceof Mt&&E.issuer.isEqual(b.sid.issuer)&&E.serialNumber.isEqual(b.sid.serialNumber)){h=E;break}}else {let E=b.sid,I=E.idBlock.isConstructed?E.valueBlock.value[0].valueBlock.valueHex:E.valueBlock.valueHex;for(let D of this.certificates){if(!(D instanceof Mt))continue;let K=await l.digest({name:"sha-1"},D.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView);if(zn(K,I)){h=D;break}}}if(!h)throw new Bt({date:n,code:3,message:"Unable to find signer certificate"});if(this.encapContentInfo.eContentType===hL){if(!this.encapContentInfo.eContent)throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo eContent is empty",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0});let E;try{E=jw.fromBER(this.encapContentInfo.eContent.valueBlock.valueHexView);}catch{throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo wrong ASN.1 schema ",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}if(n=E.genTime,m=E.serialNumber.valueBlock.valueHexView.slice().buffer,t.byteLength===0)throw new Bt({date:n,code:4,message:"Missed detached data input array"});if(!await E.verify({data:t},l))throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo verification is failed",signatureVerified:!1,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}if(i){let E=this.certificates.filter($=>$ instanceof Mt&&!!v4($,h)),I={checkDate:n,certs:E,trustedCerts:r};u&&(I.findIssuer=u),c&&(I.findOrigin=c);let D=new um(I);if(D.certs.push(h),this.crls)for(let $ of this.crls)"thisUpdate"in $?D.crls.push($):$.otherRevInfoFormat===Ly&&D.ocsps.push(new ec({schema:$.otherRevInfo}));this.ocsps&&D.ocsps.push(...this.ocsps);let K=await D.verify({passedWhenNotRevValues:a},l).catch($=>{throw new Bt({date:n,code:5,message:`Validation of signer's certificate failed with error: ${$ instanceof Object?$.resultMessage:$}`,signerCertificate:h,signerCertificateVerified:!1})});if(K.certificatePath&&(w=K.certificatePath),!K.result)throw new Bt({date:n,code:5,message:`Validation of signer's certificate failed: ${K.resultMessage}`,signerCertificate:h,signerCertificateVerified:!1})}let C=l.getAlgorithmByOID(b.digestAlgorithm.algorithmId);if(!("name"in C))throw new Bt({date:n,code:7,message:`Unsupported signature algorithm: ${b.digestAlgorithm.algorithmId}`,signerCertificate:h,signerCertificateVerified:!0});g=C.name;let N=this.encapContentInfo.eContent;if(N)N.idBlock.tagClass===1&&N.idBlock.tagNumber===4?t=N.getValue():t=N.valueBlock.valueBeforeDecodeView.slice().buffer;else if(t.byteLength===0)throw new Bt({date:n,code:8,message:"Missed detached data input array",signerCertificate:h,signerCertificateVerified:!0});if(b.signedAttrs){let E=!1,I=!1;for(let D of b.signedAttrs.attributes)if(D.type==="1.2.840.113549.1.9.3"&&(E=!0),D.type==="1.2.840.113549.1.9.4"&&(I=!0,y=D.values[0].valueBlock.valueHex),E&&I)break;if(E===!1)throw new Bt({date:n,code:9,message:'Attribute "content-type" is a mandatory attribute for "signed attributes"',signerCertificate:h,signerCertificateVerified:!0});if(I===!1)throw new Bt({date:n,code:10,message:'Attribute "message-digest" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:h,signerCertificateVerified:!0})}if(b.signedAttrs){let E=await l.digest(g,new Uint8Array(t));if(!zn(E,y))throw new Bt({date:n,code:15,message:"Error during verification: Message digest doesn't match",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0});t=b.signedAttrs.encodedValue;}let x=b.signatureAlgorithm.algorithmId==="1.2.840.113549.1.1.1"?await l.verifyWithPublicKey(t,b.signature,h.subjectPublicKeyInfo,b.signatureAlgorithm,g):await l.verifyWithPublicKey(t,b.signature,h.subjectPublicKeyInfo,b.signatureAlgorithm);return o?{date:n,code:14,message:p,signatureVerified:x,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0,certificatePath:w}:x}catch(y){throw y instanceof Bt?y:new Bt({date:n,code:15,message:`Error during verification: ${y instanceof Error?y.message:y}`,signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}}async sign(e,t,r="SHA-1",n=dt,i=Ie(!0)){var a;if(!e)throw new Error("Need to provide a private key for signing");let o=this.signerInfos[t];if(!o)throw new RangeError("SignerInfo index is out of range");!(!((a=o.signedAttrs)===null||a===void 0)&&a.attributes.length)&&"hash"in e.algorithm&&"hash"in e.algorithm&&e.algorithm.hash&&(r=e.algorithm.hash.name);let c=i.getOIDByAlgorithm({name:r},!0,"hashAlgorithm");this.digestAlgorithms.filter(m=>m.algorithmId===c).length===0&&this.digestAlgorithms.push(new k({algorithmId:c,algorithmParams:new it})),o.digestAlgorithm=new k({algorithmId:c,algorithmParams:new it});let u=await i.getSignatureParameters(e,r),l=u.parameters;if(o.signatureAlgorithm=u.signatureAlgorithm,o.signedAttrs)if(o.signedAttrs.encodedValue.byteLength!==0)n=o.signedAttrs.encodedValue;else {n=o.signedAttrs.toSchema().toBER();let m=ae.toUint8Array(n);m[0]=49;}else {let m=this.encapContentInfo.eContent;if(m)m.idBlock.tagClass===1&&m.idBlock.tagNumber===4?n=m.getValue():n=m.valueBlock.valueBeforeDecodeView.slice().buffer;else if(n.byteLength===0)throw new Error("Missed detached data input array")}let h=await i.signWithPrivateKey(n,e,l);o.signature=new L({valueHex:h});}};Yi.CLASS_NAME="SignedData";Yi.ID_DATA=KA;var $o="version",qo="authSafe",mn="macData",Mh="parsedValue",oH=[$o,qo,mn],DA=class s extends O{constructor(e={}){super(),this.version=d(e,$o,s.defaultValues($o)),this.authSafe=d(e,qo,s.defaultValues(qo)),mn in e&&(this.macData=d(e,mn,s.defaultValues(mn))),Mh in e&&(this.parsedValue=d(e,Mh,s.defaultValues(Mh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $o:return 3;case qo:return new ot;case mn:return new Er;case Mh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $o:return t===s.defaultValues(e);case qo:return ot.compareWithDefault("contentType",t.contentType)&&ot.compareWithDefault("content",t.content);case mn:return Er.compareWithDefault("mac",t.mac)&&Er.compareWithDefault("macSalt",t.macSalt)&&Er.compareWithDefault("iterations",t.iterations);case Mh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.version||$o}),ot.schema(t.authSafe||{names:{blockName:qo}}),Er.schema(t.macData||{names:{blockName:mn,optional:!0}})]})}fromSchema(e){V(e,oH);let t=R(e,e,s.schema({names:{version:$o,authSafe:{names:{blockName:qo}},macData:{names:{blockName:mn}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.authSafe=new ot({schema:t.result.authSafe}),mn in t.result&&(this.macData=new Er({schema:t.result.macData}));}toSchema(){let e=[new T({value:this.version}),this.authSafe.toSchema()];return this.macData&&e.push(this.macData.toSchema()),new S({value:e})}toJSON(){let e={version:this.version,authSafe:this.authSafe.toJSON()};return this.macData&&(e.macData=this.macData.toJSON()),e}async makeInternalValues(e={},t=Ie(!0)){if(Ge.assert(e,"parameters","object"),!this.parsedValue)throw new Error('Please call "parseValues" function first in order to make "parsedValue" data');switch(He.assertEmpty(this.parsedValue.integrityMode,"integrityMode","parsedValue"),He.assertEmpty(this.parsedValue.authenticatedSafe,"authenticatedSafe","parsedValue"),this.parsedValue.integrityMode){case 0:{if(!("iterations"in e))throw new He("iterations");He.assertEmpty(e.pbkdf2HashAlgorithm,"pbkdf2HashAlgorithm"),He.assertEmpty(e.hmacHashAlgorithm,"hmacHashAlgorithm"),He.assertEmpty(e.password,"password");let r=new ArrayBuffer(64),n=new Uint8Array(r);t.getRandomValues(n);let i=this.parsedValue.authenticatedSafe.toSchema().toBER(!1);this.authSafe=new ot({contentType:ot.DATA,content:new L({valueHex:i})});let a=await t.stampDataWithPassword({password:e.password,hashAlgorithm:e.hmacHashAlgorithm,salt:r,iterationCount:e.iterations,contentToStamp:i});this.macData=new Er({mac:new bn({digestAlgorithm:new k({algorithmId:t.getOIDByAlgorithm({name:e.hmacHashAlgorithm},!0,"hmacHashAlgorithm")}),digest:new L({valueHex:a})}),macSalt:new L({valueHex:r}),iterations:e.iterations});}break;case 1:{if(!("signingCertificate"in e))throw new He("signingCertificate");He.assertEmpty(e.privateKey,"privateKey"),He.assertEmpty(e.hashAlgorithm,"hashAlgorithm");let r=this.parsedValue.authenticatedSafe.toSchema().toBER(!1),n=new Yi({version:1,encapContentInfo:new Sn({eContentType:"1.2.840.113549.1.7.1",eContent:new L({valueHex:r})}),certificates:[e.signingCertificate]}),i=await t.digest({name:e.hashAlgorithm},new Uint8Array(r)),a=[];a.push(new ut({type:"1.2.840.113549.1.9.3",values:[new W({value:"1.2.840.113549.1.7.1"})]})),a.push(new ut({type:"1.2.840.113549.1.9.5",values:[new Xr({valueDate:new Date})]})),a.push(new ut({type:"1.2.840.113549.1.9.4",values:[new L({valueHex:i})]})),n.signerInfos.push(new Fl({version:1,sid:new It({issuer:e.signingCertificate.issuer,serialNumber:e.signingCertificate.serialNumber}),signedAttrs:new Zt({type:0,attributes:a})})),await n.sign(e.privateKey,0,e.hashAlgorithm,void 0,t),this.authSafe=new ot({contentType:"1.2.840.113549.1.7.2",content:n.toSchema(!0)});}break;default:throw new Error(`Parameter "integrityMode" has unknown value: ${this.parsedValue.integrityMode}`)}}async parseInternalValues(e,t=Ie(!0)){switch(Ge.assert(e,"parameters","object"),e.checkIntegrity===void 0&&(e.checkIntegrity=!0),this.parsedValue={},this.authSafe.contentType){case ot.DATA:{He.assertEmpty(e.password,"password"),this.parsedValue.integrityMode=0,Ge.assert(this.authSafe.content,"authSafe.content",L);let r=this.authSafe.content.getValue();if(this.parsedValue.authenticatedSafe=om.fromBER(r),e.checkIntegrity){if(!this.macData)throw new Error('Absent "macData" value, can not check PKCS#12 data integrity');let n=t.getAlgorithmByOID(this.macData.mac.digestAlgorithm.algorithmId,!0,"digestAlgorithm");if(!await t.verifyDataStampedWithPassword({password:e.password,hashAlgorithm:n.name,salt:ae.toArrayBuffer(this.macData.macSalt.valueBlock.valueHexView),iterationCount:this.macData.iterations||1,contentToVerify:r,signatureToVerify:ae.toArrayBuffer(this.macData.mac.digest.valueBlock.valueHexView)}))throw new Error("Integrity for the PKCS#12 data is broken!")}}break;case ot.SIGNED_DATA:{this.parsedValue.integrityMode=1;let r=new Yi({schema:this.authSafe.content}),n=r.encapContentInfo.eContent;He.assert(n,"eContent","cmsSigned.encapContentInfo"),Ge.assert(n,"eContent",L);let i=n.getValue();if(this.parsedValue.authenticatedSafe=om.fromBER(i),!await r.verify({signer:0,checkChain:!1},t))throw new Error("Integrity for the PKCS#12 data is broken!")}break;default:throw new Error(`Incorrect value for "this.authSafe.contentType": ${this.authSafe.contentType}`)}}};DA.CLASS_NAME="PFX";var Sl="status",$i="statusStrings",qi="failInfo",cH=[Sl,$i,qi],s4;(function(s){s[s.granted=0]="granted",s[s.grantedWithMods=1]="grantedWithMods",s[s.rejection=2]="rejection",s[s.waiting=3]="waiting",s[s.revocationWarning=4]="revocationWarning",s[s.revocationNotification=5]="revocationNotification";})(s4||(s4={}));var Jo=class s extends O{constructor(e={}){super(),this.status=d(e,Sl,s.defaultValues(Sl)),$i in e&&(this.statusStrings=d(e,$i,s.defaultValues($i))),qi in e&&(this.failInfo=d(e,qi,s.defaultValues(qi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Sl:return 2;case $i:return [];case qi:return new Te;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Sl:return t===s.defaultValues(e);case $i:return t.length===0;case qi:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||p,value:[new T({name:t.status||p}),new S({optional:!0,value:[new he({name:t.statusStrings||p,value:new ps})]}),new Te({name:t.failInfo||p,optional:!0})]})}fromSchema(e){V(e,cH);let t=R(e,e,s.schema({names:{status:Sl,statusStrings:$i,failInfo:qi}}));B.assertSchema(t,this.className);let r=t.result.status;if(r.valueBlock.isHexOnly===!0||r.valueBlock.valueDec<0||r.valueBlock.valueDec>5)throw new Error('PKIStatusInfo "status" has invalid value');this.status=r.valueBlock.valueDec,$i in t.result&&(this.statusStrings=t.result.statusStrings),qi in t.result&&(this.failInfo=t.result.failInfo);}toSchema(){let e=[];return e.push(new T({value:this.status})),this.statusStrings&&e.push(new S({optional:!0,value:this.statusStrings})),this.failInfo&&e.push(this.failInfo),new S({value:e})}toJSON(){let e={status:this.status};return this.statusStrings&&(e.statusStrings=Array.from(this.statusStrings,t=>t.toJSON())),this.failInfo&&(e.failInfo=this.failInfo.toJSON()),e}};Jo.CLASS_NAME="PKIStatusInfo";var D0="version",L0="messageImprint",vl="reqPolicy",El="nonce",pn="certReq",xl="extensions",ac="TimeStampReq",LA=`${ac}.${D0}`,UA=`${ac}.${L0}`,cw=`${ac}.${vl}`,uw=`${ac}.${El}`,lw=`${ac}.${pn}`,fw=`${ac}.${xl}`,uH=[LA,UA,cw,uw,lw,fw],HA=class s extends O{constructor(e={}){super(),this.version=d(e,D0,s.defaultValues(D0)),this.messageImprint=d(e,L0,s.defaultValues(L0)),vl in e&&(this.reqPolicy=d(e,vl,s.defaultValues(vl))),El in e&&(this.nonce=d(e,El,s.defaultValues(El))),pn in e&&(this.certReq=d(e,pn,s.defaultValues(pn))),xl in e&&(this.extensions=d(e,xl,s.defaultValues(xl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case D0:return 0;case L0:return new Ns;case vl:return p;case El:return new T;case pn:return !1;case xl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case D0:case vl:case pn:return t===s.defaultValues(e);case L0:return Ns.compareWithDefault("hashAlgorithm",t.hashAlgorithm)&&Ns.compareWithDefault("hashedMessage",t.hashedMessage);case El:return t.isEqual(s.defaultValues(e));case xl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||ac,value:[new T({name:t.version||LA}),Ns.schema(t.messageImprint||{names:{blockName:UA}}),new W({name:t.reqPolicy||cw,optional:!0}),new T({name:t.nonce||uw,optional:!0}),new Cs({name:t.certReq||lw,optional:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.extensions||fw,value:ys.schema()})]})]})}fromSchema(e){V(e,uH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[LA].valueBlock.valueDec,this.messageImprint=new Ns({schema:t.result[UA]}),cw in t.result&&(this.reqPolicy=t.result[cw].valueBlock.toString()),uw in t.result&&(this.nonce=t.result[uw]),lw in t.result&&(this.certReq=t.result[lw].valueBlock.value),fw in t.result&&(this.extensions=Array.from(t.result[fw],r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.messageImprint.toSchema()),this.reqPolicy&&e.push(new W({value:this.reqPolicy})),this.nonce&&e.push(this.nonce),pn in this&&s.compareWithDefault(pn,this.certReq)===!1&&e.push(new Cs({value:this.certReq})),this.extensions&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.extensions,t=>t.toSchema())})),new S({value:e})}toJSON(){let e={version:this.version,messageImprint:this.messageImprint.toJSON()};return this.reqPolicy!==void 0&&(e.reqPolicy=this.reqPolicy),this.nonce!==void 0&&(e.nonce=this.nonce.toJSON()),this.certReq!==void 0&&s.compareWithDefault(pn,this.certReq)===!1&&(e.certReq=this.certReq),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}};HA.CLASS_NAME="TimeStampReq";var Al="status",Il="timeStampToken",r6="TimeStampResp",_A=`${r6}.${Al}`,hw=`${r6}.${Il}`,lH=[_A,hw],jA=class s extends O{constructor(e={}){super(),this.status=d(e,Al,s.defaultValues(Al)),Il in e&&(this.timeStampToken=d(e,Il,s.defaultValues(Il))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Al:return new Jo;case Il:return new ot;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Al:return Jo.compareWithDefault(Al,t.status)&&!("statusStrings"in t)&&!("failInfo"in t);case Il:return t.contentType===p&&t.content instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new S({name:t.blockName||r6,value:[Jo.schema(t.status||{names:{blockName:_A}}),ot.schema(t.timeStampToken||{names:{blockName:hw,optional:!0}})]})}fromSchema(e){V(e,lH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.status=new Jo({schema:t.result[_A]}),hw in t.result&&(this.timeStampToken=new ot({schema:t.result[hw]}));}toSchema(){let e=[];return e.push(this.status.toSchema()),this.timeStampToken&&e.push(this.timeStampToken.toSchema()),new S({value:e})}toJSON(){let e={status:this.status.toJSON()};return this.timeStampToken&&(e.timeStampToken=this.timeStampToken.toJSON()),e}async sign(e,t,r=Ie(!0)){return this.assertContentType(),new Yi({schema:this.timeStampToken.content}).sign(e,0,t,void 0,r)}async verify(e={signer:0,trustedCerts:[],data:dt},t=Ie(!0)){return this.assertContentType(),new Yi({schema:this.timeStampToken.content}).verify(e,t)}assertContentType(){if(!this.timeStampToken)throw new Error("timeStampToken is absent in TSP response");if(this.timeStampToken.contentType!==d4)throw new Error(`Wrong format of timeStampToken: ${this.timeStampToken.contentType}`)}};jA.CLASS_NAME="TimeStampResp";function fH(){if(typeof globalThis<"u"&&"crypto"in globalThis){let s="webcrypto";"webkitSubtle"in globalThis.crypto&&(s="safari"),jT(s,new Vl({name:s,crypto:globalThis.crypto}));}else if(typeof crypto<"u"&&"webcrypto"in crypto){let s="NodeJS ^15",e=crypto.webcrypto;jT(s,new Vl({name:s,crypto:e}));}}fH();var a6=(s,e)=>e.some(t=>s instanceof t),x4,A4;function hH(){return x4||(x4=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function dH(){return A4||(A4=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var o6=new WeakMap,n6=new WeakMap,Mw=new WeakMap;function mH(s){let e=new Promise((t,r)=>{let n=()=>{s.removeEventListener("success",i),s.removeEventListener("error",a);},i=()=>{t(oc(s.result)),n();},a=()=>{r(s.error),n();};s.addEventListener("success",i),s.addEventListener("error",a);});return Mw.set(e,s),e}function pH(s){if(o6.has(s))return;let e=new Promise((t,r)=>{let n=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",a),s.removeEventListener("abort",a);},i=()=>{t(),n();},a=()=>{r(s.error||new DOMException("AbortError","AbortError")),n();};s.addEventListener("complete",i),s.addEventListener("error",a),s.addEventListener("abort",a);});o6.set(s,e);}var c6={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return o6.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return oc(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function T4(s){c6=s(c6);}function gH(s){return dH().includes(s)?function(...e){return s.apply(u6(this),e),oc(this.request)}:function(...e){return oc(s.apply(u6(this),e))}}function yH(s){return typeof s=="function"?gH(s):(s instanceof IDBTransaction&&pH(s),a6(s,hH())?new Proxy(s,c6):s)}function oc(s){if(s instanceof IDBRequest)return mH(s);if(n6.has(s))return n6.get(s);let e=yH(s);return e!==s&&(n6.set(s,e),Mw.set(e,s)),e}var u6=s=>Mw.get(s);function k4(s,e,{blocked:t,upgrade:r,blocking:n,terminated:i}={}){let a=indexedDB.open(s,e),o=oc(a);return r&&a.addEventListener("upgradeneeded",c=>{r(oc(a.result),c.oldVersion,c.newVersion,oc(a.transaction),c);}),t&&a.addEventListener("blocked",c=>t(c.oldVersion,c.newVersion,c)),o.then(c=>{i&&c.addEventListener("close",()=>i()),n&&c.addEventListener("versionchange",u=>n(u.oldVersion,u.newVersion,u));}).catch(()=>{}),o}var wH=["get","getKey","getAll","getAllKeys","count"],bH=["put","add","delete","clear"],i6=new Map;function I4(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(i6.get(e))return i6.get(e);let t=e.replace(/FromIndex$/,""),r=e!==t,n=bH.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(n||wH.includes(t)))return;let i=async function(a,...o){let c=this.transaction(a,n?"readwrite":"readonly"),u=c.store;return r&&(u=u.index(o.shift())),(await Promise.all([u[t](...o),n&&c.done]))[0]};return i6.set(e,i),i}T4(s=>({...s,get:(e,t,r)=>I4(e,t)||s.get(e,t,r),has:(e,t)=>!!I4(e,t)||s.has(e,t)}));var SH=["continue","continuePrimaryKey","advance"],C4={},l6=new WeakMap,P4=new WeakMap,vH={get(s,e){if(!SH.includes(e))return s[e];let t=C4[e];return t||(t=C4[e]=function(...r){l6.set(this,P4.get(this)[e](...r));}),t}};async function*EH(...s){let e=this;if(e instanceof IDBCursor||(e=await e.openCursor(...s)),!e)return;e=e;let t=new Proxy(e,vH);for(P4.set(t,e),Mw.set(t,u6(e));e;)yield t,e=await(l6.get(t)||e.continue()),l6.delete(t);}function N4(s,e){return e===Symbol.asyncIterator&&a6(s,[IDBIndex,IDBObjectStore,IDBCursor])||e==="iterate"&&a6(s,[IDBIndex,IDBObjectStore])}T4(s=>({...s,get(e,t,r){return N4(e,t)?EH:s.get(e,t,r)},has(e,t){return N4(e,t)||s.has(e,t)}}));function B4(s,e){if(s===e)return !0;if(s===null||e===null||typeof s!="object"||typeof e!="object")return !1;let t=Object.keys(s),r=Object.keys(e);if(t.length!==r.length)return !1;for(let n of t)if(!r.includes(n)||!B4(s[n],e[n]))return !1;return !0}var Ct=class{dbName;storeName;key;migrations;_db=null;listeners=[];broadcastChannel;constructor(e,t,r,n=[]){this.dbName=e,this.storeName=t,this.key=r,this.migrations=n,typeof BroadcastChannel<"u"&&(this.broadcastChannel=new BroadcastChannel(this.dbName+"-observer"),this.broadcastChannel.onmessage=i=>{i.data&&i.data.keyValue!==void 0&&i.data.updateType&&this.listeners.forEach(a=>a(i.data.keyValue,i.data.updateType,i.data.oldItem,i.data.newItem));});}async openDB(){if(this._db)return this._db;let e=this.migrations.length+1;return this._db=await k4(this.dbName,e,{upgrade:(t,r,n,i,a)=>{if(n!==null)for(let o=r+1;o<=n;o++){let c=o-2;if(c>=0&&c<this.migrations.length){let u=this.migrations[c];if(u)u(t,i,a);else throw new Error(`Migration for schema version ${o} (using migrations[${c}]) not found but expected.`)}}},blocked:()=>{console.error(`IndexedDB ${this.dbName} upgrade blocked.`);},blocking:()=>{console.warn(`IndexedDB ${this.dbName} upgrade is being blocked by other connections. Closing this connection.`),this._db&&(this._db.close(),this._db=null);},terminated:()=>{console.warn(`IndexedDB ${this.dbName} connection terminated.`),this._db=null;}}),await this.handleOpenDB(),this._db}async handleOpenDB(){}async getStore(e){return (await this.openDB()).transaction(this.storeName,e).objectStore(this.storeName)}async get(e){return (await this.getStore("readonly")).get(e)}async list(){return (await this.getStore("readonly")).getAll()}async set(e){let t=await this.openDB(),r=e[this.key],n=t.transaction(this.storeName,"readwrite"),i=n.objectStore(this.storeName),a=await i.get(r);await i.put(e,r),await n.done;let o=null;return a?B4(a,e)||(o="updated"):o="added",o&&this.notifyUpdate(r,o,a,e),r}async del(e){let t=await this.get(e),n=(await this.openDB()).transaction(this.storeName,"readwrite");await n.objectStore(this.storeName).delete(e),await n.done,t&&this.notifyUpdate(e,"removed",t,void 0);}notifyUpdate(e,t,r,n){this.listeners.forEach(i=>i(e,t,r,n)),this.broadcastChannel&&this.broadcastChannel.postMessage({keyValue:e,updateType:t,oldItem:r,newItem:n});}addListener(e){return this.listeners.push(e),()=>this.removeListener(e)}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e);}async close(){this._db&&(this._db.close(),this._db=null),this.broadcastChannel&&(this.broadcastChannel.close(),this.broadcastChannel=void 0);}};var f6="auth-commitments",fm=class extends Ct{constructor(e="sequence-auth-commitments"){super(e,f6,"id",[(t,r,n)=>{t.objectStoreNames.contains(f6)||t.createObjectStore(f6);}]);}};var h6="auth-keys",hm=class extends Ct{expirationTimers=new Map;constructor(e="sequence-auth-keys"){super(e,h6,"address",[(t,r,n)=>{t.objectStoreNames.contains(h6)||t.createObjectStore(h6).createIndex("identitySigner","identitySigner",{unique:!0});}]);}async handleOpenDB(){let e=await this.list();for(let t of e)await this.scheduleExpiration(t);}async set(e){let t=await super.set({...e,address:e.address.toLowerCase(),identitySigner:e.identitySigner.toLowerCase()});return this.scheduleExpiration(e),t}async del(e){let t=await super.del(e.toLowerCase());return this.clearExpiration(e),t}async getBySigner(e,t=1){let r=e.toLowerCase(),n=await this.getStore("readonly"),i=n.index("identitySigner");try{let a=await i.get(r);if(a!==void 0)return a;if(t<2)return await new Promise(o=>setTimeout(o,50)),this.getBySigner(e,t+1);try{let o=await n.getAll();return o&&o.length>0?o.find(u=>u.identitySigner.toLowerCase()===r):void 0}catch(o){throw console.error(`[AuthKeys.getBySigner] Fallback: Error during getAll() for signer ${r}:`,o),o}}catch(a){throw console.error(`[AuthKeys.getBySigner attempt #${t}] Index query error for signer ${r}:`,a),a}}async delBySigner(e){let t=await this.getBySigner(e.toLowerCase());t&&await this.del(t.address.toLowerCase());}async scheduleExpiration(e){this.clearExpiration(e.address.toLowerCase());let t=Date.now(),r=e.expiresAt.getTime()-t;if(r<=0){await this.del(e.address.toLowerCase());return}let n=window.setTimeout(()=>{console.log("removing expired auth key",e),this.del(e.address.toLowerCase());},r);this.expirationTimers.set(e.address.toLowerCase(),n);}clearExpiration(e){let t=this.expirationTimers.get(e.toLowerCase());t&&(window.clearTimeout(t),this.expirationTimers.delete(e.toLowerCase()));}};var d6="messages",dm=class extends Ct{constructor(e="sequence-messages"){super(e,d6,"id",[(t,r,n)=>{t.objectStoreNames.contains(d6)||t.createObjectStore(d6);}]);}};var m6="envelopes",mm=class extends Ct{constructor(e="sequence-signature-requests"){super(e,m6,"id",[(t,r,n)=>{t.objectStoreNames.contains(m6)||t.createObjectStore(m6);}]);}};var p6="transactions",pm=class extends Ct{constructor(e="sequence-transactions"){super(e,p6,"id",[(t,r,n)=>{t.objectStoreNames.contains(p6)||t.createObjectStore(p6);}]);}};var g6="wallets",gm=class extends Ct{constructor(e="sequence-manager"){super(e,g6,"address",[(t,r,n)=>{t.objectStoreNames.contains(g6)||t.createObjectStore(g6);}]);}};var y6="queued-recovery-payloads",ym=class extends Ct{constructor(e="sequence-recovery"){super(e,y6,"id",[(t,r,n)=>{t.objectStoreNames.contains(y6)||t.createObjectStore(y6);}]);}};var w6="passkey-credentials",wm=class extends Ct{constructor(e="sequence-passkey-credentials"){super(e,w6,"credentialId",[(t,r,n)=>{t.objectStoreNames.contains(w6)||t.createObjectStore(w6);}]);}async getByCredentialId(e){return this.get(e)}async saveCredential(e,t,r){let n=new Date().toISOString(),i={credentialId:e,publicKey:t,walletAddress:r,createdAt:n,lastLoginAt:n};await this.set(i);}async updateCredential(e,{lastLoginAt:t,walletAddress:r}){let n=await this.getByCredentialId(e);if(n){let i={...n,lastLoginAt:t,walletAddress:r};await this.set(i);}}};({verbose:!1,extensions:Oe.Rc5,context:Aa.Rc5,context4337:Aa.Rc5_4337,guest:nt.DefaultGuestAddress,encryptedPksDb:new zs.Pk.Encrypted.EncryptedPksDb,managerDb:new gm,signaturesDb:new mm,transactionsDb:new pm,messagesDb:new dm,authCommitmentsDb:new fm,recoveryDb:new ym,authKeysDb:new hm,passkeyCredentialsDb:new wm,dbPruningInterval:1e3*60*60*24,stateProvider:new Fc.Sequence.Provider,networks:th.ALL,relayers:()=>typeof window<"u"?[fh.LocalRelayer.createFromWindow(window)].filter(s=>s!==void 0):[],bundlers:[],nonWitnessableSigners:[],guardUrl:"https://guard.sequence.app",guardAddresses:{wallet:"0x26f3D30F41FA897309Ae804A2AFf15CEb1dA5742",sessions:"0xF6Bc87F5F2edAdb66737E32D37b46423901dfEF1"},defaultGuardTopology:{type:"nested",weight:1n,threshold:1n,tree:[{type:"signer",address:nt.PlaceholderAddress,weight:1n},{type:"signer",address:"0x007a47e6BF40C1e0ed5c01aE42fDC75879140bc4",weight:1n}]},defaultSessionsTopology:{type:"sapient-signer",weight:1n},defaultRecoverySettings:{requiredDeltaTime:2592000n,minTimestamp:0n},multiInjectedProviderDiscovery:!0,identity:{url:"https://identity.sequence.app",fetch:typeof window<"u"?window.fetch:void 0,verifyAttestation:!0,email:{enabled:!1},google:{enabled:!1,clientId:""},apple:{enabled:!1,clientId:""}}});var bm=class{#e;#s;#r=null;#t=null;constructor(e,t){this.#e=e,this.#s=t;}async#a(){let e=await this.#e.getUser();if(!e)throw new Qe("User not authenticated","NOT_LOGGED_IN_ERROR");return e}async#i(){let e=this.#r;e||(e=await this.#n());let t=await this.#a();return t.profile.sub!==e.userIdentifier&&(e=await this.#n(t)),e}async#n(e){return this.#t?this.#t:(this.#t=(async()=>{try{this.#r=null,await this.#e.forceUserRefresh();let t=e||await this.#a();if(!t.idToken)throw new Qe("User idToken not available","NOT_LOGGED_IN_ERROR");let{idToken:r}=t,n=decodeJwtPayload(r),i=n.iss,a=n.aud,o=await window.crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"]),c=await window.crypto.subtle.exportKey("raw",o.publicKey),u={address:v.fromBytes(new Uint8Array(c)),privateKey:o.privateKey,identitySigner:"",expiresAt:new Date(Date.now()+36e5)},l=new sh(this.#s.identityInstrumentEndpoint,"@14:test"),h=new _g(i,a,r);await l.commitVerifier(Na.toIdentityAuthKey(u),h);let y=(await l.completeAuth(Na.toIdentityAuthKey(u),h)).signer.address;return u.identitySigner=y,this.#r={userIdentifier:t.profile.sub,signerAddress:y,authKey:u,identityInstrument:l},this.#r}catch(t){let r=`Identity Instrument: Failed to create signer: ${t.message}`;throw new Qe(r,"WALLET_CONNECTION_ERROR")}finally{this.#t=null;}})(),this.#t)}async getAddress(){return (await this.#i()).signerAddress}async signPayload(e,t,r){let n=await this.#i();return new Na.IdentitySigner(n.identityInstrument,n.authKey).sign(e,t,r)}async signMessage(e){let t=await this.#i(),r=new Na.IdentitySigner(t.identityInstrument,t.authKey),n=typeof e=="string"?new TextEncoder().encode(e):e,i=hashMessage({raw:n}),a=await r.signDigest(v.toBytes(i)),o=toHex(a.r,{size:32}),c=toHex(a.s,{size:32}),u=toHex(a.yParity+27,{size:1});return concat([o,c,u])}};var Sm=class{#e;#s=null;#r=null;constructor(e){this.#e=e;}async#t(){let e=await this.#e.getUser();if(!e)throw new Qe("User not authenticated","NOT_LOGGED_IN_ERROR");return e}async#a(){let e=this.#s;e||(e=await this.#i());let t=await this.#t();return t.profile.sub!==e.userIdentifier&&(e=await this.#i(t)),e}async#i(e){return this.#r?this.#r:(this.#r=(async()=>{try{this.#s=null;let t=e||await this.#t(),r=keccak256(toBytes(`${t.profile.sub}-sequence`)),n=new zs.Pk.Pk(r),i=n.address;return this.#s={userIdentifier:t.profile.sub,signerAddress:i,signer:n,privateKey:r},this.#s}catch(t){let r=`Failed to create private key wallet: ${t.message}`;throw new Qe(r,"WALLET_CONNECTION_ERROR")}finally{this.#r=null;}})(),this.#r)}async getAddress(){return (await this.#a()).signerAddress}async signPayload(e,t,r){return (await this.#a()).signer.sign(e,t,r)}async signMessage(e){let t=await this.#a(),r=privateKeyToAccount(t.privateKey),n=typeof e=="string"?e:{raw:e};return await r.signMessage({message:n})}};var _H="https://auth.dev.immutable.com";function U4(s,e,t={}){if(e.authenticationDomain===_H)return new Sm(s);if(!t.identityInstrumentEndpoint)throw new Error("identityInstrumentEndpoint is required for non-dev environments");return new bm(s,{identityInstrumentEndpoint:t.identityInstrumentEndpoint})}function GH(s){return s in Cn}function WH(s){if(s.magicPublishableApiKey&&s.magicProviderId)return {magicPublishableApiKey:s.magicPublishableApiKey,magicProviderId:s.magicProviderId};let{chainId:e}=s;if(GH(e))return Cn[e];throw new Error(`No Magic configuration available for chain ${s.chainId}. Please provide magicPublishableApiKey and magicProviderId in ChainConfig.`)}var JH="PtQRK4iRJ8GkXjiz6xfImMAYhPhW0cYk",zH="mjtCL8mt06BtbxSkp2vbrYStKWnXVZfo",YH="openid profile email offline_access transact",ZH="platform_api",XH="https://auth.immutable.com/im-logged-in",QH="https://auth.immutable.com",e_=/(sandbox|testnet)/i,t_=[13371,13473,15003];function s_(s){return t_.includes(s.chainId)}function r_(s){if(s.chainId===13473)return !0;let e=s.apiUrl||s.passportDomain||"";return e_.test(e)}function n_(s){if(s.passportDomain)return s.passportDomain;if(s.apiUrl)try{let e=new URL(s.apiUrl),t=e.hostname.replace("api.","passport.");return `${e.protocol}//${t}`}catch{return s.apiUrl.replace("api.","passport.")}return "https://passport.immutable.com"}function i_(){return QH}function a_(){return XH}function o_(s){return r_(s)?zH:JH}function c_(s,e){let t=n_(s),r=i_(),n=a_();return new Auth({clientId:o_(s),redirectUri:n,popupRedirectUri:n,logoutRedirectUri:n,scope:YH,audience:ZH,authenticationDomain:r,passportDomain:t,popupOverlayOptions:e.popupOverlayOptions,crossSdkBridgeEnabled:e.crossSdkBridgeEnabled})}async function u_(s={}){let e=s.chains&&s.chains.length>0?s.chains:Vm,t=s.initialChainId||e[0].chainId,r=e.find(g=>g.chainId===t);if(!r)throw new Error(`Initial chain ${t} not found in chains configuration`);let n=createConfig({basePath:r.apiUrl}),i=new MultiRollupApiClients({indexer:n,orderBook:n,passport:n}),a=s.auth??c_(r,s);!s.auth&&typeof window<"u"&&window.addEventListener("message",async g=>{if(g.data.code&&g.data.state){let w=window.location.search,b=new URLSearchParams(w);b.set("code",g.data.code),b.set("state",g.data.state),window.history.replaceState(null,"",`?${b.toString()}`),await a.loginCallback(),b.delete("code"),b.delete("state"),window.history.replaceState(null,"",`?${b.toString()}`);}});let o=a.getConfig(),c=await a.getUser(),u=new cf({passportDomain:r.passportDomain||r.apiUrl.replace("api.","passport."),zkEvmRpcUrl:r.rpcUrl,relayerUrl:r.relayerUrl,indexerMrBasePath:r.apiUrl,jsonRpcReferrer:s.jsonRpcReferrer,forceScwDeployBeforeMessageSignature:s.forceScwDeployBeforeMessageSignature,crossSdkBridgeEnabled:s.crossSdkBridgeEnabled,feeTokenSymbol:s.feeTokenSymbol}),l=s.passportEventEmitter||new TypedEventEmitter,h=new mr$1.GuardianApi(n),m=new dc({config:u,auth:a,guardianApi:h,authConfig:o}),y;if(s_(r)){let g=WH(r),w=r.magicTeeBasePath||"https://tee.express.magiclabs.com",b=new MagicTeeApiClients({basePath:w,timeout:1e4,magicPublishableApiKey:g.magicPublishableApiKey,magicProviderId:g.magicProviderId}),C=new mc(a,b),N=null;r.chainId===13371?N="https://api.immutable.com":r.chainId===13473?N="https://api.sandbox.immutable.com":r.apiUrl&&(N=r.apiUrl),y=new af({auth:a,config:u,multiRollupApiClients:i,passportEventEmitter:l,guardianClient:m,ethSigner:C,user:c,sessionActivityApiUrl:N});}else {let g=U4(a,o,{identityInstrumentEndpoint:r.sequenceIdentityInstrumentEndpoint});y=new of({auth:a,chainConfig:r,multiRollupApiClients:i,guardianClient:m,ethSigner:g,passportEventEmitter:l});}return s.announceProvider!==!1&&hb({info:fb,provider:y}),y}function d_(s){return typeof s=="object"&&s!==null&&"code"in s&&"message"in s}async function m_(s,e){let t=await s.getUser();if(!t?.profile.sub)return [];let r={Authorization:`Bearer ${t.accessToken}`},{data:n}=await e.passportProfileApi.getUserInfo({headers:r});return n.linked_addresses}async function p_(s,e,t){let r=trackFlow("wallet","linkExternalWallet");try{let n=await s.getUser();if(!n)throw new Qe("User is not logged in","NOT_LOGGED_IN_ERROR");if(!isUserZkEvm(n))throw new Qe("User has not been registered on Immutable zkEVM","WALLET_CONNECTION_ERROR");let a={Authorization:`Bearer ${n.accessToken}`},o={type:t.type,wallet_address:t.walletAddress,signature:t.signature,nonce:t.nonce};return {...(await e.passportProfileApi.linkWalletV2({linkWalletV2Request:o},{headers:a})).data}}catch(n){if(n instanceof Error?trackError("wallet","linkExternalWallet",n):r.addEvent("errored"),ea(n)&&n.response){if(n.response.data&&d_(n.response.data)){let{code:a,message:o}=n.response.data;switch(a){case"ALREADY_LINKED":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"MAX_WALLETS_LINKED":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"DUPLICATE_NONCE":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"VALIDATION_ERROR":throw new Qe(o,"WALLET_CONNECTION_ERROR");default:throw new Qe(o,"WALLET_CONNECTION_ERROR")}}else if(n.response.status)throw new Qe(`Link wallet request failed with status code ${n.response.status}`,"WALLET_CONNECTION_ERROR")}let i="Link wallet request failed";throw n instanceof Error&&(i+=`: ${n.message}`),new Qe(i,"WALLET_CONNECTION_ERROR")}finally{r.addEvent("End");}}/*! Bundled license information:
|
|
376
|
+
`)}`:`${t} :`}};XN=A;X.Constructed=XN;A.NAME="CONSTRUCTED";var U1=class extends Yt{fromBER(e,t,r){return t}toBER(e){return Sr}};U1.override="EndOfContentValueBlock";var QN,H1=class extends _t{constructor(e={}){super(e,U1),this.idBlock.tagClass=1,this.idBlock.tagNumber=0;}};QN=H1;X.EndOfContent=QN;H1.NAME=xh;var eT,it=class extends _t{constructor(e={}){super(e,Yt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5;}fromBER(e,t,r){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=r,t+r>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+r}toBER(e,t){let r=new ArrayBuffer(2);if(!e){let n=new Uint8Array(r);n[0]=5,n[1]=0;}return t&&t.write(r),r}onAsciiEncoding(){return `${this.constructor.NAME}`}};eT=it;X.Null=eT;it.NAME="NULL";var _1=class extends en(Yt){get value(){for(let e of this.valueHexView)if(e>0)return !0;return !1}set value(e){this.valueHexView[0]=e?255:0;}constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=ae.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e);}fromBER(e,t,r){let n=ae.toUint8Array(e);return Qr(this,n,t,r)?(this.valueHexView=n.subarray(t,t+r),r>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,w2.call(this),this.blockLength=r,t+r):-1}toBER(){return this.valueHexView.slice()}toJSON(){return {...super.toJSON(),value:this.value}}};_1.NAME="BooleanValueBlock";var tT,Cs=class extends _t{getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e;}constructor(e={}){super(e,_1),this.idBlock.tagClass=1,this.idBlock.tagNumber=1;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.getValue}`}};tT=Cs;X.Boolean=tT;Cs.NAME="BOOLEAN";var j1=class extends en(wr){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e;}fromBER(e,t,r){let n=0;if(this.isConstructed){if(this.isHexOnly=!1,n=wr.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let i=0;i<this.value.length;i++){let a=this.value[i].constructor.NAME;if(a===xh){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(a!==JN)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,n=super.fromBER(e,t,r),this.blockLength=r;return n}toBER(e,t){return this.isConstructed?wr.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return {...super.toJSON(),isConstructed:this.isConstructed}}};j1.NAME="OctetStringValueBlock";var v2,L=class extends _t{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},j1),this.idBlock.tagClass=1,this.idBlock.tagNumber=4;}fromBER(e,t,r){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,r===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+r);try{if(i.byteLength){let a=Nh(i,0,i.byteLength);a.offset!==-1&&a.offset===r&&(this.valueBlock.value=[a.result]);}}catch{}}return super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return A.prototype.onAsciiEncoding.call(this);let e=this.constructor.NAME,t=fe.ToHex(this.valueBlock.valueHexView);return `${e} : ${t}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof v2&&e.push(t.valueBlock.valueHexView);return ae.concat(e)}};v2=L;X.OctetString=v2;L.NAME=JN;var M1=class extends en(wr){constructor({unusedBits:e=0,isConstructed:t=!1,...r}={}){super(r),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength;}fromBER(e,t,r){if(!r)return t;let n=-1;if(this.isConstructed){if(n=wr.prototype.fromBER.call(this,e,t,r),n===-1)return n;for(let o of this.value){let c=o.constructor.NAME;if(c===xh){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==zN)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=o.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits;}return n}let i=ae.toUint8Array(e);if(!Qr(this,i,t,r))return -1;let a=i.subarray(t,t+r);if(this.unusedBits=a[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let o=a.subarray(1);try{if(o.byteLength){let c=Nh(o,0,o.byteLength);c.offset!==-1&&c.offset===r-1&&(this.value=[c.result]);}}catch{}}return this.valueHexView=a.subarray(1),this.blockLength=a.length,t+r}toBER(e,t){if(this.isConstructed)return wr.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let n=new Uint8Array(1);return n[0]=0,n.buffer}let r=new Uint8Array(this.valueHexView.length+1);return r[0]=this.unusedBits,r.set(this.valueHexView,1),r.buffer}toJSON(){return {...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};M1.NAME="BitStringValueBlock";var sT,Te=class extends _t{constructor({idBlock:e={},lenBlock:t={},...r}={}){var n,i;(n=r.isConstructed)!==null&&n!==void 0||(r.isConstructed=!!(!((i=r.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:r.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!r.isIndefiniteForm},...r},M1),this.idBlock.tagClass=1,this.idBlock.tagNumber=3;}fromBER(e,t,r){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,r)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return A.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let a of t)e.push(a.toString(2).padStart(8,"0"));let r=e.join(""),n=this.constructor.NAME,i=r.substring(0,r.length-this.valueBlock.unusedBits);return `${n} : ${i}`}}};sT=Te;X.BitString=sT;Te.NAME=zN;var rT;function fD(s,e){let t=new Uint8Array([0]),r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),a=i.length-1,o=n.slice(0),c=o.length-1,u=0,l=c<a?a:c,h=0;for(let m=l;m>=0;m--,h++){switch(!0){case h<o.length:u=i[a-h]+o[c-h]+t[0];break;default:u=i[a-h]+t[0];}switch(t[0]=u/10,!0){case h>=i.length:i=P1(new Uint8Array([u%10]),i);break;default:i[a-h]=u%10;}}return t[0]>0&&(i=P1(t,i)),i}function WN(s){if(s>=Sh.length)for(let e=Sh.length;e<=s;e++){let t=new Uint8Array([0]),r=Sh[e-1].slice(0);for(let n=r.length-1;n>=0;n--){let i=new Uint8Array([(r[n]<<1)+t[0]]);t[0]=i[0]/10,r[n]=i[0]%10;}t[0]>0&&(r=P1(t,r)),Sh.push(r);}return Sh[s]}function hD(s,e){let t=0,r=new Uint8Array(s),n=new Uint8Array(e),i=r.slice(0),a=i.length-1,o=n.slice(0),c=o.length-1,u,l=0;for(let h=c;h>=0;h--,l++)switch(u=i[a-l]-o[c-l]-t,!0){case u<0:t=1,i[a-l]=u+10;break;default:t=0,i[a-l]=u;}if(t>0)for(let h=a-c+1;h>=0;h--,l++)if(u=i[a-l]-t,u<0)t=1,i[a-l]=u+10;else {t=0,i[a-l]=u;break}return i.slice()}var Ah=class extends en(Yt){setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=w2.call(this)));}constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e);}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(jN(e));}get valueDec(){return this._valueDec}fromDER(e,t,r,n=0){let i=this.fromBER(e,t,r);if(i===-1)return i;let a=this.valueHexView;return a[0]===0&&a[1]&128?this.valueHexView=a.subarray(1):n!==0&&a.length<n&&(n-a.length>1&&(n=a.length+1),this.valueHexView=a.subarray(n-a.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let r=new Uint8Array(this.valueHexView.length+1);r[0]=0,r.set(t,1),this.valueHexView=r;}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,r){let n=super.fromBER(e,t,r);return n===-1||this.setValueHex(),n}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return {...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),r=0,n,i=this.valueHexView,a="",o=!1;for(let c=i.byteLength-1;c>=0;c--){n=i[c];for(let u=0;u<8;u++){if((n&1)===1)switch(r){case e:t=hD(WN(r),t),a="-";break;default:t=fD(t,WN(r));}r++,n>>=1;}}for(let c=0;c<t.length;c++)t[c]&&(o=!0),o&&(a+=GN.charAt(t[c]));return o===!1&&(a+=GN.charAt(0)),a}};rT=Ah;Ah.NAME="IntegerValueBlock";Object.defineProperty(rT.prototype,"valueHex",{set:function(s){this.valueHexView=new Uint8Array(s),this.setValueHex();},get:function(){return this.valueHexView.slice().buffer}});var vh,T=class extends _t{constructor(e={}){super(e,Ah),this.idBlock.tagClass=1,this.idBlock.tagNumber=2;}toBigInt(){return O1(),BigInt(this.valueBlock.toString())}static fromBigInt(e){O1();let t=BigInt(e),r=new Eh,n=t.toString(16).replace(/^-/,""),i=new Uint8Array(fe.FromHex(n));if(t<0){let o=new Uint8Array(i.length+(i[0]&128?1:0));o[0]|=128;let u=BigInt(`0x${fe.ToHex(o)}`)+t,l=ae.toUint8Array(fe.FromHex(u.toString(16)));l[0]|=128,r.write(l);}else i[0]&128&&r.write(new Uint8Array([0])),r.write(i);return new vh({valueHex:r.final()})}convertToDER(){let e=new vh({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new vh({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()}`}};vh=T;X.Integer=vh;T.NAME="INTEGER";var nT,br=class extends T{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10;}};nT=br;X.Enumerated=nT;br.NAME="ENUMERATED";var Ih=class extends en(Yt){constructor({valueDec:e=-1,isFirstSid:t=!1,...r}={}){super(r),this.valueDec=e,this.isFirstSid=t;}fromBER(e,t,r){if(!r)return t;let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);this.valueHexView=new Uint8Array(r);for(let o=0;o<r&&(this.valueHexView[o]=i[o]&127,this.blockLength++,!!(i[o]&128));o++);let a=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength;o++)a[o]=this.valueHexView[o];return this.valueHexView=a,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=zr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){O1();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let r=new Uint8Array(t.length/7);for(let n=0;n<r.length;n++)r[n]=parseInt(t.slice(n*7,n*7+7),2)+(n+1<r.length?128:0);this.fromBER(r.buffer,0,r.length);}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)i[a]=n[a]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Xs(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Sr;let r=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let a=0;a<i;a++)r[a]=n[a]|128;r[i]=n[i];}return r}toString(){let e="";if(this.isHexOnly)e=fe.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString();}else e=this.valueDec.toString();return e}toJSON(){return {...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Ih.NAME="sidBlock";var $1=class extends Yt{constructor({value:e=ms,...t}={}){super(t),this.value=[],e&&this.fromString(e);}fromBER(e,t,r){let n=t;for(;r>0;){let i=new Ih;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i);}return n}toBER(e){let t=[];for(let r=0;r<this.value.length;r++){let n=this.value[r].toBER(e);if(n.byteLength===0)return this.error=this.value[r].error,Sr;t.push(n);}return S2(t)}fromString(e){this.value=[];let t=0,r=0,n="",i=!1;do if(r=e.indexOf(".",t),r===-1?n=e.substring(t):n=e.substring(t,r),t=r+1,i){let a=this.value[0],o=0;switch(a.valueDec){case 0:break;case 1:o=40;break;case 2:o=80;break;default:this.value=[];return}let c=parseInt(n,10);if(isNaN(c))return;a.valueDec=c+o,i=!1;}else {let a=new Ih;if(n>Number.MAX_SAFE_INTEGER){O1();let o=BigInt(n);a.valueBigInt=o;}else if(a.valueDec=parseInt(n,10),isNaN(a.valueDec))return;this.value.length||(a.isFirstSid=!0,i=!0),this.value.push(a);}while(r!==-1)}toString(){let e="",t=!1;for(let r=0;r<this.value.length;r++){t=this.value[r].isHexOnly;let n=this.value[r].toString();r!==0&&(e=`${e}.`),t?(n=`{${n}}`,this.value[r].isFirstSid?e=`2.{${n} - 80}`:e+=n):e+=n;}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};$1.NAME="ObjectIdentifierValueBlock";var iT,W=class extends _t{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e);}constructor(e={}){super(e,$1),this.idBlock.tagClass=1,this.idBlock.tagNumber=6;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return {...super.toJSON(),value:this.getValue()}}};iT=W;X.ObjectIdentifier=iT;W.NAME="OBJECT IDENTIFIER";var Ch=class extends en(Yr){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e;}fromBER(e,t,r){if(r===0)return t;let n=ae.toUint8Array(e);if(!Qr(this,n,t,r))return -1;let i=n.subarray(t,t+r);this.valueHexView=new Uint8Array(r);for(let o=0;o<r&&(this.valueHexView[o]=i[o]&127,this.blockLength++,!!(i[o]&128));o++);let a=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength;o++)a[o]=this.valueHexView[o];return this.valueHexView=a,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=zr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let n=this.valueHexView,i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength-1;a++)i[a]=n[a]|128;return i[this.blockLength-1]=n[this.blockLength-1],i.buffer}let t=Xs(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",Sr;let r=new Uint8Array(t.byteLength);if(!e){let n=new Uint8Array(t),i=t.byteLength-1;for(let a=0;a<i;a++)r[a]=n[a]|128;r[i]=n[i];}return r.buffer}toString(){let e="";return this.isHexOnly?e=fe.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return {...super.toJSON(),valueDec:this.valueDec}}};Ch.NAME="relativeSidBlock";var F1=class extends Yt{constructor({value:e=ms,...t}={}){super(t),this.value=[],e&&this.fromString(e);}fromBER(e,t,r){let n=t;for(;r>0;){let i=new Ch;if(n=i.fromBER(e,n,r),n===-1)return this.blockLength=0,this.error=i.error,n;this.blockLength+=i.blockLength,r-=i.blockLength,this.value.push(i);}return n}toBER(e,t){let r=[];for(let n=0;n<this.value.length;n++){let i=this.value[n].toBER(e);if(i.byteLength===0)return this.error=this.value[n].error,Sr;r.push(i);}return S2(r)}fromString(e){this.value=[];let t=0,r=0,n="";do{r=e.indexOf(".",t),r===-1?n=e.substring(t):n=e.substring(t,r),t=r+1;let i=new Ch;if(i.valueDec=parseInt(n,10),isNaN(i.valueDec))return !0;this.value.push(i);}while(r!==-1);return !0}toString(){let e="",t=!1;for(let r=0;r<this.value.length;r++){t=this.value[r].isHexOnly;let n=this.value[r].toString();r!==0&&(e=`${e}.`),t&&(n=`{${n}}`),e+=n;}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};F1.NAME="RelativeObjectIdentifierValueBlock";var aT,q1=class extends _t{getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e);}constructor(e={}){super(e,F1),this.idBlock.tagClass=1,this.idBlock.tagNumber=13;}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return {...super.toJSON(),value:this.getValue()}}};aT=q1;X.RelativeObjectIdentifier=aT;q1.NAME="RelativeObjectIdentifier";var oT,b=class extends A{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16;}};oT=b;X.Sequence=oT;b.NAME="SEQUENCE";var cT,at=class extends A{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17;}};cT=at;X.Set=cT;at.NAME="SET";var G1=class extends en(Yt){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=ms;}toJSON(){return {...super.toJSON(),value:this.value}}};G1.NAME="StringValueBlock";var K1=class extends G1{};K1.NAME="SimpleStringValueBlock";var as=class extends D1{constructor({...e}={}){super(e,K1);}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,ae.toUint8Array(e));}fromString(e){let t=e.length,r=this.valueBlock.valueHexView=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.charCodeAt(n);this.valueBlock.value=e;}};as.NAME="SIMPLE STRING";var W1=class extends as{fromBuffer(e){this.valueBlock.valueHexView=ae.toUint8Array(e);try{this.valueBlock.value=fe.ToUtf8String(e);}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=fe.ToBinary(e);}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(fe.FromUtf8String(e)),this.valueBlock.value=e;}};W1.NAME="Utf8StringValueBlock";var uT,ps=class extends W1{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12;}};uT=ps;X.Utf8String=uT;ps.NAME="UTF8String";var J1=class extends as{fromBuffer(e){this.valueBlock.value=fe.ToUtf16String(e),this.valueBlock.valueHexView=ae.toUint8Array(e);}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(fe.FromUtf16String(e));}};J1.NAME="BmpStringValueBlock";var lT,Yn=class extends J1{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30;}};lT=Yn;X.BmpString=lT;Yn.NAME="BMPString";var z1=class extends as{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),r=new Uint8Array(t);for(let n=0;n<r.length;n+=4)r[n]=r[n+3],r[n+1]=r[n+2],r[n+2]=0,r[n+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t));}fromString(e){let t=e.length,r=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let n=0;n<t;n++){let i=Xs(e.charCodeAt(n),8),a=new Uint8Array(i);if(a.length>4)continue;let o=4-a.length;for(let c=a.length-1;c>=0;c--)r[n*4+c+o]=a[c];}this.valueBlock.value=e;}};z1.NAME="UniversalStringValueBlock";var fT,Zn=class extends z1{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28;}};fT=Zn;X.UniversalString=fT;Zn.NAME="UniversalString";var hT,Zr=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18;}};hT=Zr;X.NumericString=hT;Zr.NAME="NumericString";var dT,gs=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19;}};dT=gs;X.PrintableString=dT;gs.NAME="PrintableString";var mT,Xn=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20;}};mT=Xn;X.TeletexString=mT;Xn.NAME="TeletexString";var pT,zc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21;}};pT=zc;X.VideotexString=pT;zc.NAME="VideotexString";var gT,Da=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22;}};gT=Da;X.IA5String=gT;Da.NAME="IA5String";var yT,Yc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25;}};yT=Yc;X.GraphicString=yT;Yc.NAME="GraphicString";var wT,La=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26;}};wT=La;X.VisibleString=wT;La.NAME="VisibleString";var bT,Zc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27;}};bT=Zc;X.GeneralString=bT;Zc.NAME="GeneralString";var ST,Xc=class extends as{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29;}};ST=Xc;X.CharacterString=ST;Xc.NAME="CharacterString";var vT,Xr=class extends La{constructor({value:e,valueDate:t,...r}={}){if(super(r),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let n=0;n<e.length;n++)this.valueBlock.valueHexView[n]=e.charCodeAt(n);}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23;}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,ae.toUint8Array(e)));}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds();}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let r=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(r===null){this.error="Wrong input string for conversion";return}let n=parseInt(r[1],10);n>=50?this.year=1900+n:this.year=2e3+n,this.month=parseInt(r[2],10),this.day=parseInt(r[3],10),this.hour=parseInt(r[4],10),this.minute=parseInt(r[5],10),this.second=parseInt(r[6],10);}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=ds(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=ds(this.month,2),t[2]=ds(this.day,2),t[3]=ds(this.hour,2),t[4]=ds(this.minute,2),t[5]=ds(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return `${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return {...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};vT=Xr;X.UTCTime=vT;Xr.NAME="UTCTime";var ET,Ye=class extends Xr{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24;}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds();}toDate(){let e=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(e)}fromString(e){let t=!1,r="",n="",i=0,a,o=0,c=0;if(e[e.length-1]==="Z")r=e.substring(0,e.length-1),t=!0;else {let h=new Number(e[e.length-1]);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");r=e;}if(t){if(r.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(r.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else {let h=1,m=r.indexOf("+"),y="";if(m===-1&&(m=r.indexOf("-"),h=-1),m!==-1){if(y=r.substring(m+1),r=r.substring(0,m),y.length!==2&&y.length!==4)throw new Error("Wrong input string for conversion");let g=parseInt(y.substring(0,2),10);if(isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");if(o=h*g,y.length===4){if(g=parseInt(y.substring(2,4),10),isNaN(g.valueOf()))throw new Error("Wrong input string for conversion");c=h*g;}}}let u=r.indexOf(".");if(u===-1&&(u=r.indexOf(",")),u!==-1){let h=new Number(`0${r.substring(u)}`);if(isNaN(h.valueOf()))throw new Error("Wrong input string for conversion");i=h.valueOf(),n=r.substring(0,u);}else n=r;switch(!0){case n.length===8:if(a=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case n.length===10:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=60*i;this.minute=Math.floor(h),h=60*(h-this.minute),this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h);}break;case n.length===12:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=60*i;this.second=Math.floor(h),h=1e3*(h-this.second),this.millisecond=Math.floor(h);}break;case n.length===14:if(a=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let h=1e3*i;this.millisecond=Math.floor(h);}break;default:throw new Error("Wrong input string for conversion")}let l=a.exec(n);if(l===null)throw new Error("Wrong input string for conversion");for(let h=1;h<l.length;h++)switch(h){case 1:this.year=parseInt(l[h],10);break;case 2:this.month=parseInt(l[h],10);break;case 3:this.day=parseInt(l[h],10);break;case 4:this.hour=parseInt(l[h],10)+o;break;case 5:this.minute=parseInt(l[h],10)+c;break;case 6:this.second=parseInt(l[h],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let h=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=h.getUTCFullYear(),this.month=h.getUTCMonth(),this.day=h.getUTCDay(),this.hour=h.getUTCHours(),this.minute=h.getUTCMinutes(),this.second=h.getUTCSeconds(),this.millisecond=h.getUTCMilliseconds();}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(ds(this.year,4)),t.push(ds(this.month,2)),t.push(ds(this.day,2)),t.push(ds(this.hour,2)),t.push(ds(this.minute,2)),t.push(ds(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(ds(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return {...super.toJSON(),millisecond:this.millisecond}}};ET=Ye;X.GeneralizedTime=ET;Ye.NAME="GeneralizedTime";var xT,Y1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31;}};xT=Y1;X.DATE=xT;Y1.NAME="DATE";var AT,Z1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32;}};AT=Z1;X.TimeOfDay=AT;Z1.NAME="TimeOfDay";var IT,X1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33;}};IT=X1;X.DateTime=IT;X1.NAME="DateTime";var CT,Q1=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34;}};CT=Q1;X.Duration=CT;Q1.NAME="Duration";var NT,ey=class extends ps{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14;}};NT=ey;X.TIME=NT;ey.NAME="TIME";var ue=class{constructor({name:e=ms,optional:t=!1}={}){this.name=e,this.optional=t;}},Ze=class extends ue{constructor({value:e=[],...t}={}){super(t),this.value=e;}},he=class extends ue{constructor({value:e=new ue,local:t=!1,...r}={}){super(r),this.value=e,this.local=t;}},Ua=class{get data(){return this.dataView.slice().buffer}set data(e){this.dataView=ae.toUint8Array(e);}constructor({data:e=ty}={}){this.dataView=ae.toUint8Array(e);}fromBER(e,t,r){let n=t+r;return this.dataView=ae.toUint8Array(e).subarray(t,n),n}toBER(e){return this.dataView.slice().buffer}};function R(s,e,t){if(t instanceof Ze){for(let i of t.value)if(R(s,e,i).verified)return {verified:!0,result:s};{let i={verified:!1,result:{error:"Wrong values for Choice type"}};return t.hasOwnProperty(b2)&&(i.name=t.name),i}}if(t instanceof ue)return t.hasOwnProperty(b2)&&(s[t.name]=e),{verified:!0,result:s};if(!(s instanceof Object))return {verified:!1,result:{error:"Wrong root object"}};if(!(e instanceof Object))return {verified:!1,result:{error:"Wrong ASN.1 data"}};if(!(t instanceof Object))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(sD in t))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(aD in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(!(oD in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};let r=t.idBlock.toBER(!1);if(r.byteLength===0)return {verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(t.idBlock.fromBER(r,0,r.byteLength)===-1)return {verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(t.idBlock.hasOwnProperty(rD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagClass!==e.idBlock.tagClass)return {verified:!1,result:s};if(t.idBlock.hasOwnProperty(nD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.tagNumber!==e.idBlock.tagNumber)return {verified:!1,result:s};if(t.idBlock.hasOwnProperty(iD)===!1)return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isConstructed!==e.idBlock.isConstructed)return {verified:!1,result:s};if(!(tD in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};if(t.idBlock.isHexOnly!==e.idBlock.isHexOnly)return {verified:!1,result:s};if(t.idBlock.isHexOnly){if(!(KN in t.idBlock))return {verified:!1,result:{error:"Wrong ASN.1 schema"}};let i=t.idBlock.valueHexView,a=e.idBlock.valueHexView;if(i.length!==a.length)return {verified:!1,result:s};for(let o=0;o<i.length;o++)if(i[o]!==a[1])return {verified:!1,result:s}}if(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(s[t.name]=e)),t instanceof X.Constructed){let i=0,a={verified:!1,result:{error:"Unknown error"}},o=t.valueBlock.value.length;if(o>0&&t.valueBlock.value[0]instanceof he&&(o=e.valueBlock.value.length),o===0)return {verified:!0,result:s};if(e.valueBlock.value.length===0&&t.valueBlock.value.length!==0){let c=!0;for(let u=0;u<t.valueBlock.value.length;u++)c=c&&(t.valueBlock.value[u].optional||!1);return c?{verified:!0,result:s}:(t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),s.error="Inconsistent object length",{verified:!1,result:s})}for(let c=0;c<o;c++)if(c-i>=e.valueBlock.value.length){if(t.valueBlock.value[c].optional===!1){let u={verified:!1,result:s};return s.error="Inconsistent length between ASN.1 data and schema",t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],u.name=t.name)),u}}else if(t.valueBlock.value[0]instanceof he){if(a=R(s,e.valueBlock.value[c],t.valueBlock.value[0].value),a.verified===!1)if(t.valueBlock.value[0].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),a;if(b2 in t.valueBlock.value[0]&&t.valueBlock.value[0].name.length>0){let u={};cD in t.valueBlock.value[0]&&t.valueBlock.value[0].local?u=e:u=s,typeof u[t.valueBlock.value[0].name]>"u"&&(u[t.valueBlock.value[0].name]=[]),u[t.valueBlock.value[0].name].push(e.valueBlock.value[c]);}}else if(a=R(s,e.valueBlock.value[c-i],t.valueBlock.value[c]),a.verified===!1)if(t.valueBlock.value[c].optional)i++;else return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&delete s[t.name]),a;if(a.verified===!1){let c={verified:!1,result:s};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],c.name=t.name)),c}return {verified:!0,result:s}}if(t.primitiveSchema&&KN in e.valueBlock){let i=Nh(e.valueBlock.valueHexView);if(i.offset===-1){let a={verified:!1,result:i.result};return t.name&&(t.name=t.name.replace(/^\s+|\s+$/g,ms),t.name&&(delete s[t.name],a.name=t.name)),a}return R(s,i.result,t.primitiveSchema)}return {verified:!0,result:s}}var jt=class s{constructor(e={}){if("view"in e)this.fromUint8Array(e.view);else if("buffer"in e)this.fromArrayBuffer(e.buffer);else if("string"in e)this.fromString(e.string);else if("hexstring"in e)this.fromHexString(e.hexstring);else if("length"in e&&e.length>0){if(this.length=e.length,e.stub)for(let t=0;t<this._view.length;t++)this._view[t]=e.stub;}else this.length=0;}set buffer(e){this._buffer=e,this._view=new Uint8Array(this._buffer);}get buffer(){return this._buffer}set view(e){this._buffer=new ArrayBuffer(e.length),this._view=new Uint8Array(this._buffer),this._view.set(e);}get view(){return this._view}get length(){return this.view.byteLength}set length(e){this._buffer=new ArrayBuffer(e),this._view=new Uint8Array(this._buffer);}clear(){this._buffer=new ArrayBuffer(0),this._view=new Uint8Array(this._buffer);}fromArrayBuffer(e){this._buffer=e,this._view=new Uint8Array(this._buffer);}fromUint8Array(e){this.fromArrayBuffer(new Uint8Array(e).buffer);}fromString(e){let t=e.length;this.length=t;for(let r=0;r<t;r++)this.view[r]=e.charCodeAt(r);}toString(e=0,t=this.view.length-e){let r="";(e>=this.view.length||e<0)&&(e=0),(t>=this.view.length||t<0)&&(t=this.view.length-e);for(let n=e;n<e+t;n++)r+=String.fromCharCode(this.view[n]);return r}fromHexString(e){let t=e.length;this.buffer=new ArrayBuffer(t>>1),this.view=new Uint8Array(this.buffer);let r=new Map;r.set("0",0),r.set("1",1),r.set("2",2),r.set("3",3),r.set("4",4),r.set("5",5),r.set("6",6),r.set("7",7),r.set("8",8),r.set("9",9),r.set("A",10),r.set("a",10),r.set("B",11),r.set("b",11),r.set("C",12),r.set("c",12),r.set("D",13),r.set("d",13),r.set("E",14),r.set("e",14),r.set("F",15),r.set("f",15);let n=0,i=0;for(let a=0;a<t;a++)a%2?(i|=r.get(e.charAt(a)),this.view[n]=i,n++):i=r.get(e.charAt(a))<<4;}toHexString(e=0,t=this.view.length-e){let r="";(e>=this.view.length||e<0)&&(e=0),(t>=this.view.length||t<0)&&(t=this.view.length-e);for(let n=e;n<e+t;n++){let i=this.view[n].toString(16).toUpperCase();r=r+(i.length==1?"0":"")+i;}return r}copy(e=0,t=this.length-e){if(!e&&!this.length)return new s;if(e<0||e>this.length-1)throw new Error(`Wrong start position: ${e}`);return new s({buffer:this._buffer.slice(e,e+t)})}slice(e=0,t=this.length){if(!e&&!this.length)return new s;if(e<0||e>this.length-1)throw new Error(`Wrong start position: ${e}`);return new s({buffer:this._buffer.slice(e,t)})}realloc(e){let t=new ArrayBuffer(e),r=new Uint8Array(t);e>this._view.length?r.set(this._view):r.set(new Uint8Array(this._buffer,0,e)),this._buffer=t,this._view=new Uint8Array(this._buffer);}append(e){let t=this.length,r=e.length,n=e._view.subarray();this.realloc(t+r),this._view.set(n,t);}insert(e,t=0,r=this.length-t){return t>this.length-1?!1:(r>this.length-t&&(r=this.length-t),r>e.length&&(r=e.length),r==e.length?this._view.set(e._view,t):this._view.set(e._view.subarray(0,r),t),!0)}isEqual(e){if(this.length!=e.length)return !1;for(let t=0;t<e.length;t++)if(this.view[t]!=e.view[t])return !1;return !0}isEqualView(e){if(e.length!=this.view.length)return !1;for(let t=0;t<e.length;t++)if(this.view[t]!=e[t])return !1;return !0}findPattern(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=e.length;if(c>a)return -1;let u=[];for(let l=0;l<c;l++)u.push(e.view[l]);for(let l=0;l<=a-c;l++){let h=!0,m=o?i-c-l:i+l;for(let y=0;y<c;y++)if(this.view[y+m]!=u[y]){h=!1;break}if(h)return o?i-c-l:i+c+l}return -1}findFirstIn(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c={id:-1,position:o?0:i+a,length:0};for(let u=0;u<e.length;u++){let l=this.findPattern(e[u],i,a,o);if(l!=-1){let h=!1,m=e[u].length;o?l-m>=c.position-c.length&&(h=!0):l-m<=c.position-c.length&&(h=!0),h&&(c.position=l,c.id=u,c.length=m);}}return c}findAllIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={id:-1,position:n};do{let c=o.position;if(o=this.findFirstIn(e,o.position,i),o.id==-1)break;i-=o.position-c,a.push({id:o.id,position:o.position});}while(!0);return a}findAllPatternIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o=e.length;if(o>i)return -1;let c=Array.from(e.view);for(let u=0;u<=i-o;u++){let l=!0,h=n+u;for(let m=0;m<o;m++)if(this.view[m+h]!=c[m]){l=!1;break}l&&(a.push(n+o+u),u+=o-1);}return a}findFirstNotIn(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c={left:{id:-1,position:i},right:{id:-1,position:0},value:new s},u=a;for(;u>0;){if(c.right=this.findFirstIn(e,o?i-a+u:i+a-u,u,o),c.right.id==-1){a=u,o?i-=a:i=c.left.position,c.value=new s({buffer:this._buffer.slice(i,i+a)});break}if(c.right.position!=(o?c.left.position-e[c.right.id].length:c.left.position+e[c.right.id].length)){o?(i=c.right.position+e[c.right.id].length,a=c.left.position-c.right.position-e[c.right.id].length):(i=c.left.position,a=c.right.position-c.left.position-e[c.right.id].length),c.value=new s({buffer:this._buffer.slice(i,i+a)});break}c.left=c.right,u-=e[c.right.id].length;}if(o){let l=c.right;c.right=c.left,c.left=l;}return c}findAllNotIn(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={left:{id:-1,position:n},right:{id:-1,position:n},value:new s};do{let c=o.right.position;o=this.findFirstNotIn(e,o.right.position,i),i-=o.right.position-c,a.push({left:{id:o.left.id,position:o.left.position},right:{id:o.right.id,position:o.right.position},value:o.value});}while(o.right.id!=-1);return a}findFirstSequence(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=this.skipNotPatterns(e,i,a,o);if(c==-1)return {position:-1,value:new s};let u=this.skipPatterns(e,c,a-(o?i-c:c-i),o);o?(i=u,a=c-u):(i=c,a=u-c);let l=new s({buffer:this._buffer.slice(i,i+a)});return {position:u,value:l}}findAllSequences(e,t,r){let{start:n,length:i}=this.prepareFindParameters(t,r),a=[],o={position:n,value:new s};do{let c=o.position;o=this.findFirstSequence(e,o.position,i),o.position!=-1&&(i-=o.position-c,a.push({position:o.position,value:o.value}));}while(o.position!=-1);return a}findPairedPatterns(e,t,r,n){let i=[];if(e.isEqual(t))return i;let{start:a,length:o}=this.prepareFindParameters(r,n),c=0,u=this.findAllPatternIn(e,a,o);if(!Array.isArray(u)||u.length==0)return i;let l=this.findAllPatternIn(t,a,o);if(!Array.isArray(l)||l.length==0)return i;for(;c<u.length&&l.length!=0;){if(u[0]==l[0]){i.push({left:u[0],right:l[0]}),u.splice(0,1),l.splice(0,1);continue}if(u[c]>l[0])break;for(;u[c]<l[0]&&(c++,!(c>=u.length)););i.push({left:u[c-1],right:l[0]}),u.splice(c-1,1),l.splice(0,1),c=0;}return i.sort((h,m)=>h.left-m.left),i}findPairedArrays(e,t,r,n){let{start:i,length:a}=this.prepareFindParameters(r,n),o=[],c=0,u=this.findAllIn(e,i,a);if(u.length==0)return o;let l=this.findAllIn(t,i,a);if(l.length==0)return o;for(;c<u.length&&l.length!=0;){if(u[0].position==l[0].position){o.push({left:u[0],right:l[0]}),u.splice(0,1),l.splice(0,1);continue}if(u[c].position>l[0].position)break;for(;u[c].position<l[0].position&&(c++,!(c>=u.length)););o.push({left:u[c-1],right:l[0]}),u.splice(c-1,1),l.splice(0,1),c=0;}return o.sort((h,m)=>h.left.position-m.left.position),o}replacePattern(e,t,r,n,i=null){let a=[],o,c={status:-1,searchPatternPositions:[],replacePatternPositions:[]},{start:u,length:l}=this.prepareFindParameters(r,n);if(i==null){if(a=this.findAllIn([e],u,l),a.length==0)return c}else a=i;c.searchPatternPositions.push(...Array.from(a,g=>g.position));let h=e.length-t.length,m=new ArrayBuffer(this.view.length-a.length*h),y=new Uint8Array(m);for(y.set(new Uint8Array(this.buffer,0,u)),o=0;o<a.length;o++){let g=o==0?u:a[o-1].position;y.set(new Uint8Array(this.buffer,g,a[o].position-e.length-g),g-o*h),y.set(t.view,a[o].position-e.length-o*h),c.replacePatternPositions.push(a[o].position-e.length-o*h);}return o--,y.set(new Uint8Array(this.buffer,a[o].position,this.length-a[o].position),a[o].position-e.length+t.length-o*h),this.buffer=m,this.view=new Uint8Array(this.buffer),c.status=1,c}skipPatterns(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=i;for(let u=0;u<e.length;u++){let l=e[u].length,h=o?c-l:c,m=!0;for(let y=0;y<l;y++)if(this.view[y+h]!=e[u].view[y]){m=!1;break}if(m){if(u=-1,o){if(c-=l,c<=0)return c}else if(c+=l,c>=i+a)return c}}return c}skipNotPatterns(e,t,r,n){let{start:i,length:a,backward:o}=this.prepareFindParameters(t,r,n),c=-1;for(let u=0;u<a;u++){for(let l=0;l<e.length;l++){let h=e[l].length,m=o?i-u-h:i+u,y=!0;for(let g=0;g<h;g++)if(this.view[g+m]!=e[l].view[g]){y=!1;break}if(y){c=o?i-u:i+u;break}}if(c!=-1)break}return c}prepareFindParameters(e=null,t=null,r=!1){return e===null&&(e=r?this.length:0),e>this.length&&(e=this.length),r?(t===null&&(t=e),t>e&&(t=e)):(t===null&&(t=this.length-e),t>this.length-e&&(t=this.length-e)),{start:e,length:t,backward:r}}};var mD=16777216,tn=class s{constructor(e={}){this._stream=new jt,this._length=0,this._start=0,this.backward=!1,this.appendBlock=0,this.prevLength=0,this.prevStart=0,"view"in e?this.stream=new jt({view:e.view}):"buffer"in e?this.stream=new jt({buffer:e.buffer}):"string"in e?this.stream=new jt({string:e.string}):"hexstring"in e?this.stream=new jt({hexstring:e.hexstring}):"stream"in e?this.stream=e.stream.slice():this.stream=new jt,"backward"in e&&e.backward&&(this.backward=e.backward,this._start=this.stream.length),"length"in e&&e.length>0&&(this._length=e.length),"start"in e&&e.start&&e.start>0&&(this._start=e.start),"appendBlock"in e&&e.appendBlock&&e.appendBlock>0&&(this.appendBlock=e.appendBlock);}set stream(e){this._stream=e,this.prevLength=this._length,this._length=e.length,this.prevStart=this._start,this._start=0;}get stream(){return this._stream}set length(e){this.prevLength=this._length,this._length=e;}get length(){return this.appendBlock?this.start:this._length}set start(e){e>this.stream.length||(this.prevStart=this._start,this.prevLength=this._length,this._length-=this.backward?this._start-e:e-this._start,this._start=e);}get start(){return this._start}get buffer(){return this._stream.buffer.slice(0,this._length)}resetPosition(){this._start=this.prevStart,this._length=this.prevLength;}findPattern(e,t=null){(t==null||t>this.length)&&(t=this.length);let r=this.stream.findPattern(e,this.start,this.length,this.backward);if(r==-1)return r;if(this.backward){if(r<this.start-e.length-t)return -1}else if(r>this.start+e.length+t)return -1;return this.start=r,r}findFirstIn(e,t=null){(t==null||t>this.length)&&(t=this.length);let r=this.stream.findFirstIn(e,this.start,this.length,this.backward);if(r.id==-1)return r;if(this.backward){if(r.position<this.start-e[r.id].length-t)return {id:-1,position:this.backward?0:this.start+this.length}}else if(r.position>this.start+e[r.id].length+t)return {id:-1,position:this.backward?0:this.start+this.length};return this.start=r.position,r}findAllIn(e){let t=this.backward?this.start-this.length:this.start;return this.stream.findAllIn(e,t,this.length)}findFirstNotIn(e,t=null){(t==null||t>this._length)&&(t=this._length);let r=this._stream.findFirstNotIn(e,this._start,this._length,this.backward);if(r.left.id==-1&&r.right.id==-1)return r;if(this.backward){if(r.right.id!=-1&&r.right.position<this._start-e[r.right.id].length-t)return {left:{id:-1,position:this._start},right:{id:-1,position:0},value:new jt}}else if(r.left.id!=-1&&r.left.position>this._start+e[r.left.id].length+t)return {left:{id:-1,position:this._start},right:{id:-1,position:0},value:new jt};return this.backward?r.left.id==-1?this.start=0:this.start=r.left.position:r.right.id==-1?this.start=this._start+this._length:this.start=r.right.position,r}findAllNotIn(e){let t=this.backward?this._start-this._length:this._start;return this._stream.findAllNotIn(e,t,this._length)}findFirstSequence(e,t=null,r=null){(t==null||t>this._length)&&(t=this._length),(r==null||r>t)&&(r=t);let n=this._stream.findFirstSequence(e,this._start,t,this.backward);if(n.value.length==0)return n;if(this.backward){if(n.position<this._start-n.value.length-r)return {position:-1,value:new jt}}else if(n.position>this._start+n.value.length+r)return {position:-1,value:new jt};return this.start=n.position,n}findAllSequences(e){let t=this.backward?this.start-this.length:this.start;return this.stream.findAllSequences(e,t,this.length)}findPairedPatterns(e,t,r=null){(r==null||r>this.length)&&(r=this.length);let n=this.backward?this.start-this.length:this.start,i=this.stream.findPairedPatterns(e,t,n,this.length);if(i.length){if(this.backward){if(i[0].right<this.start-t.length-r)return []}else if(i[0].left>this.start+e.length+r)return []}return i}findPairedArrays(e,t,r=null){(r==null||r>this.length)&&(r=this.length);let n=this.backward?this.start-this.length:this.start,i=this.stream.findPairedArrays(e,t,n,this.length);if(i.length){if(this.backward){if(i[0].right.position<this.start-t[i[0].right.id].length-r)return []}else if(i[0].left.position>this.start+e[i[0].left.id].length+r)return []}return i}replacePattern(e,t){let r=this.backward?this.start-this.length:this.start;return this.stream.replacePattern(e,t,r,this.length)}skipPatterns(e){let t=this.stream.skipPatterns(e,this.start,this.length,this.backward);return this.start=t,t}skipNotPatterns(e){let t=this.stream.skipNotPatterns(e,this.start,this.length,this.backward);return t==-1?-1:(this.start=t,t)}append(e){this.beforeAppend(e.length),this._stream.view.set(e.view,this._start),this._length+=e.length*2,this.start=this._start+e.length,this.prevLength-=e.length*2;}appendView(e){this.beforeAppend(e.length),this._stream.view.set(e,this._start),this._length+=e.length*2,this.start=this._start+e.length,this.prevLength-=e.length*2;}appendChar(e){this.beforeAppend(1),this._stream.view[this._start]=e,this._length+=2,this.start=this._start+1,this.prevLength-=2;}appendUint16(e){this.beforeAppend(2);let t=new Uint16Array([e]),r=new Uint8Array(t.buffer);this.stream.view[this._start]=r[1],this._stream.view[this._start+1]=r[0],this._length+=4,this.start=this._start+2,this.prevLength-=4;}appendUint24(e){this.beforeAppend(3);let t=new Uint32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[2],this._stream.view[this._start+1]=r[1],this._stream.view[this._start+2]=r[0],this._length+=6,this.start=this._start+3,this.prevLength-=6;}appendUint32(e){this.beforeAppend(4);let t=new Uint32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[3],this._stream.view[this._start+1]=r[2],this._stream.view[this._start+2]=r[1],this._stream.view[this._start+3]=r[0],this._length+=8,this.start=this._start+4,this.prevLength-=8;}appendInt16(e){this.beforeAppend(2);let t=new Int16Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[1],this._stream.view[this._start+1]=r[0],this._length+=4,this.start=this._start+2,this.prevLength-=4;}appendInt32(e){this.beforeAppend(4);let t=new Int32Array([e]),r=new Uint8Array(t.buffer);this._stream.view[this._start]=r[3],this._stream.view[this._start+1]=r[2],this._stream.view[this._start+2]=r[1],this._stream.view[this._start+3]=r[0],this._length+=8,this.start=this._start+4,this.prevLength-=8;}getBlock(e,t=!0){if(this._length<=0)return new Uint8Array(0);this._length<e&&(e=this._length);let r;if(this.backward){let n=this._stream.view.subarray(this._length-e,this._length);r=new Uint8Array(e);for(let i=0;i<e;i++)r[e-1-i]=n[i];}else r=this._stream.view.subarray(this._start,this._start+e);return t&&(this.start+=this.backward?-1*e:e),r}getUint16(e=!0){let t=this.getBlock(2,e);return t.length<2?0:t[0]<<8|t[1]}getInt16(e=!0){let t=this.getUint16(e),r=32768;return t&r?-(r-(t^r)):t}getUint24(e=!0){let t=this.getBlock(4,e);return t.length<3?0:t[0]<<16|t[1]<<8|t[2]}getUint32(e=!0){let t=this.getBlock(4,e);return t.length<4?0:t[0]*mD+(t[1]<<16)+(t[2]<<8)+t[3]}getInt32(e=!0){let t=this.getUint32(e),r=2147483648;return t&r?-(r-(t^r)):t}beforeAppend(e){this._start+e>this._stream.length&&(e>this.appendBlock&&(this.appendBlock=e+s.APPEND_BLOCK),this._stream.realloc(this._stream.length+this.appendBlock));}};tn.APPEND_BLOCK=1e3;function gD(s){return s instanceof Uint8Array||s!=null&&typeof s=="object"&&s.constructor.name==="Uint8Array"}function E2(s,...e){if(!gD(s))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(s.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${s.length}`)}function x2(s,e=!0){if(s.destroyed)throw new Error("Hash instance has been destroyed");if(e&&s.finished)throw new Error("Hash#digest() has already been called")}function TT(s,e){E2(s);let t=e.outputLen;if(s.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var ry=s=>new DataView(s.buffer,s.byteOffset,s.byteLength),Qs=(s,e)=>s<<32-e|s>>>e,ny=(s,e)=>s<<e|s>>>32-e>>>0;new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function yD(s){if(typeof s!="string")throw new Error(`utf8ToBytes expected string, got ${typeof s}`);return new Uint8Array(new TextEncoder().encode(s))}function A2(s){return typeof s=="string"&&(s=yD(s)),E2(s),s}var sy=class{clone(){return this._cloneInto()}};function Ha(s){let e=r=>s().update(A2(r)).digest(),t=s();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>s(),e}function wD(s,e,t,r){if(typeof s.setBigUint64=="function")return s.setBigUint64(e,t,r);let n=BigInt(32),i=BigInt(4294967295),a=Number(t>>n&i),o=Number(t&i),c=r?4:0,u=r?0:4;s.setUint32(e+c,a,r),s.setUint32(e+u,o,r);}var iy=(s,e,t)=>s&e^~s&t,ay=(s,e,t)=>s&e^s&t^e&t,Qn=class extends sy{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=ry(this.buffer);}update(e){x2(this);let{view:t,buffer:r,blockLen:n}=this;e=A2(e);let i=e.length;for(let a=0;a<i;){let o=Math.min(n-this.pos,i-a);if(o===n){let c=ry(e);for(;n<=i-a;a+=n)this.process(c,a);continue}r.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===n&&(this.process(t,0),this.pos=0);}return this.length+=e.length,this.roundClean(),this}digestInto(e){x2(this),TT(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:i}=this,{pos:a}=this;t[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>n-a&&(this.process(r,0),a=0);for(let h=a;h<n;h++)t[h]=0;wD(r,n-8,BigInt(this.length*8),i),this.process(r,0);let o=ry(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)o.setUint32(4*h,l[h],i);}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:i,destroyed:a,pos:o}=this;return e.length=n,e.pos=o,e.finished=i,e.destroyed=a,n%t&&e.buffer.set(r),e}};var Th=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),ei=new Uint32Array(80),I2=class extends Qn{constructor(){super(64,20,8,!1),this.A=Th[0]|0,this.B=Th[1]|0,this.C=Th[2]|0,this.D=Th[3]|0,this.E=Th[4]|0;}get(){let{A:e,B:t,C:r,D:n,E:i}=this;return [e,t,r,n,i]}set(e,t,r,n,i){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0;}process(e,t){for(let c=0;c<16;c++,t+=4)ei[c]=e.getUint32(t,!1);for(let c=16;c<80;c++)ei[c]=ny(ei[c-3]^ei[c-8]^ei[c-14]^ei[c-16],1);let{A:r,B:n,C:i,D:a,E:o}=this;for(let c=0;c<80;c++){let u,l;c<20?(u=iy(n,i,a),l=1518500249):c<40?(u=n^i^a,l=1859775393):c<60?(u=ay(n,i,a),l=2400959708):(u=n^i^a,l=3395469782);let h=ny(r,5)+u+o+l+ei[c]|0;o=a,a=i,i=ny(n,30),n=r,r=h;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,this.set(r,n,i,a,o);}roundClean(){ei.fill(0);}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0);}},kT=Ha(()=>new I2);var bD=new Uint32Array([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]),ti=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),si=new Uint32Array(64),C2=class extends Qn{constructor(){super(64,32,8,!1),this.A=ti[0]|0,this.B=ti[1]|0,this.C=ti[2]|0,this.D=ti[3]|0,this.E=ti[4]|0,this.F=ti[5]|0,this.G=ti[6]|0,this.H=ti[7]|0;}get(){let{A:e,B:t,C:r,D:n,E:i,F:a,G:o,H:c}=this;return [e,t,r,n,i,a,o,c]}set(e,t,r,n,i,a,o,c){this.A=e|0,this.B=t|0,this.C=r|0,this.D=n|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=c|0;}process(e,t){for(let h=0;h<16;h++,t+=4)si[h]=e.getUint32(t,!1);for(let h=16;h<64;h++){let m=si[h-15],y=si[h-2],g=Qs(m,7)^Qs(m,18)^m>>>3,w=Qs(y,17)^Qs(y,19)^y>>>10;si[h]=w+si[h-7]+g+si[h-16]|0;}let{A:r,B:n,C:i,D:a,E:o,F:c,G:u,H:l}=this;for(let h=0;h<64;h++){let m=Qs(o,6)^Qs(o,11)^Qs(o,25),y=l+m+iy(o,c,u)+bD[h]+si[h]|0,w=(Qs(r,2)^Qs(r,13)^Qs(r,22))+ay(r,n,i)|0;l=u,u=c,c=o,o=a+y|0,a=i,i=n,n=r,r=y+w|0;}r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,n,i,a,o,c,u,l);}roundClean(){si.fill(0);}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0);}};var N2=Ha(()=>new C2);var oy=BigInt(4294967295),T2=BigInt(32);function PT(s,e=!1){return e?{h:Number(s&oy),l:Number(s>>T2&oy)}:{h:Number(s>>T2&oy)|0,l:Number(s&oy)|0}}function SD(s,e=!1){let t=new Uint32Array(s.length),r=new Uint32Array(s.length);for(let n=0;n<s.length;n++){let{h:i,l:a}=PT(s[n],e);[t[n],r[n]]=[i,a];}return [t,r]}var vD=(s,e)=>BigInt(s>>>0)<<T2|BigInt(e>>>0),ED=(s,e,t)=>s>>>t,xD=(s,e,t)=>s<<32-t|e>>>t,AD=(s,e,t)=>s>>>t|e<<32-t,ID=(s,e,t)=>s<<32-t|e>>>t,CD=(s,e,t)=>s<<64-t|e>>>t-32,ND=(s,e,t)=>s>>>t-32|e<<64-t,TD=(s,e)=>e,kD=(s,e)=>s,PD=(s,e,t)=>s<<t|e>>>32-t,BD=(s,e,t)=>e<<t|s>>>32-t,OD=(s,e,t)=>e<<t-32|s>>>64-t,RD=(s,e,t)=>s<<t-32|e>>>64-t;function VD(s,e,t,r){let n=(e>>>0)+(r>>>0);return {h:s+t+(n/2**32|0)|0,l:n|0}}var DD=(s,e,t)=>(s>>>0)+(e>>>0)+(t>>>0),LD=(s,e,t,r)=>e+t+r+(s/2**32|0)|0,UD=(s,e,t,r)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0),HD=(s,e,t,r,n)=>e+t+r+n+(s/2**32|0)|0,_D=(s,e,t,r,n)=>(s>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),jD=(s,e,t,r,n,i)=>e+t+r+n+i+(s/2**32|0)|0;var MD={fromBig:PT,split:SD,toBig:vD,shrSH:ED,shrSL:xD,rotrSH:AD,rotrSL:ID,rotrBH:CD,rotrBL:ND,rotr32H:TD,rotr32L:kD,rotlSH:PD,rotlSL:BD,rotlBH:OD,rotlBL:RD,add:VD,add3L:DD,add3H:LD,add4L:UD,add4H:HD,add5H:jD,add5L:_D},Be=MD;var[$D,FD]=Be.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(s=>BigInt(s))),ri=new Uint32Array(80),ni=new Uint32Array(80),cy=class extends Qn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209;}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:i,Cl:a,Dh:o,Dl:c,Eh:u,El:l,Fh:h,Fl:m,Gh:y,Gl:g,Hh:w,Hl:S}=this;return [e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,S]}set(e,t,r,n,i,a,o,c,u,l,h,m,y,g,w,S){this.Ah=e|0,this.Al=t|0,this.Bh=r|0,this.Bl=n|0,this.Ch=i|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=h|0,this.Fl=m|0,this.Gh=y|0,this.Gl=g|0,this.Hh=w|0,this.Hl=S|0;}process(e,t){for(let x=0;x<16;x++,t+=4)ri[x]=e.getUint32(t),ni[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let E=ri[x-15]|0,I=ni[x-15]|0,D=Be.rotrSH(E,I,1)^Be.rotrSH(E,I,8)^Be.shrSH(E,I,7),G=Be.rotrSL(E,I,1)^Be.rotrSL(E,I,8)^Be.shrSL(E,I,7),$=ri[x-2]|0,J=ni[x-2]|0,ie=Be.rotrSH($,J,19)^Be.rotrBH($,J,61)^Be.shrSH($,J,6),q=Be.rotrSL($,J,19)^Be.rotrBL($,J,61)^Be.shrSL($,J,6),z=Be.add4L(G,q,ni[x-7],ni[x-16]),ce=Be.add4H(z,D,ie,ri[x-7],ri[x-16]);ri[x]=ce|0,ni[x]=z|0;}let{Ah:r,Al:n,Bh:i,Bl:a,Ch:o,Cl:c,Dh:u,Dl:l,Eh:h,El:m,Fh:y,Fl:g,Gh:w,Gl:S,Hh:C,Hl:N}=this;for(let x=0;x<80;x++){let E=Be.rotrSH(h,m,14)^Be.rotrSH(h,m,18)^Be.rotrBH(h,m,41),I=Be.rotrSL(h,m,14)^Be.rotrSL(h,m,18)^Be.rotrBL(h,m,41),D=h&y^~h&w,G=m&g^~m&S,$=Be.add5L(N,I,G,FD[x],ni[x]),J=Be.add5H($,C,E,D,$D[x],ri[x]),ie=$|0,q=Be.rotrSH(r,n,28)^Be.rotrBH(r,n,34)^Be.rotrBH(r,n,39),z=Be.rotrSL(r,n,28)^Be.rotrBL(r,n,34)^Be.rotrBL(r,n,39),ce=r&i^r&o^i&o,Le=n&a^n&c^a&c;C=w|0,N=S|0,w=y|0,S=g|0,y=h|0,g=m|0,{h,l:m}=Be.add(u|0,l|0,J|0,ie|0),u=o|0,l=c|0,o=i|0,c=a|0,i=r|0,a=n|0;let U=Be.add3L(ie,z,Le);r=Be.add3H(U,J,q,ce),n=U|0;}(({h:r,l:n}=Be.add(this.Ah|0,this.Al|0,r|0,n|0))),{h:i,l:a}=Be.add(this.Bh|0,this.Bl|0,i|0,a|0),{h:o,l:c}=Be.add(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l}=Be.add(this.Dh|0,this.Dl|0,u|0,l|0),{h,l:m}=Be.add(this.Eh|0,this.El|0,h|0,m|0),{h:y,l:g}=Be.add(this.Fh|0,this.Fl|0,y|0,g|0),{h:w,l:S}=Be.add(this.Gh|0,this.Gl|0,w|0,S|0),{h:C,l:N}=Be.add(this.Hh|0,this.Hl|0,C|0,N|0),this.set(r,n,i,a,o,c,u,l,h,m,y,g,w,S,C,N);}roundClean(){ri.fill(0),ni.fill(0);}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);}};var k2=class extends cy{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48;}},P2=Ha(()=>new cy);var B2=Ha(()=>new k2);var dt=new ArrayBuffer(0),p="",Ke=class s extends TypeError{constructor(){super(...arguments),this.name=s.NAME;}static isType(e,t){if(typeof t=="string"){if(t==="Array"&&Array.isArray(e))return !0;if(t==="ArrayBuffer"&&e instanceof ArrayBuffer)return !0;if(t==="ArrayBufferView"&&ArrayBuffer.isView(e))return !0;if(typeof e===t)return !0}else if(e instanceof t)return !0;return !1}static assert(e,t,...r){for(let i of r)if(this.isType(e,i))return;let n=r.map(i=>i instanceof Function&&"name"in i?i.name:`${i}`);throw new s(`Parameter '${t}' is not of type ${n.length>1?`(${n.join(" or ")})`:n[0]}`)}};Ke.NAME="ArgumentError";var He=class s extends TypeError{static assert(...e){let t=null,r,n;typeof e[0]=="string"?(t=e[0],r=e[1],n=e.slice(2)):(r=e[0],n=e.slice(1)),Ke.assert(r,"parameters","object");for(let i of n){let a=r[i];if(a==null)throw new s(i,t)}}static assertEmpty(e,t,r){if(e==null)throw new s(t,r)}constructor(e,t=null,r){super(),this.name=s.NAME,this.field=e,t&&(this.target=t),r?this.message=r:this.message=`Absent mandatory parameter '${e}' ${t?` in '${t}'`:p}`;}};He.NAME="ParameterError";var B=class s extends Error{static assertSchema(e,t){if(!e.verified)throw new Error(`Object's schema was not verified against input data for ${t}`)}static assert(e,t){if(e.offset===-1)throw new s(`Error during parsing of ASN.1 data. Data is not correct for '${t}'.`)}constructor(e){super(e),this.name="AsnError";}},O=class{static blockName(){return this.CLASS_NAME}static fromBER(e){let t=pt(e);B.assert(t,this.name);try{return new this({schema:t.result})}catch{throw new B(`Cannot create '${this.CLASS_NAME}' from ASN.1 object`)}}static defaultValues(e){throw new Error(`Invalid member name for ${this.CLASS_NAME} class: ${e}`)}static schema(e={}){throw new Error(`Method '${this.CLASS_NAME}.schema' should be overridden`)}get className(){return this.constructor.CLASS_NAME}toString(e="hex"){let t;try{t=this.toSchema();}catch{t=this.toSchema(!0);}return fe.ToString(t.toBER(),e)}};O.CLASS_NAME="PkiObject";function qi(s){let e=!1,t=p,r=s.trim();for(let n=0;n<r.length;n++)r.charCodeAt(n)===32?e===!1&&(e=!0):(e&&(t+=" ",e=!1),t+=r[n]);return t.toLowerCase()}var kh="type",O2="value",H0=class s extends O{constructor(e={}){super(),this.type=d(e,kh,s.defaultValues(kh)),this.value=d(e,O2,s.defaultValues(O2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case kh:return p;case O2:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.type||p}),new ue({name:t.value||p})]})}fromSchema(e){V(e,[kh,"typeValue"]);let t=R(e,e,s.schema({names:{type:kh,value:"typeValue"}}));B.assertSchema(t,this.className),this.type=t.result.type.valueBlock.toString(),this.value=t.result.typeValue;}toSchema(){return new b({value:[new W({value:this.type}),this.value]})}toJSON(){let e={type:this.type};return Object.keys(this.value).length!==0?e.value=this.value.toJSON():e.value=this.value,e}isEqual(e){let t=[ps.blockName(),Yn.blockName(),Zn.blockName(),Zr.blockName(),gs.blockName(),Xn.blockName(),zc.blockName(),Da.blockName(),Yc.blockName(),La.blockName(),Zc.blockName(),Xc.blockName()];if(e instanceof ArrayBuffer)return ae.isEqual(this.value.valueBeforeDecodeView,e);if(e.constructor.blockName()===s.blockName()){if(this.type!==e.type)return !1;let r=[!1,!1],n=this.value.constructor.blockName();for(let a of t)n===a&&(r[0]=!0),e.value.constructor.blockName()===a&&(r[1]=!0);if(r[0]!==r[1])return !1;if(r[0]&&r[1]){let a=qi(this.value.valueBlock.value),o=qi(e.value.valueBlock.value);if(a.localeCompare(o)!==0)return !1}else if(!ae.isEqual(this.value.valueBeforeDecodeView,e.value.valueBeforeDecodeView))return !1;return !0}return !1}};H0.CLASS_NAME="AttributeTypeAndValue";var _a="typesAndValues",uy="valueBeforeDecode",BT="RDN",Xe=class s extends O{constructor(e={}){super(),this.typesAndValues=d(e,_a,s.defaultValues(_a)),this.valueBeforeDecode=d(e,uy,s.defaultValues(uy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case _a:return [];case uy:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case _a:return t.length===0;case uy:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.repeatedSequence||p,value:new at({value:[new he({name:t.repeatedSet||p,value:H0.schema(t.typeAndValue||{})})]})})]})}fromSchema(e){V(e,[BT,_a]);let t=R(e,e,s.schema({names:{blockName:BT,repeatedSet:_a}}));B.assertSchema(t,this.className),_a in t.result&&(this.typesAndValues=Array.from(t.result.typesAndValues,r=>new H0({schema:r}))),this.valueBeforeDecode=t.result.RDN.valueBeforeDecodeView.slice().buffer;}toSchema(){if(this.valueBeforeDecode.byteLength===0)return new b({value:[new at({value:Array.from(this.typesAndValues,t=>t.toSchema())})]});let e=pt(this.valueBeforeDecode);if(B.assert(e,"RelativeDistinguishedNames"),!(e.result instanceof b))throw new Error("ASN.1 result should be SEQUENCE");return e.result}toJSON(){return {typesAndValues:Array.from(this.typesAndValues,e=>e.toJSON())}}isEqual(e){if(e instanceof s){if(this.typesAndValues.length!==e.typesAndValues.length)return !1;for(let[t,r]of this.typesAndValues.entries())if(r.isEqual(e.typesAndValues[t])===!1)return !1;return !0}return e instanceof ArrayBuffer?zn(this.valueBeforeDecode,e):!1}};Xe.CLASS_NAME="RelativeDistinguishedNames";var $h="type",Fh="value";function qD(s={},e=!1){let t=d(s,"names",{});return new b({optional:e,value:[new A({optional:!0,idBlock:{tagClass:2,tagNumber:1},name:t.country_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new A({optional:!0,idBlock:{tagClass:2,tagNumber:2},name:t.administration_domain_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:0},name:t.network_address||p,isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},name:t.terminal_identifier||p,isHexOnly:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:2},name:t.private_domain_name||p,value:[new Ze({value:[new Zr,new gs]})]}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:3},name:t.organization_name||p,isHexOnly:!0}),new oe({optional:!0,name:t.numeric_user_identifier||p,idBlock:{tagClass:3,tagNumber:4},isHexOnly:!0}),new A({optional:!0,name:t.personal_name||p,idBlock:{tagClass:3,tagNumber:5},value:[new oe({idBlock:{tagClass:3,tagNumber:0},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:2},isHexOnly:!0}),new oe({optional:!0,idBlock:{tagClass:3,tagNumber:3},isHexOnly:!0})]}),new A({optional:!0,name:t.organizational_unit_names||p,idBlock:{tagClass:3,tagNumber:6},value:[new he({value:new gs})]})]})}function GD(s=!1){return new b({optional:s,value:[new gs,new gs]})}function KD(s=!1){return new at({optional:s,value:[new oe({optional:!0,idBlock:{tagClass:3,tagNumber:0},isHexOnly:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new ue]})]})}var We=class s extends O{constructor(e={}){super(),this.type=d(e,$h,s.defaultValues($h)),this.value=d(e,Fh,s.defaultValues(Fh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $h:return 9;case Fh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $h:return t===s.defaultValues(e);case Fh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[new A({idBlock:{tagClass:3,tagNumber:0},name:t.blockName||p,value:[new W,new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue]})]}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:2}}),new A({idBlock:{tagClass:3,tagNumber:3},name:t.blockName||p,value:[qD(t.builtInStandardAttributes||{},!1),GD(!0),KD(!0)]}),new A({idBlock:{tagClass:3,tagNumber:4},name:t.blockName||p,value:[Xe.schema(t.directoryName||{})]}),new A({idBlock:{tagClass:3,tagNumber:5},name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new Xn,new gs,new Zn,new ps,new Yn]})]}),new A({idBlock:{tagClass:3,tagNumber:1},value:[new Ze({value:[new Xn,new gs,new Zn,new ps,new Yn]})]})]}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:6}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:7}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:8}})]})}fromSchema(e){V(e,["blockName","otherName","rfc822Name","dNSName","x400Address","directoryName","ediPartyName","uniformResourceIdentifier","iPAddress","registeredID"]);let t=R(e,e,s.schema({names:{blockName:"blockName",otherName:"otherName",rfc822Name:"rfc822Name",dNSName:"dNSName",x400Address:"x400Address",directoryName:{names:{blockName:"directoryName"}},ediPartyName:"ediPartyName",uniformResourceIdentifier:"uniformResourceIdentifier",iPAddress:"iPAddress",registeredID:"registeredID"}}));switch(B.assertSchema(t,this.className),this.type=t.result.blockName.idBlock.tagNumber,this.type){case 0:this.value=t.result.blockName;break;case 1:case 2:case 6:{let r=t.result.blockName;r.idBlock.tagClass=1,r.idBlock.tagNumber=22;let n=r.toBER(!1),i=pt(n);B.assert(i,"GeneralName value"),this.value=i.result.valueBlock.value;}break;case 3:this.value=t.result.blockName;break;case 4:this.value=new Xe({schema:t.result.directoryName});break;case 5:this.value=t.result.ediPartyName;break;case 7:this.value=new L({valueHex:t.result.blockName.valueBlock.valueHex});break;case 8:{let r=t.result.blockName;r.idBlock.tagClass=1,r.idBlock.tagNumber=6;let n=r.toBER(!1),i=pt(n);B.assert(i,"GeneralName registeredID"),this.value=i.result.valueBlock.toString();}break}}toSchema(){switch(this.type){case 0:case 3:case 5:return new A({idBlock:{tagClass:3,tagNumber:this.type},value:[this.value]});case 1:case 2:case 6:{let e=new Da({value:this.value});return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}case 4:return new A({idBlock:{tagClass:3,tagNumber:4},value:[this.value.toSchema()]});case 7:{let e=this.value;return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}case 8:{let e=new W({value:this.value});return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.type,e}default:return s.schema()}}toJSON(){let e={type:this.type,value:p};if(typeof this.value=="string")e.value=this.value;else try{e.value=this.value.toJSON();}catch{}return e}};We.CLASS_NAME="GeneralName";var qh="accessMethod",Gh="accessLocation",WD=[qh,Gh],_0=class s extends O{constructor(e={}){super(),this.accessMethod=d(e,qh,s.defaultValues(qh)),this.accessLocation=d(e,Gh,s.defaultValues(Gh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case qh:return p;case Gh:return new We;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.accessMethod||p}),We.schema(t.accessLocation||{})]})}fromSchema(e){V(e,WD);let t=R(e,e,s.schema({names:{accessMethod:qh,accessLocation:{names:{blockName:Gh}}}}));B.assertSchema(t,this.className),this.accessMethod=t.result.accessMethod.valueBlock.toString(),this.accessLocation=new We({schema:t.result.accessLocation});}toSchema(){return new b({value:[new W({value:this.accessMethod}),this.accessLocation.toSchema()]})}toJSON(){return {accessMethod:this.accessMethod,accessLocation:this.accessLocation.toJSON()}}};_0.CLASS_NAME="AccessDescription";var ai="seconds",oi="millis",ci="micros",gn=class s extends O{constructor(e={}){super(),ai in e&&(this.seconds=d(e,ai,s.defaultValues(ai))),oi in e&&(this.millis=d(e,oi,s.defaultValues(oi))),ci in e&&(this.micros=d(e,ci,s.defaultValues(ci))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ai:case oi:case ci:return 0;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ai:case oi:case ci:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,optional:!0,value:[new T({optional:!0,name:t.seconds||p}),new oe({name:t.millis||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.micros||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,[ai,oi,ci]);let t=R(e,e,s.schema({names:{seconds:ai,millis:oi,micros:ci}}));if(B.assertSchema(t,this.className),"seconds"in t.result&&(this.seconds=t.result.seconds.valueBlock.valueDec),"millis"in t.result){let r=new T({valueHex:t.result.millis.valueBlock.valueHex});this.millis=r.valueBlock.valueDec;}if("micros"in t.result){let r=new T({valueHex:t.result.micros.valueBlock.valueHex});this.micros=r.valueBlock.valueDec;}}toSchema(){let e=[];if(this.seconds!==void 0&&e.push(new T({value:this.seconds})),this.millis!==void 0){let t=new T({value:this.millis});e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:t.valueBlock.valueHexView}));}if(this.micros!==void 0){let t=new T({value:this.micros});e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:t.valueBlock.valueHexView}));}return new b({value:e})}toJSON(){let e={};return this.seconds!==void 0&&(e.seconds=this.seconds),this.millis!==void 0&&(e.millis=this.millis),this.micros!==void 0&&(e.micros=this.micros),e}};gn.CLASS_NAME="Accuracy";var ly="algorithmId",Ph="algorithmParams",s4="algorithm",oA="params",JD=[s4,oA],k=class s extends O{constructor(e={}){super(),this.algorithmId=d(e,ly,s.defaultValues(ly)),Ph in e&&(this.algorithmParams=d(e,Ph,s.defaultValues(Ph))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ly:return p;case Ph:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ly:return t===p;case Ph:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,optional:t.optional||!1,value:[new W({name:t.algorithmIdentifier||p}),new ue({name:t.algorithmParams||p,optional:!0})]})}fromSchema(e){V(e,JD);let t=R(e,e,s.schema({names:{algorithmIdentifier:s4,algorithmParams:oA}}));B.assertSchema(t,this.className),this.algorithmId=t.result.algorithm.valueBlock.toString(),oA in t.result&&(this.algorithmParams=t.result.params);}toSchema(){let e=[];return e.push(new W({value:this.algorithmId})),this.algorithmParams&&!(this.algorithmParams instanceof ue)&&e.push(this.algorithmParams),new b({value:e})}toJSON(){let e={algorithmId:this.algorithmId};return this.algorithmParams&&!(this.algorithmParams instanceof ue)&&(e.algorithmParams=this.algorithmParams.toJSON()),e}isEqual(e){return !(e instanceof s)||this.algorithmId!==e.algorithmId?!1:this.algorithmParams?e.algorithmParams?JSON.stringify(this.algorithmParams)===JSON.stringify(e.algorithmParams):!1:!e.algorithmParams}};k.CLASS_NAME="AlgorithmIdentifier";var au="altNames",zD=[au],j0=class s extends O{constructor(e={}){super(),this.altNames=d(e,au,s.defaultValues(au)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case au:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.altNames||p,value:We.schema()})]})}fromSchema(e){V(e,zD);let t=R(e,e,s.schema({names:{altNames:au}}));B.assertSchema(t,this.className),au in t.result&&(this.altNames=Array.from(t.result.altNames,r=>new We({schema:r})));}toSchema(){return new b({value:Array.from(this.altNames,e=>e.toSchema())})}toJSON(){return {altNames:Array.from(this.altNames,e=>e.toJSON())}}};j0.CLASS_NAME="AltName";var ou="type",cu="values",YD=[ou,cu],ut=class s extends O{constructor(e={}){super(),this.type=d(e,ou,s.defaultValues(ou)),this.values=d(e,cu,s.defaultValues(cu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ou:return p;case cu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ou:return t===p;case cu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.type||p}),new at({name:t.setName||p,value:[new he({name:t.values||p,value:new ue})]})]})}fromSchema(e){V(e,YD);let t=R(e,e,s.schema({names:{type:ou,values:cu}}));B.assertSchema(t,this.className),this.type=t.result.type.valueBlock.toString(),this.values=t.result.values;}toSchema(){return new b({value:[new W({value:this.type}),new at({value:this.values})]})}toJSON(){return {type:this.type,values:Array.from(this.values,e=>e.toJSON())}}};ut.CLASS_NAME="Attribute";var Kh="notBeforeTime",Wh="notAfterTime",ZD=[Kh,Wh],vn=class s extends O{constructor(e={}){super(),this.notBeforeTime=d(e,Kh,s.defaultValues(Kh)),this.notAfterTime=d(e,Wh,s.defaultValues(Wh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Kh:case Wh:return new Date(0,0,0);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new Ye({name:t.notBeforeTime||p}),new Ye({name:t.notAfterTime||p})]})}fromSchema(e){V(e,ZD);let t=R(e,e,s.schema({names:{notBeforeTime:Kh,notAfterTime:Wh}}));B.assertSchema(t,this.className),this.notBeforeTime=t.result.notBeforeTime.toDate(),this.notAfterTime=t.result.notAfterTime.toDate();}toSchema(){return new b({value:[new Ye({valueDate:this.notBeforeTime}),new Ye({valueDate:this.notAfterTime})]})}toJSON(){return {notBeforeTime:this.notBeforeTime,notAfterTime:this.notAfterTime}}};vn.CLASS_NAME="AttCertValidityPeriod";var Bh="names",OT="generalNames",xt=class s extends O{constructor(e={}){super(),this.names=d(e,Bh,s.defaultValues(Bh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case"names":return [];default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,Bh,{});return new b({optional:t,name:r.blockName||p,value:[new he({name:r.generalNames||p,value:We.schema()})]})}fromSchema(e){V(e,[Bh,OT]);let t=R(e,e,s.schema({names:{blockName:Bh,generalNames:OT}}));B.assertSchema(t,this.className),this.names=Array.from(t.result.generalNames,r=>new We({schema:r}));}toSchema(){return new b({value:Array.from(this.names,e=>e.toSchema())})}toJSON(){return {names:Array.from(this.names,e=>e.toJSON())}}};xt.CLASS_NAME="GeneralNames";var XD="2.5.29.9",QD="2.5.29.14",eL="2.5.29.15",tL="2.5.29.16",r4="2.5.29.17",n4="2.5.29.18",jA="2.5.29.19",sL="2.5.29.20",rL="2.5.29.27",nL="2.5.29.21",iL="2.5.29.24",i4="2.5.29.28",a4="2.5.29.29",o4="2.5.29.30",c4="2.5.29.31",MA="2.5.29.46",u4="2.5.29.32",Rs="2.5.29.32.0",aL="1.3.6.1.4.1.311.21.10",l4="2.5.29.33",$A="2.5.29.35",f4="2.5.29.36",oL="2.5.29.37",cL="2.5.29.54",FA="1.3.6.1.5.5.7.1.1",uL="1.3.6.1.5.5.7.1.11",lL="1.3.6.1.4.1.11129.2.4.2";var fL="1.3.6.1.4.1.311.21.7",hL="1.3.6.1.4.1.311.21.1",dL="1.3.6.1.5.5.7.1.3",qA="1.2.840.113549.1.7.1",h4="1.2.840.113549.1.7.2",d4="1.2.840.113549.1.7.3",m4="1.2.840.113549.1.7.6",mL="1.2.840.113549.1.9.16.1.4",RT="1.2.840.113549.1.9.22.1",pL="1.2.840.113549.1.9.22.2",VT="1.2.840.113549.1.9.22.3",DT="1.2.840.113549.1.9.23.1",gL="1.3.6.1.5.5.7",GA=`${gL}.48`,Dy=`${GA}.1.1`;var Fa="keyIdentifier",qa="authorityCertIssuer",Ga="authorityCertSerialNumber",yL=[Fa,qa,Ga],M0=class s extends O{constructor(e={}){super(),Fa in e&&(this.keyIdentifier=d(e,Fa,s.defaultValues(Fa))),qa in e&&(this.authorityCertIssuer=d(e,qa,s.defaultValues(qa))),Ga in e&&(this.authorityCertSerialNumber=d(e,Ga,s.defaultValues(Ga))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Fa:return new L;case qa:return [];case Ga:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new oe({name:t.keyIdentifier||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.authorityCertIssuer||p,value:We.schema()})]}),new oe({name:t.authorityCertSerialNumber||p,optional:!0,idBlock:{tagClass:3,tagNumber:2}})]})}fromSchema(e){V(e,yL);let t=R(e,e,s.schema({names:{keyIdentifier:Fa,authorityCertIssuer:qa,authorityCertSerialNumber:Ga}}));B.assertSchema(t,this.className),Fa in t.result&&(this.keyIdentifier=new L({valueHex:t.result.keyIdentifier.valueBlock.valueHex})),qa in t.result&&(this.authorityCertIssuer=Array.from(t.result.authorityCertIssuer,r=>new We({schema:r}))),Ga in t.result&&(this.authorityCertSerialNumber=new T({valueHex:t.result.authorityCertSerialNumber.valueBlock.valueHex}));}toSchema(){let e=[];return this.keyIdentifier&&e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.keyIdentifier.valueBlock.valueHexView})),this.authorityCertIssuer&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.authorityCertIssuer,t=>t.toSchema())})),this.authorityCertSerialNumber&&e.push(new oe({idBlock:{tagClass:3,tagNumber:2},valueHex:this.authorityCertSerialNumber.valueBlock.valueHexView})),new b({value:e})}toJSON(){let e={};return this.keyIdentifier&&(e.keyIdentifier=this.keyIdentifier.toJSON()),this.authorityCertIssuer&&(e.authorityCertIssuer=Array.from(this.authorityCertIssuer,t=>t.toJSON())),this.authorityCertSerialNumber&&(e.authorityCertSerialNumber=this.authorityCertSerialNumber.toJSON()),e}};M0.CLASS_NAME="AuthorityKeyIdentifier";var ja="pathLenConstraint",Ma="cA",$0=class s extends O{constructor(e={}){super(),this.cA=d(e,Ma,!1),ja in e&&(this.pathLenConstraint=d(e,ja,0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ma:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new Cs({optional:!0,name:t.cA||p}),new T({optional:!0,name:t.pathLenConstraint||p})]})}fromSchema(e){V(e,[Ma,ja]);let t=R(e,e,s.schema({names:{cA:Ma,pathLenConstraint:ja}}));B.assertSchema(t,this.className),Ma in t.result&&(this.cA=t.result.cA.valueBlock.value),ja in t.result&&(t.result.pathLenConstraint.valueBlock.isHexOnly?this.pathLenConstraint=t.result.pathLenConstraint:this.pathLenConstraint=t.result.pathLenConstraint.valueBlock.valueDec);}toSchema(){let e=[];return this.cA!==s.defaultValues(Ma)&&e.push(new Cs({value:this.cA})),ja in this&&(this.pathLenConstraint instanceof T?e.push(this.pathLenConstraint):e.push(new T({value:this.pathLenConstraint}))),new b({value:e})}toJSON(){let e={};return this.cA!==s.defaultValues(Ma)&&(e.cA=this.cA),ja in this&&(this.pathLenConstraint instanceof T?e.pathLenConstraint=this.pathLenConstraint.toJSON():e.pathLenConstraint=this.pathLenConstraint),e}};$0.CLASS_NAME="BasicConstraints";var R2="certificateIndex",V2="keyIndex",hw=class s extends O{constructor(e={}){super(),this.certificateIndex=d(e,R2,s.defaultValues(R2)),this.keyIndex=d(e,V2,s.defaultValues(V2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case R2:case V2:return 0;default:return super.defaultValues(e)}}static schema(){return new T}fromSchema(e){if(e.constructor.blockName()!==T.blockName())throw new Error("Object's schema was not verified against input data for CAVersion");let t=e.valueBlock.valueHex.slice(0),r=new Uint8Array(t);switch(!0){case t.byteLength<4:{let h=new ArrayBuffer(4);new Uint8Array(h).set(r,4-t.byteLength),t=h.slice(0);}break;case t.byteLength>4:{let h=new ArrayBuffer(4);new Uint8Array(h).set(r.slice(0,4)),t=h.slice(0);}break}let n=t.slice(0,2),i=new Uint8Array(n),a=i[0];i[0]=i[1],i[1]=a;let o=new Uint16Array(n);this.keyIndex=o[0];let c=t.slice(2),u=new Uint8Array(c);a=u[0],u[0]=u[1],u[1]=a;let l=new Uint16Array(c);this.certificateIndex=l[0];}toSchema(){let e=new ArrayBuffer(2),t=new Uint16Array(e);t[0]=this.certificateIndex;let r=new Uint8Array(e),n=r[0];r[0]=r[1],r[1]=n;let i=new ArrayBuffer(2),a=new Uint16Array(i);a[0]=this.keyIndex;let o=new Uint8Array(i);return n=o[0],o[0]=o[1],o[1]=n,new T({valueHex:Ra(i,e)})}toJSON(){return {certificateIndex:this.certificateIndex,keyIndex:this.keyIndex}}};hw.CLASS_NAME="CAVersion";var Jh="policyQualifierId",zh="qualifier",wL=[Jh,zh],F0=class s extends O{constructor(e={}){super(),this.policyQualifierId=d(e,Jh,s.defaultValues(Jh)),this.qualifier=d(e,zh,s.defaultValues(zh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Jh:return p;case zh:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.policyQualifierId||p}),new ue({name:t.qualifier||p})]})}fromSchema(e){V(e,wL);let t=R(e,e,s.schema({names:{policyQualifierId:Jh,qualifier:zh}}));B.assertSchema(t,this.className),this.policyQualifierId=t.result.policyQualifierId.valueBlock.toString(),this.qualifier=t.result.qualifier;}toSchema(){return new b({value:[new W({value:this.policyQualifierId}),this.qualifier]})}toJSON(){return {policyQualifierId:this.policyQualifierId,qualifier:this.qualifier.toJSON()}}};F0.CLASS_NAME="PolicyQualifierInfo";var Yh="policyIdentifier",Ka="policyQualifiers",bL=[Yh,Ka],q0=class s extends O{constructor(e={}){super(),this.policyIdentifier=d(e,Yh,s.defaultValues(Yh)),Ka in e&&(this.policyQualifiers=d(e,Ka,s.defaultValues(Ka))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Yh:return p;case Ka:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.policyIdentifier||p}),new b({optional:!0,value:[new he({name:t.policyQualifiers||p,value:F0.schema()})]})]})}fromSchema(e){V(e,bL);let t=R(e,e,s.schema({names:{policyIdentifier:Yh,policyQualifiers:Ka}}));B.assertSchema(t,this.className),this.policyIdentifier=t.result.policyIdentifier.valueBlock.toString(),Ka in t.result&&(this.policyQualifiers=Array.from(t.result.policyQualifiers,r=>new F0({schema:r})));}toSchema(){let e=[];return e.push(new W({value:this.policyIdentifier})),this.policyQualifiers&&e.push(new b({value:Array.from(this.policyQualifiers,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={policyIdentifier:this.policyIdentifier};return this.policyQualifiers&&(e.policyQualifiers=Array.from(this.policyQualifiers,t=>t.toJSON())),e}};q0.CLASS_NAME="PolicyInformation";var Zh="certificatePolicies",SL=[Zh],G0=class s extends O{constructor(e={}){super(),this.certificatePolicies=d(e,Zh,s.defaultValues(Zh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Zh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.certificatePolicies||p,value:q0.schema()})]})}fromSchema(e){V(e,SL);let t=R(e,e,s.schema({names:{certificatePolicies:Zh}}));B.assertSchema(t,this.className),this.certificatePolicies=Array.from(t.result.certificatePolicies,r=>new q0({schema:r}));}toSchema(){return new b({value:Array.from(this.certificatePolicies,e=>e.toSchema())})}toJSON(){return {certificatePolicies:Array.from(this.certificatePolicies,e=>e.toJSON())}}};G0.CLASS_NAME="CertificatePolicies";var Xh="templateID",rn="templateMajorVersion",nn="templateMinorVersion",vL=[Xh,rn,nn],cA=class s extends O{constructor(e={}){super(),this.templateID=d(e,Xh,s.defaultValues(Xh)),rn in e&&(this.templateMajorVersion=d(e,rn,s.defaultValues(rn))),nn in e&&(this.templateMinorVersion=d(e,nn,s.defaultValues(nn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Xh:return p;case rn:case nn:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.templateID||p}),new T({name:t.templateMajorVersion||p,optional:!0}),new T({name:t.templateMinorVersion||p,optional:!0})]})}fromSchema(e){V(e,vL);let t=R(e,e,s.schema({names:{templateID:Xh,templateMajorVersion:rn,templateMinorVersion:nn}}));B.assertSchema(t,this.className),this.templateID=t.result.templateID.valueBlock.toString(),rn in t.result&&(this.templateMajorVersion=t.result.templateMajorVersion.valueBlock.valueDec),nn in t.result&&(this.templateMinorVersion=t.result.templateMinorVersion.valueBlock.valueDec);}toSchema(){let e=[];return e.push(new W({value:this.templateID})),rn in this&&e.push(new T({value:this.templateMajorVersion})),nn in this&&e.push(new T({value:this.templateMinorVersion})),new b({value:e})}toJSON(){let e={templateID:this.templateID};return rn in this&&(e.templateMajorVersion=this.templateMajorVersion),nn in this&&(e.templateMinorVersion=this.templateMinorVersion),e}},Wa="distributionPoint",p4="distributionPointNames",Ja="reasons",za="cRLIssuer",g4="cRLIssuerNames",EL=[Wa,p4,Ja,za,g4],K0=class s extends O{constructor(e={}){super(),Wa in e&&(this.distributionPoint=d(e,Wa,s.defaultValues(Wa))),Ja in e&&(this.reasons=d(e,Ja,s.defaultValues(Ja))),za in e&&(this.cRLIssuer=d(e,za,s.defaultValues(za))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Wa:return [];case Ja:return new Te;case za:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new A({name:t.distributionPoint||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.distributionPointNames||p,value:We.schema()})]}),new A({name:t.distributionPoint||p,optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Xe.schema().valueBlock.value})]})]}),new oe({name:t.reasons||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new A({name:t.cRLIssuer||p,optional:!0,idBlock:{tagClass:3,tagNumber:2},value:[new he({name:t.cRLIssuerNames||p,value:We.schema()})]})]})}fromSchema(e){V(e,EL);let t=R(e,e,s.schema({names:{distributionPoint:Wa,distributionPointNames:p4,reasons:Ja,cRLIssuer:za,cRLIssuerNames:g4}}));B.assertSchema(t,this.className),Wa in t.result&&(t.result.distributionPoint.idBlock.tagNumber===0&&(this.distributionPoint=Array.from(t.result.distributionPointNames,r=>new We({schema:r}))),t.result.distributionPoint.idBlock.tagNumber===1&&(this.distributionPoint=new Xe({schema:new b({value:t.result.distributionPoint.valueBlock.value})}))),Ja in t.result&&(this.reasons=new Te({valueHex:t.result.reasons.valueBlock.valueHex})),za in t.result&&(this.cRLIssuer=Array.from(t.result.cRLIssuerNames,r=>new We({schema:r})));}toSchema(){let e=[];if(this.distributionPoint){let t;this.distributionPoint instanceof Array?t=new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.distributionPoint,r=>r.toSchema())}):t=new A({idBlock:{tagClass:3,tagNumber:1},value:[this.distributionPoint.toSchema()]}),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[t]}));}return this.reasons&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:this.reasons.valueBlock.valueHexView})),this.cRLIssuer&&e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:Array.from(this.cRLIssuer,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={};return this.distributionPoint&&(this.distributionPoint instanceof Array?e.distributionPoint=Array.from(this.distributionPoint,t=>t.toJSON()):e.distributionPoint=this.distributionPoint.toJSON()),this.reasons&&(e.reasons=this.reasons.toJSON()),this.cRLIssuer&&(e.cRLIssuer=Array.from(this.cRLIssuer,t=>t.toJSON())),e}};K0.CLASS_NAME="DistributionPoint";var Qh="distributionPoints",xL=[Qh],W0=class s extends O{constructor(e={}){super(),this.distributionPoints=d(e,Qh,s.defaultValues(Qh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Qh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.distributionPoints||p,value:K0.schema()})]})}fromSchema(e){V(e,xL);let t=R(e,e,s.schema({names:{distributionPoints:Qh}}));B.assertSchema(t,this.className),this.distributionPoints=Array.from(t.result.distributionPoints,r=>new K0({schema:r}));}toSchema(){return new b({value:Array.from(this.distributionPoints,e=>e.toSchema())})}toJSON(){return {distributionPoints:Array.from(this.distributionPoints,e=>e.toJSON())}}};W0.CLASS_NAME="CRLDistributionPoints";var ed="keyPurposes",AL=[ed],dw=class s extends O{constructor(e={}){super(),this.keyPurposes=d(e,ed,s.defaultValues(ed)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ed:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.keyPurposes||p,value:new W})]})}fromSchema(e){V(e,AL);let t=R(e,e,s.schema({names:{keyPurposes:ed}}));B.assertSchema(t,this.className),this.keyPurposes=Array.from(t.result.keyPurposes,r=>r.valueBlock.toString());}toSchema(){return new b({value:Array.from(this.keyPurposes,e=>new W({value:e}))})}toJSON(){return {keyPurposes:Array.from(this.keyPurposes)}}};dw.CLASS_NAME="ExtKeyUsage";var Oh="accessDescriptions",J0=class s extends O{constructor(e={}){super(),this.accessDescriptions=d(e,Oh,s.defaultValues(Oh)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Oh:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.accessDescriptions||p,value:_0.schema()})]})}fromSchema(e){V(e,[Oh]);let t=R(e,e,s.schema({names:{accessDescriptions:Oh}}));B.assertSchema(t,this.className),this.accessDescriptions=Array.from(t.result.accessDescriptions,r=>new _0({schema:r}));}toSchema(){return new b({value:Array.from(this.accessDescriptions,e=>e.toSchema())})}toJSON(){return {accessDescriptions:Array.from(this.accessDescriptions,e=>e.toJSON())}}};J0.CLASS_NAME="InfoAccess";var Ya="distributionPoint",y4="distributionPointNames",ui="onlyContainsUserCerts",li="onlyContainsCACerts",fi="onlySomeReasons",hi="indirectCRL",di="onlyContainsAttributeCerts",IL=[Ya,y4,ui,li,fi,hi,di],mw=class s extends O{constructor(e={}){super(),Ya in e&&(this.distributionPoint=d(e,Ya,s.defaultValues(Ya))),this.onlyContainsUserCerts=d(e,ui,s.defaultValues(ui)),this.onlyContainsCACerts=d(e,li,s.defaultValues(li)),fi in e&&(this.onlySomeReasons=d(e,fi,s.defaultValues(fi))),this.indirectCRL=d(e,hi,s.defaultValues(hi)),this.onlyContainsAttributeCerts=d(e,di,s.defaultValues(di)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ya:return [];case ui:return !1;case li:return !1;case fi:return 0;case hi:return !1;case di:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ze({value:[new A({name:t.distributionPoint||p,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.distributionPointNames||p,value:We.schema()})]}),new A({name:t.distributionPoint||p,idBlock:{tagClass:3,tagNumber:1},value:Xe.schema().valueBlock.value})]})]}),new oe({name:t.onlyContainsUserCerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:t.onlyContainsCACerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:2}}),new oe({name:t.onlySomeReasons||p,optional:!0,idBlock:{tagClass:3,tagNumber:3}}),new oe({name:t.indirectCRL||p,optional:!0,idBlock:{tagClass:3,tagNumber:4}}),new oe({name:t.onlyContainsAttributeCerts||p,optional:!0,idBlock:{tagClass:3,tagNumber:5}})]})}fromSchema(e){V(e,IL);let t=R(e,e,s.schema({names:{distributionPoint:Ya,distributionPointNames:y4,onlyContainsUserCerts:ui,onlyContainsCACerts:li,onlySomeReasons:fi,indirectCRL:hi,onlyContainsAttributeCerts:di}}));if(B.assertSchema(t,this.className),Ya in t.result)switch(!0){case t.result.distributionPoint.idBlock.tagNumber===0:this.distributionPoint=Array.from(t.result.distributionPointNames,r=>new We({schema:r}));break;case t.result.distributionPoint.idBlock.tagNumber===1:this.distributionPoint=new Xe({schema:new b({value:t.result.distributionPoint.valueBlock.value})});break;default:throw new Error("Unknown tagNumber for distributionPoint: {$asn1.result.distributionPoint.idBlock.tagNumber}")}if(ui in t.result){let r=new Uint8Array(t.result.onlyContainsUserCerts.valueBlock.valueHex);this.onlyContainsUserCerts=r[0]!==0;}if(li in t.result){let r=new Uint8Array(t.result.onlyContainsCACerts.valueBlock.valueHex);this.onlyContainsCACerts=r[0]!==0;}if(fi in t.result){let r=new Uint8Array(t.result.onlySomeReasons.valueBlock.valueHex);this.onlySomeReasons=r[0];}if(hi in t.result){let r=new Uint8Array(t.result.indirectCRL.valueBlock.valueHex);this.indirectCRL=r[0]!==0;}if(di in t.result){let r=new Uint8Array(t.result.onlyContainsAttributeCerts.valueBlock.valueHex);this.onlyContainsAttributeCerts=r[0]!==0;}}toSchema(){let e=[];if(this.distributionPoint){let t;this.distributionPoint instanceof Array?t=new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.distributionPoint,r=>r.toSchema())}):(t=this.distributionPoint.toSchema(),t.idBlock.tagClass=3,t.idBlock.tagNumber=1),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[t]}));}if(this.onlyContainsUserCerts!==s.defaultValues(ui)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:new Uint8Array([255]).buffer})),this.onlyContainsCACerts!==s.defaultValues(li)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:2},valueHex:new Uint8Array([255]).buffer})),this.onlySomeReasons!==void 0){let t=new ArrayBuffer(1),r=new Uint8Array(t);r[0]=this.onlySomeReasons,e.push(new oe({idBlock:{tagClass:3,tagNumber:3},valueHex:t}));}return this.indirectCRL!==s.defaultValues(hi)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:4},valueHex:new Uint8Array([255]).buffer})),this.onlyContainsAttributeCerts!==s.defaultValues(di)&&e.push(new oe({idBlock:{tagClass:3,tagNumber:5},valueHex:new Uint8Array([255]).buffer})),new b({value:e})}toJSON(){let e={};return this.distributionPoint&&(this.distributionPoint instanceof Array?e.distributionPoint=Array.from(this.distributionPoint,t=>t.toJSON()):e.distributionPoint=this.distributionPoint.toJSON()),this.onlyContainsUserCerts!==s.defaultValues(ui)&&(e.onlyContainsUserCerts=this.onlyContainsUserCerts),this.onlyContainsCACerts!==s.defaultValues(li)&&(e.onlyContainsCACerts=this.onlyContainsCACerts),fi in this&&(e.onlySomeReasons=this.onlySomeReasons),this.indirectCRL!==s.defaultValues(hi)&&(e.indirectCRL=this.indirectCRL),this.onlyContainsAttributeCerts!==s.defaultValues(di)&&(e.onlyContainsAttributeCerts=this.onlyContainsAttributeCerts),e}};mw.CLASS_NAME="IssuingDistributionPoint";var td="base",uu="minimum",mi="maximum",CL=[td,uu,mi],Wo=class s extends O{constructor(e={}){super(),this.base=d(e,td,s.defaultValues(td)),this.minimum=d(e,uu,s.defaultValues(uu)),mi in e&&(this.maximum=d(e,mi,s.defaultValues(mi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case td:return new We;case uu:return 0;case mi:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[We.schema(t.base||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.minimum||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new T({name:t.maximum||p})]})]})}fromSchema(e){V(e,CL);let t=R(e,e,s.schema({names:{base:{names:{blockName:td}},minimum:uu,maximum:mi}}));B.assertSchema(t,this.className),this.base=new We({schema:t.result.base}),uu in t.result&&(t.result.minimum.valueBlock.isHexOnly?this.minimum=t.result.minimum:this.minimum=t.result.minimum.valueBlock.valueDec),mi in t.result&&(t.result.maximum.valueBlock.isHexOnly?this.maximum=t.result.maximum:this.maximum=t.result.maximum.valueBlock.valueDec);}toSchema(){let e=[];if(e.push(this.base.toSchema()),this.minimum!==0){let t=0;this.minimum instanceof T?t=this.minimum:t=new T({value:this.minimum}),e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[t]}));}if(mi in this){let t=0;this.maximum instanceof T?t=this.maximum:t=new T({value:this.maximum}),e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[t]}));}return new b({value:e})}toJSON(){let e={base:this.base.toJSON()};return this.minimum!==0&&(typeof this.minimum=="number"?e.minimum=this.minimum:e.minimum=this.minimum.toJSON()),this.maximum!==void 0&&(typeof this.maximum=="number"?e.maximum=this.maximum:e.maximum=this.maximum.toJSON()),e}};Wo.CLASS_NAME="GeneralSubtree";var Za="permittedSubtrees",Xa="excludedSubtrees",NL=[Za,Xa],pw=class s extends O{constructor(e={}){super(),Za in e&&(this.permittedSubtrees=d(e,Za,s.defaultValues(Za))),Xa in e&&(this.excludedSubtrees=d(e,Xa,s.defaultValues(Xa))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Za:case Xa:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.permittedSubtrees||p,value:Wo.schema()})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.excludedSubtrees||p,value:Wo.schema()})]})]})}fromSchema(e){V(e,NL);let t=R(e,e,s.schema({names:{permittedSubtrees:Za,excludedSubtrees:Xa}}));B.assertSchema(t,this.className),Za in t.result&&(this.permittedSubtrees=Array.from(t.result.permittedSubtrees,r=>new Wo({schema:r}))),Xa in t.result&&(this.excludedSubtrees=Array.from(t.result.excludedSubtrees,r=>new Wo({schema:r})));}toSchema(){let e=[];return this.permittedSubtrees&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.permittedSubtrees,t=>t.toSchema())})),this.excludedSubtrees&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.excludedSubtrees,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={};return this.permittedSubtrees&&(e.permittedSubtrees=Array.from(this.permittedSubtrees,t=>t.toJSON())),this.excludedSubtrees&&(e.excludedSubtrees=Array.from(this.excludedSubtrees,t=>t.toJSON())),e}};pw.CLASS_NAME="NameConstraints";var an="requireExplicitPolicy",on="inhibitPolicyMapping",TL=[an,on],gw=class s extends O{constructor(e={}){super(),an in e&&(this.requireExplicitPolicy=d(e,an,s.defaultValues(an))),on in e&&(this.inhibitPolicyMapping=d(e,on,s.defaultValues(on))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case an:return 0;case on:return 0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new oe({name:t.requireExplicitPolicy||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.inhibitPolicyMapping||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,TL);let t=R(e,e,s.schema({names:{requireExplicitPolicy:an,inhibitPolicyMapping:on}}));if(B.assertSchema(t,this.className),an in t.result){let r=t.result.requireExplicitPolicy;r.idBlock.tagClass=1,r.idBlock.tagNumber=2;let n=r.toBER(!1),i=pt(n);B.assert(i,"Integer"),this.requireExplicitPolicy=i.result.valueBlock.valueDec;}if(on in t.result){let r=t.result.inhibitPolicyMapping;r.idBlock.tagClass=1,r.idBlock.tagNumber=2;let n=r.toBER(!1),i=pt(n);B.assert(i,"Integer"),this.inhibitPolicyMapping=i.result.valueBlock.valueDec;}}toSchema(){let e=[];if(an in this){let t=new T({value:this.requireExplicitPolicy});t.idBlock.tagClass=3,t.idBlock.tagNumber=0,e.push(t);}if(on in this){let t=new T({value:this.inhibitPolicyMapping});t.idBlock.tagClass=3,t.idBlock.tagNumber=1,e.push(t);}return new b({value:e})}toJSON(){let e={};return an in this&&(e.requireExplicitPolicy=this.requireExplicitPolicy),on in this&&(e.inhibitPolicyMapping=this.inhibitPolicyMapping),e}};gw.CLASS_NAME="PolicyConstraints";var sd="issuerDomainPolicy",rd="subjectDomainPolicy",kL=[sd,rd],z0=class s extends O{constructor(e={}){super(),this.issuerDomainPolicy=d(e,sd,s.defaultValues(sd)),this.subjectDomainPolicy=d(e,rd,s.defaultValues(rd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case sd:return p;case rd:return p;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.issuerDomainPolicy||p}),new W({name:t.subjectDomainPolicy||p})]})}fromSchema(e){V(e,kL);let t=R(e,e,s.schema({names:{issuerDomainPolicy:sd,subjectDomainPolicy:rd}}));B.assertSchema(t,this.className),this.issuerDomainPolicy=t.result.issuerDomainPolicy.valueBlock.toString(),this.subjectDomainPolicy=t.result.subjectDomainPolicy.valueBlock.toString();}toSchema(){return new b({value:[new W({value:this.issuerDomainPolicy}),new W({value:this.subjectDomainPolicy})]})}toJSON(){return {issuerDomainPolicy:this.issuerDomainPolicy,subjectDomainPolicy:this.subjectDomainPolicy}}};z0.CLASS_NAME="PolicyMapping";var nd="mappings",PL=[nd],yw=class s extends O{constructor(e={}){super(),this.mappings=d(e,nd,s.defaultValues(nd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case nd:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.mappings||p,value:z0.schema()})]})}fromSchema(e){V(e,PL);let t=R(e,e,s.schema({names:{mappings:nd}}));B.assertSchema(t,this.className),this.mappings=Array.from(t.result.mappings,r=>new z0({schema:r}));}toSchema(){return new b({value:Array.from(this.mappings,e=>e.toSchema())})}toJSON(){return {mappings:Array.from(this.mappings,e=>e.toJSON())}}};yw.CLASS_NAME="PolicyMappings";var pi="notBefore",gi="notAfter",BL=[pi,gi],ww=class s extends O{constructor(e={}){super(),pi in e&&(this.notBefore=d(e,pi,s.defaultValues(pi))),gi in e&&(this.notAfter=d(e,gi,s.defaultValues(gi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case pi:return new Date;case gi:return new Date;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new oe({name:t.notBefore||p,optional:!0,idBlock:{tagClass:3,tagNumber:0}}),new oe({name:t.notAfter||p,optional:!0,idBlock:{tagClass:3,tagNumber:1}})]})}fromSchema(e){V(e,BL);let t=R(e,e,s.schema({names:{notBefore:pi,notAfter:gi}}));if(B.assertSchema(t,this.className),pi in t.result){let r=new Ye;r.fromBuffer(t.result.notBefore.valueBlock.valueHex),this.notBefore=r.toDate();}if(gi in t.result){let r=new Ye({valueHex:t.result.notAfter.valueBlock.valueHex});r.fromBuffer(t.result.notAfter.valueBlock.valueHex),this.notAfter=r.toDate();}}toSchema(){let e=[];return pi in this&&e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:new Ye({valueDate:this.notBefore}).valueBlock.valueHexView})),gi in this&&e.push(new oe({idBlock:{tagClass:3,tagNumber:1},valueHex:new Ye({valueDate:this.notAfter}).valueBlock.valueHexView})),new b({value:e})}toJSON(){let e={};return this.notBefore&&(e.notBefore=this.notBefore),this.notAfter&&(e.notAfter=this.notAfter),e}};ww.CLASS_NAME="PrivateKeyUsagePeriod";var lu="id",cn="type",fu="values",OL=[lu,cn],RL=[fu],Y0=class s extends O{constructor(e={}){super(),this.id=d(e,lu,s.defaultValues(lu)),cn in e&&(this.type=d(e,cn,s.defaultValues(cn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case lu:return p;case cn:return new it;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case lu:return t===p;case cn:return t instanceof it;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.id||p}),new ue({name:t.type||p,optional:!0})]})}fromSchema(e){V(e,OL);let t=R(e,e,s.schema({names:{id:lu,type:cn}}));B.assertSchema(t,this.className),this.id=t.result.id.valueBlock.toString(),cn in t.result&&(this.type=t.result.type);}toSchema(){let e=[new W({value:this.id})];return cn in this&&e.push(this.type),new b({value:e})}toJSON(){let e={id:this.id};return this.type&&(e.type=this.type.toJSON()),e}};Y0.CLASS_NAME="QCStatement";var bw=class s extends O{constructor(e={}){super(),this.values=d(e,fu,s.defaultValues(fu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.values||p,value:Y0.schema(t.value||{})})]})}fromSchema(e){V(e,RL);let t=R(e,e,s.schema({names:{values:fu}}));B.assertSchema(t,this.className),this.values=Array.from(t.result.values,r=>new Y0({schema:r}));}toSchema(){return new b({value:Array.from(this.values,e=>e.toSchema())})}toJSON(){return {values:Array.from(this.values,e=>e.toJSON())}}};bw.CLASS_NAME="QCStatements";var Qa,Ar=class{static register(e,t,r){this.namedCurves[e.toLowerCase()]=this.namedCurves[t]={name:e,id:t,size:r};}static find(e){return this.namedCurves[e.toLowerCase()]||null}};Qa=Ar;Ar.namedCurves={};Qa.register("P-256","1.2.840.10045.3.1.7",32),Qa.register("P-384","1.3.132.0.34",48),Qa.register("P-521","1.3.132.0.35",66),Qa.register("brainpoolP256r1","1.3.36.3.3.2.8.1.1.7",32),Qa.register("brainpoolP384r1","1.3.36.3.3.2.8.1.1.11",48),Qa.register("brainpoolP512r1","1.3.36.3.3.2.8.1.1.13",64);var fy="x",hy="y",dy="namedCurve",ir=class s extends O{constructor(e={}){super(),this.x=d(e,fy,s.defaultValues(fy)),this.y=d(e,hy,s.defaultValues(hy)),this.namedCurve=d(e,dy,s.defaultValues(dy)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fy:case hy:return dt;case dy:return p;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fy:case hy:return t instanceof ArrayBuffer&&zn(t,s.defaultValues(e));case dy:return typeof t=="string"&&t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(){return new Ua}fromSchema(e){let t=ae.toUint8Array(e);if(t[0]!==4)throw new Error("Object's schema was not verified against input data for ECPublicKey");let r=Ar.find(this.namedCurve);if(!r)throw new Error(`Incorrect curve OID: ${this.namedCurve}`);let n=r.size;if(t.byteLength!==n*2+1)throw new Error("Object's schema was not verified against input data for ECPublicKey");this.namedCurve=r.name,this.x=t.slice(1,n+1).buffer,this.y=t.slice(1+n,n*2+1).buffer;}toSchema(){return new Ua({data:Ra(new Uint8Array([4]).buffer,this.x,this.y)})}toJSON(){let e=Ar.find(this.namedCurve);return {crv:e?e.name:this.namedCurve,x:B1(bh(this.x),!0,!0,!1),y:B1(bh(this.y),!0,!0,!1)}}fromJSON(e){He.assert("json",e,"crv","x","y");let t=0,r=Ar.find(e.crv);r&&(this.namedCurve=r.id,t=r.size);let n=Va(Jc(e.x,!0));if(n.byteLength<t){this.x=new ArrayBuffer(t);let a=new Uint8Array(this.x),o=new Uint8Array(n);a.set(o,1);}else this.x=n.slice(0,t);let i=Va(Jc(e.y,!0));if(i.byteLength<t){this.y=new ArrayBuffer(t);let a=new Uint8Array(this.y),o=new Uint8Array(i);a.set(o,1);}else this.y=i.slice(0,t);}};ir.CLASS_NAME="ECPublicKey";var id="modulus",ad="publicExponent",VL=[id,ad],Z0=class s extends O{constructor(e={}){super(),this.modulus=d(e,id,s.defaultValues(id)),this.publicExponent=d(e,ad,s.defaultValues(ad)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case id:return new T;case ad:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.modulus||p}),new T({name:t.publicExponent||p})]})}fromSchema(e){V(e,VL);let t=R(e,e,s.schema({names:{modulus:id,publicExponent:ad}}));B.assertSchema(t,this.className),this.modulus=t.result.modulus.convertFromDER(256),this.publicExponent=t.result.publicExponent;}toSchema(){return new b({value:[this.modulus.convertToDER(),this.publicExponent]})}toJSON(){return {n:fe.ToBase64Url(this.modulus.valueBlock.valueHexView),e:fe.ToBase64Url(this.publicExponent.valueBlock.valueHexView)}}fromJSON(e){He.assert("json",e,"n","e");let t=Va(Jc(e.n,!0));this.modulus=new T({valueHex:t.slice(0,Math.pow(2,FN(t.byteLength)))}),this.publicExponent=new T({valueHex:Va(Jc(e.e,!0)).slice(0,3)});}};Z0.CLASS_NAME="RSAPublicKey";var od="algorithm",cd="subjectPublicKey",DL=[od,cd],Ts=class s extends O{get parsedKey(){if(this._parsedKey===void 0){switch(this.algorithm.algorithmId){case"1.2.840.10045.2.1":if("algorithmParams"in this.algorithm&&this.algorithm.algorithmParams.constructor.blockName()===W.blockName())try{this._parsedKey=new ir({namedCurve:this.algorithm.algorithmParams.valueBlock.toString(),schema:this.subjectPublicKey.valueBlock.valueHexView});}catch{}break;case"1.2.840.113549.1.1.1":{let e=pt(this.subjectPublicKey.valueBlock.valueHexView);if(e.offset!==-1)try{this._parsedKey=new Z0({schema:e.result});}catch{}}break}this._parsedKey||(this._parsedKey=null);}return this._parsedKey||void 0}set parsedKey(e){this._parsedKey=e;}constructor(e={}){super(),this.algorithm=d(e,od,s.defaultValues(od)),this.subjectPublicKey=d(e,cd,s.defaultValues(cd));let t=d(e,"parsedKey",null);t&&(this.parsedKey=t),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case od:return new k;case cd:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.algorithm||{}),new Te({name:t.subjectPublicKey||p})]})}fromSchema(e){V(e,DL);let t=R(e,e,s.schema({names:{algorithm:{names:{blockName:od}},subjectPublicKey:cd}}));B.assertSchema(t,this.className),this.algorithm=new k({schema:t.result.algorithm}),this.subjectPublicKey=t.result.subjectPublicKey;}toSchema(){return new b({value:[this.algorithm.toSchema(),this.subjectPublicKey]})}toJSON(){if(!this.parsedKey)return {algorithm:this.algorithm.toJSON(),subjectPublicKey:this.subjectPublicKey.toJSON()};let e={};switch(this.algorithm.algorithmId){case"1.2.840.10045.2.1":e.kty="EC";break;case"1.2.840.113549.1.1.1":e.kty="RSA";break}let t=this.parsedKey.toJSON();return Object.assign(e,t),e}fromJSON(e){if("kty"in e){switch(e.kty.toUpperCase()){case"EC":this.parsedKey=new ir({json:e}),this.algorithm=new k({algorithmId:"1.2.840.10045.2.1",algorithmParams:new W({value:this.parsedKey.namedCurve})});break;case"RSA":this.parsedKey=new Z0({json:e}),this.algorithm=new k({algorithmId:"1.2.840.113549.1.1.1",algorithmParams:new it});break;default:throw new Error(`Invalid value for "kty" parameter: ${e.kty}`)}this.subjectPublicKey=new Te({valueHex:this.parsedKey.toSchema().toBER(!1)});}}async importKey(e,t=Ie(!0)){try{if(!e)throw new Error("Need to provide publicKey input parameter");let r=await t.exportKey("spki",e),n=pt(r);try{this.fromSchema(n.result);}catch{throw new Error("Error during initializing object from schema")}}catch(r){let n=r instanceof Error?r.message:`${r}`;throw new Error(`Error during exporting public key: ${n}`)}}};Ts.CLASS_NAME="PublicKeyInfo";var hu="version",du="privateKey",er="namedCurve",yi="publicKey",LL=[hu,du,er,yi],X0=class s extends O{constructor(e={}){super(),this.version=d(e,hu,s.defaultValues(hu)),this.privateKey=d(e,du,s.defaultValues(du)),er in e&&(this.namedCurve=d(e,er,s.defaultValues(er))),yi in e&&(this.publicKey=d(e,yi,s.defaultValues(yi))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case hu:return 1;case du:return new L;case er:return p;case yi:return new ir;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case hu:return t===s.defaultValues(e);case du:return t.isEqual(s.defaultValues(e));case er:return t===p;case yi:return ir.compareWithDefault(er,t.namedCurve)&&ir.compareWithDefault("x",t.x)&&ir.compareWithDefault("y",t.y);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new L({name:t.privateKey||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new W({name:t.namedCurve||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new Te({name:t.publicKey||p})]})]})}fromSchema(e){V(e,LL);let t=R(e,e,s.schema({names:{version:hu,privateKey:du,namedCurve:er,publicKey:yi}}));if(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.privateKey=t.result.privateKey,er in t.result&&(this.namedCurve=t.result.namedCurve.valueBlock.toString()),yi in t.result){let r={schema:t.result.publicKey.valueBlock.valueHex};er in this&&(r.namedCurve=this.namedCurve),this.publicKey=new ir(r);}}toSchema(){let e=[new T({value:this.version}),this.privateKey];return this.namedCurve&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new W({value:this.namedCurve})]})),this.publicKey&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new Te({valueHex:this.publicKey.toSchema().toBER(!1)})]})),new b({value:e})}toJSON(){if(!this.namedCurve||s.compareWithDefault(er,this.namedCurve))throw new Error('Not enough information for making JSON: absent "namedCurve" value');let e=Ar.find(this.namedCurve),t={crv:e?e.name:this.namedCurve,d:fe.ToBase64Url(this.privateKey.valueBlock.valueHexView)};if(this.publicKey){let r=this.publicKey.toJSON();t.x=r.x,t.y=r.y;}return t}fromJSON(e){He.assert("json",e,"crv","d");let t=0,r=Ar.find(e.crv);r&&(this.namedCurve=r.id,t=r.size);let n=fe.FromBase64Url(e.d);if(n.byteLength<t){let i=new ArrayBuffer(t),a=new Uint8Array(i),o=new Uint8Array(n);a.set(o,1),this.privateKey=new L({valueHex:i});}else this.privateKey=new L({valueHex:n.slice(0,t)});e.x&&e.y&&(this.publicKey=new ir({json:e}));}};X0.CLASS_NAME="ECPrivateKey";var ud="prime",ld="exponent",fd="coefficient",UL=[ud,ld,fd],Cl=class s extends O{constructor(e={}){super(),this.prime=d(e,ud,s.defaultValues(ud)),this.exponent=d(e,ld,s.defaultValues(ld)),this.coefficient=d(e,fd,s.defaultValues(fd)),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ud:return new T;case ld:return new T;case fd:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.prime||p}),new T({name:t.exponent||p}),new T({name:t.coefficient||p})]})}fromSchema(e){V(e,UL);let t=R(e,e,s.schema({names:{prime:ud,exponent:ld,coefficient:fd}}));B.assertSchema(t,this.className),this.prime=t.result.prime.convertFromDER(),this.exponent=t.result.exponent.convertFromDER(),this.coefficient=t.result.coefficient.convertFromDER();}toSchema(){return new b({value:[this.prime.convertToDER(),this.exponent.convertToDER(),this.coefficient.convertToDER()]})}toJSON(){return {r:fe.ToBase64Url(this.prime.valueBlock.valueHexView),d:fe.ToBase64Url(this.exponent.valueBlock.valueHexView),t:fe.ToBase64Url(this.coefficient.valueBlock.valueHexView)}}fromJSON(e){He.assert("json",e,"r","d","r"),this.prime=new T({valueHex:fe.FromBase64Url(e.r)}),this.exponent=new T({valueHex:fe.FromBase64Url(e.d)}),this.coefficient=new T({valueHex:fe.FromBase64Url(e.t)});}};Cl.CLASS_NAME="OtherPrimeInfo";var hd="version",dd="modulus",md="publicExponent",pd="privateExponent",gd="prime1",yd="prime2",wd="exponent1",bd="exponent2",Sd="coefficient",eo="otherPrimeInfos",HL=[hd,dd,md,pd,gd,yd,wd,bd,Sd,eo],Q0=class s extends O{constructor(e={}){super(),this.version=d(e,hd,s.defaultValues(hd)),this.modulus=d(e,dd,s.defaultValues(dd)),this.publicExponent=d(e,md,s.defaultValues(md)),this.privateExponent=d(e,pd,s.defaultValues(pd)),this.prime1=d(e,gd,s.defaultValues(gd)),this.prime2=d(e,yd,s.defaultValues(yd)),this.exponent1=d(e,wd,s.defaultValues(wd)),this.exponent2=d(e,bd,s.defaultValues(bd)),this.coefficient=d(e,Sd,s.defaultValues(Sd)),eo in e&&(this.otherPrimeInfos=d(e,eo,s.defaultValues(eo))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case hd:return 0;case dd:return new T;case md:return new T;case pd:return new T;case gd:return new T;case yd:return new T;case wd:return new T;case bd:return new T;case Sd:return new T;case eo:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new T({name:t.modulus||p}),new T({name:t.publicExponent||p}),new T({name:t.privateExponent||p}),new T({name:t.prime1||p}),new T({name:t.prime2||p}),new T({name:t.exponent1||p}),new T({name:t.exponent2||p}),new T({name:t.coefficient||p}),new b({optional:!0,value:[new he({name:t.otherPrimeInfosName||p,value:Cl.schema(t.otherPrimeInfo||{})})]})]})}fromSchema(e){V(e,HL);let t=R(e,e,s.schema({names:{version:hd,modulus:dd,publicExponent:md,privateExponent:pd,prime1:gd,prime2:yd,exponent1:wd,exponent2:bd,coefficient:Sd,otherPrimeInfo:{names:{blockName:eo}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.modulus=t.result.modulus.convertFromDER(256),this.publicExponent=t.result.publicExponent,this.privateExponent=t.result.privateExponent.convertFromDER(256),this.prime1=t.result.prime1.convertFromDER(128),this.prime2=t.result.prime2.convertFromDER(128),this.exponent1=t.result.exponent1.convertFromDER(128),this.exponent2=t.result.exponent2.convertFromDER(128),this.coefficient=t.result.coefficient.convertFromDER(128),eo in t.result&&(this.otherPrimeInfos=Array.from(t.result.otherPrimeInfos,r=>new Cl({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.modulus.convertToDER()),e.push(this.publicExponent),e.push(this.privateExponent.convertToDER()),e.push(this.prime1.convertToDER()),e.push(this.prime2.convertToDER()),e.push(this.exponent1.convertToDER()),e.push(this.exponent2.convertToDER()),e.push(this.coefficient.convertToDER()),this.otherPrimeInfos&&e.push(new b({value:Array.from(this.otherPrimeInfos,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={n:fe.ToBase64Url(this.modulus.valueBlock.valueHexView),e:fe.ToBase64Url(this.publicExponent.valueBlock.valueHexView),d:fe.ToBase64Url(this.privateExponent.valueBlock.valueHexView),p:fe.ToBase64Url(this.prime1.valueBlock.valueHexView),q:fe.ToBase64Url(this.prime2.valueBlock.valueHexView),dp:fe.ToBase64Url(this.exponent1.valueBlock.valueHexView),dq:fe.ToBase64Url(this.exponent2.valueBlock.valueHexView),qi:fe.ToBase64Url(this.coefficient.valueBlock.valueHexView)};return this.otherPrimeInfos&&(e.oth=Array.from(this.otherPrimeInfos,t=>t.toJSON())),e}fromJSON(e){He.assert("json",e,"n","e","d","p","q","dp","dq","qi"),this.modulus=new T({valueHex:fe.FromBase64Url(e.n)}),this.publicExponent=new T({valueHex:fe.FromBase64Url(e.e)}),this.privateExponent=new T({valueHex:fe.FromBase64Url(e.d)}),this.prime1=new T({valueHex:fe.FromBase64Url(e.p)}),this.prime2=new T({valueHex:fe.FromBase64Url(e.q)}),this.exponent1=new T({valueHex:fe.FromBase64Url(e.dp)}),this.exponent2=new T({valueHex:fe.FromBase64Url(e.dq)}),this.coefficient=new T({valueHex:fe.FromBase64Url(e.qi)}),e.oth&&(this.otherPrimeInfos=Array.from(e.oth,t=>new Cl({json:t})));}};Q0.CLASS_NAME="RSAPrivateKey";var vd="version",Ed="privateKeyAlgorithm",xd="privateKey",to="attributes",my="parsedKey",_L=[vd,Ed,xd,to],tc=class s extends O{constructor(e={}){super(),this.version=d(e,vd,s.defaultValues(vd)),this.privateKeyAlgorithm=d(e,Ed,s.defaultValues(Ed)),this.privateKey=d(e,xd,s.defaultValues(xd)),to in e&&(this.attributes=d(e,to,s.defaultValues(to))),my in e&&(this.parsedKey=d(e,my,s.defaultValues(my))),e.json&&this.fromJSON(e.json),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vd:return 0;case Ed:return new k;case xd:return new L;case to:return [];case my:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),k.schema(t.privateKeyAlgorithm||{}),new L({name:t.privateKey||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.attributes||p,value:ut.schema()})]})]})}fromSchema(e){V(e,_L);let t=R(e,e,s.schema({names:{version:vd,privateKeyAlgorithm:{names:{blockName:Ed}},privateKey:xd,attributes:to}}));switch(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.privateKeyAlgorithm=new k({schema:t.result.privateKeyAlgorithm}),this.privateKey=t.result.privateKey,to in t.result&&(this.attributes=Array.from(t.result.attributes,r=>new ut({schema:r}))),this.privateKeyAlgorithm.algorithmId){case"1.2.840.113549.1.1.1":{let r=pt(this.privateKey.valueBlock.valueHexView);r.offset!==-1&&(this.parsedKey=new Q0({schema:r.result}));}break;case"1.2.840.10045.2.1":if("algorithmParams"in this.privateKeyAlgorithm&&this.privateKeyAlgorithm.algorithmParams instanceof W){let r=pt(this.privateKey.valueBlock.valueHexView);r.offset!==-1&&(this.parsedKey=new X0({namedCurve:this.privateKeyAlgorithm.algorithmParams.valueBlock.toString(),schema:r.result}));}break}}toSchema(){let e=[new T({value:this.version}),this.privateKeyAlgorithm.toSchema(),this.privateKey];return this.attributes&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.attributes,t=>t.toSchema())})),new b({value:e})}toJSON(){if(!this.parsedKey){let r={version:this.version,privateKeyAlgorithm:this.privateKeyAlgorithm.toJSON(),privateKey:this.privateKey.toJSON()};return this.attributes&&(r.attributes=Array.from(this.attributes,n=>n.toJSON())),r}let e={};switch(this.privateKeyAlgorithm.algorithmId){case"1.2.840.10045.2.1":e.kty="EC";break;case"1.2.840.113549.1.1.1":e.kty="RSA";break}let t=this.parsedKey.toJSON();return Object.assign(e,t),e}fromJSON(e){if("kty"in e){switch(e.kty.toUpperCase()){case"EC":this.parsedKey=new X0({json:e}),this.privateKeyAlgorithm=new k({algorithmId:"1.2.840.10045.2.1",algorithmParams:new W({value:this.parsedKey.namedCurve})});break;case"RSA":this.parsedKey=new Q0({json:e}),this.privateKeyAlgorithm=new k({algorithmId:"1.2.840.113549.1.1.1",algorithmParams:new it});break;default:throw new Error(`Invalid value for "kty" parameter: ${e.kty}`)}this.privateKey=new L({valueHex:this.parsedKey.toSchema().toBER(!1)});}}};tc.CLASS_NAME="PrivateKeyInfo";var mu="contentType",pu="contentEncryptionAlgorithm",so="encryptedContent",jL=[mu,pu,so],LT=1024,Ot=class s extends O{constructor(e={}){if(super(),this.contentType=d(e,mu,s.defaultValues(mu)),this.contentEncryptionAlgorithm=d(e,pu,s.defaultValues(pu)),so in e&&e.encryptedContent&&(this.encryptedContent=e.encryptedContent,this.encryptedContent.idBlock.tagClass===1&&this.encryptedContent.idBlock.tagNumber===4&&this.encryptedContent.idBlock.isConstructed===!1&&!e.disableSplit)){let t=new L({idBlock:{isConstructed:!0},isConstructed:!0}),r=0,n=this.encryptedContent.valueBlock.valueHexView.slice().buffer,i=n.byteLength;for(;i>0;){let a=new Uint8Array(n,r,r+LT>n.byteLength?n.byteLength-r:LT),o=new ArrayBuffer(a.length),c=new Uint8Array(o);for(let u=0;u<c.length;u++)c[u]=a[u];t.valueBlock.value.push(new L({valueHex:o})),i-=a.length,r+=a.length;}this.encryptedContent=t;}e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case mu:return p;case pu:return new k;case so:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case mu:return t===p;case pu:return t.algorithmId===p&&!("algorithmParams"in t);case so:return t.isEqual(s.defaultValues(so));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.contentType||p}),k.schema(t.contentEncryptionAlgorithm||{}),new Ze({value:[new A({name:t.encryptedContent||p,idBlock:{tagClass:3,tagNumber:0},value:[new he({value:new L})]}),new oe({name:t.encryptedContent||p,idBlock:{tagClass:3,tagNumber:0}})]})]})}fromSchema(e){V(e,jL);let t=R(e,e,s.schema({names:{contentType:mu,contentEncryptionAlgorithm:{names:{blockName:pu}},encryptedContent:so}}));B.assertSchema(t,this.className),this.contentType=t.result.contentType.valueBlock.toString(),this.contentEncryptionAlgorithm=new k({schema:t.result.contentEncryptionAlgorithm}),so in t.result&&(this.encryptedContent=t.result.encryptedContent,this.encryptedContent.idBlock.tagClass=1,this.encryptedContent.idBlock.tagNumber=4);}toSchema(){let e={isIndefiniteForm:!1},t=[];if(t.push(new W({value:this.contentType})),t.push(this.contentEncryptionAlgorithm.toSchema()),this.encryptedContent){e.isIndefiniteForm=this.encryptedContent.idBlock.isConstructed;let r=this.encryptedContent;r.idBlock.tagClass=3,r.idBlock.tagNumber=0,r.lenBlock.isIndefiniteForm=this.encryptedContent.idBlock.isConstructed,t.push(r);}return new b({lenBlock:e,value:t})}toJSON(){let e={contentType:this.contentType,contentEncryptionAlgorithm:this.contentEncryptionAlgorithm.toJSON()};return this.encryptedContent&&(e.encryptedContent=this.encryptedContent.toJSON()),e}getEncryptedContent(){if(!this.encryptedContent)throw new Error("Parameter 'encryptedContent' is undefined");return L.prototype.getValue.call(this.encryptedContent)}};Ot.CLASS_NAME="EncryptedContentInfo";var wi="hashAlgorithm",bi="maskGenAlgorithm",Si="saltLength",vi="trailerField",ML=[wi,bi,Si,vi],Nl=class s extends O{constructor(e={}){super(),this.hashAlgorithm=d(e,wi,s.defaultValues(wi)),this.maskGenAlgorithm=d(e,bi,s.defaultValues(bi)),this.saltLength=d(e,Si,s.defaultValues(Si)),this.trailerField=d(e,vi,s.defaultValues(vi)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wi:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});case bi:return new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it}).toSchema()});case Si:return 20;case vi:return 1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[k.schema(t.hashAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:1},optional:!0,value:[k.schema(t.maskGenAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:2},optional:!0,value:[new T({name:t.saltLength||p})]}),new A({idBlock:{tagClass:3,tagNumber:3},optional:!0,value:[new T({name:t.trailerField||p})]})]})}fromSchema(e){V(e,ML);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:wi}},maskGenAlgorithm:{names:{blockName:bi}},saltLength:Si,trailerField:vi}}));B.assertSchema(t,this.className),wi in t.result&&(this.hashAlgorithm=new k({schema:t.result.hashAlgorithm})),bi in t.result&&(this.maskGenAlgorithm=new k({schema:t.result.maskGenAlgorithm})),Si in t.result&&(this.saltLength=t.result.saltLength.valueBlock.valueDec),vi in t.result&&(this.trailerField=t.result.trailerField.valueBlock.valueDec);}toSchema(){let e=[];return this.hashAlgorithm.isEqual(s.defaultValues(wi))||e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.hashAlgorithm.toSchema()]})),this.maskGenAlgorithm.isEqual(s.defaultValues(bi))||e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.maskGenAlgorithm.toSchema()]})),this.saltLength!==s.defaultValues(Si)&&e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[new T({value:this.saltLength})]})),this.trailerField!==s.defaultValues(vi)&&e.push(new A({idBlock:{tagClass:3,tagNumber:3},value:[new T({value:this.trailerField})]})),new b({value:e})}toJSON(){let e={};return this.hashAlgorithm.isEqual(s.defaultValues(wi))||(e.hashAlgorithm=this.hashAlgorithm.toJSON()),this.maskGenAlgorithm.isEqual(s.defaultValues(bi))||(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),this.saltLength!==s.defaultValues(Si)&&(e.saltLength=this.saltLength),this.trailerField!==s.defaultValues(vi)&&(e.trailerField=this.trailerField),e}};Nl.CLASS_NAME="RSASSAPSSParams";var gu="salt",Ad="iterationCount",tr="keyLength",un="prf",$L=[gu,Ad,tr,un],Ji=class s extends O{constructor(e={}){super(),this.salt=d(e,gu,s.defaultValues(gu)),this.iterationCount=d(e,Ad,s.defaultValues(Ad)),tr in e&&(this.keyLength=d(e,tr,s.defaultValues(tr))),un in e&&(this.prf=d(e,un,s.defaultValues(un))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case gu:return {};case Ad:return -1;case tr:return 0;case un:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new Ze({value:[new L({name:t.saltPrimitive||p}),k.schema(t.saltConstructed||{})]}),new T({name:t.iterationCount||p}),new T({name:t.keyLength||p,optional:!0}),k.schema(t.prf||{names:{optional:!0}})]})}fromSchema(e){V(e,$L);let t=R(e,e,s.schema({names:{saltPrimitive:gu,saltConstructed:{names:{blockName:gu}},iterationCount:Ad,keyLength:tr,prf:{names:{blockName:un,optional:!0}}}}));B.assertSchema(t,this.className),this.salt=t.result.salt,this.iterationCount=t.result.iterationCount.valueBlock.valueDec,tr in t.result&&(this.keyLength=t.result.keyLength.valueBlock.valueDec),un in t.result&&(this.prf=new k({schema:t.result.prf}));}toSchema(){let e=[];return e.push(this.salt),e.push(new T({value:this.iterationCount})),tr in this&&s.defaultValues(tr)!==this.keyLength&&e.push(new T({value:this.keyLength})),this.prf&&s.defaultValues(un).isEqual(this.prf)===!1&&e.push(this.prf.toSchema()),new b({value:e})}toJSON(){let e={salt:this.salt.toJSON(),iterationCount:this.iterationCount};return tr in this&&s.defaultValues(tr)!==this.keyLength&&(e.keyLength=this.keyLength),this.prf&&s.defaultValues(un).isEqual(this.prf)===!1&&(e.prf=this.prf.toJSON()),e}};Ji.CLASS_NAME="PBKDF2Params";var Id="keyDerivationFunc",Cd="encryptionScheme",FL=[Id,Cd],em=class s extends O{constructor(e={}){super(),this.keyDerivationFunc=d(e,Id,s.defaultValues(Id)),this.encryptionScheme=d(e,Cd,s.defaultValues(Cd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Id:return new k;case Cd:return new k;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.keyDerivationFunc||{}),k.schema(t.encryptionScheme||{})]})}fromSchema(e){V(e,FL);let t=R(e,e,s.schema({names:{keyDerivationFunc:{names:{blockName:Id}},encryptionScheme:{names:{blockName:Cd}}}}));B.assertSchema(t,this.className),this.keyDerivationFunc=new k({schema:t.result.keyDerivationFunc}),this.encryptionScheme=new k({schema:t.result.encryptionScheme});}toSchema(){return new b({value:[this.keyDerivationFunc.toSchema(),this.encryptionScheme.toSchema()]})}toJSON(){return {keyDerivationFunc:this.keyDerivationFunc.toJSON(),encryptionScheme:this.encryptionScheme.toJSON()}}};em.CLASS_NAME="PBES2Params";var uA=class{constructor(e){this.crypto=e.crypto,this.subtle="webkitSubtle"in e.crypto?e.crypto.webkitSubtle:e.crypto.subtle,this.name=d(e,"name",p);}async encrypt(...e){return this.subtle.encrypt(...e)}async decrypt(...e){return this.subtle.decrypt(...e)}sign(...e){return this.subtle.sign(...e)}async verify(...e){return this.subtle.verify(...e)}async digest(...e){return this.subtle.digest(...e)}async generateKey(...e){return this.subtle.generateKey(...e)}async deriveKey(...e){return this.subtle.deriveKey(...e)}async deriveBits(...e){return this.subtle.deriveBits(...e)}async wrapKey(...e){return this.subtle.wrapKey(...e)}async unwrapKey(...e){return this.subtle.unwrapKey(...e)}exportKey(...e){return this.subtle.exportKey(...e)}importKey(...e){return this.subtle.importKey(...e)}getRandomValues(e){if(e===null)throw new Error('Argument "array" must not be null');return this.crypto.getRandomValues(e)}};async function UT(s,e,t,r,n){let i,a,o;switch(s.toUpperCase()){case"SHA-1":i=20,a=64,o=kT;break;case"SHA-256":i=32,a=64,o=N2;break;case"SHA-384":i=48,a=128,o=B2;break;case"SHA-512":i=64,a=128,o=P2;break;default:throw new Error("Unsupported hashing algorithm")}let c=new Uint8Array(t),u=new TextDecoder().decode(t);new TextEncoder().encode(u).some((E,I)=>E!==c[I])&&(u=String.fromCharCode(...c));let h=new Uint8Array(u.length*2+2),m=new DataView(h.buffer);for(let E=0;E<u.length;E++)m.setUint16(E*2,u.charCodeAt(E),!1);m.setUint16(u.length*2,0,!1);let y=new Uint8Array(a).fill(3),g=new Uint8Array(r),w=new Uint8Array(a*Math.ceil(g.length/a)).map((E,I)=>g[I%g.length]),S=new Uint8Array(a*Math.ceil(h.length/a)).map((E,I)=>h[I%h.length]),C=new Uint8Array(w.length+S.length);C.set(w),C.set(S,w.length);let N=Math.ceil((e>>3)/i),x=[];for(let E=0;E<N;E++){let I=new Uint8Array(y.length+C.length);I.set(y),I.set(C,y.length);for(let J=0;J<n;J++)I=o(I);let D=new Uint8Array(a).map((J,ie)=>I[ie%I.length]),G=Math.ceil(g.length/a)+Math.ceil(h.length/a),$=[];for(let J=0;J<G;J++){let ie=Array.from(C.slice(J*a,(J+1)*a)),q=511;for(let z=D.length-1;z>=0;z--)q>>=8,q+=D[z]+(ie[z]||0),ie[z]=q&255;$.push(...ie);}C=new Uint8Array($),x.push(...I);}return new Uint8Array(x.slice(0,e>>3)).buffer}function w4(s){let e=typeof s=="string"?{name:s}:s;return "hash"in e?{...e,hash:w4(e.hash)}:e}var Vl=class extends uA{async importKey(e,t,r,n,i){var a,o,c,u,l,h;let m={},y=w4(r);switch(e.toLowerCase()){case"raw":return this.subtle.importKey("raw",t,r,n,i);case"spki":{let g=pt(ae.toArrayBuffer(t));B.assert(g,"keyData");let w=new Ts;try{w.fromSchema(g.result);}catch{throw new Ke("Incorrect keyData")}switch(y.name.toUpperCase()){case"RSA-PSS":{if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="PS1";break;case"SHA-256":m.alg="PS256";break;case"SHA-384":m.alg="PS384";break;case"SHA-512":m.alg="PS512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}case"RSASSA-PKCS1-V1_5":{if(i=["verify"],m.kty="RSA",m.ext=n,m.key_ops=i,w.algorithm.algorithmId!=="1.2.840.113549.1.1.1")throw new Error(`Incorrect public key algorithm: ${w.algorithm.algorithmId}`);if(!m.alg){if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="RS1";break;case"SHA-256":m.alg="RS256";break;case"SHA-384":m.alg="RS384";break;case"SHA-512":m.alg="RS512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}let S=w.toJSON();Object.assign(m,S);}break;case"ECDSA":i=["verify"];case"ECDH":{if(m={kty:"EC",ext:n,key_ops:i},w.algorithm.algorithmId!=="1.2.840.10045.2.1")throw new Error(`Incorrect public key algorithm: ${w.algorithm.algorithmId}`);let S=w.toJSON();Object.assign(m,S);}break;case"RSA-OAEP":{if(m.kty="RSA",m.ext=n,m.key_ops=i,this.name.toLowerCase()==="safari")m.alg="RSA-OAEP";else {if(!y.hash)throw new He("hash","algorithm.hash","Incorrect hash algorithm: Hash algorithm is missed");switch(y.hash.name.toUpperCase()){case"SHA-1":m.alg="RSA-OAEP";break;case"SHA-256":m.alg="RSA-OAEP-256";break;case"SHA-384":m.alg="RSA-OAEP-384";break;case"SHA-512":m.alg="RSA-OAEP-512";break;default:throw new Error(`Incorrect hash algorithm: ${y.hash.name.toUpperCase()}`)}}let S=w.toJSON();Object.assign(m,S);}break;case"RSAES-PKCS1-V1_5":{m.kty="RSA",m.ext=n,m.key_ops=i,m.alg="PS1";let S=w.toJSON();Object.assign(m,S);}break;default:throw new Error(`Incorrect algorithm name: ${y.name.toUpperCase()}`)}}break;case"pkcs8":{let g=new tc,w=pt(ae.toArrayBuffer(t));B.assert(w,"keyData");try{g.fromSchema(w.result);}catch{throw new Error("Incorrect keyData")}if(!g.parsedKey)throw new Error("Incorrect keyData");switch(y.name.toUpperCase()){case"RSA-PSS":switch((a=y.hash)===null||a===void 0?void 0:a.name.toUpperCase()){case"SHA-1":m.alg="PS1";break;case"SHA-256":m.alg="PS256";break;case"SHA-384":m.alg="PS384";break;case"SHA-512":m.alg="PS512";break;default:throw new Error(`Incorrect hash algorithm: ${(o=y.hash)===null||o===void 0?void 0:o.name.toUpperCase()}`)}case"RSASSA-PKCS1-V1_5":{if(i=["sign"],m.kty="RSA",m.ext=n,m.key_ops=i,g.privateKeyAlgorithm.algorithmId!=="1.2.840.113549.1.1.1")throw new Error(`Incorrect private key algorithm: ${g.privateKeyAlgorithm.algorithmId}`);if(!("alg"in m))switch((c=y.hash)===null||c===void 0?void 0:c.name.toUpperCase()){case"SHA-1":m.alg="RS1";break;case"SHA-256":m.alg="RS256";break;case"SHA-384":m.alg="RS384";break;case"SHA-512":m.alg="RS512";break;default:throw new Error(`Incorrect hash algorithm: ${(u=y.hash)===null||u===void 0?void 0:u.name.toUpperCase()}`)}let S=g.toJSON();Object.assign(m,S);}break;case"ECDSA":i=["sign"];case"ECDH":{if(m={kty:"EC",ext:n,key_ops:i},g.privateKeyAlgorithm.algorithmId!=="1.2.840.10045.2.1")throw new Error(`Incorrect algorithm: ${g.privateKeyAlgorithm.algorithmId}`);let S=g.toJSON();Object.assign(m,S);}break;case"RSA-OAEP":{if(m.kty="RSA",m.ext=n,m.key_ops=i,this.name.toLowerCase()==="safari")m.alg="RSA-OAEP";else switch((l=y.hash)===null||l===void 0?void 0:l.name.toUpperCase()){case"SHA-1":m.alg="RSA-OAEP";break;case"SHA-256":m.alg="RSA-OAEP-256";break;case"SHA-384":m.alg="RSA-OAEP-384";break;case"SHA-512":m.alg="RSA-OAEP-512";break;default:throw new Error(`Incorrect hash algorithm: ${(h=y.hash)===null||h===void 0?void 0:h.name.toUpperCase()}`)}let S=g.toJSON();Object.assign(m,S);}break;case"RSAES-PKCS1-V1_5":{i=["decrypt"],m.kty="RSA",m.ext=n,m.key_ops=i,m.alg="PS1";let S=g.toJSON();Object.assign(m,S);}break;default:throw new Error(`Incorrect algorithm name: ${y.name.toUpperCase()}`)}}break;case"jwk":m=t;break;default:throw new Error(`Incorrect format: ${e}`)}if(this.name.toLowerCase()==="safari")try{return this.subtle.importKey("jwk",Va(JSON.stringify(m)),r,n,i)}catch{return this.subtle.importKey("jwk",m,r,n,i)}return this.subtle.importKey("jwk",m,r,n,i)}async exportKey(e,t){let r=await this.subtle.exportKey("jwk",t);switch(this.name.toLowerCase()==="safari"&&r instanceof ArrayBuffer&&(r=JSON.parse(bh(r))),e.toLowerCase()){case"raw":return this.subtle.exportKey("raw",t);case"spki":{let n=new Ts;try{n.fromJSON(r);}catch{throw new Error("Incorrect key data")}return n.toSchema().toBER(!1)}case"pkcs8":{let n=new tc;try{n.fromJSON(r);}catch{throw new Error("Incorrect key data")}return n.toSchema().toBER(!1)}case"jwk":return r;default:throw new Error(`Incorrect format: ${e}`)}}async convert(e,t,r,n,i,a){if(e.toLowerCase()===t.toLowerCase())return r;let o=await this.importKey(e,r,n,i,a);return this.exportKey(t,o)}getAlgorithmByOID(e,t=!1,r){switch(e){case"1.2.840.113549.1.1.1":return {name:"RSAES-PKCS1-v1_5"};case"1.2.840.113549.1.1.5":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case"1.2.840.113549.1.1.11":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"1.2.840.113549.1.1.12":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case"1.2.840.113549.1.1.13":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case"1.2.840.113549.1.1.10":return {name:"RSA-PSS"};case"1.2.840.113549.1.1.7":return {name:"RSA-OAEP"};case"1.2.840.10045.2.1":case"1.2.840.10045.4.1":return {name:"ECDSA",hash:{name:"SHA-1"}};case"1.2.840.10045.4.3.2":return {name:"ECDSA",hash:{name:"SHA-256"}};case"1.2.840.10045.4.3.3":return {name:"ECDSA",hash:{name:"SHA-384"}};case"1.2.840.10045.4.3.4":return {name:"ECDSA",hash:{name:"SHA-512"}};case"1.3.133.16.840.63.0.2":return {name:"ECDH",kdf:"SHA-1"};case"1.3.132.1.11.1":return {name:"ECDH",kdf:"SHA-256"};case"1.3.132.1.11.2":return {name:"ECDH",kdf:"SHA-384"};case"1.3.132.1.11.3":return {name:"ECDH",kdf:"SHA-512"};case"2.16.840.1.101.3.4.1.2":return {name:"AES-CBC",length:128};case"2.16.840.1.101.3.4.1.22":return {name:"AES-CBC",length:192};case"2.16.840.1.101.3.4.1.42":return {name:"AES-CBC",length:256};case"2.16.840.1.101.3.4.1.6":return {name:"AES-GCM",length:128};case"2.16.840.1.101.3.4.1.26":return {name:"AES-GCM",length:192};case"2.16.840.1.101.3.4.1.46":return {name:"AES-GCM",length:256};case"2.16.840.1.101.3.4.1.4":return {name:"AES-CFB",length:128};case"2.16.840.1.101.3.4.1.24":return {name:"AES-CFB",length:192};case"2.16.840.1.101.3.4.1.44":return {name:"AES-CFB",length:256};case"2.16.840.1.101.3.4.1.5":return {name:"AES-KW",length:128};case"2.16.840.1.101.3.4.1.25":return {name:"AES-KW",length:192};case"2.16.840.1.101.3.4.1.45":return {name:"AES-KW",length:256};case"1.2.840.113549.2.7":return {name:"HMAC",hash:{name:"SHA-1"}};case"1.2.840.113549.2.9":return {name:"HMAC",hash:{name:"SHA-256"}};case"1.2.840.113549.2.10":return {name:"HMAC",hash:{name:"SHA-384"}};case"1.2.840.113549.2.11":return {name:"HMAC",hash:{name:"SHA-512"}};case"1.2.840.113549.1.9.16.3.5":return {name:"DH"};case"1.3.14.3.2.26":return {name:"SHA-1"};case"2.16.840.1.101.3.4.2.1":return {name:"SHA-256"};case"2.16.840.1.101.3.4.2.2":return {name:"SHA-384"};case"2.16.840.1.101.3.4.2.3":return {name:"SHA-512"};case"1.2.840.113549.1.5.12":return {name:"PBKDF2"};case"1.2.840.10045.3.1.7":return {name:"P-256"};case"1.3.132.0.34":return {name:"P-384"};case"1.3.132.0.35":return {name:"P-521"}}if(t)throw new Error(`Unsupported algorithm identifier ${r?`for ${r} `:p}: ${e}`);return {}}getOIDByAlgorithm(e,t=!1,r){let n=p;switch(e.name.toUpperCase()){case"RSAES-PKCS1-V1_5":n="1.2.840.113549.1.1.1";break;case"RSASSA-PKCS1-V1_5":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.113549.1.1.5";break;case"SHA-256":n="1.2.840.113549.1.1.11";break;case"SHA-384":n="1.2.840.113549.1.1.12";break;case"SHA-512":n="1.2.840.113549.1.1.13";break}break;case"RSA-PSS":n="1.2.840.113549.1.1.10";break;case"RSA-OAEP":n="1.2.840.113549.1.1.7";break;case"ECDSA":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.10045.4.1";break;case"SHA-256":n="1.2.840.10045.4.3.2";break;case"SHA-384":n="1.2.840.10045.4.3.3";break;case"SHA-512":n="1.2.840.10045.4.3.4";break}break;case"ECDH":switch(e.kdf.toUpperCase()){case"SHA-1":n="1.3.133.16.840.63.0.2";break;case"SHA-256":n="1.3.132.1.11.1";break;case"SHA-384":n="1.3.132.1.11.2";break;case"SHA-512":n="1.3.132.1.11.3";break}break;case"AES-CTR":break;case"AES-CBC":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.2";break;case 192:n="2.16.840.1.101.3.4.1.22";break;case 256:n="2.16.840.1.101.3.4.1.42";break}break;case"AES-CMAC":break;case"AES-GCM":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.6";break;case 192:n="2.16.840.1.101.3.4.1.26";break;case 256:n="2.16.840.1.101.3.4.1.46";break}break;case"AES-CFB":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.4";break;case 192:n="2.16.840.1.101.3.4.1.24";break;case 256:n="2.16.840.1.101.3.4.1.44";break}break;case"AES-KW":switch(e.length){case 128:n="2.16.840.1.101.3.4.1.5";break;case 192:n="2.16.840.1.101.3.4.1.25";break;case 256:n="2.16.840.1.101.3.4.1.45";break}break;case"HMAC":switch(e.hash.name.toUpperCase()){case"SHA-1":n="1.2.840.113549.2.7";break;case"SHA-256":n="1.2.840.113549.2.9";break;case"SHA-384":n="1.2.840.113549.2.10";break;case"SHA-512":n="1.2.840.113549.2.11";break}break;case"DH":n="1.2.840.113549.1.9.16.3.5";break;case"SHA-1":n="1.3.14.3.2.26";break;case"SHA-256":n="2.16.840.1.101.3.4.2.1";break;case"SHA-384":n="2.16.840.1.101.3.4.2.2";break;case"SHA-512":n="2.16.840.1.101.3.4.2.3";break;case"CONCAT":break;case"HKDF":break;case"PBKDF2":n="1.2.840.113549.1.5.12";break;case"P-256":n="1.2.840.10045.3.1.7";break;case"P-384":n="1.3.132.0.34";break;case"P-521":n="1.3.132.0.35";break}if(!n&&t)throw new Error(`Unsupported algorithm ${r?`for ${r} `:p}: ${e.name}`);return n}getAlgorithmParameters(e,t){let r={algorithm:{},usages:[]};switch(e.toUpperCase()){case"RSAES-PKCS1-V1_5":case"RSASSA-PKCS1-V1_5":switch(t.toLowerCase()){case"generatekey":r={algorithm:{name:"RSASSA-PKCS1-v1_5",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["sign","verify"]};break;case"verify":case"sign":case"importkey":r={algorithm:{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},usages:["verify"]};break;case"exportkey":default:return {algorithm:{name:"RSASSA-PKCS1-v1_5"},usages:[]}}break;case"RSA-PSS":switch(t.toLowerCase()){case"sign":case"verify":r={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"},saltLength:20},usages:["sign","verify"]};break;case"generatekey":r={algorithm:{name:"RSA-PSS",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-1"}},usages:["sign","verify"]};break;case"importkey":r={algorithm:{name:"RSA-PSS",hash:{name:"SHA-1"}},usages:["verify"]};break;case"exportkey":default:return {algorithm:{name:"RSA-PSS"},usages:[]}}break;case"RSA-OAEP":switch(t.toLowerCase()){case"encrypt":case"decrypt":r={algorithm:{name:"RSA-OAEP"},usages:["encrypt","decrypt"]};break;case"generatekey":r={algorithm:{name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"importkey":r={algorithm:{name:"RSA-OAEP",hash:{name:"SHA-256"}},usages:["encrypt"]};break;case"exportkey":default:return {algorithm:{name:"RSA-OAEP"},usages:[]}}break;case"ECDSA":switch(t.toLowerCase()){case"generatekey":r={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["sign","verify"]};break;case"importkey":r={algorithm:{name:"ECDSA",namedCurve:"P-256"},usages:["verify"]};break;case"verify":case"sign":r={algorithm:{name:"ECDSA",hash:{name:"SHA-256"}},usages:["sign"]};break;default:return {algorithm:{name:"ECDSA"},usages:[]}}break;case"ECDH":switch(t.toLowerCase()){case"exportkey":case"importkey":case"generatekey":r={algorithm:{name:"ECDH",namedCurve:"P-256"},usages:["deriveKey","deriveBits"]};break;case"derivekey":case"derivebits":r={algorithm:{name:"ECDH",namedCurve:"P-256",public:[]},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"ECDH"},usages:[]}}break;case"AES-CTR":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-CTR",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-CTR",counter:new Uint8Array(16),length:10},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-CTR"},usages:[]}}break;case"AES-CBC":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-CBC",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-CBC",iv:this.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-CBC"},usages:[]}}break;case"AES-GCM":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"AES-GCM",length:256},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;case"decrypt":case"encrypt":r={algorithm:{name:"AES-GCM",iv:this.getRandomValues(new Uint8Array(16))},usages:["encrypt","decrypt","wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-GCM"},usages:[]}}break;case"AES-KW":switch(t.toLowerCase()){case"importkey":case"exportkey":case"generatekey":case"wrapkey":case"unwrapkey":r={algorithm:{name:"AES-KW",length:256},usages:["wrapKey","unwrapKey"]};break;default:return {algorithm:{name:"AES-KW"},usages:[]}}break;case"HMAC":switch(t.toLowerCase()){case"sign":case"verify":r={algorithm:{name:"HMAC"},usages:["sign","verify"]};break;case"importkey":case"exportkey":case"generatekey":r={algorithm:{name:"HMAC",length:32,hash:{name:"SHA-256"}},usages:["sign","verify"]};break;default:return {algorithm:{name:"HMAC"},usages:[]}}break;case"HKDF":switch(t.toLowerCase()){case"derivekey":r={algorithm:{name:"HKDF",hash:"SHA-256",salt:new Uint8Array([]),info:new Uint8Array([])},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"HKDF"},usages:[]}}break;case"PBKDF2":switch(t.toLowerCase()){case"derivekey":r={algorithm:{name:"PBKDF2",hash:{name:"SHA-256"},salt:new Uint8Array([]),iterations:1e4},usages:["encrypt","decrypt"]};break;default:return {algorithm:{name:"PBKDF2"},usages:[]}}break}return r}getHashAlgorithm(e){let t=p;switch(e.algorithmId){case"1.2.840.10045.4.1":case"1.2.840.113549.1.1.5":t="SHA-1";break;case"1.2.840.10045.4.3.2":case"1.2.840.113549.1.1.11":t="SHA-256";break;case"1.2.840.10045.4.3.3":case"1.2.840.113549.1.1.12":t="SHA-384";break;case"1.2.840.10045.4.3.4":case"1.2.840.113549.1.1.13":t="SHA-512";break;case"1.2.840.113549.1.1.10":try{let r=new Nl({schema:e.algorithmParams});if(r.hashAlgorithm){let n=this.getAlgorithmByOID(r.hashAlgorithm.algorithmId);if("name"in n)t=n.name;else return p}else t="SHA-1";}catch{}break}return t}async encryptEncryptedContentInfo(e){He.assert(e,"password","contentEncryptionAlgorithm","hmacHashAlgorithm","iterationCount","contentToEncrypt","contentToEncrypt","contentType");let t=this.getOIDByAlgorithm(e.contentEncryptionAlgorithm,!0,"contentEncryptionAlgorithm"),r=this.getOIDByAlgorithm({name:"PBKDF2"},!0,"PBKDF2"),n=this.getOIDByAlgorithm({name:"HMAC",hash:{name:e.hmacHashAlgorithm}},!0,"hmacHashAlgorithm"),i=new ArrayBuffer(16),a=new Uint8Array(i);this.getRandomValues(a);let o=new ArrayBuffer(64),c=new Uint8Array(o);this.getRandomValues(c);let u=new Uint8Array(e.contentToEncrypt),l=new Ji({salt:new L({valueHex:o}),iterationCount:e.iterationCount,prf:new k({algorithmId:n,algorithmParams:new it})}),h=new Uint8Array(e.password),m=await this.importKey("raw",h,"PBKDF2",!1,["deriveKey"]),y=await this.deriveKey({name:"PBKDF2",hash:{name:e.hmacHashAlgorithm},salt:c,iterations:e.iterationCount},m,e.contentEncryptionAlgorithm,!1,["encrypt"]),g=await this.encrypt({name:e.contentEncryptionAlgorithm.name,iv:a},y,u),w=new em({keyDerivationFunc:new k({algorithmId:r,algorithmParams:l.toSchema()}),encryptionScheme:new k({algorithmId:t,algorithmParams:new L({valueHex:i})})});return new Ot({contentType:e.contentType,contentEncryptionAlgorithm:new k({algorithmId:"1.2.840.113549.1.5.13",algorithmParams:w.toSchema()}),encryptedContent:new L({valueHex:g})})}async decryptEncryptedContentInfo(e){if(He.assert(e,"password","encryptedContentInfo"),e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId!=="1.2.840.113549.1.5.13")throw new Error(`Unknown "contentEncryptionAlgorithm": ${e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId}`);let t;try{t=new em({schema:e.encryptedContentInfo.contentEncryptionAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "pbes2Parameters"')}let r;try{r=new Ji({schema:t.keyDerivationFunc.algorithmParams});}catch{throw new Error('Incorrectly encoded "pbkdf2Params"')}let n=this.getAlgorithmByOID(t.encryptionScheme.algorithmId,!0),i=t.encryptionScheme.algorithmParams.valueBlock.valueHex,a=new Uint8Array(i),o=r.salt.valueBlock.valueHex,c=new Uint8Array(o),u=r.iterationCount,l="SHA-1";r.prf&&(l=this.getAlgorithmByOID(r.prf.algorithmId,!0).hash.name);let h=await this.importKey("raw",e.password,"PBKDF2",!1,["deriveKey"]),m=await this.deriveKey({name:"PBKDF2",hash:{name:l},salt:c,iterations:u},h,n,!1,["decrypt"]),y=e.encryptedContentInfo.getEncryptedContent();return this.decrypt({name:n.name,iv:a},m,y)}async stampDataWithPassword(e){if(!(e instanceof Object))throw new Error('Parameters must have type "Object"');He.assert(e,"password","hashAlgorithm","iterationCount","salt","contentToStamp");let t;switch(e.hashAlgorithm.toLowerCase()){case"sha-1":t=160;break;case"sha-256":t=256;break;case"sha-384":t=384;break;case"sha-512":t=512;break;default:throw new Error(`Incorrect "parameters.hashAlgorithm" parameter: ${e.hashAlgorithm}`)}let r={name:"HMAC",length:t,hash:{name:e.hashAlgorithm}},n=await UT(e.hashAlgorithm,t,e.password,e.salt,e.iterationCount),i=await this.importKey("raw",new Uint8Array(n),r,!1,["sign"]);return this.sign(r,i,new Uint8Array(e.contentToStamp))}async verifyDataStampedWithPassword(e){He.assert(e,"password","hashAlgorithm","salt","iterationCount","contentToVerify","signatureToVerify");let t=0;switch(e.hashAlgorithm.toLowerCase()){case"sha-1":t=160;break;case"sha-256":t=256;break;case"sha-384":t=384;break;case"sha-512":t=512;break;default:throw new Error(`Incorrect "parameters.hashAlgorithm" parameter: ${e.hashAlgorithm}`)}let r={name:"HMAC",length:t,hash:{name:e.hashAlgorithm}},n=await UT(e.hashAlgorithm,t,e.password,e.salt,e.iterationCount),i=await this.importKey("raw",new Uint8Array(n),r,!1,["verify"]);return this.verify(r,i,new Uint8Array(e.signatureToVerify),new Uint8Array(e.contentToVerify))}async getSignatureParameters(e,t="SHA-1"){this.getOIDByAlgorithm({name:t},!0,"hashAlgorithm");let r=new k,n=this.getAlgorithmParameters(e.algorithm.name,"sign");if(!Object.keys(n.algorithm).length)throw new Error("Parameter 'algorithm' is empty");let i=n.algorithm;switch("hash"in e.algorithm&&e.algorithm.hash&&e.algorithm.hash.name?i.hash.name=e.algorithm.hash.name:i.hash.name=t,e.algorithm.name.toUpperCase()){case"RSASSA-PKCS1-V1_5":case"ECDSA":r.algorithmId=this.getOIDByAlgorithm(i,!0);break;case"RSA-PSS":{switch(i.hash.name.toUpperCase()){case"SHA-256":i.saltLength=32;break;case"SHA-384":i.saltLength=48;break;case"SHA-512":i.saltLength=64;break}let a={};if(i.hash.name.toUpperCase()!=="SHA-1"){let c=this.getOIDByAlgorithm({name:i.hash.name},!0,"hashAlgorithm");a.hashAlgorithm=new k({algorithmId:c,algorithmParams:new it}),a.maskGenAlgorithm=new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:a.hashAlgorithm.toSchema()});}i.saltLength!==20&&(a.saltLength=i.saltLength);let o=new Nl(a);r.algorithmId="1.2.840.113549.1.1.10",r.algorithmParams=o.toSchema();}break;default:throw new Error(`Unsupported signature algorithm: ${e.algorithm.name}`)}return {signatureAlgorithm:r,parameters:n}}async signWithPrivateKey(e,t,r){let n=await this.sign(r.algorithm,t,e);return r.algorithm.name==="ECDSA"?GL(n):n}fillPublicKeyParameters(e,t){let r={},n=this.getHashAlgorithm(t);if(n===p)throw new Error(`Unsupported signature algorithm: ${t.algorithmId}`);let i;t.algorithmId==="1.2.840.113549.1.1.10"?i=t.algorithmId:i=e.algorithm.algorithmId;let a=this.getAlgorithmByOID(i,!0);if(r.algorithm=this.getAlgorithmParameters(a.name,"importKey"),"hash"in r.algorithm.algorithm&&(r.algorithm.algorithm.hash.name=n),a.name==="ECDSA"){let o=e.algorithm;if(!o.algorithmParams)throw new Error("Algorithm parameters for ECDSA public key are missed");let c=o.algorithmParams;if("idBlock"in o.algorithmParams&&!(c.idBlock.tagClass===1&&c.idBlock.tagNumber===6))throw new Error("Incorrect type for ECDSA public key parameters");let u=this.getAlgorithmByOID(c.valueBlock.toString(),!0);r.algorithm.algorithm.namedCurve=u.name;}return r}async getPublicKey(e,t,r){r||(r=this.fillPublicKeyParameters(e,t));let n=e.toSchema().toBER(!1);return this.importKey("spki",n,r.algorithm.algorithm,!0,r.algorithm.usages)}async verifyWithPublicKey(e,t,r,n,i){let a;if(i){let u={},l;n.algorithmId==="1.2.840.113549.1.1.10"?l=n.algorithmId:l=r.algorithm.algorithmId;let h=this.getAlgorithmByOID(l,!0);if(u.algorithm=this.getAlgorithmParameters(h.name,"importKey"),"hash"in u.algorithm.algorithm&&(u.algorithm.algorithm.hash.name=i),h.name==="ECDSA"){let m=!1;if("algorithmParams"in r.algorithm&&"idBlock"in r.algorithm.algorithmParams&&r.algorithm.algorithmParams.idBlock.tagClass===1&&r.algorithm.algorithmParams.idBlock.tagNumber===6&&(m=!0),m===!1)throw new Error("Incorrect type for ECDSA public key parameters");let y=this.getAlgorithmByOID(r.algorithm.algorithmParams.valueBlock.toString(),!0);u.algorithm.algorithm.namedCurve=y.name;}a=await this.getPublicKey(r,null,u);}else {if(i=this.getHashAlgorithm(n),!i)throw new Error(`Unsupported signature algorithm: ${n.algorithmId}`);a=await this.getPublicKey(r,n);}let o=this.getAlgorithmParameters(a.algorithm.name,"verify");"hash"in o.algorithm&&(o.algorithm.hash.name=i);let c=t.valueBlock.valueHexView;if(a.algorithm.name==="ECDSA"){let u=Ar.find(a.algorithm.namedCurve);if(!u)throw new Error("Unsupported named curve in use");let l=pt(c);B.assert(l,"Signature value"),c=KL(l.result,u.size);}if(a.algorithm.name==="RSA-PSS"){let u=new Nl({schema:n.algorithmParams});"saltLength"in u?o.algorithm.saltLength=u.saltLength:o.algorithm.saltLength=20;let l="SHA-1";"hashAlgorithm"in u&&(l=this.getAlgorithmByOID(u.hashAlgorithm.algorithmId,!0).name),o.algorithm.hash.name=l;}return this.verify(o.algorithm,a,c,e)}},b4={name:"none",crypto:null};function HT(s){return !!(s&&typeof s=="object"&&"crypto"in s)}function _T(s,...e){let t=null;if(e.length<2)e.length?t=e[0]:t=typeof self<"u"&&self.crypto?new Vl({name:"browser",crypto:self.crypto}):null;else {let r=e[0],n=e[1];HT(n)?t=n:HT(r)?t=r:"subtle"in r&&"getRandomValues"in r&&(t=new Vl({crypto:r}));}if(typeof process<"u"&&"pid"in process&&typeof global<"u"&&typeof window>"u"){if(typeof global[process.pid]>"u")global[process.pid]={};else if(typeof global[process.pid]!="object")throw new Error(`Name global.${process.pid} already exists and it is not an object`);if(typeof global[process.pid].pkijs>"u")global[process.pid].pkijs={};else if(typeof global[process.pid].pkijs!="object")throw new Error(`Name global.${process.pid}.pkijs already exists and it is not an object`);global[process.pid].pkijs.engine={name:s,crypto:t};}else b4={name:s,crypto:t};}function qL(){if(typeof process<"u"&&"pid"in process&&typeof global<"u"&&typeof window>"u"){let s;try{s=global[process.pid].pkijs.engine;}catch{throw new Error("Please call 'setEngine' before call to 'getEngine'")}return s}return b4}function Ie(s=!1){let e=qL();if(!e.crypto&&s)throw new Error("Unable to create WebCrypto object");return e.crypto}function GL(s){if(s.byteLength%2!==0)return dt;let e=s.byteLength/2,t=new ArrayBuffer(e);new Uint8Array(t).set(new Uint8Array(s,0,e));let n=new T({valueHex:t}),i=new ArrayBuffer(e);new Uint8Array(i).set(new Uint8Array(s,e,e));let o=new T({valueHex:i});return new b({value:[n.convertToDER(),o.convertToDER()]}).toBER(!1)}function KL(s,e){if(!(s instanceof b&&s.valueBlock.value.length===2&&s.valueBlock.value[0]instanceof T&&s.valueBlock.value[1]instanceof T))return dt;let t=s.valueBlock.value[0].convertFromDER().valueBlock.valueHexView,r=s.valueBlock.value[1].convertFromDER().valueBlock.valueHexView,n=new Uint8Array(e*2);return n.set(t,e-t.byteLength),n.set(r,2*e-r.byteLength),n.buffer}async function WL(s,e,t,r,n){switch(s.toUpperCase()){case"SHA-1":case"SHA-256":case"SHA-384":case"SHA-512":break;default:throw new Ke(`Unknown hash function: ${s}`)}if(Ke.assert(e,"zBuffer","ArrayBuffer"),e.byteLength===0)throw new Ke("'zBuffer' has zero length, error");if(Ke.assert(r,"SharedInfo","ArrayBuffer"),t>255)throw new Ke("Please set 'Counter' argument to value less or equal to 255");let i=new ArrayBuffer(4),a=new Uint8Array(i);a[0]=0,a[1]=0,a[2]=0,a[3]=t;let o=dt;o=Ra(o,e),o=Ra(o,i),o=Ra(o,r);let c=await n.digest({name:s},o);return {counter:t,result:c}}async function jT(s,e,t,r,n=Ie(!0)){let i=0,a=1;switch(s.toUpperCase()){case"SHA-1":i=160;break;case"SHA-256":i=256;break;case"SHA-384":i=384;break;case"SHA-512":i=512;break;default:throw new Ke(`Unknown hash function: ${s}`)}if(Ke.assert(e,"Zbuffer","ArrayBuffer"),e.byteLength===0)throw new Ke("'Zbuffer' has zero length, error");Ke.assert(r,"SharedInfo","ArrayBuffer");let o=t/i;Math.floor(o)>0&&(a=Math.floor(o),o-a>0&&a++);let c=[];for(let m=1;m<=a;m++)c.push(await WL(s,e,m,r,n));let u=dt,l=1,h=!0;for(;h;){h=!1;for(let m of c)if(m.counter===l){u=Ra(u,m.result),h=!0;break}l++;}if(t>>=3,u.byteLength>t){let m=new ArrayBuffer(t),y=new Uint8Array(m),g=new Uint8Array(u);for(let w=0;w<t;w++)y[w]=g[w];return m}return u}var D2="version",L2="logID",U2="extensions",H2="timestamp",_2="hashAlgorithm",j2="signatureAlgorithm",M2="signature",MT="none",$T="md5",FT="sha1",qT="sha224",GT="sha256",KT="sha384",WT="sha512",JT="anonymous",zT="rsa",YT="dsa",ZT="ecdsa",Sw=class s extends O{constructor(e={}){super(),this.version=d(e,D2,s.defaultValues(D2)),this.logID=d(e,L2,s.defaultValues(L2)),this.timestamp=d(e,H2,s.defaultValues(H2)),this.extensions=d(e,U2,s.defaultValues(U2)),this.hashAlgorithm=d(e,_2,s.defaultValues(_2)),this.signatureAlgorithm=d(e,j2,s.defaultValues(j2)),this.signature=d(e,M2,s.defaultValues(M2)),"stream"in e&&e.stream&&this.fromStream(e.stream),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case D2:return 0;case L2:case U2:return dt;case H2:return new Date(0);case _2:case j2:return p;case M2:return dt;default:return super.defaultValues(e)}}fromSchema(e){if(!(e instanceof Ua))throw new Error("Object's schema was not verified against input data for SignedCertificateTimestamp");let t=new tn({stream:new jt({buffer:e.data})});this.fromStream(t);}fromStream(e){let t=e.getUint16();if(this.version=e.getBlock(1)[0],this.version===0){this.logID=new Uint8Array(e.getBlock(32)).buffer.slice(0),this.timestamp=new Date(zr(new Uint8Array(e.getBlock(8)),8));let r=e.getUint16();switch(this.extensions=new Uint8Array(e.getBlock(r)).buffer.slice(0),e.getBlock(1)[0]){case 0:this.hashAlgorithm=MT;break;case 1:this.hashAlgorithm=$T;break;case 2:this.hashAlgorithm=FT;break;case 3:this.hashAlgorithm=qT;break;case 4:this.hashAlgorithm=GT;break;case 5:this.hashAlgorithm=KT;break;case 6:this.hashAlgorithm=WT;break;default:throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}switch(e.getBlock(1)[0]){case 0:this.signatureAlgorithm=JT;break;case 1:this.signatureAlgorithm=zT;break;case 2:this.signatureAlgorithm=YT;break;case 3:this.signatureAlgorithm=ZT;break;default:throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}let n=e.getUint16();if(this.signature=new Uint8Array(e.getBlock(n)).buffer.slice(0),t!==47+r+n)throw new Error("Object's stream was not correct for SignedCertificateTimestamp")}}toSchema(){let e=this.toStream();return new Ua({data:e.stream.buffer})}toStream(){let e=new tn;e.appendUint16(47+this.extensions.byteLength+this.signature.byteLength),e.appendChar(this.version),e.appendView(new Uint8Array(this.logID));let t=new ArrayBuffer(8),r=new Uint8Array(t),n=Xs(this.timestamp.valueOf(),8);r.set(new Uint8Array(n),8-n.byteLength),e.appendView(r),e.appendUint16(this.extensions.byteLength),this.extensions.byteLength&&e.appendView(new Uint8Array(this.extensions));let i;switch(this.hashAlgorithm.toLowerCase()){case MT:i=0;break;case $T:i=1;break;case FT:i=2;break;case qT:i=3;break;case GT:i=4;break;case KT:i=5;break;case WT:i=6;break;default:throw new Error(`Incorrect data for hashAlgorithm: ${this.hashAlgorithm}`)}e.appendChar(i);let a;switch(this.signatureAlgorithm.toLowerCase()){case JT:a=0;break;case zT:a=1;break;case YT:a=2;break;case ZT:a=3;break;default:throw new Error(`Incorrect data for signatureAlgorithm: ${this.signatureAlgorithm}`)}return e.appendChar(a),e.appendUint16(this.signature.byteLength),e.appendView(new Uint8Array(this.signature)),e}toJSON(){return {version:this.version,logID:k1(this.logID),timestamp:this.timestamp,extensions:k1(this.extensions),hashAlgorithm:this.hashAlgorithm,signatureAlgorithm:this.signatureAlgorithm,signature:k1(this.signature)}}async verify(e,t,r=0,n=Ie(!0)){let i=B1(bh(this.logID)),a=null,o=new tn;for(let y of e)if(y.log_id===i){a=y.key;break}if(!a)throw new Error(`Public key not found for CT with logId: ${i}`);let c=Va(Jc(a)),u=Ts.fromBER(c);o.appendChar(0),o.appendChar(0);let l=new ArrayBuffer(8),h=new Uint8Array(l),m=Xs(this.timestamp.valueOf(),8);return h.set(new Uint8Array(m),8-m.byteLength),o.appendView(h),o.appendUint16(r),r===0&&o.appendUint24(t.byteLength),o.appendView(new Uint8Array(t)),o.appendUint16(this.extensions.byteLength),this.extensions.byteLength!==0&&o.appendView(new Uint8Array(this.extensions)),n.verifyWithPublicKey(o.buffer.slice(0,o.length),new L({valueHex:this.signature}),u,{algorithmId:p},"SHA-256")}};Sw.CLASS_NAME="SignedCertificateTimestamp";var py="timestamps",vw=class s extends O{constructor(e={}){super(),this.timestamps=d(e,py,s.defaultValues(py)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case py:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case py:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){var t;let r=d(e,"names",{});return (t=r.optional)!==null&&t!==void 0||(r.optional=!1),new L({name:r.blockName||"SignedCertificateTimestampList",optional:r.optional})}fromSchema(e){if(!(e instanceof L))throw new Error("Object's schema was not verified against input data for SignedCertificateTimestampList");let t=new tn({stream:new jt({buffer:e.valueBlock.valueHex})});if(t.getUint16()!==t.length)throw new Error("Object's schema was not verified against input data for SignedCertificateTimestampList");for(;t.length;)this.timestamps.push(new Sw({stream:t}));}toSchema(){let e=new tn,t=0,r=[];for(let n of this.timestamps){let i=n.toStream();r.push(i),t+=i.stream.buffer.byteLength;}e.appendUint16(t);for(let n of r)e.appendView(n.stream.view);return new L({valueHex:e.stream.buffer.slice(0)})}toJSON(){return {timestamps:Array.from(this.timestamps,e=>e.toJSON())}}};vw.CLASS_NAME="SignedCertificateTimestampList";var Nd="attributes",JL=[Nd],Ew=class s extends O{constructor(e={}){super(),this.attributes=d(e,Nd,s.defaultValues(Nd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Nd:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.attributes||p,value:ut.schema()})]})}fromSchema(e){V(e,JL);let t=R(e,e,s.schema({names:{attributes:Nd}}));B.assertSchema(t,this.className),this.attributes=Array.from(t.result.attributes,r=>new ut({schema:r}));}toSchema(){return new b({value:Array.from(this.attributes,e=>e.toSchema())})}toJSON(){return {attributes:Array.from(this.attributes,e=>e.toJSON())}}};Ew.CLASS_NAME="SubjectDirectoryAttributes";var lA=class s{static getItems(){return this.types||(this.types={},s.register(r4,"SubjectAltName",j0),s.register(n4,"IssuerAltName",j0),s.register($A,"AuthorityKeyIdentifier",M0),s.register(jA,"BasicConstraints",$0),s.register(hL,"MicrosoftCaVersion",hw),s.register(u4,"CertificatePolicies",G0),s.register(aL,"CertificatePoliciesMicrosoft",G0),s.register(fL,"MicrosoftCertTemplateV2",cA),s.register(c4,"CRLDistributionPoints",W0),s.register(MA,"FreshestCRL",W0),s.register(oL,"ExtKeyUsage",dw),s.register(a4,"CertificateIssuer",xt),s.register(FA,"AuthorityInfoAccess",J0),s.register(uL,"SubjectInfoAccess",J0),s.register(i4,"IssuingDistributionPoint",mw),s.register(o4,"NameConstraints",pw),s.register(f4,"PolicyConstraints",gw),s.register(l4,"PolicyMappings",yw),s.register(tL,"PrivateKeyUsagePeriod",ww),s.register(dL,"QCStatements",bw),s.register(lL,"SignedCertificateTimestampList",vw),s.register(XD,"SubjectDirectoryAttributes",Ew)),this.types}static fromBER(e,t){let r=pt(t);if(r.offset===-1)return null;let n=this.find(e);if(n)try{return new n.type({schema:r.result})}catch{let i=new n.type;return i.parsingError=`Incorrectly formatted value of extension ${n.name} (${e})`,i}return r.result}static find(e){return this.getItems()[e]||null}static register(e,t,r){this.getItems()[e]={name:t,type:r};}},Td="extnID",Ei="critical",kd="extnValue",gy="parsedValue",zL=[Td,Ei,kd],ys=class s extends O{get parsedValue(){if(this._parsedValue===void 0){let e=lA.fromBER(this.extnID,this.extnValue.valueBlock.valueHexView);this._parsedValue=e;}return this._parsedValue||void 0}set parsedValue(e){this._parsedValue=e;}constructor(e={}){super(),this.extnID=d(e,Td,s.defaultValues(Td)),this.critical=d(e,Ei,s.defaultValues(Ei)),kd in e?this.extnValue=new L({valueHex:e.extnValue}):this.extnValue=s.defaultValues(kd),gy in e&&(this.parsedValue=d(e,gy,s.defaultValues(gy))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Td:return p;case Ei:return !1;case kd:return new L;case gy:return {};default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.extnID||p}),new Cs({name:t.critical||p,optional:!0}),new L({name:t.extnValue||p})]})}fromSchema(e){V(e,zL);let t=R(e,e,s.schema({names:{extnID:Td,critical:Ei,extnValue:kd}}));B.assertSchema(t,this.className),this.extnID=t.result.extnID.valueBlock.toString(),Ei in t.result&&(this.critical=t.result.critical.valueBlock.value),this.extnValue=t.result.extnValue;}toSchema(){let e=[];return e.push(new W({value:this.extnID})),this.critical!==s.defaultValues(Ei)&&e.push(new Cs({value:this.critical})),e.push(this.extnValue),new b({value:e})}toJSON(){let e={extnID:this.extnID,extnValue:this.extnValue.toJSON()};return this.critical!==s.defaultValues(Ei)&&(e.critical=this.critical),this.parsedValue&&this.parsedValue.toJSON&&(e.parsedValue=this.parsedValue.toJSON()),e}};ys.CLASS_NAME="Extension";var Pd="extensions",YL=[Pd],gt=class s extends O{constructor(e={}){super(),this.extensions=d(e,Pd,s.defaultValues(Pd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Pd:return [];default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,"names",{});return new b({optional:t,name:r.blockName||p,value:[new he({name:r.extensions||p,value:ys.schema(r.extension||{})})]})}fromSchema(e){V(e,YL);let t=R(e,e,s.schema({names:{extensions:Pd}}));B.assertSchema(t,this.className),this.extensions=Array.from(t.result.extensions,r=>new ys({schema:r}));}toSchema(){return new b({value:Array.from(this.extensions,e=>e.toSchema())})}toJSON(){return {extensions:this.extensions.map(e=>e.toJSON())}}};gt.CLASS_NAME="Extensions";var Bd="issuer",Od="serialNumber",ro="issuerUID",ZL=[Bd,Od,ro],Vs=class s extends O{constructor(e={}){super(),this.issuer=d(e,Bd,s.defaultValues(Bd)),this.serialNumber=d(e,Od,s.defaultValues(Od)),ro in e&&(this.issuerUID=d(e,ro,s.defaultValues(ro))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bd:return new xt;case Od:return new T;case ro:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[xt.schema(t.issuer||{}),new T({name:t.serialNumber||p}),new Te({optional:!0,name:t.issuerUID||p})]})}fromSchema(e){V(e,ZL);let t=R(e,e,s.schema({names:{issuer:{names:{blockName:Bd}},serialNumber:Od,issuerUID:ro}}));B.assertSchema(t,this.className),this.issuer=new xt({schema:t.result.issuer}),this.serialNumber=t.result.serialNumber,ro in t.result&&(this.issuerUID=t.result.issuerUID);}toSchema(){let e=new b({value:[this.issuer.toSchema(),this.serialNumber]});return this.issuerUID&&e.valueBlock.value.push(this.issuerUID),e}toJSON(){let e={issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()};return this.issuerUID&&(e.issuerUID=this.issuerUID.toJSON()),e}};Vs.CLASS_NAME="IssuerSerial";var Rd="version",no="baseCertificateID",io="subjectName",Vd="issuer",Dd="signature",Ld="serialNumber",Ud="attrCertValidityPeriod",Hd="attributes",ao="issuerUniqueID",oo="extensions",XL=[Rd,no,io,Vd,Dd,Ld,Ud,Hd,ao,oo],Tl=class s extends O{constructor(e={}){super(),this.version=d(e,Rd,s.defaultValues(Rd)),no in e&&(this.baseCertificateID=d(e,no,s.defaultValues(no))),io in e&&(this.subjectName=d(e,io,s.defaultValues(io))),this.issuer=d(e,Vd,s.defaultValues(Vd)),this.signature=d(e,Dd,s.defaultValues(Dd)),this.serialNumber=d(e,Ld,s.defaultValues(Ld)),this.attrCertValidityPeriod=d(e,Ud,s.defaultValues(Ud)),this.attributes=d(e,Hd,s.defaultValues(Hd)),ao in e&&(this.issuerUniqueID=d(e,ao,s.defaultValues(ao))),oo in e&&(this.extensions=d(e,oo,s.defaultValues(oo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Rd:return 0;case no:return new Vs;case io:return new xt;case Vd:return new xt;case Dd:return new k;case Ld:return new T;case Ud:return new vn;case Hd:return [];case ao:return new Te;case oo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new Ze({value:[new A({name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({name:t.subjectName||p,idBlock:{tagClass:3,tagNumber:1},value:xt.schema().valueBlock.value})]}),xt.schema({names:{blockName:t.issuer||p}}),k.schema(t.signature||{}),new T({name:t.serialNumber||p}),vn.schema(t.attrCertValidityPeriod||{}),new b({name:t.attributes||p,value:[new he({value:ut.schema()})]}),new Te({optional:!0,name:t.issuerUniqueID||p}),gt.schema(t.extensions||{},!0)]})}fromSchema(e){V(e,XL);let t=R(e,e,s.schema({names:{version:Rd,baseCertificateID:no,subjectName:io,issuer:Vd,signature:{names:{blockName:Dd}},serialNumber:Ld,attrCertValidityPeriod:{names:{blockName:Ud}},attributes:Hd,issuerUniqueID:ao,extensions:{names:{blockName:oo}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,no in t.result&&(this.baseCertificateID=new Vs({schema:new b({value:t.result.baseCertificateID.valueBlock.value})})),io in t.result&&(this.subjectName=new xt({schema:new b({value:t.result.subjectName.valueBlock.value})})),this.issuer=t.result.issuer,this.signature=new k({schema:t.result.signature}),this.serialNumber=t.result.serialNumber,this.attrCertValidityPeriod=new vn({schema:t.result.attrCertValidityPeriod}),this.attributes=Array.from(t.result.attributes.valueBlock.value,r=>new ut({schema:r})),ao in t.result&&(this.issuerUniqueID=t.result.issuerUniqueID),oo in t.result&&(this.extensions=new gt({schema:t.result.extensions}));}toSchema(){let e=new b({value:[new T({value:this.version})]});return this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.subjectName&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.subjectName.toSchema().valueBlock.value})),e.valueBlock.value.push(this.issuer.toSchema()),e.valueBlock.value.push(this.signature.toSchema()),e.valueBlock.value.push(this.serialNumber),e.valueBlock.value.push(this.attrCertValidityPeriod.toSchema()),e.valueBlock.value.push(new b({value:Array.from(this.attributes,t=>t.toSchema())})),this.issuerUniqueID&&e.valueBlock.value.push(this.issuerUniqueID),this.extensions&&e.valueBlock.value.push(this.extensions.toSchema()),e}toJSON(){let e={version:this.version};return this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.subjectName&&(e.subjectName=this.subjectName.toJSON()),e.issuer=this.issuer.toJSON(),e.signature=this.signature.toJSON(),e.serialNumber=this.serialNumber.toJSON(),e.attrCertValidityPeriod=this.attrCertValidityPeriod.toJSON(),e.attributes=Array.from(this.attributes,t=>t.toJSON()),this.issuerUniqueID&&(e.issuerUniqueID=this.issuerUniqueID.toJSON()),this.extensions&&(e.extensions=this.extensions.toJSON()),e}};Tl.CLASS_NAME="AttributeCertificateInfoV1";var _d="acinfo",jd="signatureAlgorithm",Md="signatureValue",QL=[_d,Md,jd],Dl=class s extends O{constructor(e={}){super(),this.acinfo=d(e,_d,s.defaultValues(_d)),this.signatureAlgorithm=d(e,jd,s.defaultValues(jd)),this.signatureValue=d(e,Md,s.defaultValues(Md)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case _d:return new Tl;case jd:return new k;case Md:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[Tl.schema(t.acinfo||{}),k.schema(t.signatureAlgorithm||{}),new Te({name:t.signatureValue||p})]})}fromSchema(e){V(e,QL);let t=R(e,e,s.schema({names:{acinfo:{names:{blockName:_d}},signatureAlgorithm:{names:{blockName:jd}},signatureValue:Md}}));B.assertSchema(t,this.className),this.acinfo=new Tl({schema:t.result.acinfo}),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}toSchema(){return new b({value:[this.acinfo.toSchema(),this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){return {acinfo:this.acinfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()}}};Dl.CLASS_NAME="AttributeCertificateV1";var $d="digestedObjectType",co="otherObjectTypeID",Fd="digestAlgorithm",qd="objectDigest",eU=[$d,co,Fd,qd],En=class s extends O{constructor(e={}){super(),this.digestedObjectType=d(e,$d,s.defaultValues($d)),co in e&&(this.otherObjectTypeID=d(e,co,s.defaultValues(co))),this.digestAlgorithm=d(e,Fd,s.defaultValues(Fd)),this.objectDigest=d(e,qd,s.defaultValues(qd)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $d:return new br;case co:return new W;case Fd:return new k;case qd:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new br({name:t.digestedObjectType||p}),new W({optional:!0,name:t.otherObjectTypeID||p}),k.schema(t.digestAlgorithm||{}),new Te({name:t.objectDigest||p})]})}fromSchema(e){V(e,eU);let t=R(e,e,s.schema({names:{digestedObjectType:$d,otherObjectTypeID:co,digestAlgorithm:{names:{blockName:Fd}},objectDigest:qd}}));B.assertSchema(t,this.className),this.digestedObjectType=t.result.digestedObjectType,co in t.result&&(this.otherObjectTypeID=t.result.otherObjectTypeID),this.digestAlgorithm=new k({schema:t.result.digestAlgorithm}),this.objectDigest=t.result.objectDigest;}toSchema(){let e=new b({value:[this.digestedObjectType]});return this.otherObjectTypeID&&e.valueBlock.value.push(this.otherObjectTypeID),e.valueBlock.value.push(this.digestAlgorithm.toSchema()),e.valueBlock.value.push(this.objectDigest),e}toJSON(){let e={digestedObjectType:this.digestedObjectType.toJSON(),digestAlgorithm:this.digestAlgorithm.toJSON(),objectDigest:this.objectDigest.toJSON()};return this.otherObjectTypeID&&(e.otherObjectTypeID=this.otherObjectTypeID.toJSON()),e}};En.CLASS_NAME="ObjectDigestInfo";var uo="issuerName",lo="baseCertificateID",fo="objectDigestInfo",tU=[uo,lo,fo],tm=class s extends O{constructor(e={}){super(),uo in e&&(this.issuerName=d(e,uo,s.defaultValues(uo))),lo in e&&(this.baseCertificateID=d(e,lo,s.defaultValues(lo))),fo in e&&(this.objectDigestInfo=d(e,fo,s.defaultValues(fo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case uo:return new xt;case lo:return new Vs;case fo:return new En;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[xt.schema({names:{blockName:t.issuerName}},!0),new A({optional:!0,name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({optional:!0,name:t.objectDigestInfo||p,idBlock:{tagClass:3,tagNumber:1},value:En.schema().valueBlock.value})]})}fromSchema(e){V(e,tU);let t=R(e,e,s.schema({names:{issuerName:uo,baseCertificateID:lo,objectDigestInfo:fo}}));B.assertSchema(t,this.className),uo in t.result&&(this.issuerName=new xt({schema:t.result.issuerName})),lo in t.result&&(this.baseCertificateID=new Vs({schema:new b({value:t.result.baseCertificateID.valueBlock.value})})),fo in t.result&&(this.objectDigestInfo=new En({schema:new b({value:t.result.objectDigestInfo.valueBlock.value})}));}toSchema(){let e=new b;return this.issuerName&&e.valueBlock.value.push(this.issuerName.toSchema()),this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.objectDigestInfo&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.objectDigestInfo.toSchema().valueBlock.value})),e}toJSON(){let e={};return this.issuerName&&(e.issuerName=this.issuerName.toJSON()),this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.objectDigestInfo&&(e.objectDigestInfo=this.objectDigestInfo.toJSON()),e}};tm.CLASS_NAME="V2Form";var ho="baseCertificateID",mo="entityName",po="objectDigestInfo",sU=[ho,mo,po],kl=class s extends O{constructor(e={}){super(),ho in e&&(this.baseCertificateID=d(e,ho,s.defaultValues(ho))),mo in e&&(this.entityName=d(e,mo,s.defaultValues(mo))),po in e&&(this.objectDigestInfo=d(e,po,s.defaultValues(po))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ho:return new Vs;case mo:return new xt;case po:return new En;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({optional:!0,name:t.baseCertificateID||p,idBlock:{tagClass:3,tagNumber:0},value:Vs.schema().valueBlock.value}),new A({optional:!0,name:t.entityName||p,idBlock:{tagClass:3,tagNumber:1},value:xt.schema().valueBlock.value}),new A({optional:!0,name:t.objectDigestInfo||p,idBlock:{tagClass:3,tagNumber:2},value:En.schema().valueBlock.value})]})}fromSchema(e){V(e,sU);let t=R(e,e,s.schema({names:{baseCertificateID:ho,entityName:mo,objectDigestInfo:po}}));B.assertSchema(t,this.className),ho in t.result&&(this.baseCertificateID=new Vs({schema:new b({value:t.result.baseCertificateID.valueBlock.value})})),mo in t.result&&(this.entityName=new xt({schema:new b({value:t.result.entityName.valueBlock.value})})),po in t.result&&(this.objectDigestInfo=new En({schema:new b({value:t.result.objectDigestInfo.valueBlock.value})}));}toSchema(){let e=new b;return this.baseCertificateID&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.baseCertificateID.toSchema().valueBlock.value})),this.entityName&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.entityName.toSchema().valueBlock.value})),this.objectDigestInfo&&e.valueBlock.value.push(new A({idBlock:{tagClass:3,tagNumber:2},value:this.objectDigestInfo.toSchema().valueBlock.value})),e}toJSON(){let e={};return this.baseCertificateID&&(e.baseCertificateID=this.baseCertificateID.toJSON()),this.entityName&&(e.entityName=this.entityName.toJSON()),this.objectDigestInfo&&(e.objectDigestInfo=this.objectDigestInfo.toJSON()),e}};kl.CLASS_NAME="Holder";var Gd="version",Kd="holder",Wd="issuer",Jd="signature",zd="serialNumber",Yd="attrCertValidityPeriod",Zd="attributes",go="issuerUniqueID",yo="extensions",rU=[Gd,Kd,Wd,Jd,zd,Yd,Zd,go,yo],Pl=class s extends O{constructor(e={}){super(),this.version=d(e,Gd,s.defaultValues(Gd)),this.holder=d(e,Kd,s.defaultValues(Kd)),this.issuer=d(e,Wd,s.defaultValues(Wd)),this.signature=d(e,Jd,s.defaultValues(Jd)),this.serialNumber=d(e,zd,s.defaultValues(zd)),this.attrCertValidityPeriod=d(e,Yd,s.defaultValues(Yd)),this.attributes=d(e,Zd,s.defaultValues(Zd)),go in e&&(this.issuerUniqueID=d(e,go,s.defaultValues(go))),yo in e&&(this.extensions=d(e,yo,s.defaultValues(yo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Gd:return 1;case Kd:return new kl;case Wd:return {};case Jd:return new k;case zd:return new T;case Yd:return new vn;case Zd:return [];case go:return new Te;case yo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),kl.schema(t.holder||{}),new Ze({value:[xt.schema({names:{blockName:t.issuer||p}}),new A({name:t.issuer||p,idBlock:{tagClass:3,tagNumber:0},value:tm.schema().valueBlock.value})]}),k.schema(t.signature||{}),new T({name:t.serialNumber||p}),vn.schema(t.attrCertValidityPeriod||{}),new b({name:t.attributes||p,value:[new he({value:ut.schema()})]}),new Te({optional:!0,name:t.issuerUniqueID||p}),gt.schema(t.extensions||{},!0)]})}fromSchema(e){V(e,rU);let t=R(e,e,s.schema({names:{version:Gd,holder:{names:{blockName:Kd}},issuer:Wd,signature:{names:{blockName:Jd}},serialNumber:zd,attrCertValidityPeriod:{names:{blockName:Yd}},attributes:Zd,issuerUniqueID:go,extensions:{names:{blockName:yo}}}}));switch(B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.holder=new kl({schema:t.result.holder}),t.result.issuer.idBlock.tagClass){case 3:this.issuer=new tm({schema:new b({value:t.result.issuer.valueBlock.value})});break;case 1:default:throw new Error("Incorrect value for 'issuer' in AttributeCertificateInfoV2")}this.signature=new k({schema:t.result.signature}),this.serialNumber=t.result.serialNumber,this.attrCertValidityPeriod=new vn({schema:t.result.attrCertValidityPeriod}),this.attributes=Array.from(t.result.attributes.valueBlock.value,r=>new ut({schema:r})),go in t.result&&(this.issuerUniqueID=t.result.issuerUniqueID),yo in t.result&&(this.extensions=new gt({schema:t.result.extensions}));}toSchema(){let e=new b({value:[new T({value:this.version}),this.holder.toSchema(),new A({idBlock:{tagClass:3,tagNumber:0},value:this.issuer.toSchema().valueBlock.value}),this.signature.toSchema(),this.serialNumber,this.attrCertValidityPeriod.toSchema(),new b({value:Array.from(this.attributes,t=>t.toSchema())})]});return this.issuerUniqueID&&e.valueBlock.value.push(this.issuerUniqueID),this.extensions&&e.valueBlock.value.push(this.extensions.toSchema()),e}toJSON(){let e={version:this.version,holder:this.holder.toJSON(),issuer:this.issuer.toJSON(),signature:this.signature.toJSON(),serialNumber:this.serialNumber.toJSON(),attrCertValidityPeriod:this.attrCertValidityPeriod.toJSON(),attributes:Array.from(this.attributes,t=>t.toJSON())};return this.issuerUniqueID&&(e.issuerUniqueID=this.issuerUniqueID.toJSON()),this.extensions&&(e.extensions=this.extensions.toJSON()),e}};Pl.CLASS_NAME="AttributeCertificateInfoV2";var Xd="acinfo",Qd="signatureAlgorithm",e0="signatureValue",nU=[Xd,Qd,e0],xr=class s extends O{constructor(e={}){super(),this.acinfo=d(e,Xd,s.defaultValues(Xd)),this.signatureAlgorithm=d(e,Qd,s.defaultValues(Qd)),this.signatureValue=d(e,e0,s.defaultValues(e0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Xd:return new Pl;case Qd:return new k;case e0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[Pl.schema(t.acinfo||{}),k.schema(t.signatureAlgorithm||{}),new Te({name:t.signatureValue||p})]})}fromSchema(e){V(e,nU);let t=R(e,e,s.schema({names:{acinfo:{names:{blockName:Xd}},signatureAlgorithm:{names:{blockName:Qd}},signatureValue:e0}}));B.assertSchema(t,this.className),this.acinfo=new Pl({schema:t.result.acinfo}),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}toSchema(){return new b({value:[this.acinfo.toSchema(),this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){return {acinfo:this.acinfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()}}};xr.CLASS_NAME="AttributeCertificateV2";var wo="contentType",yu="content",iU=[wo,yu],ot=class s extends O{constructor(e={}){super(),this.contentType=d(e,wo,s.defaultValues(wo)),this.content=d(e,yu,s.defaultValues(yu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wo:return p;case yu:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case wo:return typeof t=="string"&&t===this.defaultValues(wo);case yu:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return "optional"in t||(t.optional=!1),new b({name:t.blockName||"ContentInfo",optional:t.optional,value:[new W({name:t.contentType||wo}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.content||yu})]})]})}fromSchema(e){V(e,iU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.contentType=t.result.contentType.valueBlock.toString(),this.content=t.result.content;}toSchema(){return new b({value:[new W({value:this.contentType}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.content]})]})}toJSON(){let e={contentType:this.contentType};return this.content instanceof ue||(e.content=this.content.toJSON()),e}};ot.CLASS_NAME="ContentInfo";ot.DATA=qA;ot.SIGNED_DATA=h4;ot.ENVELOPED_DATA=d4;ot.ENCRYPTED_DATA=m4;var $2="type",F2="value",fA="utcTimeName",hA="generalTimeName",aU=[fA,hA],XT;(function(s){s[s.UTCTime=0]="UTCTime",s[s.GeneralizedTime=1]="GeneralizedTime",s[s.empty=2]="empty";})(XT||(XT={}));var At=class s extends O{constructor(e={}){super(),this.type=d(e,$2,s.defaultValues($2)),this.value=d(e,F2,s.defaultValues(F2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $2:return 0;case F2:return new Date(0,0,0);default:return super.defaultValues(e)}}static schema(e={},t=!1){let r=d(e,"names",{});return new Ze({optional:t,value:[new Xr({name:r.utcTimeName||p}),new Ye({name:r.generalTimeName||p})]})}fromSchema(e){V(e,aU);let t=R(e,e,s.schema({names:{utcTimeName:fA,generalTimeName:hA}}));B.assertSchema(t,this.className),fA in t.result&&(this.type=0,this.value=t.result.utcTimeName.toDate()),hA in t.result&&(this.type=1,this.value=t.result.generalTimeName.toDate());}toSchema(){return this.type===0?new Xr({valueDate:this.value}):this.type===1?new Ye({valueDate:this.value}):{}}toJSON(){return {type:this.type,value:this.value}}};At.CLASS_NAME="Time";var q2="tbs",xi="version",Ly="serialNumber",Uy="signature",Hy="issuer",_y="notBefore",jy="notAfter",My="subject",$y="subjectPublicKeyInfo",t0="issuerUniqueID",s0="subjectUniqueID",r0="extensions",n0="signatureAlgorithm",i0="signatureValue",ks="tbsCertificate",xw=`${ks}.${xi}`,KA=`${ks}.${Ly}`,WA=`${ks}.${Uy}`,JA=`${ks}.${Hy}`,Aw=`${ks}.${_y}`,Iw=`${ks}.${jy}`,zA=`${ks}.${My}`,YA=`${ks}.${$y}`,Cw=`${ks}.${t0}`,Nw=`${ks}.${s0}`,U0=`${ks}.${r0}`,oU=[ks,xw,KA,WA,JA,Aw,Iw,zA,YA,Cw,Nw,U0,n0,i0];function cU(s={}){let e=d(s,"names",{});return new b({name:e.blockName||ks,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:e.tbsCertificateVersion||xw})]}),new T({name:e.tbsCertificateSerialNumber||KA}),k.schema(e.signature||{names:{blockName:WA}}),Xe.schema(e.issuer||{names:{blockName:JA}}),new b({name:e.tbsCertificateValidity||"tbsCertificate.validity",value:[At.schema(e.notBefore||{names:{utcTimeName:Aw,generalTimeName:Aw}}),At.schema(e.notAfter||{names:{utcTimeName:Iw,generalTimeName:Iw}})]}),Xe.schema(e.subject||{names:{blockName:zA}}),Ts.schema(e.subjectPublicKeyInfo||{names:{blockName:YA}}),new oe({name:e.tbsCertificateIssuerUniqueID||Cw,optional:!0,idBlock:{tagClass:3,tagNumber:1}}),new oe({name:e.tbsCertificateSubjectUniqueID||Nw,optional:!0,idBlock:{tagClass:3,tagNumber:2}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:3},value:[gt.schema(e.extensions||{names:{blockName:U0}})]})]})}var Mt=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,q2,s.defaultValues(q2))),this.version=d(e,xi,s.defaultValues(xi)),this.serialNumber=d(e,Ly,s.defaultValues(Ly)),this.signature=d(e,Uy,s.defaultValues(Uy)),this.issuer=d(e,Hy,s.defaultValues(Hy)),this.notBefore=d(e,_y,s.defaultValues(_y)),this.notAfter=d(e,jy,s.defaultValues(jy)),this.subject=d(e,My,s.defaultValues(My)),this.subjectPublicKeyInfo=d(e,$y,s.defaultValues($y)),t0 in e&&(this.issuerUniqueID=d(e,t0,s.defaultValues(t0))),s0 in e&&(this.subjectUniqueID=d(e,s0,s.defaultValues(s0))),r0 in e&&(this.extensions=d(e,r0,s.defaultValues(r0))),this.signatureAlgorithm=d(e,n0,s.defaultValues(n0)),this.signatureValue=d(e,i0,s.defaultValues(i0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case q2:return dt;case xi:return 0;case Ly:return new T;case Uy:return new k;case Hy:return new Xe;case _y:return new At;case jy:return new At;case My:return new Xe;case $y:return new Ts;case t0:return dt;case s0:return dt;case r0:return [];case n0:return new k;case i0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[cU(t.tbsCertificate),k.schema(t.signatureAlgorithm||{names:{blockName:n0}}),new Te({name:t.signatureValue||i0})]})}fromSchema(e){V(e,oU);let t=R(e,e,s.schema({names:{tbsCertificate:{names:{extensions:{names:{extensions:U0}}}}}}));B.assertSchema(t,this.className),this.tbsView=t.result.tbsCertificate.valueBeforeDecodeView,xw in t.result&&(this.version=t.result[xw].valueBlock.valueDec),this.serialNumber=t.result[KA],this.signature=new k({schema:t.result[WA]}),this.issuer=new Xe({schema:t.result[JA]}),this.notBefore=new At({schema:t.result[Aw]}),this.notAfter=new At({schema:t.result[Iw]}),this.subject=new Xe({schema:t.result[zA]}),this.subjectPublicKeyInfo=new Ts({schema:t.result[YA]}),Cw in t.result&&(this.issuerUniqueID=t.result[Cw].valueBlock.valueHex),Nw in t.result&&(this.subjectUniqueID=t.result[Nw].valueBlock.valueHex),U0 in t.result&&(this.extensions=Array.from(t.result[U0],r=>new ys({schema:r}))),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[];return xi in this&&this.version!==s.defaultValues(xi)&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),e.push(this.serialNumber),e.push(this.signature.toSchema()),e.push(this.issuer.toSchema()),e.push(new b({value:[this.notBefore.toSchema(),this.notAfter.toSchema()]})),e.push(this.subject.toSchema()),e.push(this.subjectPublicKeyInfo.toSchema()),this.issuerUniqueID&&e.push(new oe({optional:!0,idBlock:{tagClass:3,tagNumber:1},valueHex:this.issuerUniqueID})),this.subjectUniqueID&&e.push(new oe({optional:!0,idBlock:{tagClass:3,tagNumber:2},valueHex:this.subjectUniqueID})),this.extensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:3},value:[new b({value:Array.from(this.extensions,t=>t.toSchema())})]})),new b({value:e})}toSchema(e=!1){let t;if(e===!1){if(!this.tbsView.byteLength)return s.schema().value[0];let r=pt(this.tbsView);B.assert(r,"TBS Certificate"),t=r.result;}else t=this.encodeTBS();return new b({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,serialNumber:this.serialNumber.toJSON(),signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),notBefore:this.notBefore.toJSON(),notAfter:this.notAfter.toJSON(),subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return xi in this&&this.version!==s.defaultValues(xi)&&(e.version=this.version),this.issuerUniqueID&&(e.issuerUniqueID=fe.ToHex(this.issuerUniqueID)),this.subjectUniqueID&&(e.subjectUniqueID=fe.ToHex(this.subjectUniqueID)),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}async getPublicKey(e,t=Ie(!0)){return t.getPublicKey(this.subjectPublicKeyInfo,this.signatureAlgorithm,e)}async getKeyHash(e="SHA-1",t=Ie(!0)){return t.digest({name:e},this.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView)}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters;this.signature=n.signatureAlgorithm,this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e,t=Ie(!0)){let r;if(e?r=e.subjectPublicKeyInfo:this.issuer.isEqual(this.subject)&&(r=this.subjectPublicKeyInfo),!(r instanceof Ts))throw new Error("Please provide issuer certificate as a parameter");return t.verifyWithPublicKey(this.tbsView,this.signatureValue,r,this.signatureAlgorithm)}};Mt.CLASS_NAME="Certificate";function S4(s,e=null){if(e&&s.issuer.isEqual(e.issuer)&&s.serialNumber.isEqual(e.serialNumber))return null;let t=!1;if(s.extensions){for(let r of s.extensions)if(r.extnID===jA&&r.parsedValue instanceof $0&&r.parsedValue.cA){t=!0;break}}return t?s:null}var wu="certId",bu="certValue",Qc="parsedValue",uU=[wu,bu],Tw=class s extends O{constructor(e={}){super(),this.certId=d(e,wu,s.defaultValues(wu)),this.certValue=d(e,bu,s.defaultValues(bu)),Qc in e&&(this.parsedValue=d(e,Qc,s.defaultValues(Qc))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case wu:return p;case bu:return new ue;case Qc:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case wu:return t===p;case bu:return t instanceof ue;case Qc:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,uU);let t=R(e,e,s.schema({names:{id:wu,value:bu}}));B.assertSchema(t,this.className),this.certId=t.result.certId.valueBlock.toString(),this.certValue=t.result.certValue;let r=this.certValue.valueBlock.valueHexView;switch(this.certId){case RT:try{this.parsedValue=Mt.fromBER(r);}catch{xr.fromBER(r);}break;case VT:this.parsedValue=xr.fromBER(r);break;case pL:default:throw new Error(`Incorrect CERT_ID value in CertBag: ${this.certId}`)}}toSchema(){return Qc in this&&("acinfo"in this.parsedValue?this.certId=VT:this.certId=RT,this.certValue=new L({valueHex:this.parsedValue.toSchema().toBER(!1)})),new b({value:[new W({value:this.certId}),new A({idBlock:{tagClass:3,tagNumber:0},value:["toSchema"in this.certValue?this.certValue.toSchema():this.certValue]})]})}toJSON(){return {certId:this.certId,certValue:this.certValue.toJSON()}}};Tw.CLASS_NAME="CertBag";var a0="userCertificate",Su="revocationDate",bo="crlEntryExtensions",lU=[a0,Su,bo],kw=class s extends O{constructor(e={}){super(),this.userCertificate=d(e,a0,s.defaultValues(a0)),this.revocationDate=d(e,Su,s.defaultValues(Su)),bo in e&&(this.crlEntryExtensions=d(e,bo,s.defaultValues(bo))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case a0:return new T;case Su:return new At;case bo:return new gt;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.userCertificate||a0}),At.schema({names:{utcTimeName:t.revocationDate||Su,generalTimeName:t.revocationDate||Su}}),gt.schema({names:{blockName:t.crlEntryExtensions||bo}},!0)]})}fromSchema(e){V(e,lU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.userCertificate=t.result.userCertificate,this.revocationDate=new At({schema:t.result.revocationDate}),bo in t.result&&(this.crlEntryExtensions=new gt({schema:t.result.crlEntryExtensions}));}toSchema(){let e=[this.userCertificate,this.revocationDate.toSchema()];return this.crlEntryExtensions&&e.push(this.crlEntryExtensions.toSchema()),new b({value:e})}toJSON(){let e={userCertificate:this.userCertificate.toJSON(),revocationDate:this.revocationDate.toJSON()};return this.crlEntryExtensions&&(e.crlEntryExtensions=this.crlEntryExtensions.toJSON()),e}};kw.CLASS_NAME="RevokedCertificate";var G2="tbs",Rh="version",K2="signature",W2="issuer",J2="thisUpdate",yy="nextUpdate",wy="revokedCertificates",by="crlExtensions",o0="signatureAlgorithm",c0="signatureValue",In="tbsCertList",Pw=`${In}.version`,ZA=`${In}.signature`,XA=`${In}.issuer`,Bw=`${In}.thisUpdate`,sm=`${In}.nextUpdate`,Ow=`${In}.revokedCertificates`,Rw=`${In}.extensions`,fU=[In,Pw,ZA,XA,Bw,sm,Ow,Rw,o0,c0];function hU(s={}){let e=d(s,"names",{});return new b({name:e.blockName||In,value:[new T({optional:!0,name:e.tbsCertListVersion||Pw,value:2}),k.schema(e.signature||{names:{blockName:ZA}}),Xe.schema(e.issuer||{names:{blockName:XA}}),At.schema(e.tbsCertListThisUpdate||{names:{utcTimeName:Bw,generalTimeName:Bw}}),At.schema(e.tbsCertListNextUpdate||{names:{utcTimeName:sm,generalTimeName:sm}},!0),new b({optional:!0,value:[new he({name:e.tbsCertListRevokedCertificates||Ow,value:new b({value:[new T,At.schema(),gt.schema({},!0)]})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[gt.schema(e.crlExtensions||{names:{blockName:Rw}})]})]})}var dU=[$A,n4,sL,rL,i4,MA,FA,nL,iL,a4],sc=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,G2,s.defaultValues(G2))),this.version=d(e,Rh,s.defaultValues(Rh)),this.signature=d(e,K2,s.defaultValues(K2)),this.issuer=d(e,W2,s.defaultValues(W2)),this.thisUpdate=d(e,J2,s.defaultValues(J2)),yy in e&&(this.nextUpdate=d(e,yy,s.defaultValues(yy))),wy in e&&(this.revokedCertificates=d(e,wy,s.defaultValues(wy))),by in e&&(this.crlExtensions=d(e,by,s.defaultValues(by))),this.signatureAlgorithm=d(e,o0,s.defaultValues(o0)),this.signatureValue=d(e,c0,s.defaultValues(c0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case G2:return dt;case Rh:return 0;case K2:return new k;case W2:return new Xe;case J2:return new At;case yy:return new At;case wy:return [];case by:return new gt;case o0:return new k;case c0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||"CertificateList",value:[hU(e),k.schema(t.signatureAlgorithm||{names:{blockName:o0}}),new Te({name:t.signatureValue||c0})]})}fromSchema(e){V(e,fU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.tbsCertList.valueBeforeDecodeView,Pw in t.result&&(this.version=t.result[Pw].valueBlock.valueDec),this.signature=new k({schema:t.result[ZA]}),this.issuer=new Xe({schema:t.result[XA]}),this.thisUpdate=new At({schema:t.result[Bw]}),sm in t.result&&(this.nextUpdate=new At({schema:t.result[sm]})),Ow in t.result&&(this.revokedCertificates=Array.from(t.result[Ow],r=>new kw({schema:r}))),Rw in t.result&&(this.crlExtensions=new gt({schema:t.result[Rw]})),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[];return this.version!==s.defaultValues(Rh)&&e.push(new T({value:this.version})),e.push(this.signature.toSchema()),e.push(this.issuer.toSchema()),e.push(this.thisUpdate.toSchema()),this.nextUpdate&&e.push(this.nextUpdate.toSchema()),this.revokedCertificates&&e.push(new b({value:Array.from(this.revokedCertificates,t=>t.toSchema())})),this.crlExtensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.crlExtensions.toSchema()]})),new b({value:e})}toSchema(e=!1){let t;if(e)t=this.encodeTBS();else {if(!this.tbsView.byteLength)return s.schema();let r=pt(this.tbsView);B.assert(r,"TBS Certificate Revocation List"),t=r.result;}return new b({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,signature:this.signature.toJSON(),issuer:this.issuer.toJSON(),thisUpdate:this.thisUpdate.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return this.version!==s.defaultValues(Rh)&&(e.version=this.version),this.nextUpdate&&(e.nextUpdate=this.nextUpdate.toJSON()),this.revokedCertificates&&(e.revokedCertificates=Array.from(this.revokedCertificates,t=>t.toJSON())),this.crlExtensions&&(e.crlExtensions=this.crlExtensions.toJSON()),e}isCertificateRevoked(e){if(!this.issuer.isEqual(e.issuer)||!this.revokedCertificates)return !1;for(let t of this.revokedCertificates)if(t.userCertificate.isEqual(e.serialNumber))return !0;return !1}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),{parameters:i}=n;this.signature=n.signatureAlgorithm,this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e={},t=Ie(!0)){let r;if(e.issuerCertificate&&(r=e.issuerCertificate.subjectPublicKeyInfo,!this.issuer.isEqual(e.issuerCertificate.subject)))return !1;if(e.publicKeyInfo&&(r=e.publicKeyInfo),!r)throw new Error("Issuer's certificate must be provided as an input parameter");if(this.crlExtensions){for(let n of this.crlExtensions.extensions)if(n.critical&&!dU.includes(n.extnID))return !1}return t.verifyWithPublicKey(this.tbsView,this.signatureValue,r,this.signatureAlgorithm)}};sc.CLASS_NAME="CertificateRevocationList";var vu="crlId",Eu="crlValue",Vh="parsedValue",mU=[vu,Eu],Vw=class s extends O{constructor(e={}){super(),this.crlId=d(e,vu,s.defaultValues(vu)),this.crlValue=d(e,Eu,s.defaultValues(Eu)),Vh in e&&(this.parsedValue=d(e,Vh,s.defaultValues(Vh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vu:return p;case Eu:return new ue;case Vh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case vu:return t===p;case Eu:return t instanceof ue;case Vh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,mU);let t=R(e,e,s.schema({names:{id:vu,value:Eu}}));switch(B.assertSchema(t,this.className),this.crlId=t.result.crlId.valueBlock.toString(),this.crlValue=t.result.crlValue,this.crlId){case DT:this.parsedValue=sc.fromBER(this.certValue.valueBlock.valueHex);break;default:throw new Error(`Incorrect CRL_ID value in CRLBag: ${this.crlId}`)}}toSchema(){return this.parsedValue&&(this.crlId=DT,this.crlValue=new L({valueHex:this.parsedValue.toSchema().toBER(!1)})),new b({value:[new W({value:this.crlId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.crlValue.toSchema()]})]})}toJSON(){return {crlId:this.crlId,crlValue:this.crlValue.toJSON()}}};Vw.CLASS_NAME="CRLBag";var xu="version",Au="encryptedContentInfo",Ai="unprotectedAttrs",pU=[xu,Au,Ai],rc=class s extends O{constructor(e={}){super(),this.version=d(e,xu,s.defaultValues(xu)),this.encryptedContentInfo=d(e,Au,s.defaultValues(Au)),Ai in e&&(this.unprotectedAttrs=d(e,Ai,s.defaultValues(Ai))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case xu:return 0;case Au:return new Ot;case Ai:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case xu:return t===0;case Au:return Ot.compareWithDefault("contentType",t.contentType)&&Ot.compareWithDefault("contentEncryptionAlgorithm",t.contentEncryptionAlgorithm)&&Ot.compareWithDefault("encryptedContent",t.encryptedContent);case Ai:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),Ot.schema(t.encryptedContentInfo||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.unprotectedAttrs||p,value:ut.schema()})]})]})}fromSchema(e){V(e,pU);let t=R(e,e,s.schema({names:{version:xu,encryptedContentInfo:{names:{blockName:Au}},unprotectedAttrs:Ai}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.encryptedContentInfo=new Ot({schema:t.result.encryptedContentInfo}),Ai in t.result&&(this.unprotectedAttrs=Array.from(t.result.unprotectedAttrs,r=>new ut({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.encryptedContentInfo.toSchema()),this.unprotectedAttrs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.unprotectedAttrs,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={version:this.version,encryptedContentInfo:this.encryptedContentInfo.toJSON()};return this.unprotectedAttrs&&(e.unprotectedAttrs=Array.from(this.unprotectedAttrs,t=>t.toJSON())),e}async encrypt(e,t=Ie(!0)){Ke.assert(e,"parameters","object");let r={...e,contentType:"1.2.840.113549.1.7.1"};this.encryptedContentInfo=await t.encryptEncryptedContentInfo(r);}async decrypt(e,t=Ie(!0)){Ke.assert(e,"parameters","object");let r={...e,encryptedContentInfo:this.encryptedContentInfo};return t.decryptEncryptedContentInfo(r)}};rc.CLASS_NAME="EncryptedData";var So="encryptionAlgorithm",Ii="encryptedData",Dh="parsedValue",gU=[So,Ii],Dw=class s extends O{constructor(e={}){super(),this.encryptionAlgorithm=d(e,So,s.defaultValues(So)),this.encryptedData=d(e,Ii,s.defaultValues(Ii)),Dh in e&&(this.parsedValue=d(e,Dh,s.defaultValues(Dh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case So:return new k;case Ii:return new L;case Dh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case So:return k.compareWithDefault("algorithmId",t.algorithmId)&&!("algorithmParams"in t);case Ii:return t.isEqual(s.defaultValues(e));case Dh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.encryptionAlgorithm||{names:{blockName:So}}),new Ze({value:[new L({name:t.encryptedData||Ii}),new L({idBlock:{isConstructed:!0},name:t.encryptedData||Ii})]})]})}fromSchema(e){V(e,gU);let t=R(e,e,s.schema({names:{encryptionAlgorithm:{names:{blockName:So}},encryptedData:Ii}}));B.assertSchema(t,this.className),this.encryptionAlgorithm=new k({schema:t.result.encryptionAlgorithm}),this.encryptedData=t.result.encryptedData;}toSchema(){return new b({value:[this.encryptionAlgorithm.toSchema(),this.encryptedData]})}toJSON(){return {encryptionAlgorithm:this.encryptionAlgorithm.toJSON(),encryptedData:this.encryptedData.toJSON()}}async parseInternalValues(e,t=Ie(!0)){let n=await new rc({encryptedContentInfo:new Ot({contentEncryptionAlgorithm:this.encryptionAlgorithm,encryptedContent:this.encryptedData})}).decrypt(e,t);this.parsedValue=tc.fromBER(n);}async makeInternalValues(e,t=Ie(!0)){if(!this.parsedValue)throw new Error('Please initialize "parsedValue" first');let r=new rc,n={...e,contentToEncrypt:this.parsedValue.toSchema().toBER(!1)};if(await r.encrypt(n,t),!r.encryptedContentInfo.encryptedContent)throw new Error("The filed `encryptedContent` in EncryptedContentInfo is empty");this.encryptionAlgorithm=r.encryptedContentInfo.contentEncryptionAlgorithm,this.encryptedData=r.encryptedContentInfo.encryptedContent;}};Dw.CLASS_NAME="PKCS8ShroudedKeyBag";var Iu="secretTypeId",Cu="secretValue",yU=[Iu,Cu],Lw=class s extends O{constructor(e={}){super(),this.secretTypeId=d(e,Iu,s.defaultValues(Iu)),this.secretValue=d(e,Cu,s.defaultValues(Cu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Iu:return p;case Cu:return new ue;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Iu:return t===p;case Cu:return t instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.id||"id"}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.value||"value"})]})]})}fromSchema(e){V(e,yU);let t=R(e,e,s.schema({names:{id:Iu,value:Cu}}));B.assertSchema(t,this.className),this.secretTypeId=t.result.secretTypeId.valueBlock.toString(),this.secretValue=t.result.secretValue;}toSchema(){return new b({value:[new W({value:this.secretTypeId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.secretValue.toSchema()]})]})}toJSON(){return {secretTypeId:this.secretTypeId,secretValue:this.secretValue.toJSON()}}};Lw.CLASS_NAME="SecretBag";var dA=class s{static getItems(){return this.items||(this.items={},s.register("1.2.840.113549.1.12.10.1.1",tc),s.register("1.2.840.113549.1.12.10.1.2",Dw),s.register("1.2.840.113549.1.12.10.1.3",Tw),s.register("1.2.840.113549.1.12.10.1.4",Vw),s.register("1.2.840.113549.1.12.10.1.5",Lw),s.register("1.2.840.113549.1.12.10.1.6",Wi)),this.items}static register(e,t){this.getItems()[e]=t;}static find(e){return this.getItems()[e]||null}},vo="bagId",Eo="bagValue",ln="bagAttributes",wU=[vo,Eo,ln],rm=class s extends O{constructor(e={}){super(),this.bagId=d(e,vo,s.defaultValues(vo)),this.bagValue=d(e,Eo,s.defaultValues(Eo)),ln in e&&(this.bagAttributes=d(e,ln,s.defaultValues(ln))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case vo:return p;case Eo:return new ue;case ln:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case vo:return t===p;case Eo:return t instanceof ue;case ln:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.bagId||vo}),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.bagValue||Eo})]}),new at({optional:!0,value:[new he({name:t.bagAttributes||ln,value:ut.schema()})]})]})}fromSchema(e){V(e,wU);let t=R(e,e,s.schema({names:{bagId:vo,bagValue:Eo,bagAttributes:ln}}));B.assertSchema(t,this.className),this.bagId=t.result.bagId.valueBlock.toString();let r=dA.find(this.bagId);if(!r)throw new Error(`Invalid BAG_ID for SafeBag: ${this.bagId}`);this.bagValue=new r({schema:t.result.bagValue}),ln in t.result&&(this.bagAttributes=Array.from(t.result.bagAttributes,n=>new ut({schema:n})));}toSchema(){let e=[new W({value:this.bagId}),new A({idBlock:{tagClass:3,tagNumber:0},value:[this.bagValue.toSchema()]})];return this.bagAttributes&&e.push(new at({value:Array.from(this.bagAttributes,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={bagId:this.bagId,bagValue:this.bagValue.toJSON()};return this.bagAttributes&&(e.bagAttributes=Array.from(this.bagAttributes,t=>t.toJSON())),e}};rm.CLASS_NAME="SafeBag";var eu="safeBags",Wi=class s extends O{constructor(e={}){super(),this.safeBags=d(e,eu,s.defaultValues(eu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case eu:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case eu:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.safeBags||p,value:rm.schema()})]})}fromSchema(e){V(e,[eu]);let t=R(e,e,s.schema({names:{safeBags:eu}}));B.assertSchema(t,this.className),this.safeBags=Array.from(t.result.safeBags,r=>new rm({schema:r}));}toSchema(){return new b({value:Array.from(this.safeBags,e=>e.toSchema())})}toJSON(){return {safeBags:Array.from(this.safeBags,e=>e.toJSON())}}};Wi.CLASS_NAME="SafeContents";var u0="otherCertFormat",l0="otherCert",bU=[u0,l0],Bl=class s extends O{constructor(e={}){super(),this.otherCertFormat=d(e,u0,s.defaultValues(u0)),this.otherCert=d(e,l0,s.defaultValues(l0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case u0:return p;case l0:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.otherCertFormat||u0}),new ue({name:t.otherCert||l0})]})}fromSchema(e){V(e,bU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.otherCertFormat=t.result.otherCertFormat.valueBlock.toString(),this.otherCert=t.result.otherCert;}toSchema(){return new b({value:[new W({value:this.otherCertFormat}),this.otherCert]})}toJSON(){let e={otherCertFormat:this.otherCertFormat};return this.otherCert instanceof ue||(e.otherCert=this.otherCert.toJSON()),e}},f0="certificates",SU=[f0],xn=class s extends O{constructor(e={}){super(),this.certificates=d(e,f0,s.defaultValues(f0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case f0:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new at({name:t.blockName||p,value:[new he({name:t.certificates||f0,value:new Ze({value:[Mt.schema(),new A({idBlock:{tagClass:3,tagNumber:0},value:[new ue]}),new A({idBlock:{tagClass:3,tagNumber:1},value:[new b]}),new A({idBlock:{tagClass:3,tagNumber:2},value:xr.schema().valueBlock.value}),new A({idBlock:{tagClass:3,tagNumber:3},value:Bl.schema().valueBlock.value})]})})]})}fromSchema(e){V(e,SU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.certificates=Array.from(t.result.certificates||[],r=>{let n=r.idBlock.tagNumber;if(r.idBlock.tagClass===1)return new Mt({schema:r});let i=new b({value:r.valueBlock.value});switch(n){case 1:return i.valueBlock.value[0].valueBlock.value[0].valueBlock.valueDec===1?new xr({schema:i}):new Dl({schema:i});case 2:return new xr({schema:i});case 3:return new Bl({schema:i})}return r});}toSchema(){return new at({value:Array.from(this.certificates,e=>{switch(!0){case e instanceof Mt:return e.toSchema();case e instanceof Dl:return new A({idBlock:{tagClass:3,tagNumber:1},value:e.toSchema().valueBlock.value});case e instanceof xr:return new A({idBlock:{tagClass:3,tagNumber:2},value:e.toSchema().valueBlock.value});case e instanceof Bl:return new A({idBlock:{tagClass:3,tagNumber:3},value:e.toSchema().valueBlock.value})}return e.toSchema()})})}toJSON(){return {certificates:Array.from(this.certificates,e=>e.toJSON())}}};xn.CLASS_NAME="CertificateSet";var h0="otherRevInfoFormat",d0="otherRevInfo",vU=[h0,d0],zo=class s extends O{constructor(e={}){super(),this.otherRevInfoFormat=d(e,h0,s.defaultValues(h0)),this.otherRevInfo=d(e,d0,s.defaultValues(d0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case h0:return p;case d0:return new ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.otherRevInfoFormat||h0}),new ue({name:t.otherRevInfo||d0})]})}fromSchema(e){V(e,vU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.otherRevInfoFormat=t.result.otherRevInfoFormat.valueBlock.toString(),this.otherRevInfo=t.result.otherRevInfo;}toSchema(){return new b({value:[new W({value:this.otherRevInfoFormat}),this.otherRevInfo]})}toJSON(){let e={otherRevInfoFormat:this.otherRevInfoFormat};return this.otherRevInfo instanceof ue||(e.otherRevInfo=this.otherRevInfo.toJSON()),e}};zo.CLASS_NAME="OtherRevocationInfoFormat";var m0="crls",z2="otherRevocationInfos",EU=[m0],Yo=class s extends O{constructor(e={}){super(),this.crls=d(e,m0,s.defaultValues(m0)),this.otherRevocationInfos=d(e,z2,s.defaultValues(z2)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case m0:return [];case z2:return [];default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new at({name:t.blockName||p,value:[new he({name:t.crls||p,value:new Ze({value:[sc.schema(),new A({idBlock:{tagClass:3,tagNumber:1},value:[new W,new ue]})]})})]})}fromSchema(e){V(e,EU);let t=R(e,e,s.schema({names:{crls:m0}}));if(B.assertSchema(t,this.className),t.result.crls)for(let r of t.result.crls)r.idBlock.tagClass===1?this.crls.push(new sc({schema:r})):this.otherRevocationInfos.push(new zo({schema:r}));}toSchema(){let e=[];return e.push(...Array.from(this.crls,t=>t.toSchema())),e.push(...Array.from(this.otherRevocationInfos,t=>{let r=t.toSchema();return r.idBlock.tagClass=3,r.idBlock.tagNumber=1,r})),new at({value:e})}toJSON(){return {crls:Array.from(this.crls,e=>e.toJSON()),otherRevocationInfos:Array.from(this.otherRevocationInfos,e=>e.toJSON())}}};Yo.CLASS_NAME="RevocationInfoChoices";var p0="certs",xo="crls",xU=[p0,xo],Ol=class s extends O{constructor(e={}){super(),this.crls=d(e,xo,s.defaultValues(xo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case p0:return new xn;case xo:return new Yo;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case p0:return t.certificates.length===0;case xo:return t.crls.length===0&&t.otherRevocationInfos.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({name:t.certs||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:xn.schema().valueBlock.value}),new A({name:t.crls||p,optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Yo.schema().valueBlock.value})]})}fromSchema(e){V(e,xU);let t=R(e,e,s.schema({names:{certs:p0,crls:xo}}));B.assertSchema(t,this.className),p0 in t.result&&(this.certs=new xn({schema:new at({value:t.result.certs.valueBlock.value})})),xo in t.result&&(this.crls=new Yo({schema:new at({value:t.result.crls.valueBlock.value})}));}toSchema(){let e=[];return this.certs&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.certs.toSchema().valueBlock.value})),this.crls&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:this.crls.toSchema().valueBlock.value})),new b({value:e})}toJSON(){let e={};return this.certs&&(e.certs=this.certs.toJSON()),this.crls&&(e.crls=this.crls.toJSON()),e}};Ol.CLASS_NAME="OriginatorInfo";var g0="issuer",y0="serialNumber",AU=[g0,y0],It=class s extends O{constructor(e={}){super(),this.issuer=d(e,g0,s.defaultValues(g0)),this.serialNumber=d(e,y0,s.defaultValues(y0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case g0:return new Xe;case y0:return new T;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[Xe.schema(t.issuer||{}),new T({name:t.serialNumber||p})]})}fromSchema(e){V(e,AU);let t=R(e,e,s.schema({names:{issuer:{names:{blockName:g0}},serialNumber:y0}}));B.assertSchema(t,this.className),this.issuer=new Xe({schema:t.result.issuer}),this.serialNumber=t.result.serialNumber;}toSchema(){return new b({value:[this.issuer.toSchema(),this.serialNumber]})}toJSON(){return {issuer:this.issuer.toJSON(),serialNumber:this.serialNumber.toJSON()}}};It.CLASS_NAME="IssuerAndSerialNumber";var Sy="variant",Lh="value",IU=["blockName"],Uw=class s extends O{constructor(e={}){super(),this.variant=d(e,Sy,s.defaultValues(Sy)),Lh in e&&(this.value=d(e,Lh,s.defaultValues(Lh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Sy:return -1;case Lh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Sy:return t===-1;case Lh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema({names:{blockName:t.blockName||p}}),new oe({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:0}})]})}fromSchema(e){V(e,IU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):(this.variant=2,this.value=new L({valueHex:t.result.blockName.valueBlock.valueHex}));}toSchema(){switch(this.variant){case 1:if(!(this.value instanceof It))throw new Error("Incorrect type of RecipientIdentifier.value. It should be IssuerAndSerialNumber.");return this.value.toSchema();case 2:if(!(this.value instanceof L))throw new Error("Incorrect type of RecipientIdentifier.value. It should be ASN.1 OctetString.");return new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.value.valueBlock.valueHexView});default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2)&&this.value&&(e.value=this.value.toJSON()),e}};Uw.CLASS_NAME="RecipientIdentifier";var Ao="version",Nu="rid",Tu="keyEncryptionAlgorithm",ku="encryptedKey",vy="recipientCertificate",CU=[Ao,Nu,Tu,ku],Ll=class s extends O{constructor(e={}){super(),this.version=d(e,Ao,s.defaultValues(Ao)),this.rid=d(e,Nu,s.defaultValues(Nu)),this.keyEncryptionAlgorithm=d(e,Tu,s.defaultValues(Tu)),this.encryptedKey=d(e,ku,s.defaultValues(ku)),this.recipientCertificate=d(e,vy,s.defaultValues(vy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ao:return -1;case Nu:return {};case Tu:return new k;case ku:return new L;case vy:return new Mt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ao:return t===s.defaultValues(Ao);case Nu:return Object.keys(t).length===0;case Tu:case ku:return t.isEqual(s.defaultValues(e));case vy:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),Uw.schema(t.rid||{}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,CU);let t=R(e,e,s.schema({names:{version:Ao,rid:{names:{blockName:Nu}},keyEncryptionAlgorithm:{names:{blockName:Tu}},encryptedKey:ku}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,t.result.rid.idBlock.tagClass===3?this.rid=new L({valueHex:t.result.rid.valueBlock.valueHex}):this.rid=new It({schema:t.result.rid}),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){let e=[];return this.rid instanceof It?(this.version=0,e.push(new T({value:this.version})),e.push(this.rid.toSchema())):(this.version=2,e.push(new T({value:this.version})),e.push(new oe({idBlock:{tagClass:3,tagNumber:0},valueHex:this.rid.valueBlock.valueHexView}))),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.encryptedKey),new b({value:e})}toJSON(){return {version:this.version,rid:this.rid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};Ll.CLASS_NAME="KeyTransRecipientInfo";var Pu="algorithm",Bu="publicKey",NU=[Pu,Bu],Ul=class s extends O{constructor(e={}){super(),this.algorithm=d(e,Pu,s.defaultValues(Pu)),this.publicKey=d(e,Bu,s.defaultValues(Bu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Pu:return new k;case Bu:return new Te;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Pu:case Bu:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.algorithm||{}),new Te({name:t.publicKey||p})]})}fromSchema(e){V(e,NU);let t=R(e,e,s.schema({names:{algorithm:{names:{blockName:Pu}},publicKey:Bu}}));B.assertSchema(t,this.className),this.algorithm=new k({schema:t.result.algorithm}),this.publicKey=t.result.publicKey;}toSchema(){return new b({value:[this.algorithm.toSchema(),this.publicKey]})}toJSON(){return {algorithm:this.algorithm.toJSON(),publicKey:this.publicKey.toJSON()}}};Ul.CLASS_NAME="OriginatorPublicKey";var Ey="variant",Uh="value",TU=["blockName"],Zo=class s extends O{constructor(e={}){super(),this.variant=d(e,Ey,s.defaultValues(Ey)),Uh in e&&(this.value=d(e,Uh,s.defaultValues(Uh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ey:return -1;case Uh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ey:return t===-1;case Uh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema({names:{blockName:t.blockName||p}}),new oe({idBlock:{tagClass:3,tagNumber:0},name:t.blockName||p}),new A({idBlock:{tagClass:3,tagNumber:1},name:t.blockName||p,value:Ul.schema().valueBlock.value})]})}fromSchema(e){V(e,TU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):t.result.blockName.idBlock.tagNumber===0?(t.result.blockName.idBlock.tagClass=1,t.result.blockName.idBlock.tagNumber=4,this.variant=2,this.value=t.result.blockName):(this.variant=3,this.value=new Ul({schema:new b({value:t.result.blockName.valueBlock.value})}));}toSchema(){switch(this.variant){case 1:return this.value.toSchema();case 2:return this.value.idBlock.tagClass=3,this.value.idBlock.tagNumber=0,this.value;case 3:{let e=this.value.toSchema();return e.idBlock.tagClass=3,e.idBlock.tagNumber=1,e}default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2||this.variant===3)&&(e.value=this.value.toJSON()),e}};Zo.CLASS_NAME="OriginatorIdentifierOrKey";var Ou="keyAttrId",vr="keyAttr",kU=[Ou,vr],An=class s extends O{constructor(e={}){super(),this.keyAttrId=d(e,Ou,s.defaultValues(Ou)),vr in e&&(this.keyAttr=d(e,vr,s.defaultValues(vr))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ou:return p;case vr:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ou:return typeof t=="string"&&t===p;case vr:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({optional:t.optional||!0,name:t.blockName||p,value:[new W({name:t.keyAttrId||p}),new ue({optional:!0,name:t.keyAttr||p})]})}fromSchema(e){V(e,kU);let t=R(e,e,s.schema({names:{keyAttrId:Ou,keyAttr:vr}}));B.assertSchema(t,this.className),this.keyAttrId=t.result.keyAttrId.valueBlock.toString(),vr in t.result&&(this.keyAttr=t.result.keyAttr);}toSchema(){let e=[];return e.push(new W({value:this.keyAttrId})),vr in this&&e.push(this.keyAttr),new b({value:e})}toJSON(){let e={keyAttrId:this.keyAttrId};return vr in this&&(e.keyAttr=this.keyAttr.toJSON()),e}};An.CLASS_NAME="OtherKeyAttribute";var Io="subjectKeyIdentifier",Ci="date",Ni="other",PU=[Io,Ci,Ni],Hl=class s extends O{constructor(e={}){super(),this.subjectKeyIdentifier=d(e,Io,s.defaultValues(Io)),Ci in e&&(this.date=d(e,Ci,s.defaultValues(Ci))),Ni in e&&(this.other=d(e,Ni,s.defaultValues(Ni))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Io:return new L;case Ci:return new Ye;case Ni:return new An;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Io:return t.isEqual(s.defaultValues(Io));case Ci:return t.year===0&&t.month===0&&t.day===0&&t.hour===0&&t.minute===0&&t.second===0&&t.millisecond===0;case Ni:return t.keyAttrId===p&&!("keyAttr"in t);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new L({name:t.subjectKeyIdentifier||p}),new Ye({optional:!0,name:t.date||p}),An.schema(t.other||{})]})}fromSchema(e){V(e,PU);let t=R(e,e,s.schema({names:{subjectKeyIdentifier:Io,date:Ci,other:{names:{blockName:Ni}}}}));B.assertSchema(t,this.className),this.subjectKeyIdentifier=t.result.subjectKeyIdentifier,Ci in t.result&&(this.date=t.result.date),Ni in t.result&&(this.other=new An({schema:t.result.other}));}toSchema(){let e=[];return e.push(this.subjectKeyIdentifier),this.date&&e.push(this.date),this.other&&e.push(this.other.toSchema()),new b({value:e})}toJSON(){let e={subjectKeyIdentifier:this.subjectKeyIdentifier.toJSON()};return this.date&&(e.date=this.date.toJSON()),this.other&&(e.other=this.other.toJSON()),e}};Hl.CLASS_NAME="RecipientKeyIdentifier";var xy="variant",Ay="value",BU=["blockName"],zi=class s extends O{constructor(e={}){super(),this.variant=d(e,xy,s.defaultValues(xy)),this.value=d(e,Ay,s.defaultValues(Ay)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case xy:return -1;case Ay:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case xy:return t===-1;case Ay:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[It.schema(t.issuerAndSerialNumber||{names:{blockName:t.blockName||p}}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:0},value:Hl.schema(t.rKeyId||{names:{blockName:t.blockName||p}}).valueBlock.value})]})}fromSchema(e){V(e,BU);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1?(this.variant=1,this.value=new It({schema:t.result.blockName})):(this.variant=2,this.value=new Hl({schema:new b({value:t.result.blockName.valueBlock.value})}));}toSchema(){switch(this.variant){case 1:return this.value.toSchema();case 2:return new A({idBlock:{tagClass:3,tagNumber:0},value:this.value.toSchema().valueBlock.value});default:return new ue}}toJSON(){let e={variant:this.variant};return (this.variant===1||this.variant===2)&&(e.value=this.value.toJSON()),e}};zi.CLASS_NAME="KeyAgreeRecipientIdentifier";var Ru="rid",Co="encryptedKey",OU=[Ru,Co],_l=class s extends O{constructor(e={}){super(),this.rid=d(e,Ru,s.defaultValues(Ru)),this.encryptedKey=d(e,Co,s.defaultValues(Co)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ru:return new zi;case Co:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ru:return t.variant===-1&&!("value"in t);case Co:return t.isEqual(s.defaultValues(Co));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[zi.schema(t.rid||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,OU);let t=R(e,e,s.schema({names:{rid:{names:{blockName:Ru}},encryptedKey:Co}}));B.assertSchema(t,this.className),this.rid=new zi({schema:t.result.rid}),this.encryptedKey=t.result.encryptedKey;}toSchema(){return new b({value:[this.rid.toSchema(),this.encryptedKey]})}toJSON(){return {rid:this.rid.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};_l.CLASS_NAME="RecipientEncryptedKey";var Iy="encryptedKeys",v4="RecipientEncryptedKeys",RU=[v4],Xo=class s extends O{constructor(e={}){super(),this.encryptedKeys=d(e,Iy,s.defaultValues(Iy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Iy:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Iy:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.RecipientEncryptedKeys||p,value:_l.schema()})]})}fromSchema(e){V(e,RU);let t=R(e,e,s.schema({names:{RecipientEncryptedKeys:v4}}));B.assertSchema(t,this.className),this.encryptedKeys=Array.from(t.result.RecipientEncryptedKeys,r=>new _l({schema:r}));}toSchema(){return new b({value:Array.from(this.encryptedKeys,e=>e.toSchema())})}toJSON(){return {encryptedKeys:Array.from(this.encryptedKeys,e=>e.toJSON())}}};Xo.CLASS_NAME="RecipientEncryptedKeys";var Vu="version",Du="originator",fn="ukm",Lu="keyEncryptionAlgorithm",Uu="recipientEncryptedKeys",Cy="recipientCertificate",Ny="recipientPublicKey",VU=[Vu,Du,fn,Lu,Uu],jl=class s extends O{constructor(e={}){super(),this.version=d(e,Vu,s.defaultValues(Vu)),this.originator=d(e,Du,s.defaultValues(Du)),fn in e&&(this.ukm=d(e,fn,s.defaultValues(fn))),this.keyEncryptionAlgorithm=d(e,Lu,s.defaultValues(Lu)),this.recipientEncryptedKeys=d(e,Uu,s.defaultValues(Uu)),this.recipientCertificate=d(e,Cy,s.defaultValues(Cy)),this.recipientPublicKey=d(e,Ny,s.defaultValues(Ny)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Vu:return 0;case Du:return new Zo;case fn:return new L;case Lu:return new k;case Uu:return new Xo;case Cy:return new Mt;case Ny:return null;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Vu:return t===0;case Du:return t.variant===-1&&!("value"in t);case fn:return t.isEqual(s.defaultValues(fn));case Lu:return t.algorithmId===p&&!("algorithmParams"in t);case Uu:return t.encryptedKeys.length===0;case Cy:return !1;case Ny:return !1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new A({idBlock:{tagClass:3,tagNumber:0},value:[Zo.schema(t.originator||{})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new L({name:t.ukm||p})]}),k.schema(t.keyEncryptionAlgorithm||{}),Xo.schema(t.recipientEncryptedKeys||{})]})}fromSchema(e){V(e,VU);let t=R(e,e,s.schema({names:{version:Vu,originator:{names:{blockName:Du}},ukm:fn,keyEncryptionAlgorithm:{names:{blockName:Lu}},recipientEncryptedKeys:{names:{blockName:Uu}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.originator=new Zo({schema:t.result.originator}),fn in t.result&&(this.ukm=t.result.ukm),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.recipientEncryptedKeys=new Xo({schema:t.result.recipientEncryptedKeys});}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.originator.toSchema()]})),this.ukm&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[this.ukm]})),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.recipientEncryptedKeys.toSchema()),new b({value:e})}toJSON(){let e={version:this.version,originator:this.originator.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),recipientEncryptedKeys:this.recipientEncryptedKeys.toJSON()};return this.ukm&&(e.ukm=this.ukm.toJSON()),e}};jl.CLASS_NAME="KeyAgreeRecipientInfo";var No="keyIdentifier",Ti="date",ki="other",DU=[No,Ti,ki],Qo=class s extends O{constructor(e={}){super(),this.keyIdentifier=d(e,No,s.defaultValues(No)),Ti in e&&(this.date=d(e,Ti,s.defaultValues(Ti))),ki in e&&(this.other=d(e,ki,s.defaultValues(ki))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case No:return new L;case Ti:return new Ye;case ki:return new An;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case No:return t.isEqual(s.defaultValues(No));case Ti:return t.year===0&&t.month===0&&t.day===0&&t.hour===0&&t.minute===0&&t.second===0&&t.millisecond===0;case ki:return t.compareWithDefault("keyAttrId",t.keyAttrId)&&!("keyAttr"in t);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new L({name:t.keyIdentifier||p}),new Ye({optional:!0,name:t.date||p}),An.schema(t.other||{})]})}fromSchema(e){V(e,DU);let t=R(e,e,s.schema({names:{keyIdentifier:No,date:Ti,other:{names:{blockName:ki}}}}));B.assertSchema(t,this.className),this.keyIdentifier=t.result.keyIdentifier,Ti in t.result&&(this.date=t.result.date),ki in t.result&&(this.other=new An({schema:t.result.other}));}toSchema(){let e=[];return e.push(this.keyIdentifier),this.date&&e.push(this.date),this.other&&e.push(this.other.toSchema()),new b({value:e})}toJSON(){let e={keyIdentifier:this.keyIdentifier.toJSON()};return this.date&&(e.date=this.date),this.other&&(e.other=this.other.toJSON()),e}};Qo.CLASS_NAME="KEKIdentifier";var Hu="version",_u="kekid",ju="keyEncryptionAlgorithm",To="encryptedKey",Ty="preDefinedKEK",LU=[Hu,_u,ju,To],Ml=class s extends O{constructor(e={}){super(),this.version=d(e,Hu,s.defaultValues(Hu)),this.kekid=d(e,_u,s.defaultValues(_u)),this.keyEncryptionAlgorithm=d(e,ju,s.defaultValues(ju)),this.encryptedKey=d(e,To,s.defaultValues(To)),this.preDefinedKEK=d(e,Ty,s.defaultValues(Ty)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Hu:return 0;case _u:return new Qo;case ju:return new k;case To:return new L;case Ty:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case"KEKRecipientInfo":return t===s.defaultValues(Hu);case _u:return t.compareWithDefault("keyIdentifier",t.keyIdentifier)&&!("date"in t)&&!("other"in t);case ju:return t.algorithmId===p&&!("algorithmParams"in t);case To:return t.isEqual(s.defaultValues(To));case Ty:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),Qo.schema(t.kekid||{}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,LU);let t=R(e,e,s.schema({names:{version:Hu,kekid:{names:{blockName:_u}},keyEncryptionAlgorithm:{names:{blockName:ju}},encryptedKey:To}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.kekid=new Qo({schema:t.result.kekid}),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){return new b({value:[new T({value:this.version}),this.kekid.toSchema(),this.keyEncryptionAlgorithm.toSchema(),this.encryptedKey]})}toJSON(){return {version:this.version,kekid:this.kekid.toJSON(),keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()}}};Ml.CLASS_NAME="KEKRecipientInfo";var Mu="version",Pi="keyDerivationAlgorithm",$u="keyEncryptionAlgorithm",ko="encryptedKey",ky="password",UU=[Mu,Pi,$u,ko],$l=class s extends O{constructor(e={}){super(),this.version=d(e,Mu,s.defaultValues(Mu)),Pi in e&&(this.keyDerivationAlgorithm=d(e,Pi,s.defaultValues(Pi))),this.keyEncryptionAlgorithm=d(e,$u,s.defaultValues($u)),this.encryptedKey=d(e,ko,s.defaultValues(ko)),this.password=d(e,ky,s.defaultValues(ky)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Mu:return -1;case Pi:return new k;case $u:return new k;case ko:return new L;case ky:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Mu:return t===-1;case Pi:case $u:return t.algorithmId===p&&!("algorithmParams"in t);case ko:return t.isEqual(s.defaultValues(ko));case ky:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new A({name:t.keyDerivationAlgorithm||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:k.schema().valueBlock.value}),k.schema(t.keyEncryptionAlgorithm||{}),new L({name:t.encryptedKey||p})]})}fromSchema(e){V(e,UU);let t=R(e,e,s.schema({names:{version:Mu,keyDerivationAlgorithm:Pi,keyEncryptionAlgorithm:{names:{blockName:$u}},encryptedKey:ko}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,Pi in t.result&&(this.keyDerivationAlgorithm=new k({schema:new b({value:t.result.keyDerivationAlgorithm.valueBlock.value})})),this.keyEncryptionAlgorithm=new k({schema:t.result.keyEncryptionAlgorithm}),this.encryptedKey=t.result.encryptedKey;}toSchema(){let e=[];return e.push(new T({value:this.version})),this.keyDerivationAlgorithm&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:this.keyDerivationAlgorithm.toSchema().valueBlock.value})),e.push(this.keyEncryptionAlgorithm.toSchema()),e.push(this.encryptedKey),new b({value:e})}toJSON(){let e={version:this.version,keyEncryptionAlgorithm:this.keyEncryptionAlgorithm.toJSON(),encryptedKey:this.encryptedKey.toJSON()};return this.keyDerivationAlgorithm&&(e.keyDerivationAlgorithm=this.keyDerivationAlgorithm.toJSON()),e}};$l.CLASS_NAME="PasswordRecipientInfo";var Fu="oriType",Po="oriValue",HU=[Fu,Po],nm=class s extends O{constructor(e={}){super(),this.oriType=d(e,Fu,s.defaultValues(Fu)),this.oriValue=d(e,Po,s.defaultValues(Po)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Fu:return p;case Po:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Fu:return t===p;case Po:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.oriType||p}),new ue({name:t.oriValue||p})]})}fromSchema(e){V(e,HU);let t=R(e,e,s.schema({names:{oriType:Fu,oriValue:Po}}));B.assertSchema(t,this.className),this.oriType=t.result.oriType.valueBlock.toString(),this.oriValue=t.result.oriValue;}toSchema(){return new b({value:[new W({value:this.oriType}),this.oriValue]})}toJSON(){let e={oriType:this.oriType};return s.compareWithDefault(Po,this.oriValue)||(e.oriValue=this.oriValue.toJSON()),e}};nm.CLASS_NAME="OtherRecipientInfo";var Py="variant",Hh="value",_U=["blockName"],yn=class s extends O{constructor(e={}){super(),this.variant=d(e,Py,s.defaultValues(Py)),Hh in e&&(this.value=d(e,Hh,s.defaultValues(Hh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Py:return -1;case Hh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Py:return t===s.defaultValues(e);case Hh:return Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new Ze({value:[Ll.schema({names:{blockName:t.blockName||p}}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:1},value:jl.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:2},value:Ml.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:3},value:$l.schema().valueBlock.value}),new A({name:t.blockName||p,idBlock:{tagClass:3,tagNumber:4},value:nm.schema().valueBlock.value})]})}fromSchema(e){V(e,_U);let t=R(e,e,s.schema({names:{blockName:"blockName"}}));if(B.assertSchema(t,this.className),t.result.blockName.idBlock.tagClass===1)this.variant=1,this.value=new Ll({schema:t.result.blockName});else {let r=new b({value:t.result.blockName.valueBlock.value});switch(t.result.blockName.idBlock.tagNumber){case 1:this.variant=2,this.value=new jl({schema:r});break;case 2:this.variant=3,this.value=new Ml({schema:r});break;case 3:this.variant=4,this.value=new $l({schema:r});break;case 4:this.variant=5,this.value=new nm({schema:r});break;default:throw new Error("Incorrect structure of RecipientInfo block")}}}toSchema(){He.assertEmpty(this.value,"value","RecipientInfo");let e=this.value.toSchema();switch(this.variant){case 1:return e;case 2:case 3:case 4:return e.idBlock.tagClass=3,e.idBlock.tagNumber=this.variant-1,e;default:return new ue}}toJSON(){let e={variant:this.variant};return this.value&&this.variant>=1&&this.variant<=4&&(e.value=this.value.toJSON()),e}};yn.CLASS_NAME="RecipientInfo";var Bi="hashAlgorithm",Oi="maskGenAlgorithm",Ri="pSourceAlgorithm",jU=[Bi,Oi,Ri],Rl=class s extends O{constructor(e={}){super(),this.hashAlgorithm=d(e,Bi,s.defaultValues(Bi)),this.maskGenAlgorithm=d(e,Oi,s.defaultValues(Oi)),this.pSourceAlgorithm=d(e,Ri,s.defaultValues(Ri)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bi:return new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it});case Oi:return new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:new k({algorithmId:"1.3.14.3.2.26",algorithmParams:new it}).toSchema()});case Ri:return new k({algorithmId:"1.2.840.113549.1.1.9",algorithmParams:new L({valueHex:new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer})});default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new A({idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[k.schema(t.hashAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:1},optional:!0,value:[k.schema(t.maskGenAlgorithm||{})]}),new A({idBlock:{tagClass:3,tagNumber:2},optional:!0,value:[k.schema(t.pSourceAlgorithm||{})]})]})}fromSchema(e){V(e,jU);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:Bi}},maskGenAlgorithm:{names:{blockName:Oi}},pSourceAlgorithm:{names:{blockName:Ri}}}}));B.assertSchema(t,this.className),Bi in t.result&&(this.hashAlgorithm=new k({schema:t.result.hashAlgorithm})),Oi in t.result&&(this.maskGenAlgorithm=new k({schema:t.result.maskGenAlgorithm})),Ri in t.result&&(this.pSourceAlgorithm=new k({schema:t.result.pSourceAlgorithm}));}toSchema(){let e=[];return this.hashAlgorithm.isEqual(s.defaultValues(Bi))||e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.hashAlgorithm.toSchema()]})),this.maskGenAlgorithm.isEqual(s.defaultValues(Oi))||e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.maskGenAlgorithm.toSchema()]})),this.pSourceAlgorithm.isEqual(s.defaultValues(Ri))||e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.pSourceAlgorithm.toSchema()]})),new b({value:e})}toJSON(){let e={};return this.hashAlgorithm.isEqual(s.defaultValues(Bi))||(e.hashAlgorithm=this.hashAlgorithm.toJSON()),this.maskGenAlgorithm.isEqual(s.defaultValues(Oi))||(e.maskGenAlgorithm=this.maskGenAlgorithm.toJSON()),this.pSourceAlgorithm.isEqual(s.defaultValues(Ri))||(e.pSourceAlgorithm=this.pSourceAlgorithm.toJSON()),e}};Rl.CLASS_NAME="RSAESOAEPParams";var qu="keyInfo",Vi="entityUInfo",Gu="suppPubInfo",MU=[qu,Vi,Gu],im=class s extends O{constructor(e={}){super(),this.keyInfo=d(e,qu,s.defaultValues(qu)),Vi in e&&(this.entityUInfo=d(e,Vi,s.defaultValues(Vi))),this.suppPubInfo=d(e,Gu,s.defaultValues(Gu)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case qu:return new k;case Vi:return new L;case Gu:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case qu:case Vi:case Gu:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.keyInfo||{}),new A({name:t.entityUInfo||p,idBlock:{tagClass:3,tagNumber:0},optional:!0,value:[new L]}),new A({name:t.suppPubInfo||p,idBlock:{tagClass:3,tagNumber:2},value:[new L]})]})}fromSchema(e){V(e,MU);let t=R(e,e,s.schema({names:{keyInfo:{names:{blockName:qu}},entityUInfo:Vi,suppPubInfo:Gu}}));B.assertSchema(t,this.className),this.keyInfo=new k({schema:t.result.keyInfo}),Vi in t.result&&(this.entityUInfo=t.result.entityUInfo.valueBlock.value[0]),this.suppPubInfo=t.result.suppPubInfo.valueBlock.value[0];}toSchema(){let e=[];return e.push(this.keyInfo.toSchema()),this.entityUInfo&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.entityUInfo]})),e.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.suppPubInfo]})),new b({value:e})}toJSON(){let e={keyInfo:this.keyInfo.toJSON(),suppPubInfo:this.suppPubInfo.toJSON()};return this.entityUInfo&&(e.entityUInfo=this.entityUInfo.toJSON()),e}};im.CLASS_NAME="ECCCMSSharedInfo";var Ku="version",Di="originatorInfo",Wu="recipientInfos",Ju="encryptedContentInfo",Li="unprotectedAttrs",$U=[Ku,Di,Wu,Ju,Li],QT={kdfAlgorithm:"SHA-512",kekEncryptionLength:256},FU={"P-256":256,"P-384":384,"P-521":528},am=class s extends O{constructor(e={}){super(),this.version=d(e,Ku,s.defaultValues(Ku)),Di in e&&(this.originatorInfo=d(e,Di,s.defaultValues(Di))),this.recipientInfos=d(e,Wu,s.defaultValues(Wu)),this.encryptedContentInfo=d(e,Ju,s.defaultValues(Ju)),Li in e&&(this.unprotectedAttrs=d(e,Li,s.defaultValues(Li))),this.policy={disableSplit:!!e.disableSplit},e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Ku:return 0;case Di:return new Ol;case Wu:return [];case Ju:return new Ot;case Li:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Ku:return t===s.defaultValues(e);case Di:return t.certs.certificates.length===0&&t.crls.crls.length===0;case Wu:case Li:return t.length===0;case Ju:return Ot.compareWithDefault("contentType",t.contentType)&&Ot.compareWithDefault("contentEncryptionAlgorithm",t.contentEncryptionAlgorithm)&&Ot.compareWithDefault("encryptedContent",t.encryptedContent);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||p}),new A({name:t.originatorInfo||p,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:Ol.schema().valueBlock.value}),new at({value:[new he({name:t.recipientInfos||p,value:yn.schema()})]}),Ot.schema(t.encryptedContentInfo||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.unprotectedAttrs||p,value:ut.schema()})]})]})}fromSchema(e){V(e,$U);let t=R(e,e,s.schema({names:{version:Ku,originatorInfo:Di,recipientInfos:Wu,encryptedContentInfo:{names:{blockName:Ju}},unprotectedAttrs:Li}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,Di in t.result&&(this.originatorInfo=new Ol({schema:new b({value:t.result.originatorInfo.valueBlock.value})})),this.recipientInfos=Array.from(t.result.recipientInfos,r=>new yn({schema:r})),this.encryptedContentInfo=new Ot({schema:t.result.encryptedContentInfo}),Li in t.result&&(this.unprotectedAttrs=Array.from(t.result.unprotectedAttrs,r=>new ut({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),this.originatorInfo&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:this.originatorInfo.toSchema().valueBlock.value})),e.push(new at({value:Array.from(this.recipientInfos,t=>t.toSchema())})),e.push(this.encryptedContentInfo.toSchema()),this.unprotectedAttrs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.unprotectedAttrs,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={version:this.version,recipientInfos:Array.from(this.recipientInfos,t=>t.toJSON()),encryptedContentInfo:this.encryptedContentInfo.toJSON()};return this.originatorInfo&&(e.originatorInfo=this.originatorInfo.toJSON()),this.unprotectedAttrs&&(e.unprotectedAttrs=Array.from(this.unprotectedAttrs,t=>t.toJSON())),e}addRecipientByCertificate(e,t,r,n=Ie(!0)){let i=Object.assign({useOAEP:!0,oaepHashAlgorithm:"SHA-512"},QT,t||{});if(e.subjectPublicKeyInfo.algorithm.algorithmId.indexOf("1.2.840.113549")!==-1)r=1;else if(e.subjectPublicKeyInfo.algorithm.algorithmId.indexOf("1.2.840.10045")!==-1)r=2;else throw new Error(`Unknown type of certificate's public key: ${e.subjectPublicKeyInfo.algorithm.algorithmId}`);switch(r){case 1:{let a,o;if(i.useOAEP===!0){a=n.getOIDByAlgorithm({name:"RSA-OAEP"},!0,"keyEncryptionAlgorithm");let u=n.getOIDByAlgorithm({name:i.oaepHashAlgorithm},!0,"RSAES-OAEP-params"),l=new k({algorithmId:u,algorithmParams:new it});o=new Rl({hashAlgorithm:l,maskGenAlgorithm:new k({algorithmId:"1.2.840.113549.1.1.8",algorithmParams:l.toSchema()})}).toSchema();}else {if(a=n.getOIDByAlgorithm({name:"RSAES-PKCS1-v1_5"}),a===p)throw new Error("Can not find OID for RSAES-PKCS1-v1_5");o=new it;}let c=new Ll({version:0,rid:new It({issuer:e.issuer,serialNumber:e.serialNumber}),keyEncryptionAlgorithm:new k({algorithmId:a,algorithmParams:o}),recipientCertificate:e});this.recipientInfos.push(new yn({variant:1,value:c}));}break;case 2:{let a=new zi({variant:1,value:new It({issuer:e.issuer,serialNumber:e.serialNumber})});this._addKeyAgreeRecipientInfo(a,i,{recipientCertificate:e},n);}break;default:throw new Error(`Unknown "variant" value: ${r}`)}return !0}addRecipientByPreDefinedData(e,t={},r,n=Ie(!0)){if(Ke.assert(e,"preDefinedData","ArrayBuffer"),!e.byteLength)throw new Error("Pre-defined data could have zero length");if(!t.keyIdentifier){let i=new ArrayBuffer(16),a=new Uint8Array(i);n.getRandomValues(a),t.keyIdentifier=i;}switch(t.hmacHashAlgorithm||(t.hmacHashAlgorithm="SHA-512"),t.iterationCount===void 0&&(t.iterationCount=2048),t.keyEncryptionAlgorithm||(t.keyEncryptionAlgorithm={name:"AES-KW",length:256}),t.keyEncryptionAlgorithmParams||(t.keyEncryptionAlgorithmParams=new it),r){case 1:{let i=n.getOIDByAlgorithm(t.keyEncryptionAlgorithm,!0,"keyEncryptionAlgorithm"),a=new Ml({version:4,kekid:new Qo({keyIdentifier:new L({valueHex:t.keyIdentifier})}),keyEncryptionAlgorithm:new k({algorithmId:i,algorithmParams:t.keyEncryptionAlgorithmParams}),preDefinedKEK:e});this.recipientInfos.push(new yn({variant:3,value:a}));}break;case 2:{let i=n.getOIDByAlgorithm({name:"PBKDF2"},!0,"keyDerivationAlgorithm"),a=new ArrayBuffer(64),o=new Uint8Array(a);n.getRandomValues(o);let c=n.getOIDByAlgorithm({name:"HMAC",hash:{name:t.hmacHashAlgorithm}},!0,"hmacHashAlgorithm"),u=new Ji({salt:new L({valueHex:a}),iterationCount:t.iterationCount,prf:new k({algorithmId:c,algorithmParams:new it})}),l=n.getOIDByAlgorithm(t.keyEncryptionAlgorithm,!0,"keyEncryptionAlgorithm"),h=new $l({version:0,keyDerivationAlgorithm:new k({algorithmId:i,algorithmParams:u.toSchema()}),keyEncryptionAlgorithm:new k({algorithmId:l,algorithmParams:t.keyEncryptionAlgorithmParams}),password:e});this.recipientInfos.push(new yn({variant:4,value:h}));}break;default:throw new Error(`Unknown value for "variant": ${r}`)}}addRecipientByKeyIdentifier(e,t,r,n=Ie(!0)){let i=Object.assign({},QT,r||{}),a=new zi({variant:2,value:new Hl({subjectKeyIdentifier:new L({valueHex:t})})});this._addKeyAgreeRecipientInfo(a,i,{recipientPublicKey:e},n);}_addKeyAgreeRecipientInfo(e,t,r,n=Ie(!0)){let i=new _l({rid:e}),a=n.getOIDByAlgorithm({name:"AES-KW",length:t.kekEncryptionLength},!0,"keyEncryptionAlgorithm"),o=new k({algorithmId:a}),c=n.getOIDByAlgorithm({name:"ECDH",kdf:t.kdfAlgorithm},!0,"KeyAgreeRecipientInfo"),u=new ArrayBuffer(64),l=new Uint8Array(u);n.getRandomValues(l);let h={version:3,ukm:new L({valueHex:u}),keyEncryptionAlgorithm:new k({algorithmId:c,algorithmParams:o.toSchema()}),recipientEncryptedKeys:new Xo({encryptedKeys:[i]})},m=new jl(Object.assign(h,r));this.recipientInfos.push(new yn({variant:2,value:m}));}async encrypt(e,t,r=Ie(!0)){let n=new ArrayBuffer(16),i=new Uint8Array(n);r.getRandomValues(i);let a=new Uint8Array(t),o=r.getOIDByAlgorithm(e,!0,"contentEncryptionAlgorithm"),c=await r.generateKey(e,!0,["encrypt"]),u=await r.encrypt({name:e.name,iv:i},c,a),l=await r.exportKey("raw",c);this.version=2,this.encryptedContentInfo=new Ot({disableSplit:this.policy.disableSplit,contentType:"1.2.840.113549.1.7.1",contentEncryptionAlgorithm:new k({algorithmId:o,algorithmParams:new L({valueHex:n})}),encryptedContent:new L({valueHex:u})});let h=async S=>{let C=this.recipientInfos[S].value,N,x;if(C.recipientPublicKey)N=C.recipientPublicKey.algorithm.namedCurve,x=C.recipientPublicKey;else if(C.recipientCertificate){let H=C.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithmParams;if(H.constructor.blockName()!==W.blockName())throw new Error(`Incorrect "recipientCertificate" for index ${S}`);switch(H.valueBlock.toString()){case"1.2.840.10045.3.1.7":N="P-256";break;case"1.3.132.0.34":N="P-384";break;case"1.3.132.0.35":N="P-521";break;default:throw new Error(`Incorrect curve OID for index ${S}`)}x=await C.recipientCertificate.getPublicKey({algorithm:{algorithm:{name:"ECDH",namedCurve:N},usages:[]}},r);}else throw new Error("Unsupported RecipientInfo");let E=FU[N],I=await r.generateKey({name:"ECDH",namedCurve:N},!0,["deriveBits"]),D=await r.exportKey("spki",I.publicKey),G=await r.deriveBits({name:"ECDH",public:x},I.privateKey,E),$=new k({schema:C.keyEncryptionAlgorithm.algorithmParams}),J=r.getAlgorithmByOID($.algorithmId,!0,"aesKWAlgorithm"),ie=J.length,q=new ArrayBuffer(4),z=new Uint8Array(q);for(let H=3;H>=0;H--)z[H]=ie,ie>>=8;let Le=new im({keyInfo:new k({algorithmId:$.algorithmId}),entityUInfo:C.ukm,suppPubInfo:new L({valueHex:q})}).toSchema().toBER(!1),U=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"ecdhAlgorithm"),M=await jT(U.kdf,G,J.length,Le,r),Q=await r.importKey("raw",M,{name:"AES-KW"},!0,["wrapKey"]),pe=await r.wrapKey("raw",c,Q,{name:"AES-KW"}),te=new Zo;return te.variant=3,te.value=Ul.fromBER(D),C.originator=te,C.recipientEncryptedKeys.encryptedKeys[0].encryptedKey=new L({valueHex:pe}),{ecdhPrivateKey:I.privateKey}},m=async S=>{let C=this.recipientInfos[S].value,N=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm");if(N.name==="RSA-OAEP"){let x=C.keyEncryptionAlgorithm.algorithmParams,E=new Rl({schema:x});if(N.hash=r.getAlgorithmByOID(E.hashAlgorithm.algorithmId),!("name"in N.hash))throw new Error(`Incorrect OID for hash algorithm: ${E.hashAlgorithm.algorithmId}`)}try{let x=await C.recipientCertificate.getPublicKey({algorithm:{algorithm:N,usages:["encrypt","wrapKey"]}},r),E=await r.encrypt(x.algorithm,x,l);C.encryptedKey=new L({valueHex:E});}catch{}},y=async S=>{let C=this.recipientInfos[S].value,N=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),x=await r.importKey("raw",new Uint8Array(C.preDefinedKEK),N,!0,["wrapKey"]),E=await r.wrapKey("raw",c,x,N);C.encryptedKey=new L({valueHex:E});},g=async S=>{let C=this.recipientInfos[S].value,N;if(!C.keyDerivationAlgorithm)throw new Error('Please append encoded "keyDerivationAlgorithm"');if(!C.keyDerivationAlgorithm.algorithmParams)throw new Error('Incorrectly encoded "keyDerivationAlgorithm"');try{N=new Ji({schema:C.keyDerivationAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "keyDerivationAlgorithm"')}let x=new Uint8Array(C.password),E=await r.importKey("raw",x,"PBKDF2",!1,["deriveKey"]),I=r.getAlgorithmByOID(C.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),D="SHA-1";N.prf&&(D=r.getAlgorithmByOID(N.prf.algorithmId,!0,"prfAlgorithm").hash.name);let G=new Uint8Array(N.salt.valueBlock.valueHex),$=N.iterationCount,J=await r.deriveKey({name:"PBKDF2",hash:{name:D},salt:G,iterations:$},E,I,!0,["wrapKey"]),ie=await r.wrapKey("raw",c,J,I);C.encryptedKey=new L({valueHex:ie});},w=[];for(let S=0;S<this.recipientInfos.length;S++)switch(this.recipientInfos[S].variant){case 1:w.push(await m(S));break;case 2:w.push(await h(S));break;case 3:w.push(await y(S));break;case 4:w.push(await g(S));break;default:throw new Error(`Unknown recipient type in array with index ${S}`)}return w}async decrypt(e,t,r=Ie(!0)){let n=t||{};if(e+1>this.recipientInfos.length)throw new Error(`Maximum value for "index" is: ${this.recipientInfos.length-1}`);let i=async w=>{let S=this.recipientInfos[w].value,C,N,x,E=S.originator;if(n.recipientCertificate){let U=n.recipientCertificate.subjectPublicKeyInfo.algorithm.algorithmParams;if(U.constructor.blockName()!==W.blockName())throw new Error(`Incorrect "recipientCertificate" for index ${w}`);C=U.valueBlock.toString();}else if(E.value.algorithm.algorithmParams){let U=E.value.algorithm.algorithmParams;if(U.constructor.blockName()!==W.blockName())throw new Error(`Incorrect originator for index ${w}`);C=U.valueBlock.toString();}else throw new Error('Parameter "recipientCertificate" is mandatory for "KeyAgreeRecipientInfo" if algorithm params are missing from originator');if(!n.recipientPrivateKey)throw new Error('Parameter "recipientPrivateKey" is mandatory for "KeyAgreeRecipientInfo"');switch(C){case"1.2.840.10045.3.1.7":N="P-256",x=256;break;case"1.3.132.0.34":N="P-384",x=384;break;case"1.3.132.0.35":N="P-521",x=528;break;default:throw new Error(`Incorrect curve OID for index ${w}`)}let I,D=r;ae.isBufferSource(n.recipientPrivateKey)?I=await r.importKey("pkcs8",n.recipientPrivateKey,{name:"ECDH",namedCurve:N},!0,["deriveBits"]):(I=n.recipientPrivateKey,"crypto"in n&&n.crypto&&(D=n.crypto.subtle)),"algorithmParams"in E.value.algorithm||(E.value.algorithm.algorithmParams=new W({value:C}));let G=E.value.toSchema().toBER(!1),$=await r.importKey("spki",G,{name:"ECDH",namedCurve:N},!0,[]),J=await D.deriveBits({name:"ECDH",public:$},I,x);async function ie(U){U=U||!1;let M=new k({schema:S.keyEncryptionAlgorithm.algorithmParams}),Q=r.getAlgorithmByOID(M.algorithmId,!0,"kwAlgorithm"),pe=Q.length,te=new ArrayBuffer(4),H=new Uint8Array(te);for(let _e=3;_e>=0;_e--)H[_e]=pe,pe>>=8;let Y={algorithmId:M.algorithmId};U&&(Y.algorithmParams=new it);let ge=new im({keyInfo:new k(Y),entityUInfo:S.ukm,suppPubInfo:new L({valueHex:te})}).toSchema().toBER(!1),Ce=r.getAlgorithmByOID(S.keyEncryptionAlgorithm.algorithmId,!0,"ecdhAlgorithm");if(!Ce.name)throw new Error(`Incorrect OID for key encryption algorithm: ${S.keyEncryptionAlgorithm.algorithmId}`);return jT(Ce.kdf,J,Q.length,ge,r)}let q=await ie(),z=async U=>r.importKey("raw",U,{name:"AES-KW"},!0,["unwrapKey"]),ce=await z(q),Le=async U=>{let M=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,Q=r.getAlgorithmByOID(M,!0,"contentEncryptionAlgorithm");return r.unwrapKey("raw",S.recipientEncryptedKeys.encryptedKeys[0].encryptedKey.valueBlock.valueHexView,U,{name:"AES-KW"},Q,!0,["decrypt"])};try{return await Le(ce)}catch{let U=await ie(!0),M=await z(U);return Le(M)}},a=async w=>{let S=this.recipientInfos[w].value;if(!n.recipientPrivateKey)throw new Error('Parameter "recipientPrivateKey" is mandatory for "KeyTransRecipientInfo"');let C=r.getAlgorithmByOID(S.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm");if(C.name==="RSA-OAEP"){let G=S.keyEncryptionAlgorithm.algorithmParams,$=new Rl({schema:G});if(C.hash=r.getAlgorithmByOID($.hashAlgorithm.algorithmId),!("name"in C.hash))throw new Error(`Incorrect OID for hash algorithm: ${$.hashAlgorithm.algorithmId}`)}let N,x=r;ae.isBufferSource(n.recipientPrivateKey)?N=await r.importKey("pkcs8",n.recipientPrivateKey,C,!0,["decrypt"]):(N=n.recipientPrivateKey,"crypto"in n&&n.crypto&&(x=n.crypto.subtle));let E=await x.decrypt(N.algorithm,N,S.encryptedKey.valueBlock.valueHexView),I=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,D=r.getAlgorithmByOID(I,!0,"contentEncryptionAlgorithm");if(!("name"in D))throw new Error(`Incorrect "contentEncryptionAlgorithm": ${I}`);return r.importKey("raw",E,D,!0,["decrypt"])},o=async w=>{let S=this.recipientInfos[w].value;if(!n.preDefinedData)throw new Error('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');let C=r.getAlgorithmByOID(S.keyEncryptionAlgorithm.algorithmId,!0,"kekAlgorithm"),N=await r.importKey("raw",n.preDefinedData,C,!0,["unwrapKey"]),x=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,E=r.getAlgorithmByOID(x,!0,"contentEncryptionAlgorithm");if(!E.name)throw new Error(`Incorrect "contentEncryptionAlgorithm": ${x}`);return r.unwrapKey("raw",S.encryptedKey.valueBlock.valueHexView,N,C,E,!0,["decrypt"])},c=async w=>{let S=this.recipientInfos[w].value,C;if(!n.preDefinedData)throw new Error('Parameter "preDefinedData" is mandatory for "KEKRecipientInfo"');if(!S.keyDerivationAlgorithm)throw new Error('Please append encoded "keyDerivationAlgorithm"');if(!S.keyDerivationAlgorithm.algorithmParams)throw new Error('Incorrectly encoded "keyDerivationAlgorithm"');try{C=new Ji({schema:S.keyDerivationAlgorithm.algorithmParams});}catch{throw new Error('Incorrectly encoded "keyDerivationAlgorithm"')}let N=await r.importKey("raw",n.preDefinedData,"PBKDF2",!1,["deriveKey"]),x=r.getAlgorithmByOID(S.keyEncryptionAlgorithm.algorithmId,!0,"keyEncryptionAlgorithm"),E=C.prf?r.getAlgorithmByOID(C.prf.algorithmId,!0,"prfAlgorithm").hash.name:"SHA-1",I=new Uint8Array(C.salt.valueBlock.valueHex),D=C.iterationCount,G=await r.deriveKey({name:"PBKDF2",hash:{name:E},salt:I,iterations:D},N,x,!0,["unwrapKey"]),$=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,J=r.getAlgorithmByOID($,!0,"contentEncryptionAlgorithm");return r.unwrapKey("raw",S.encryptedKey.valueBlock.valueHexView,G,x,J,!0,["decrypt"])},u;switch(this.recipientInfos[e].variant){case 1:u=await a(e);break;case 2:u=await i(e);break;case 3:u=await o(e);break;case 4:u=await c(e);break;default:throw new Error(`Unknown recipient type in array with index ${e}`)}let l=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmId,h=r.getAlgorithmByOID(l,!0,"contentEncryptionAlgorithm"),m=this.encryptedContentInfo.contentEncryptionAlgorithm.algorithmParams.valueBlock.valueHex,y=new Uint8Array(m);if(!this.encryptedContentInfo.encryptedContent)throw new Error("Required property `encryptedContent` is empty");let g=this.encryptedContentInfo.getEncryptedContent();return r.decrypt({name:h.name,iv:y},u,g)}};am.CLASS_NAME="EnvelopedData";var tu="safeContents",_h="parsedValue",e4="contentInfos",om=class s extends O{constructor(e={}){super(),this.safeContents=d(e,tu,s.defaultValues(tu)),_h in e&&(this.parsedValue=d(e,_h,s.defaultValues(_h))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case tu:return [];case _h:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case tu:return t.length===0;case _h:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new he({name:t.contentInfos||p,value:ot.schema()})]})}fromSchema(e){V(e,[e4]);let t=R(e,e,s.schema({names:{contentInfos:e4}}));B.assertSchema(t,this.className),this.safeContents=Array.from(t.result.contentInfos,r=>new ot({schema:r}));}toSchema(){return new b({value:Array.from(this.safeContents,e=>e.toSchema())})}toJSON(){return {safeContents:Array.from(this.safeContents,e=>e.toJSON())}}async parseInternalValues(e,t=Ie(!0)){if(He.assert(e,tu),Ke.assert(e.safeContents,tu,"Array"),e.safeContents.length!==this.safeContents.length)throw new Ke('Length of "parameters.safeContents" must be equal to "this.safeContents.length"');this.parsedValue={safeContents:[]};for(let[r,n]of this.safeContents.entries()){let i=e.safeContents[r],a=`parameters.safeContents[${r}]`;switch(n.contentType){case qA:{Ke.assert(n.content,"this.safeContents[j].content",L);let o=n.content.getValue();this.parsedValue.safeContents.push({privacyMode:0,value:Wi.fromBER(o)});}break;case d4:{let o=new am({schema:n.content});He.assert(a,i,"recipientCertificate","recipientKey");let c=i,u=c.recipientCertificate,l=c.recipientKey,h=await o.decrypt(0,{recipientCertificate:u,recipientPrivateKey:l},t);this.parsedValue.safeContents.push({privacyMode:2,value:Wi.fromBER(h)});}break;case m4:{let o=new rc({schema:n.content});He.assert(a,i,"password");let c=i.password,u=await o.decrypt({password:c},t);this.parsedValue.safeContents.push({privacyMode:1,value:Wi.fromBER(u)});}break;default:throw new Error(`Unknown "contentType" for AuthenticatedSafe: " ${n.contentType}`)}}}async makeInternalValues(e,t=Ie(!0)){if(!this.parsedValue)throw new Error('Please run "parseValues" first or add "parsedValue" manually');if(Ke.assert(this.parsedValue,"this.parsedValue","object"),Ke.assert(this.parsedValue.safeContents,"this.parsedValue.safeContents","Array"),Ke.assert(e,"parameters","object"),He.assert(e,"safeContents"),Ke.assert(e.safeContents,"parameters.safeContents","Array"),e.safeContents.length!==this.parsedValue.safeContents.length)throw new Ke('Length of "parameters.safeContents" must be equal to "this.parsedValue.safeContents"');this.safeContents=[];for(let[r,n]of this.parsedValue.safeContents.entries())switch(He.assert("content",n,"privacyMode","value"),Ke.assert(n.value,"content.value",Wi),n.privacyMode){case 0:{let i=n.value.toSchema().toBER(!1);this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.1",content:new L({valueHex:i})}));}break;case 1:{let i=new rc,a=e.safeContents[r];a.contentToEncrypt=n.value.toSchema().toBER(!1),await i.encrypt(a,t),this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.6",content:i.toSchema()}));}break;case 2:{let i=new am,a=n.value.toSchema().toBER(!1),o=e.safeContents[r];switch(He.assert(`parameters.safeContents[${r}]`,o,"encryptingCertificate","encryptionAlgorithm"),!0){case o.encryptionAlgorithm.name.toLowerCase()==="aes-cbc":case o.encryptionAlgorithm.name.toLowerCase()==="aes-gcm":break;default:throw new Error(`Incorrect parameter "encryptionAlgorithm" in "parameters.safeContents[i]": ${o.encryptionAlgorithm}`)}switch(!0){case o.encryptionAlgorithm.length===128:case o.encryptionAlgorithm.length===192:case o.encryptionAlgorithm.length===256:break;default:throw new Error(`Incorrect parameter "encryptionAlgorithm.length" in "parameters.safeContents[i]": ${o.encryptionAlgorithm.length}`)}let c=o.encryptionAlgorithm;i.addRecipientByCertificate(o.encryptingCertificate,{},void 0,t),await i.encrypt(c,a,t),this.safeContents.push(new ot({contentType:"1.2.840.113549.1.7.3",content:i.toSchema()}));}break;default:throw new Error(`Incorrect value for "content.privacyMode": ${n.privacyMode}`)}return this}};om.CLASS_NAME="AuthenticatedSafe";var Bo="hashAlgorithm",zu="issuerNameHash",Yu="issuerKeyHash",Oo="serialNumber",qU=[Bo,zu,Yu,Oo],os=class s extends O{static async create(e,t,r=Ie(!0)){let n=new s;return await n.createForCertificate(e,t,r),n}constructor(e={}){super(),this.hashAlgorithm=d(e,Bo,s.defaultValues(Bo)),this.issuerNameHash=d(e,zu,s.defaultValues(zu)),this.issuerKeyHash=d(e,Yu,s.defaultValues(Yu)),this.serialNumber=d(e,Oo,s.defaultValues(Oo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Bo:return new k;case zu:case Yu:return new L;case Oo:return new T;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Bo:return t.algorithmId===p&&!("algorithmParams"in t);case zu:case Yu:case Oo:return t.isEqual(s.defaultValues(Oo));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.hashAlgorithmObject||{names:{blockName:t.hashAlgorithm||p}}),new L({name:t.issuerNameHash||p}),new L({name:t.issuerKeyHash||p}),new T({name:t.serialNumber||p})]})}fromSchema(e){V(e,qU);let t=R(e,e,s.schema({names:{hashAlgorithm:Bo,issuerNameHash:zu,issuerKeyHash:Yu,serialNumber:Oo}}));B.assertSchema(t,this.className),this.hashAlgorithm=new k({schema:t.result.hashAlgorithm}),this.issuerNameHash=t.result.issuerNameHash,this.issuerKeyHash=t.result.issuerKeyHash,this.serialNumber=t.result.serialNumber;}toSchema(){return new b({value:[this.hashAlgorithm.toSchema(),this.issuerNameHash,this.issuerKeyHash,this.serialNumber]})}toJSON(){return {hashAlgorithm:this.hashAlgorithm.toJSON(),issuerNameHash:this.issuerNameHash.toJSON(),issuerKeyHash:this.issuerKeyHash.toJSON(),serialNumber:this.serialNumber.toJSON()}}isEqual(e){return !(this.hashAlgorithm.algorithmId!==e.hashAlgorithm.algorithmId||!ae.isEqual(this.issuerNameHash.valueBlock.valueHexView,e.issuerNameHash.valueBlock.valueHexView)||!ae.isEqual(this.issuerKeyHash.valueBlock.valueHexView,e.issuerKeyHash.valueBlock.valueHexView)||!this.serialNumber.isEqual(e.serialNumber))}async createForCertificate(e,t,r=Ie(!0)){He.assert(t,Bo,"issuerCertificate");let n=r.getOIDByAlgorithm({name:t.hashAlgorithm},!0,"hashAlgorithm");this.hashAlgorithm=new k({algorithmId:n,algorithmParams:new it});let i=t.issuerCertificate;this.serialNumber=e.serialNumber;let a=await r.digest({name:t.hashAlgorithm},i.subject.toSchema().toBER(!1));this.issuerNameHash=new L({valueHex:a});let o=i.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView,c=await r.digest({name:t.hashAlgorithm},o);this.issuerKeyHash=new L({valueHex:c});}};os.CLASS_NAME="CertID";var Zu="certID",Xu="certStatus",Qu="thisUpdate",Ui="nextUpdate",Ro="singleExtensions",GU=[Zu,Xu,Qu,Ui,Ro],cm=class s extends O{constructor(e={}){super(),this.certID=d(e,Zu,s.defaultValues(Zu)),this.certStatus=d(e,Xu,s.defaultValues(Xu)),this.thisUpdate=d(e,Qu,s.defaultValues(Qu)),Ui in e&&(this.nextUpdate=d(e,Ui,s.defaultValues(Ui))),Ro in e&&(this.singleExtensions=d(e,Ro,s.defaultValues(Ro))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Zu:return new os;case Xu:return {};case Qu:case Ui:return new Date(0,0,0);case Ro:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Zu:return os.compareWithDefault("hashAlgorithm",t.hashAlgorithm)&&os.compareWithDefault("issuerNameHash",t.issuerNameHash)&&os.compareWithDefault("issuerKeyHash",t.issuerKeyHash)&&os.compareWithDefault("serialNumber",t.serialNumber);case Xu:return Object.keys(t).length===0;case Qu:case Ui:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[os.schema(t.certID||{}),new Ze({value:[new oe({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:0}}),new A({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:1},value:[new Ye,new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new br]})]}),new oe({name:t.certStatus||p,idBlock:{tagClass:3,tagNumber:2},lenBlock:{length:1}})]}),new Ye({name:t.thisUpdate||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new Ye({name:t.nextUpdate||p})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[gt.schema(t.singleExtensions||{})]})]})}fromSchema(e){V(e,GU);let t=R(e,e,s.schema({names:{certID:{names:{blockName:Zu}},certStatus:Xu,thisUpdate:Qu,nextUpdate:Ui,singleExtensions:{names:{blockName:Ro}}}}));B.assertSchema(t,this.className),this.certID=new os({schema:t.result.certID}),this.certStatus=t.result.certStatus,this.thisUpdate=t.result.thisUpdate.toDate(),Ui in t.result&&(this.nextUpdate=t.result.nextUpdate.toDate()),Ro in t.result&&(this.singleExtensions=Array.from(t.result.singleExtensions.valueBlock.value,r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(this.certID.toSchema()),e.push(this.certStatus),e.push(new Ye({valueDate:this.thisUpdate})),this.nextUpdate&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new Ye({valueDate:this.nextUpdate})]})),this.singleExtensions&&e.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new b({value:Array.from(this.singleExtensions,t=>t.toSchema())})]})),new b({value:e})}toJSON(){let e={certID:this.certID.toJSON(),certStatus:this.certStatus.toJSON(),thisUpdate:this.thisUpdate};return this.nextUpdate&&(e.nextUpdate=this.nextUpdate),this.singleExtensions&&(e.singleExtensions=Array.from(this.singleExtensions,t=>t.toJSON())),e}};cm.CLASS_NAME="SingleResponse";var By="tbs",Vo="version",w0="responderID",b0="producedAt",S0="responses",el="responseExtensions",nc="ResponseData",Fy=`${nc}.${Vo}`,tl=`${nc}.${w0}`,mA=`${nc}.${b0}`,pA=`${nc}.${S0}`,qy=`${nc}.${el}`,KU=[nc,Fy,tl,mA,pA,qy],rr=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,By,s.defaultValues(By))),Vo in e&&(this.version=d(e,Vo,s.defaultValues(Vo))),this.responderID=d(e,w0,s.defaultValues(w0)),this.producedAt=d(e,b0,s.defaultValues(b0)),this.responses=d(e,S0,s.defaultValues(S0)),el in e&&(this.responseExtensions=d(e,el,s.defaultValues(el))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Vo:return 0;case By:return dt;case w0:return {};case b0:return new Date(0,0,0);case S0:case el:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case By:return t.byteLength===0;case w0:return Object.keys(t).length===0;case b0:return t===s.defaultValues(e);case S0:case el:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||nc,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.version||Fy})]}),new Ze({value:[new A({name:t.responderID||tl,idBlock:{tagClass:3,tagNumber:1},value:[Xe.schema(t.ResponseDataByName||{names:{blockName:"ResponseData.byName"}})]}),new A({name:t.responderID||tl,idBlock:{tagClass:3,tagNumber:2},value:[new L({name:t.ResponseDataByKey||"ResponseData.byKey"})]})]}),new Ye({name:t.producedAt||mA}),new b({value:[new he({name:pA,value:cm.schema(t.response||{})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[gt.schema(t.extensions||{names:{blockName:qy}})]})]})}fromSchema(e){V(e,KU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.ResponseData.valueBeforeDecodeView,Fy in t.result&&(this.version=t.result[Fy].valueBlock.valueDec),t.result[tl].idBlock.tagNumber===1?this.responderID=new Xe({schema:t.result[tl].valueBlock.value[0]}):this.responderID=t.result[tl].valueBlock.value[0],this.producedAt=t.result[mA].toDate(),this.responses=Array.from(t.result[pA],r=>new cm({schema:r})),qy in t.result&&(this.responseExtensions=Array.from(t.result[qy].valueBlock.value,r=>new ys({schema:r})));}toSchema(e=!1){let t;if(e===!1){if(!this.tbsView.byteLength)return s.schema();let r=pt(this.tbsView);B.assert(r,"TBS Response Data"),t=r.result;}else {let r=[];Vo in this&&r.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),this.responderID instanceof Xe?r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.responderID.toSchema()]})):r.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[this.responderID]})),r.push(new Ye({valueDate:this.producedAt})),r.push(new b({value:Array.from(this.responses,n=>n.toSchema())})),this.responseExtensions&&r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[new b({value:Array.from(this.responseExtensions,n=>n.toSchema())})]})),t=new b({value:r});}return t}toJSON(){let e={};return Vo in this&&(e.version=this.version),this.responderID&&(e.responderID=this.responderID),this.producedAt&&(e.producedAt=this.producedAt),this.responses&&(e.responses=Array.from(this.responses,t=>t.toJSON())),this.responseExtensions&&(e.responseExtensions=Array.from(this.responseExtensions,t=>t.toJSON())),e}};rr.CLASS_NAME="ResponseData";var Y2="trustedCerts",Z2="certs",X2="crls",Q2="ocsps",eA="checkDate",tA="findOrigin",sA="findIssuer",qo;(function(s){s[s.unknown=-1]="unknown",s[s.success=0]="success",s[s.noRevocation=11]="noRevocation",s[s.noPath=60]="noPath",s[s.noValidPath=97]="noValidPath";})(qo||(qo={}));var Gi=class s extends Error{constructor(e,t){super(t),this.name=s.NAME,this.code=e,this.message=t;}};Gi.NAME="ChainValidationError";function WU(s,e){for(let t=0;t<e.length;t++)if(ae.isEqual(s.tbsView,e[t].tbsView))return !0;return !1}var um=class s{constructor(e={}){this.trustedCerts=d(e,Y2,this.defaultValues(Y2)),this.certs=d(e,Z2,this.defaultValues(Z2)),this.crls=d(e,X2,this.defaultValues(X2)),this.ocsps=d(e,Q2,this.defaultValues(Q2)),this.checkDate=d(e,eA,this.defaultValues(eA)),this.findOrigin=d(e,tA,this.defaultValues(tA)),this.findIssuer=d(e,sA,this.defaultValues(sA));}static defaultFindOrigin(e,t){e.tbsView.byteLength===0&&(e.tbsView=new Uint8Array(e.encodeTBS().toBER()));for(let r of t.certs)if(r.tbsView.byteLength===0&&(r.tbsView=new Uint8Array(r.encodeTBS().toBER())),ae.isEqual(e.tbsView,r.tbsView))return "Intermediate Certificates";for(let r of t.trustedCerts)if(r.tbsView.byteLength===0&&(r.tbsView=new Uint8Array(r.encodeTBS().toBER())),ae.isEqual(e.tbsView,r.tbsView))return "Trusted Certificates";return "Unknown"}async defaultFindIssuer(e,t,r=Ie(!0)){let n=[],i=null,a=null,o=null;if(e.subject.isEqual(e.issuer))try{if(await e.verify(void 0,r))return [e]}catch{}if(e.extensions){for(let u of e.extensions)if(u.extnID===$A&&u.parsedValue instanceof M0){u.parsedValue.keyIdentifier?i=u.parsedValue.keyIdentifier:(u.parsedValue.authorityCertIssuer&&(a=u.parsedValue.authorityCertIssuer),u.parsedValue.authorityCertSerialNumber&&(o=u.parsedValue.authorityCertSerialNumber));break}}function c(u){if(i!==null&&u.extensions){let h=!1;for(let m of u.extensions)if(m.extnID===QD&&m.parsedValue){h=!0,ae.isEqual(m.parsedValue.valueBlock.valueHex,i.valueBlock.valueHexView)&&n.push(u);break}if(h)return}let l=!1;o!==null&&(l=u.serialNumber.isEqual(o)),a!==null?u.subject.isEqual(a)&&l&&n.push(u):e.issuer.isEqual(u.subject)&&n.push(u);}for(let u of t.trustedCerts)c(u);for(let u of t.certs)c(u);for(let u=n.length-1;u>=0;u--)try{await e.verify(n[u],r)===!1&&n.splice(u,1);}catch{n.splice(u,1);}return n}defaultValues(e){switch(e){case Y2:return [];case Z2:return [];case X2:return [];case Q2:return [];case eA:return new Date;case tA:return s.defaultFindOrigin;case sA:return this.defaultFindIssuer;default:throw new Error(`Invalid member name for CertificateChainValidationEngine class: ${e}`)}}async sort(e=!1,t=Ie(!0)){let r=[],n=async(g,w)=>{let S=[];function C(x){let E=!0;for(let I=0;I<x.length;I++){for(let D=0;D<x.length;D++)if(D!==I&&x[I]===x[D]){E=!1;break}if(!E)break}return E}if(WU(g,this.trustedCerts))return [[g]];let N=await this.findIssuer(g,this,w);if(N.length===0)throw new Error("No valid certificate paths found");for(let x=0;x<N.length;x++){if(ae.isEqual(N[x].tbsView,g.tbsView)){S.push([N[x]]);continue}let E=await n(N[x],w);for(let I=0;I<E.length;I++){let D=E[I].slice();D.splice(0,0,N[x]),C(D)?S.push(D):S.push(E[I]);}}return S},i=async g=>{let w=[],S=[],C=[];if(w.push(...r.filter(N=>g.issuer.isEqual(N.subject))),w.length===0)return {status:1,statusMessage:"No certificate's issuers"};if(S.push(...this.crls.filter(N=>N.issuer.isEqual(g.issuer))),S.length===0)return {status:2,statusMessage:"No CRLs for specific certificate issuer"};for(let N=0;N<S.length;N++){let x=S[N];if(!(x.nextUpdate&&x.nextUpdate.value<this.checkDate))for(let E=0;E<w.length;E++)try{if(await S[N].verify({issuerCertificate:w[E]},t)){C.push({crl:S[N],certificate:w[E]});break}}catch{}}return C.length?{status:0,statusMessage:p,result:C}:{status:3,statusMessage:"No valid CRLs found"}},a=async(g,w)=>{let S=t.getAlgorithmByOID(g.signatureAlgorithm.algorithmId);if(!S.name||!S.hash)return 1;for(let C=0;C<this.ocsps.length;C++){let x=await this.ocsps[C].getCertificateStatus(g,w,t);if(x.isForCertificate)return x.status===0?0:1}return 2};async function o(g,w=!1){let S=!1,C=!1,N=!1,x=!1;if(g.extensions){for(let E=0;E<g.extensions.length;E++){let I=g.extensions[E];if(I.critical&&!I.parsedValue)return {result:!1,resultCode:6,resultMessage:`Unable to parse critical certificate extension: ${I.extnID}`};if(I.extnID===eL){N=!0;let D=new Uint8Array(I.parsedValue.valueBlock.valueHex);(D[0]&4)===4&&(C=!0),(D[0]&2)===2&&(x=!0);}I.extnID===jA&&"cA"in I.parsedValue&&I.parsedValue.cA===!0&&(S=!0);}if(C===!0&&S===!1)return {result:!1,resultCode:3,resultMessage:'Unable to build certificate chain - using "keyCertSign" flag set without BasicConstraints'};if(N===!0&&S===!0&&C===!1)return {result:!1,resultCode:4,resultMessage:'Unable to build certificate chain - "keyCertSign" flag was not set'};if(S===!0&&N===!0&&w&&x===!1)return {result:!1,resultCode:5,resultMessage:'Unable to build certificate chain - intermediate certificate must have "cRLSign" key usage flag'}}return S===!1?{result:!1,resultCode:7,resultMessage:"Unable to build certificate chain - more than one possible end-user certificate"}:{result:!0,resultCode:0,resultMessage:p}}let c=async(g,w)=>{for(let S=0;S<g.length;S++)if(g[S].notBefore.value>w||g[S].notAfter.value<w)return {result:!1,resultCode:8,resultMessage:"The certificate is either not yet valid or expired"};if(g.length<2)return {result:!1,resultCode:9,resultMessage:"Too short certificate path"};for(let S=g.length-2;S>=0;S--)if(g[S].issuer.isEqual(g[S].subject)===!1&&g[S].issuer.isEqual(g[S+1].subject)===!1)return {result:!1,resultCode:10,resultMessage:"Incorrect name chaining"};if(this.crls.length!==0||this.ocsps.length!==0)for(let S=0;S<g.length-1;S++){let C=2,N={status:0,statusMessage:p};if(this.ocsps.length!==0)switch(C=await a(g[S],g[S+1]),C){case 0:continue;case 1:return {result:!1,resultCode:12,resultMessage:"One of certificates was revoked via OCSP response"}}if(this.crls.length!==0){if(N=await i(g[S]),N.status===0&&N.result)for(let x=0;x<N.result.length;x++){if(N.result[x].crl.isCertificateRevoked(g[S]))return {result:!1,resultCode:12,resultMessage:"One of certificates had been revoked"};if((await o(N.result[x].certificate,!0)).result===!1)return {result:!1,resultCode:13,resultMessage:"CRL issuer certificate is not a CA certificate or does not have crlSign flag"}}else if(e===!1)throw new Gi(qo.noRevocation,`No revocation values found for one of certificates: ${N.statusMessage}`)}else if(C===2)return {result:!1,resultCode:11,resultMessage:"No revocation values found for one of certificates"};if(C===2&&N.status===2&&e){let x=g[S+1],E=!1;if(x.extensions)for(let I of x.extensions)switch(I.extnID){case c4:case MA:case FA:E=!0;break}if(E)throw new Gi(qo.noRevocation,`No revocation values found for one of certificates: ${N.statusMessage}`)}}for(let[S,C]of g.entries()){if(!S)continue;if(!(await o(C)).result)return {result:!1,resultCode:14,resultMessage:"One of intermediate certificates is not a CA certificate"}}return {result:!0}};r.push(...this.trustedCerts),r.push(...this.certs);for(let g=0;g<r.length;g++)for(let w=0;w<r.length;w++)if(g!==w&&ae.isEqual(r[g].tbsView,r[w].tbsView)){r.splice(w,1),g=0;break}let u=r[r.length-1],l,h=[u];if(l=await n(u,t),l.length===0)throw new Gi(qo.noPath,"Unable to find certificate path");for(let g=l.length-1;g>=0;g--){let w=!1;for(let S=0;S<l[g].length;S++){let C=l[g][S];for(let N=0;N<this.trustedCerts.length;N++)if(ae.isEqual(C.tbsView,this.trustedCerts[N].tbsView)){w=!0;break}if(w)break}w||l.splice(g,1);}if(l.length===0)throw new Gi(qo.noValidPath,"No valid certificate paths found");let m=l[0].length,y=0;for(let g=0;g<l.length;g++)l[g].length<m&&(m=l[g].length,y=g);for(let g=0;g<l[y].length;g++)h.push(l[y][g]);if(l=await c(h,this.checkDate),l.result===!1)throw l;return h}async verify(e={},t=Ie(!0)){function r(c,u){let l=qi(c),h=qi(u),m=l.split("."),y=h.split("."),g=m.length,w=y.length;if(g===0||w===0||g<w)return !1;for(let S=0;S<g;S++)if(m[S].length===0)return !1;for(let S=0;S<w;S++)if(y[S].length===0){if(S===0){if(w===1)return !1;continue}return !1}for(let S=0;S<w;S++)if(y[w-1-S].length!==0&&m[g-1-S].localeCompare(y[w-1-S])!==0)return !1;return !0}function n(c,u){let l=qi(c),h=qi(u),m=l.split("@"),y=h.split("@");if(m.length===0||y.length===0||m.length<y.length)return !1;if(y.length===1){if(r(m[1],y[0])){let w=m[1].split("."),S=y[0].split(".");return S[0].length===0?!0:w.length===S.length}return !1}return l.localeCompare(h)===0}function i(c,u){let l=qi(c),h=qi(u),m=l.split("/");if(h.split("/").length>1)return !1;if(m.length>1){for(let w=0;w<m.length;w++)if(m[w].length>0&&m[w].charAt(m[w].length-1)!==":"){l=m[w].split(":")[0];break}}if(r(l,h)){let w=l.split("."),S=h.split(".");return S[0].length===0?!0:w.length===S.length}return !1}function a(c,u){let l=c.valueBlock.valueHexView,h=u.valueBlock.valueHexView;if(l.length===4&&h.length===8){for(let m=0;m<4;m++)if((l[m]^h[m])&h[m+4])return !1;return !0}if(l.length===16&&h.length===32){for(let m=0;m<16;m++)if((l[m]^h[m])&h[m+16])return !1;return !0}return !1}function o(c,u){if(c.typesAndValues.length===0||u.typesAndValues.length===0)return !0;if(c.typesAndValues.length<u.typesAndValues.length)return !1;let l=!0,h=0;for(let m=0;m<u.typesAndValues.length;m++){let y=!1;for(let g=h;g<c.typesAndValues.length;g++)if(y=c.typesAndValues[g].isEqual(u.typesAndValues[m]),c.typesAndValues[g].type===u.typesAndValues[m].type&&(l=l&&y),y===!0)if(h===0||h===g){h=g+1;break}else return !1;if(y===!1)return !1}return h===0?!1:l}try{if(this.certs.length===0)throw new Error("Empty certificate array");let c=e.passedWhenNotRevValues||!1,u=e.initialPolicySet||[Rs],l=e.initialExplicitPolicy||!1,h=e.initialPolicyMappingInhibit||!1,m=e.initialInhibitPolicy||!1,y=e.initialPermittedSubtreesSet||[],g=e.initialExcludedSubtreesSet||[],w=e.initialRequiredNameForms||[],S=l,C=h,N=m,x=[!1,!1,!1],E=0,I=0,D=0,G=y,$=g,J=w,ie=1;this.certs=await this.sort(c,t);let q=[];q.push(Rs);let z=[],ce=new Array(this.certs.length-1);for(let H=0;H<this.certs.length-1;H++)ce[H]=!0;z.push(ce);let Le=new Array(this.certs.length-1),U=new Array(this.certs.length-1),M=S?this.certs.length-1:-1;for(let H=this.certs.length-2;H>=0;H--,ie++){let Y=this.certs[H];if(Y.extensions){for(let Z=0;Z<Y.extensions.length;Z++){let ge=Y.extensions[Z];if(ge.extnID===u4){U[H]=ge.parsedValue;for(let Ce=0;Ce<q.length;Ce++)if(q[Ce]===Rs){delete z[Ce][H];break}for(let Ce=0;Ce<ge.parsedValue.certificatePolicies.length;Ce++){let _e=-1,$t=ge.parsedValue.certificatePolicies[Ce].policyIdentifier;for(let qe=0;qe<q.length;qe++)if($t===q[qe]){_e=qe;break}if(_e===-1){q.push($t);let qe=new Array(this.certs.length-1);qe[H]=!0,z.push(qe);}else z[_e][H]=!0;}}if(ge.extnID===l4){if(C)return {result:!1,resultCode:98,resultMessage:"Policy mapping prohibited"};Le[H]=ge.parsedValue;}ge.extnID===f4&&S===!1&&(ge.parsedValue.requireExplicitPolicy===0?(S=!0,M=H):x[0]===!1?(x[0]=!0,E=ge.parsedValue.requireExplicitPolicy):E=E>ge.parsedValue.requireExplicitPolicy?ge.parsedValue.requireExplicitPolicy:E,ge.parsedValue.inhibitPolicyMapping===0?C=!0:x[1]===!1?(x[1]=!0,I=ge.parsedValue.inhibitPolicyMapping+1):I=I>ge.parsedValue.inhibitPolicyMapping+1?ge.parsedValue.inhibitPolicyMapping+1:I),ge.extnID===cL&&N===!1&&(ge.parsedValue.valueBlock.valueDec===0?N=!0:x[2]===!1?(x[2]=!0,D=ge.parsedValue.valueBlock.valueDec):D=D>ge.parsedValue.valueBlock.valueDec?ge.parsedValue.valueBlock.valueDec:D);}if(N===!0){let Z=-1;for(let ge=0;ge<q.length;ge++)if(q[ge]===Rs){Z=ge;break}Z!==-1&&delete z[0][H];}S===!1&&x[0]===!0&&(E--,E===0&&(S=!0,M=H,x[0]=!1)),C===!1&&x[1]===!0&&(I--,I===0&&(C=!0,x[1]=!1)),N===!1&&x[2]===!0&&(D--,D===0&&(N=!0,x[2]=!1));}}for(let H=0;H<this.certs.length-1;H++)if(H<this.certs.length-2&&typeof Le[H+1]<"u")for(let Y=0;Y<Le[H+1].mappings.length;Y++){if(Le[H+1].mappings[Y].issuerDomainPolicy===Rs||Le[H+1].mappings[Y].subjectDomainPolicy===Rs)return {result:!1,resultCode:99,resultMessage:'The "anyPolicy" should not be a part of policy mapping scheme'};let Z=-1,ge=-1;for(let Ce=0;Ce<q.length;Ce++)q[Ce]===Le[H+1].mappings[Y].issuerDomainPolicy&&(Z=Ce),q[Ce]===Le[H+1].mappings[Y].subjectDomainPolicy&&(ge=Ce);typeof z[Z][H]<"u"&&delete z[Z][H];for(let Ce=0;Ce<U[H].certificatePolicies.length;Ce++)if(Le[H+1].mappings[Y].subjectDomainPolicy===U[H].certificatePolicies[Ce].policyIdentifier&&Z!==-1&&ge!==-1)for(let _e=0;_e<=H;_e++)typeof z[ge][_e]<"u"&&(z[Z][_e]=!0,delete z[ge][_e]);}for(let H=0;H<q.length;H++)if(q[H]===Rs)for(let Y=0;Y<M;Y++)delete z[H][Y];let Q=[];for(let H=0;H<z.length;H++){let Y=!0;for(let Z=0;Z<this.certs.length-1;Z++){let ge=!1;if(Z<M&&q[H]===Rs&&q.length>1){Y=!1;break}if(typeof z[H][Z]>"u"){if(Z>=M){for(let Ce=0;Ce<q.length;Ce++)if(q[Ce]===Rs){z[Ce][Z]===!0&&(ge=!0);break}}if(!ge){Y=!1;break}}}Y===!0&&Q.push(q[H]);}let pe=[];if(u.length===1&&u[0]===Rs&&S===!1)pe=u;else if(Q.length===1&&Q[0]===Rs)pe=u;else for(let H=0;H<Q.length;H++)for(let Y=0;Y<u.length;Y++)if(u[Y]===Q[H]||u[Y]===Rs){pe.push(Q[H]);break}let te={result:pe.length>0,resultCode:0,resultMessage:pe.length>0?p:'Zero "userConstrPolicies" array, no intersections with "authConstrPolicies"',authConstrPolicies:Q,userConstrPolicies:pe,explicitPolicyIndicator:S,policyMappings:Le,certificatePath:this.certs};if(pe.length===0||te.result===!1)return te;ie=1;for(let H=this.certs.length-2;H>=0;H--,ie++){let Y=this.certs[H],Z=[],ge=[],Ce=[];if(Y.extensions)for(let Re=0;Re<Y.extensions.length;Re++){let re=Y.extensions[Re];re.extnID===o4&&("permittedSubtrees"in re.parsedValue&&(ge=ge.concat(re.parsedValue.permittedSubtrees)),"excludedSubtrees"in re.parsedValue&&(Ce=Ce.concat(re.parsedValue.excludedSubtrees))),re.extnID===r4&&(Z=Z.concat(re.parsedValue.altNames));}let _e=J.length<=0;for(let Re=0;Re<J.length;Re++)switch(J[Re].base.type){case 4:{if(J[Re].base.value.typesAndValues.length!==Y.subject.typesAndValues.length)continue;_e=!0;for(let re=0;re<Y.subject.typesAndValues.length;re++)if(Y.subject.typesAndValues[re].type!==J[Re].base.value.typesAndValues[re].type){_e=!1;break}if(_e===!0)break}break;default:}if(_e===!1)throw te.result=!1,te.resultCode=21,te.resultMessage="No necessary name form found",te;let $t=[[],[],[],[],[]];for(let Re=0;Re<G.length;Re++)switch(G[Re].base.type){case 1:$t[0].push(G[Re]);break;case 2:$t[1].push(G[Re]);break;case 4:$t[2].push(G[Re]);break;case 6:$t[3].push(G[Re]);break;case 7:$t[4].push(G[Re]);break;default:}for(let Re=0;Re<5;Re++){let re=!1,cs=!1,Ps=$t[Re];for(let us=0;us<Ps.length;us++){switch(Re){case 0:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===1&&(cs=!0,re=re||n(Z[je].value,Ps[us].base.value));else for(let je=0;je<Y.subject.typesAndValues.length;je++)(Y.subject.typesAndValues[je].type==="1.2.840.113549.1.9.1"||Y.subject.typesAndValues[je].type==="0.9.2342.19200300.100.1.3")&&(cs=!0,re=re||n(Y.subject.typesAndValues[je].value.valueBlock.value,Ps[us].base.value));break;case 1:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===2&&(cs=!0,re=re||r(Z[je].value,Ps[us].base.value));break;case 2:cs=!0,re=o(Y.subject,Ps[us].base.value);break;case 3:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===6&&(cs=!0,re=re||i(Z[je].value,Ps[us].base.value));break;case 4:if(Z.length>0)for(let je=0;je<Z.length;je++)Z[je].type===7&&(cs=!0,re=re||a(Z[je].value,Ps[us].base.value));break;default:}if(re)break}if(re===!1&&Ps.length>0&&cs)throw te.result=!1,te.resultCode=41,te.resultMessage='Failed to meet "permitted sub-trees" name constraint',te}let qe=!1;for(let Re=0;Re<$.length;Re++){switch($[Re].base.type){case 1:if(Z.length>=0)for(let re=0;re<Z.length;re++)Z[re].type===1&&(qe=qe||n(Z[re].value,$[Re].base.value));else for(let re=0;re<Y.subject.typesAndValues.length;re++)(Y.subject.typesAndValues[re].type==="1.2.840.113549.1.9.1"||Y.subject.typesAndValues[re].type==="0.9.2342.19200300.100.1.3")&&(qe=qe||n(Y.subject.typesAndValues[re].value.valueBlock.value,$[Re].base.value));break;case 2:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===2&&(qe=qe||r(Z[re].value,$[Re].base.value));break;case 4:qe=qe||o(Y.subject,$[Re].base.value);break;case 6:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===6&&(qe=qe||i(Z[re].value,$[Re].base.value));break;case 7:if(Z.length>0)for(let re=0;re<Z.length;re++)Z[re].type===7&&(qe=qe||a(Z[re].value,$[Re].base.value));break;default:}if(qe)break}if(qe===!0)throw te.result=!1,te.resultCode=42,te.resultMessage='Failed to meet "excluded sub-trees" name constraint',te;G=G.concat(ge),$=$.concat(Ce);}return te}catch(c){return c instanceof Error?c instanceof Gi?{result:!1,resultCode:c.code,resultMessage:c.message,error:c}:{result:!1,resultCode:qo.unknown,resultMessage:c.message,error:c}:c&&typeof c=="object"&&"resultMessage"in c?c:{result:!1,resultCode:-1,resultMessage:`${c}`}}}},Gy="tbsResponseData",v0="signatureAlgorithm",E0="signature",sl="certs",lm="BasicOCSPResponse",gA=`${lm}.${Gy}`,yA=`${lm}.${v0}`,wA=`${lm}.${E0}`,Ky=`${lm}.${sl}`,JU=[gA,yA,wA,Ky],ec=class s extends O{constructor(e={}){super(),this.tbsResponseData=d(e,Gy,s.defaultValues(Gy)),this.signatureAlgorithm=d(e,v0,s.defaultValues(v0)),this.signature=d(e,E0,s.defaultValues(E0)),sl in e&&(this.certs=d(e,sl,s.defaultValues(sl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Gy:return new rr;case v0:return new k;case E0:return new Te;case sl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case"type":{let r=rr.compareWithDefault("tbs",t.tbs)&&rr.compareWithDefault("responderID",t.responderID)&&rr.compareWithDefault("producedAt",t.producedAt)&&rr.compareWithDefault("responses",t.responses);return "responseExtensions"in t&&(r=r&&rr.compareWithDefault("responseExtensions",t.responseExtensions)),r}case v0:return t.algorithmId===p&&!("algorithmParams"in t);case E0:return t.isEqual(s.defaultValues(e));case sl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||lm,value:[rr.schema(t.tbsResponseData||{names:{blockName:gA}}),k.schema(t.signatureAlgorithm||{names:{blockName:yA}}),new Te({name:t.signature||wA}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new b({value:[new he({name:Ky,value:Mt.schema(t.certs||{})})]})]})]})}fromSchema(e){V(e,JU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsResponseData=new rr({schema:t.result[gA]}),this.signatureAlgorithm=new k({schema:t.result[yA]}),this.signature=t.result[wA],Ky in t.result&&(this.certs=Array.from(t.result[Ky],r=>new Mt({schema:r})));}toSchema(){let e=[];return e.push(this.tbsResponseData.toSchema()),e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.certs&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new b({value:Array.from(this.certs,t=>t.toSchema())})]})),new b({value:e})}toJSON(){let e={tbsResponseData:this.tbsResponseData.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.certs&&(e.certs=Array.from(this.certs,t=>t.toJSON())),e}async getCertificateStatus(e,t,r=Ie(!0)){let n={isForCertificate:!1,status:2},i={},a=[];for(let o of this.tbsResponseData.responses){let c=r.getAlgorithmByOID(o.certID.hashAlgorithm.algorithmId,!0,"CertID.hashAlgorithm");if(!i[c.name]){i[c.name]=1;let u=new os;a.push(u),await u.createForCertificate(e,{hashAlgorithm:c.name,issuerCertificate:t},r);}}for(let o of this.tbsResponseData.responses)for(let c of a)if(o.certID.isEqual(c)){n.isForCertificate=!0;try{switch(o.certStatus.idBlock.isConstructed){case!0:o.certStatus.idBlock.tagNumber===1&&(n.status=1);break;case!1:switch(o.certStatus.idBlock.tagNumber){case 0:n.status=0;break;case 2:n.status=2;break;default:}break;default:}}catch{}return n}return n}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters.algorithm;if(!("name"in i))throw new Error("Empty algorithm");this.signatureAlgorithm=n.signatureAlgorithm,this.tbsResponseData.tbsView=new Uint8Array(this.tbsResponseData.toSchema(!0).toBER());let a=await r.signWithPrivateKey(this.tbsResponseData.tbsView,e,{algorithm:i});this.signature=new Te({valueHex:a});}async verify(e={},t=Ie(!0)){let r=null,n=-1,i=e.trustedCerts||[];if(!this.certs)throw new Error("No certificates attached to the BasicOCSPResponse");switch(!0){case this.tbsResponseData.responderID instanceof Xe:for(let[u,l]of this.certs.entries())if(l.subject.isEqual(this.tbsResponseData.responderID)){n=u;break}break;case this.tbsResponseData.responderID instanceof L:for(let[u,l]of this.certs.entries()){let h=await t.digest({name:"sha-1"},l.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView);if(zn(h,this.tbsResponseData.responderID.valueBlock.valueHex)){n=u;break}}break;default:throw new Error("Wrong value for responderID")}if(n===-1)throw new Error("Correct certificate was not found in OCSP response");r=this.certs[n];let a=[r];for(let u of this.certs){let l=await S4(u,r);l&&a.push(l);}if(!(await new um({certs:a,trustedCerts:i}).verify({},t)).result)throw new Error("Validation of signer's certificate failed");return t.verifyWithPublicKey(this.tbsResponseData.tbsView,this.signature,this.certs[n].subjectPublicKeyInfo,this.signatureAlgorithm)}};ec.CLASS_NAME="BasicOCSPResponse";var rA="tbs",nA="version",iA="subject",aA="subjectPublicKeyInfo",su="attributes",x0="signatureAlgorithm",A0="signatureValue",Gl="CertificationRequestInfo",QA=`${Gl}.version`,e6=`${Gl}.subject`,t6=`${Gl}.subjectPublicKeyInfo`,Hw=`${Gl}.attributes`,zU=[Gl,QA,e6,t6,Hw,x0,A0];function YU(s={}){let e=d(s,"names",{});return new b({name:e.CertificationRequestInfo||Gl,value:[new T({name:e.CertificationRequestInfoVersion||QA}),Xe.schema(e.subject||{names:{blockName:e6}}),Ts.schema({names:{blockName:t6}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({optional:!0,name:e.CertificationRequestInfoAttributes||Hw,value:ut.schema(e.attributes||{})})]})]})}var bA=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,rA,s.defaultValues(rA))),this.version=d(e,nA,s.defaultValues(nA)),this.subject=d(e,iA,s.defaultValues(iA)),this.subjectPublicKeyInfo=d(e,aA,s.defaultValues(aA)),su in e&&(this.attributes=d(e,su,s.defaultValues(su))),this.signatureAlgorithm=d(e,x0,s.defaultValues(x0)),this.signatureValue=d(e,A0,s.defaultValues(A0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case rA:return dt;case nA:return 0;case iA:return new Xe;case aA:return new Ts;case su:return [];case x0:return new k;case A0:return new Te;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({value:[YU(t.certificationRequestInfo||{}),new b({name:t.signatureAlgorithm||x0,value:[new W,new ue({optional:!0})]}),new Te({name:t.signatureValue||A0})]})}fromSchema(e){V(e,zU);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.CertificationRequestInfo.valueBeforeDecodeView,this.version=t.result[QA].valueBlock.valueDec,this.subject=new Xe({schema:t.result[e6]}),this.subjectPublicKeyInfo=new Ts({schema:t.result[t6]}),Hw in t.result&&(this.attributes=Array.from(t.result[Hw],r=>new ut({schema:r}))),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signatureValue=t.result.signatureValue;}encodeTBS(){let e=[new T({value:this.version}),this.subject.toSchema(),this.subjectPublicKeyInfo.toSchema()];return su in this&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.attributes||[],t=>t.toSchema())})),new b({value:e})}toSchema(e=!1){let t;if(e===!1){if(this.tbsView.byteLength===0)return s.schema();let r=pt(this.tbsView);B.assert(r,"PKCS#10 Certificate Request"),t=r.result;}else t=this.encodeTBS();return new b({value:[t,this.signatureAlgorithm.toSchema(),this.signatureValue]})}toJSON(){let e={tbs:fe.ToHex(this.tbsView),version:this.version,subject:this.subject.toJSON(),subjectPublicKeyInfo:this.subjectPublicKeyInfo.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signatureValue:this.signatureValue.toJSON()};return su in this&&(e.attributes=Array.from(this.attributes||[],t=>t.toJSON())),e}async sign(e,t="SHA-1",r=Ie(!0)){if(!e)throw new Error("Need to provide a private key for signing");let n=await r.getSignatureParameters(e,t),i=n.parameters;this.signatureAlgorithm=n.signatureAlgorithm,this.tbsView=new Uint8Array(this.encodeTBS().toBER());let a=await r.signWithPrivateKey(this.tbsView,e,i);this.signatureValue=new Te({valueHex:a});}async verify(e=Ie(!0)){return e.verifyWithPublicKey(this.tbsView,this.signatureValue,this.subjectPublicKeyInfo,this.signatureAlgorithm)}async getPublicKey(e,t=Ie(!0)){return t.getPublicKey(this.subjectPublicKeyInfo,this.signatureAlgorithm,e)}};bA.CLASS_NAME="CertificationRequest";var Do="digestAlgorithm",Lo="digest",ZU=[Do,Lo],bn=class s extends O{constructor(e={}){super(),this.digestAlgorithm=d(e,Do,s.defaultValues(Do)),this.digest=d(e,Lo,s.defaultValues(Lo)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Do:return new k;case Lo:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Do:return k.compareWithDefault("algorithmId",t.algorithmId)&&!("algorithmParams"in t);case Lo:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.digestAlgorithm||{names:{blockName:Do}}),new L({name:t.digest||Lo})]})}fromSchema(e){V(e,ZU);let t=R(e,e,s.schema({names:{digestAlgorithm:{names:{blockName:Do}},digest:Lo}}));B.assertSchema(t,this.className),this.digestAlgorithm=new k({schema:t.result.digestAlgorithm}),this.digest=t.result.digest;}toSchema(){return new b({value:[this.digestAlgorithm.toSchema(),this.digest]})}toJSON(){return {digestAlgorithm:this.digestAlgorithm.toJSON(),digest:this.digest.toJSON()}}};bn.CLASS_NAME="DigestInfo";var rl="eContentType",sr="eContent",XU=[rl,sr],Sn=class s extends O{constructor(e={}){if(super(),this.eContentType=d(e,rl,s.defaultValues(rl)),sr in e&&(this.eContent=d(e,sr,s.defaultValues(sr)),this.eContent.idBlock.tagClass===1&&this.eContent.idBlock.tagNumber===4&&this.eContent.idBlock.isConstructed===!1)){let t=new L({idBlock:{isConstructed:!0},isConstructed:!0}),r=0,n=this.eContent.valueBlock.valueHexView.slice().buffer,i=n.byteLength;for(;i>0;){let a=new Uint8Array(n,r,r+65536>n.byteLength?n.byteLength-r:65536),o=new ArrayBuffer(a.length),c=new Uint8Array(o);for(let u=0;u<c.length;u++)c[u]=a[u];t.valueBlock.value.push(new L({valueHex:o})),i-=a.length,r+=a.length;}this.eContent=t;}e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case rl:return p;case sr:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case rl:return t===p;case sr:return t.idBlock.tagClass===1&&t.idBlock.tagNumber===4?t.isEqual(s.defaultValues(sr)):!1;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.eContentType||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new ue({name:t.eContent||p})]})]})}fromSchema(e){V(e,XU);let t=R(e,e,s.schema({names:{eContentType:rl,eContent:sr}}));B.assertSchema(t,this.className),this.eContentType=t.result.eContentType.valueBlock.toString(),sr in t.result&&(this.eContent=t.result.eContent);}toSchema(){let e=[];return e.push(new W({value:this.eContentType})),this.eContent&&s.compareWithDefault(sr,this.eContent)===!1&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.eContent]})),new b({value:e})}toJSON(){let e={eContentType:this.eContentType};return this.eContent&&s.compareWithDefault(sr,this.eContent)===!1&&(e.eContent=this.eContent.toJSON()),e}};Sn.CLASS_NAME="EncapsulatedContentInfo";var Uo="mac",Ho="macSalt",hn="iterations",QU=[Uo,Ho,hn],Er=class s extends O{constructor(e={}){super(),this.mac=d(e,Uo,s.defaultValues(Uo)),this.macSalt=d(e,Ho,s.defaultValues(Ho)),hn in e&&(this.iterations=d(e,hn,s.defaultValues(hn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Uo:return new bn;case Ho:return new L;case hn:return 1;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Uo:return bn.compareWithDefault("digestAlgorithm",t.digestAlgorithm)&&bn.compareWithDefault("digest",t.digest);case Ho:return t.isEqual(s.defaultValues(e));case hn:return t===s.defaultValues(e);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,optional:t.optional||!0,value:[bn.schema(t.mac||{names:{blockName:Uo}}),new L({name:t.macSalt||Ho}),new T({optional:!0,name:t.iterations||hn})]})}fromSchema(e){V(e,QU);let t=R(e,e,s.schema({names:{mac:{names:{blockName:Uo}},macSalt:Ho,iterations:hn}}));B.assertSchema(t,this.className),this.mac=new bn({schema:t.result.mac}),this.macSalt=t.result.macSalt,hn in t.result&&(this.iterations=t.result.iterations.valueBlock.valueDec);}toSchema(){let e=[this.mac.toSchema(),this.macSalt];return this.iterations!==void 0&&e.push(new T({value:this.iterations})),new b({value:e})}toJSON(){let e={mac:this.mac.toJSON(),macSalt:this.macSalt.toJSON()};return this.iterations!==void 0&&(e.iterations=this.iterations),e}};Er.CLASS_NAME="MacData";var Go="hashAlgorithm",Ko="hashedMessage",eH=[Go,Ko],Ns=class s extends O{static async create(e,t,r=Ie(!0)){let n=r.getOIDByAlgorithm({name:e},!0,"hashAlgorithm"),i=await r.digest(e,t);return new s({hashAlgorithm:new k({algorithmId:n,algorithmParams:new it}),hashedMessage:new L({valueHex:i})})}constructor(e={}){super(),this.hashAlgorithm=d(e,Go,s.defaultValues(Go)),this.hashedMessage=d(e,Ko,s.defaultValues(Ko)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Go:return new k;case Ko:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Go:return t.algorithmId===p&&!("algorithmParams"in t);case Ko:return t.isEqual(s.defaultValues(e))===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.hashAlgorithm||{}),new L({name:t.hashedMessage||p})]})}fromSchema(e){V(e,eH);let t=R(e,e,s.schema({names:{hashAlgorithm:{names:{blockName:Go}},hashedMessage:Ko}}));B.assertSchema(t,this.className),this.hashAlgorithm=new k({schema:t.result.hashAlgorithm}),this.hashedMessage=t.result.hashedMessage;}toSchema(){return new b({value:[this.hashAlgorithm.toSchema(),this.hashedMessage]})}toJSON(){return {hashAlgorithm:this.hashAlgorithm.toJSON(),hashedMessage:this.hashedMessage.toJSON()}}};Ns.CLASS_NAME="MessageImprint";var nl="reqCert",Hi="singleRequestExtensions",tH=[nl,Hi],Fl=class s extends O{constructor(e={}){super(),this.reqCert=d(e,nl,s.defaultValues(nl)),Hi in e&&(this.singleRequestExtensions=d(e,Hi,s.defaultValues(Hi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case nl:return new os;case Hi:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case nl:return t.isEqual(s.defaultValues(e));case Hi:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[os.schema(t.reqCert||{}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[gt.schema(t.extensions||{names:{blockName:t.singleRequestExtensions||p}})]})]})}fromSchema(e){V(e,tH);let t=R(e,e,s.schema({names:{reqCert:{names:{blockName:nl}},extensions:{names:{blockName:Hi}}}}));B.assertSchema(t,this.className),this.reqCert=new os({schema:t.result.reqCert}),Hi in t.result&&(this.singleRequestExtensions=Array.from(t.result.singleRequestExtensions.valueBlock.value,r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(this.reqCert.toSchema()),this.singleRequestExtensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new b({value:Array.from(this.singleRequestExtensions,t=>t.toSchema())})]})),new b({value:e})}toJSON(){let e={reqCert:this.reqCert.toJSON()};return this.singleRequestExtensions&&(e.singleRequestExtensions=Array.from(this.singleRequestExtensions,t=>t.toJSON())),e}};Fl.CLASS_NAME="Request";var Oy="tbs",il="version",al="requestorName",Ry="requestList",ol="requestExtensions",Kl="TBSRequest",Wy=`${Kl}.${il}`,Jy=`${Kl}.${al}`,SA=`${Kl}.requests`,zy=`${Kl}.${ol}`,sH=[Kl,Wy,Jy,SA,zy],nr=class s extends O{get tbs(){return ae.toArrayBuffer(this.tbsView)}set tbs(e){this.tbsView=new Uint8Array(e);}constructor(e={}){super(),this.tbsView=new Uint8Array(d(e,Oy,s.defaultValues(Oy))),il in e&&(this.version=d(e,il,s.defaultValues(il))),al in e&&(this.requestorName=d(e,al,s.defaultValues(al))),this.requestList=d(e,Ry,s.defaultValues(Ry)),ol in e&&(this.requestExtensions=d(e,ol,s.defaultValues(ol))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Oy:return dt;case il:return 0;case al:return new We;case Ry:case ol:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Oy:return t.byteLength===0;case il:return t===s.defaultValues(e);case al:return t.type===We.defaultValues("type")&&Object.keys(t.value).length===0;case Ry:case ol:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||Kl,value:[new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new T({name:t.TBSRequestVersion||Wy})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[We.schema(t.requestorName||{names:{blockName:Jy}})]}),new b({name:t.requestList||"TBSRequest.requestList",value:[new he({name:t.requests||SA,value:Fl.schema(t.requestNames||{})})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:2},value:[gt.schema(t.extensions||{names:{blockName:t.requestExtensions||zy}})]})]})}fromSchema(e){V(e,sH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsView=t.result.TBSRequest.valueBeforeDecodeView,Wy in t.result&&(this.version=t.result[Wy].valueBlock.valueDec),Jy in t.result&&(this.requestorName=new We({schema:t.result[Jy]})),this.requestList=Array.from(t.result[SA],r=>new Fl({schema:r})),zy in t.result&&(this.requestExtensions=Array.from(t.result[zy].valueBlock.value,r=>new ys({schema:r})));}toSchema(e=!1){let t;if(e===!1){if(this.tbsView.byteLength===0)return s.schema();let r=pt(this.tbsView);if(B.assert(r,"TBS Request"),!(r.result instanceof b))throw new Error("ASN.1 result should be SEQUENCE");t=r.result;}else {let r=[];this.version!==void 0&&r.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[new T({value:this.version})]})),this.requestorName&&r.push(new A({idBlock:{tagClass:3,tagNumber:1},value:[this.requestorName.toSchema()]})),r.push(new b({value:Array.from(this.requestList,n=>n.toSchema())})),this.requestExtensions&&r.push(new A({idBlock:{tagClass:3,tagNumber:2},value:[new b({value:Array.from(this.requestExtensions,n=>n.toSchema())})]})),t=new b({value:r});}return t}toJSON(){let e={};return this.version!=null&&(e.version=this.version),this.requestorName&&(e.requestorName=this.requestorName.toJSON()),e.requestList=Array.from(this.requestList,t=>t.toJSON()),this.requestExtensions&&(e.requestExtensions=Array.from(this.requestExtensions,t=>t.toJSON())),e}};nr.CLASS_NAME="TBSRequest";var ru="signatureAlgorithm",nu="signature",ii="certs",wn=class s extends O{constructor(e={}){super(),this.signatureAlgorithm=d(e,ru,s.defaultValues(ru)),this.signature=d(e,nu,s.defaultValues(nu)),ii in e&&(this.certs=d(e,ii,s.defaultValues(ii))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ru:return new k;case nu:return new Te;case ii:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ru:return t.algorithmId===p&&!("algorithmParams"in t);case nu:return t.isEqual(s.defaultValues(e));case ii:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[k.schema(t.signatureAlgorithm||{}),new Te({name:t.signature||p}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new b({value:[new he({name:t.certs||p,value:Mt.schema({})})]})]})]})}fromSchema(e){V(e,[ru,nu,ii]);let t=R(e,e,s.schema({names:{signatureAlgorithm:{names:{blockName:ru}},signature:nu,certs:ii}}));B.assertSchema(t,this.className),this.signatureAlgorithm=new k({schema:t.result.signatureAlgorithm}),this.signature=t.result.signature,ii in t.result&&(this.certs=Array.from(t.result.certs,r=>new Mt({schema:r})));}toSchema(){let e=[];return e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.certs&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new b({value:Array.from(this.certs,t=>t.toSchema())})]})),new b({value:e})}toJSON(){let e={signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.certs&&(e.certs=Array.from(this.certs,t=>t.toJSON())),e}};wn.CLASS_NAME="Signature";var cl="tbsRequest",_i="optionalSignature",rH=[cl,_i],vA=class s extends O{constructor(e={}){super(),this.tbsRequest=d(e,cl,s.defaultValues(cl)),_i in e&&(this.optionalSignature=d(e,_i,s.defaultValues(_i))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case cl:return new nr;case _i:return new wn;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case cl:return nr.compareWithDefault("tbs",t.tbs)&&nr.compareWithDefault("version",t.version)&&nr.compareWithDefault("requestorName",t.requestorName)&&nr.compareWithDefault("requestList",t.requestList)&&nr.compareWithDefault("requestExtensions",t.requestExtensions);case _i:return wn.compareWithDefault("signatureAlgorithm",t.signatureAlgorithm)&&wn.compareWithDefault("signature",t.signature)&&wn.compareWithDefault("certs",t.certs);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||"OCSPRequest",value:[nr.schema(t.tbsRequest||{names:{blockName:cl}}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[wn.schema(t.optionalSignature||{names:{blockName:_i}})]})]})}fromSchema(e){V(e,rH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.tbsRequest=new nr({schema:t.result.tbsRequest}),_i in t.result&&(this.optionalSignature=new wn({schema:t.result.optionalSignature}));}toSchema(e=!1){let t=[];return t.push(this.tbsRequest.toSchema(e)),this.optionalSignature&&t.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.optionalSignature.toSchema()]})),new b({value:t})}toJSON(){let e={tbsRequest:this.tbsRequest.toJSON()};return this.optionalSignature&&(e.optionalSignature=this.optionalSignature.toJSON()),e}async createForCertificate(e,t,r=Ie(!0)){let n=new os;await n.createForCertificate(e,t,r),this.tbsRequest.requestList.push(new Fl({reqCert:n}));}async sign(e,t="SHA-1",r=Ie(!0)){if(He.assertEmpty(e,"privateKey","OCSPRequest.sign method"),!this.optionalSignature)throw new Error('Need to create "optionalSignature" field before signing');let n=await r.getSignatureParameters(e,t),i=n.parameters;this.optionalSignature.signatureAlgorithm=n.signatureAlgorithm;let a=this.tbsRequest.toSchema(!0).toBER(!1),o=await r.signWithPrivateKey(a,e,i);this.optionalSignature.signature=new Te({valueHex:o});}verify(){}};vA.CLASS_NAME="OCSPRequest";var ul="responseType",ll="response",nH=[ul,ll],Ki=class s extends O{constructor(e={}){super(),this.responseType=d(e,ul,s.defaultValues(ul)),this.response=d(e,ll,s.defaultValues(ll)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case ul:return p;case ll:return new L;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case ul:return t===p;case ll:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new W({name:t.responseType||p}),new L({name:t.response||p})]})}fromSchema(e){V(e,nH);let t=R(e,e,s.schema({names:{responseType:ul,response:ll}}));B.assertSchema(t,this.className),this.responseType=t.result.responseType.valueBlock.toString(),this.response=t.result.response;}toSchema(){return new b({value:[new W({value:this.responseType}),this.response]})}toJSON(){return {responseType:this.responseType,response:this.response.toJSON()}}};Ki.CLASS_NAME="ResponseBytes";var iu="responseStatus",sn="responseBytes",EA=class s extends O{constructor(e={}){super(),this.responseStatus=d(e,iu,s.defaultValues(iu)),sn in e&&(this.responseBytes=d(e,sn,s.defaultValues(sn))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case iu:return new br;case sn:return new Ki;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case iu:return t.isEqual(s.defaultValues(e));case sn:return Ki.compareWithDefault("responseType",t.responseType)&&Ki.compareWithDefault("response",t.response);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||"OCSPResponse",value:[new br({name:t.responseStatus||iu}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[Ki.schema(t.responseBytes||{names:{blockName:sn}})]})]})}fromSchema(e){V(e,[iu,sn]);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.responseStatus=t.result.responseStatus,sn in t.result&&(this.responseBytes=new Ki({schema:t.result.responseBytes}));}toSchema(){let e=[];return e.push(this.responseStatus),this.responseBytes&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:[this.responseBytes.toSchema()]})),new b({value:e})}toJSON(){let e={responseStatus:this.responseStatus.toJSON()};return this.responseBytes&&(e.responseBytes=this.responseBytes.toJSON()),e}async getCertificateStatus(e,t,r=Ie(!0)){let n,i={isForCertificate:!1,status:2};if(!this.responseBytes||this.responseBytes.responseType!==Dy)return i;try{let a=pt(this.responseBytes.response.valueBlock.valueHexView);B.assert(a,"Basic OCSP response"),n=new ec({schema:a.result});}catch{return i}return n.getCertificateStatus(e,t,r)}async sign(e,t,r=Ie(!0)){var n;if(this.responseBytes&&this.responseBytes.responseType===Dy)return ec.fromBER(this.responseBytes.response.valueBlock.valueHexView).sign(e,t,r);throw new Error(`Unknown ResponseBytes type: ${((n=this.responseBytes)===null||n===void 0?void 0:n.responseType)||"Unknown"}`)}async verify(e=null,t=Ie(!0)){var r;if(!(sn in this))throw new Error("Empty ResponseBytes field");if(this.responseBytes&&this.responseBytes.responseType===Dy){let n=ec.fromBER(this.responseBytes.response.valueBlock.valueHexView);return e!==null&&(n.certs||(n.certs=[]),n.certs.push(e)),n.verify({},t)}throw new Error(`Unknown ResponseBytes type: ${((r=this.responseBytes)===null||r===void 0?void 0:r.responseType)||"Unknown"}`)}};EA.CLASS_NAME="OCSPResponse";var $a="type",dn="attributes",Vy="encodedValue",iH=[dn],Zt=class s extends O{constructor(e={}){super(),this.type=d(e,$a,s.defaultValues($a)),this.attributes=d(e,dn,s.defaultValues(dn)),this.encodedValue=d(e,Vy,s.defaultValues(Vy)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $a:return -1;case dn:return [];case Vy:return dt;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $a:return t===s.defaultValues($a);case dn:return t.length===0;case Vy:return t.byteLength===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new A({name:t.blockName||p,optional:!0,idBlock:{tagClass:3,tagNumber:t.tagNumber||0},value:[new he({name:t.attributes||p,value:ut.schema()})]})}fromSchema(e){V(e,iH);let t=R(e,e,s.schema({names:{tagNumber:this.type,attributes:dn}}));B.assertSchema(t,this.className),this.type=t.result.idBlock.tagNumber,this.encodedValue=ae.toArrayBuffer(t.result.valueBeforeDecodeView);let r=new Uint8Array(this.encodedValue);if(r[0]=49,!(dn in t.result)){if(this.type===0)throw new Error("Wrong structure of SignedUnsignedAttributes");return}this.attributes=Array.from(t.result.attributes,n=>new ut({schema:n}));}toSchema(){if(s.compareWithDefault($a,this.type)||s.compareWithDefault(dn,this.attributes))throw new Error('Incorrectly initialized "SignedAndUnsignedAttributes" class');return new A({optional:!0,idBlock:{tagClass:3,tagNumber:this.type},value:Array.from(this.attributes,e=>e.toSchema())})}toJSON(){if(s.compareWithDefault($a,this.type)||s.compareWithDefault(dn,this.attributes))throw new Error('Incorrectly initialized "SignedAndUnsignedAttributes" class');return {type:this.type,attributes:Array.from(this.attributes,e=>e.toJSON())}}};Zt.CLASS_NAME="SignedAndUnsignedAttributes";var fl="version",_o="sid",hl="digestAlgorithm",ji="signedAttrs",dl="signatureAlgorithm",I0="signature",Mi="unsignedAttrs",Zi="SignerInfo",xA=`${Zi}.${fl}`,C0=`${Zi}.${_o}`,AA=`${Zi}.${hl}`,Yy=`${Zi}.${ji}`,IA=`${Zi}.${dl}`,CA=`${Zi}.${I0}`,Zy=`${Zi}.${Mi}`,aH=[xA,C0,AA,Yy,IA,CA,Zy],ql=class s extends O{constructor(e={}){super(),this.version=d(e,fl,s.defaultValues(fl)),this.sid=d(e,_o,s.defaultValues(_o)),this.digestAlgorithm=d(e,hl,s.defaultValues(hl)),ji in e&&(this.signedAttrs=d(e,ji,s.defaultValues(ji))),this.signatureAlgorithm=d(e,dl,s.defaultValues(dl)),this.signature=d(e,I0,s.defaultValues(I0)),Mi in e&&(this.unsignedAttrs=d(e,Mi,s.defaultValues(Mi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case fl:return 0;case _o:return new ue;case hl:return new k;case ji:return new Zt({type:0});case dl:return new k;case I0:return new L;case Mi:return new Zt({type:1});default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case fl:return s.defaultValues(fl)===t;case _o:return t instanceof ue;case hl:return t instanceof k?t.isEqual(s.defaultValues(hl)):!1;case ji:return Zt.compareWithDefault("type",t.type)&&Zt.compareWithDefault("attributes",t.attributes)&&Zt.compareWithDefault("encodedValue",t.encodedValue);case dl:return t instanceof k?t.isEqual(s.defaultValues(dl)):!1;case I0:case Mi:return Zt.compareWithDefault("type",t.type)&&Zt.compareWithDefault("attributes",t.attributes)&&Zt.compareWithDefault("encodedValue",t.encodedValue);default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:Zi,value:[new T({name:t.version||xA}),new Ze({value:[It.schema(t.sidSchema||{names:{blockName:C0}}),new Ze({value:[new A({optional:!0,name:t.sid||C0,idBlock:{tagClass:3,tagNumber:0},value:[new L]}),new oe({optional:!0,name:t.sid||C0,idBlock:{tagClass:3,tagNumber:0}})]})]}),k.schema(t.digestAlgorithm||{names:{blockName:AA}}),Zt.schema(t.signedAttrs||{names:{blockName:Yy,tagNumber:0}}),k.schema(t.signatureAlgorithm||{names:{blockName:IA}}),new L({name:t.signature||CA}),Zt.schema(t.unsignedAttrs||{names:{blockName:Zy,tagNumber:1}})]})}fromSchema(e){V(e,aH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[xA].valueBlock.valueDec;let r=t.result[C0];r.idBlock.tagClass===1?this.sid=new It({schema:r}):this.sid=r,this.digestAlgorithm=new k({schema:t.result[AA]}),Yy in t.result&&(this.signedAttrs=new Zt({type:0,schema:t.result[Yy]})),this.signatureAlgorithm=new k({schema:t.result[IA]}),this.signature=t.result[CA],Zy in t.result&&(this.unsignedAttrs=new Zt({type:1,schema:t.result[Zy]}));}toSchema(){if(s.compareWithDefault(_o,this.sid))throw new Error('Incorrectly initialized "SignerInfo" class');let e=[];return e.push(new T({value:this.version})),this.sid instanceof It?e.push(this.sid.toSchema()):e.push(this.sid),e.push(this.digestAlgorithm.toSchema()),this.signedAttrs&&s.compareWithDefault(ji,this.signedAttrs)===!1&&e.push(this.signedAttrs.toSchema()),e.push(this.signatureAlgorithm.toSchema()),e.push(this.signature),this.unsignedAttrs&&s.compareWithDefault(Mi,this.unsignedAttrs)===!1&&e.push(this.unsignedAttrs.toSchema()),new b({value:e})}toJSON(){if(s.compareWithDefault(_o,this.sid))throw new Error('Incorrectly initialized "SignerInfo" class');let e={version:this.version,digestAlgorithm:this.digestAlgorithm.toJSON(),signatureAlgorithm:this.signatureAlgorithm.toJSON(),signature:this.signature.toJSON()};return this.sid instanceof ue||(e.sid=this.sid.toJSON()),this.signedAttrs&&s.compareWithDefault(ji,this.signedAttrs)===!1&&(e.signedAttrs=this.signedAttrs.toJSON()),this.unsignedAttrs&&s.compareWithDefault(Mi,this.unsignedAttrs)===!1&&(e.unsignedAttrs=this.unsignedAttrs.toJSON()),e}};ql.CLASS_NAME="SignerInfo";var N0="version",T0="policy",k0="messageImprint",P0="serialNumber",B0="genTime",jo="ordering",Mo="nonce",ml="accuracy",pl="tsa",gl="extensions",ar="TSTInfo",NA=`${ar}.${N0}`,TA=`${ar}.${T0}`,kA=`${ar}.${k0}`,PA=`${ar}.${P0}`,BA=`${ar}.${B0}`,Xy=`${ar}.${ml}`,Qy=`${ar}.${jo}`,ew=`${ar}.${Mo}`,tw=`${ar}.${pl}`,sw=`${ar}.${gl}`,oH=[NA,TA,kA,PA,BA,Xy,Qy,ew,tw,sw],_w=class s extends O{constructor(e={}){super(),this.version=d(e,N0,s.defaultValues(N0)),this.policy=d(e,T0,s.defaultValues(T0)),this.messageImprint=d(e,k0,s.defaultValues(k0)),this.serialNumber=d(e,P0,s.defaultValues(P0)),this.genTime=d(e,B0,s.defaultValues(B0)),ml in e&&(this.accuracy=d(e,ml,s.defaultValues(ml))),jo in e&&(this.ordering=d(e,jo,s.defaultValues(jo))),Mo in e&&(this.nonce=d(e,Mo,s.defaultValues(Mo))),pl in e&&(this.tsa=d(e,pl,s.defaultValues(pl))),gl in e&&(this.extensions=d(e,gl,s.defaultValues(gl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case N0:return 0;case T0:return p;case k0:return new Ns;case P0:return new T;case B0:return new Date(0,0,0);case ml:return new gn;case jo:return !1;case Mo:return new T;case pl:return new We;case gl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case N0:case T0:case B0:case jo:return t===s.defaultValues(jo);case k0:return Ns.compareWithDefault(Go,t.hashAlgorithm)&&Ns.compareWithDefault(Ko,t.hashedMessage);case P0:case Mo:return t.isEqual(s.defaultValues(Mo));case ml:return gn.compareWithDefault(ai,t.seconds)&&gn.compareWithDefault(oi,t.millis)&&gn.compareWithDefault(ci,t.micros);case pl:return We.compareWithDefault($h,t.type)&&We.compareWithDefault(Fh,t.value);case gl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||ar,value:[new T({name:t.version||NA}),new W({name:t.policy||TA}),Ns.schema(t.messageImprint||{names:{blockName:kA}}),new T({name:t.serialNumber||PA}),new Ye({name:t.genTime||BA}),gn.schema(t.accuracy||{names:{blockName:Xy}}),new Cs({name:t.ordering||Qy,optional:!0}),new T({name:t.nonce||ew,optional:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[We.schema(t.tsa||{names:{blockName:tw}})]}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:[new he({name:t.extensions||sw,value:ys.schema(t.extension||{})})]})]})}fromSchema(e){V(e,oH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[NA].valueBlock.valueDec,this.policy=t.result[TA].valueBlock.toString(),this.messageImprint=new Ns({schema:t.result[kA]}),this.serialNumber=t.result[PA],this.genTime=t.result[BA].toDate(),Xy in t.result&&(this.accuracy=new gn({schema:t.result[Xy]})),Qy in t.result&&(this.ordering=t.result[Qy].valueBlock.value),ew in t.result&&(this.nonce=t.result[ew]),tw in t.result&&(this.tsa=new We({schema:t.result[tw]})),sw in t.result&&(this.extensions=Array.from(t.result[sw],r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(new W({value:this.policy})),e.push(this.messageImprint.toSchema()),e.push(this.serialNumber),e.push(new Ye({valueDate:this.genTime})),this.accuracy&&e.push(this.accuracy.toSchema()),this.ordering!==void 0&&e.push(new Cs({value:this.ordering})),this.nonce&&e.push(this.nonce),this.tsa&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[this.tsa.toSchema()]})),this.extensions&&e.push(new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.extensions,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={version:this.version,policy:this.policy,messageImprint:this.messageImprint.toJSON(),serialNumber:this.serialNumber.toJSON(),genTime:this.genTime};return this.accuracy&&(e.accuracy=this.accuracy.toJSON()),this.ordering!==void 0&&(e.ordering=this.ordering),this.nonce&&(e.nonce=this.nonce.toJSON()),this.tsa&&(e.tsa=this.tsa.toJSON()),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}async verify(e,t=Ie(!0)){if(!e.data)throw new Error('"data" is a mandatory attribute for TST_INFO verification');let r=e.data;if(e.notBefore&&this.genTime<e.notBefore)throw new Error("Generation time for TSTInfo object is less than notBefore value");if(e.notAfter&&this.genTime>e.notAfter)throw new Error("Generation time for TSTInfo object is more than notAfter value");let n=t.getAlgorithmByOID(this.messageImprint.hashAlgorithm.algorithmId,!0,"MessageImprint.hashAlgorithm"),i=await t.digest(n.name,new Uint8Array(r));return ae.isEqual(i,this.messageImprint.hashedMessage.valueBlock.valueHexView)}};_w.CLASS_NAME="TSTInfo";var yl="version",O0="digestAlgorithms",R0="encapContentInfo",wl="certificates",bl="crls",V0="signerInfos",jh="ocsps",ic="SignedData",OA=`${ic}.${yl}`,rw=`${ic}.${O0}`,RA=`${ic}.${R0}`,nw=`${ic}.${wl}`,iw=`${ic}.${bl}`,aw=`${ic}.${V0}`,cH=[OA,rw,RA,nw,iw,aw],Bt=class extends Error{constructor({message:e,code:t=0,date:r=new Date,signatureVerified:n=null,signerCertificate:i=null,signerCertificateVerified:a=null,timestampSerial:o=null,certificatePath:c=[]}){super(e),this.name="SignedDataVerifyError",this.date=r,this.code=t,this.timestampSerial=o,this.signatureVerified=n,this.signerCertificate=i,this.signerCertificateVerified=a,this.certificatePath=c;}},Yi=class s extends O{constructor(e={}){super(),this.version=d(e,yl,s.defaultValues(yl)),this.digestAlgorithms=d(e,O0,s.defaultValues(O0)),this.encapContentInfo=d(e,R0,s.defaultValues(R0)),wl in e&&(this.certificates=d(e,wl,s.defaultValues(wl))),bl in e&&(this.crls=d(e,bl,s.defaultValues(bl))),jh in e&&(this.ocsps=d(e,jh,s.defaultValues(jh))),this.signerInfos=d(e,V0,s.defaultValues(V0)),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case yl:return 0;case O0:return [];case R0:return new Sn;case wl:return [];case bl:return [];case jh:return [];case V0:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case yl:return t===s.defaultValues(yl);case R0:return Sn.compareWithDefault("eContentType",t.eContentType)&&Sn.compareWithDefault("eContent",t.eContent);case O0:case wl:case bl:case jh:case V0:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return t.optional===void 0&&(t.optional=!1),new b({name:t.blockName||ic,optional:t.optional,value:[new T({name:t.version||OA}),new at({value:[new he({name:t.digestAlgorithms||rw,value:k.schema()})]}),Sn.schema(t.encapContentInfo||{names:{blockName:RA}}),new A({name:t.certificates||nw,optional:!0,idBlock:{tagClass:3,tagNumber:0},value:xn.schema().valueBlock.value}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:1},value:Yo.schema(t.crls||{names:{crls:iw}}).valueBlock.value}),new at({value:[new he({name:t.signerInfos||aw,value:ql.schema()})]})]})}fromSchema(e){V(e,cH);let t=R(e,e,s.schema());if(B.assertSchema(t,this.className),this.version=t.result[OA].valueBlock.valueDec,rw in t.result&&(this.digestAlgorithms=Array.from(t.result[rw],r=>new k({schema:r}))),this.encapContentInfo=new Sn({schema:t.result[RA]}),nw in t.result){let r=new xn({schema:new at({value:t.result[nw].valueBlock.value})});this.certificates=r.certificates.slice(0);}iw in t.result&&(this.crls=Array.from(t.result[iw],r=>r.idBlock.tagClass===1?new sc({schema:r}):(r.idBlock.tagClass=1,r.idBlock.tagNumber=16,new zo({schema:r})))),aw in t.result&&(this.signerInfos=Array.from(t.result[aw],r=>new ql({schema:r})));}toSchema(e=!1){let t=[];if(this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof Bl)||this.crls&&this.crls.length&&this.crls.some(r=>r instanceof zo)?this.version=5:this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof xr)?this.version=4:this.certificates&&this.certificates.length&&this.certificates.some(r=>r instanceof Dl)||this.signerInfos.some(r=>r.version===3)||this.encapContentInfo.eContentType!==s.ID_DATA?this.version=3:this.version=1,t.push(new T({value:this.version})),t.push(new at({value:Array.from(this.digestAlgorithms,r=>r.toSchema())})),t.push(this.encapContentInfo.toSchema()),this.certificates){let n=new xn({certificates:this.certificates}).toSchema();t.push(new A({idBlock:{tagClass:3,tagNumber:0},value:n.valueBlock.value}));}return this.crls&&t.push(new A({idBlock:{tagClass:3,tagNumber:1},value:Array.from(this.crls,r=>{if(r instanceof zo){let n=r.toSchema();return n.idBlock.tagClass=3,n.idBlock.tagNumber=1,n}return r.toSchema(e)})})),t.push(new at({value:Array.from(this.signerInfos,r=>r.toSchema())})),new b({value:t})}toJSON(){let e={version:this.version,digestAlgorithms:Array.from(this.digestAlgorithms,t=>t.toJSON()),encapContentInfo:this.encapContentInfo.toJSON(),signerInfos:Array.from(this.signerInfos,t=>t.toJSON())};return this.certificates&&(e.certificates=Array.from(this.certificates,t=>t.toJSON())),this.crls&&(e.crls=Array.from(this.crls,t=>t.toJSON())),e}async verify({signer:e=-1,data:t=dt,trustedCerts:r=[],checkDate:n=new Date,checkChain:i=!1,passedWhenNotRevValues:a=!1,extendedMode:o=!1,findOrigin:c=null,findIssuer:u=null}={},l=Ie(!0)){let h=null,m=null;try{let y=dt,g=p,w=[],S=this.signerInfos[e];if(!S)throw new Bt({date:n,code:1,message:"Unable to get signer by supplied index"});if(!this.certificates)throw new Bt({date:n,code:2,message:"No certificates attached to this signed data"});if(S.sid instanceof It){for(let E of this.certificates)if(E instanceof Mt&&E.issuer.isEqual(S.sid.issuer)&&E.serialNumber.isEqual(S.sid.serialNumber)){h=E;break}}else {let E=S.sid,I=E.idBlock.isConstructed?E.valueBlock.value[0].valueBlock.valueHex:E.valueBlock.valueHex;for(let D of this.certificates){if(!(D instanceof Mt))continue;let G=await l.digest({name:"sha-1"},D.subjectPublicKeyInfo.subjectPublicKey.valueBlock.valueHexView);if(zn(G,I)){h=D;break}}}if(!h)throw new Bt({date:n,code:3,message:"Unable to find signer certificate"});if(this.encapContentInfo.eContentType===mL){if(!this.encapContentInfo.eContent)throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo eContent is empty",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0});let E;try{E=_w.fromBER(this.encapContentInfo.eContent.valueBlock.valueHexView);}catch{throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo wrong ASN.1 schema ",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}if(n=E.genTime,m=E.serialNumber.valueBlock.valueHexView.slice().buffer,t.byteLength===0)throw new Bt({date:n,code:4,message:"Missed detached data input array"});if(!await E.verify({data:t},l))throw new Bt({date:n,code:15,message:"Error during verification: TSTInfo verification is failed",signatureVerified:!1,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}if(i){let E=this.certificates.filter($=>$ instanceof Mt&&!!S4($,h)),I={checkDate:n,certs:E,trustedCerts:r};u&&(I.findIssuer=u),c&&(I.findOrigin=c);let D=new um(I);if(D.certs.push(h),this.crls)for(let $ of this.crls)"thisUpdate"in $?D.crls.push($):$.otherRevInfoFormat===Dy&&D.ocsps.push(new ec({schema:$.otherRevInfo}));this.ocsps&&D.ocsps.push(...this.ocsps);let G=await D.verify({passedWhenNotRevValues:a},l).catch($=>{throw new Bt({date:n,code:5,message:`Validation of signer's certificate failed with error: ${$ instanceof Object?$.resultMessage:$}`,signerCertificate:h,signerCertificateVerified:!1})});if(G.certificatePath&&(w=G.certificatePath),!G.result)throw new Bt({date:n,code:5,message:`Validation of signer's certificate failed: ${G.resultMessage}`,signerCertificate:h,signerCertificateVerified:!1})}let C=l.getAlgorithmByOID(S.digestAlgorithm.algorithmId);if(!("name"in C))throw new Bt({date:n,code:7,message:`Unsupported signature algorithm: ${S.digestAlgorithm.algorithmId}`,signerCertificate:h,signerCertificateVerified:!0});g=C.name;let N=this.encapContentInfo.eContent;if(N)N.idBlock.tagClass===1&&N.idBlock.tagNumber===4?t=N.getValue():t=N.valueBlock.valueBeforeDecodeView.slice().buffer;else if(t.byteLength===0)throw new Bt({date:n,code:8,message:"Missed detached data input array",signerCertificate:h,signerCertificateVerified:!0});if(S.signedAttrs){let E=!1,I=!1;for(let D of S.signedAttrs.attributes)if(D.type==="1.2.840.113549.1.9.3"&&(E=!0),D.type==="1.2.840.113549.1.9.4"&&(I=!0,y=D.values[0].valueBlock.valueHex),E&&I)break;if(E===!1)throw new Bt({date:n,code:9,message:'Attribute "content-type" is a mandatory attribute for "signed attributes"',signerCertificate:h,signerCertificateVerified:!0});if(I===!1)throw new Bt({date:n,code:10,message:'Attribute "message-digest" is a mandatory attribute for "signed attributes"',signatureVerified:null,signerCertificate:h,signerCertificateVerified:!0})}if(S.signedAttrs){let E=await l.digest(g,new Uint8Array(t));if(!zn(E,y))throw new Bt({date:n,code:15,message:"Error during verification: Message digest doesn't match",signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0});t=S.signedAttrs.encodedValue;}let x=S.signatureAlgorithm.algorithmId==="1.2.840.113549.1.1.1"?await l.verifyWithPublicKey(t,S.signature,h.subjectPublicKeyInfo,S.signatureAlgorithm,g):await l.verifyWithPublicKey(t,S.signature,h.subjectPublicKeyInfo,S.signatureAlgorithm);return o?{date:n,code:14,message:p,signatureVerified:x,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0,certificatePath:w}:x}catch(y){throw y instanceof Bt?y:new Bt({date:n,code:15,message:`Error during verification: ${y instanceof Error?y.message:y}`,signatureVerified:null,signerCertificate:h,timestampSerial:m,signerCertificateVerified:!0})}}async sign(e,t,r="SHA-1",n=dt,i=Ie(!0)){var a;if(!e)throw new Error("Need to provide a private key for signing");let o=this.signerInfos[t];if(!o)throw new RangeError("SignerInfo index is out of range");!(!((a=o.signedAttrs)===null||a===void 0)&&a.attributes.length)&&"hash"in e.algorithm&&"hash"in e.algorithm&&e.algorithm.hash&&(r=e.algorithm.hash.name);let c=i.getOIDByAlgorithm({name:r},!0,"hashAlgorithm");this.digestAlgorithms.filter(m=>m.algorithmId===c).length===0&&this.digestAlgorithms.push(new k({algorithmId:c,algorithmParams:new it})),o.digestAlgorithm=new k({algorithmId:c,algorithmParams:new it});let u=await i.getSignatureParameters(e,r),l=u.parameters;if(o.signatureAlgorithm=u.signatureAlgorithm,o.signedAttrs)if(o.signedAttrs.encodedValue.byteLength!==0)n=o.signedAttrs.encodedValue;else {n=o.signedAttrs.toSchema().toBER();let m=ae.toUint8Array(n);m[0]=49;}else {let m=this.encapContentInfo.eContent;if(m)m.idBlock.tagClass===1&&m.idBlock.tagNumber===4?n=m.getValue():n=m.valueBlock.valueBeforeDecodeView.slice().buffer;else if(n.byteLength===0)throw new Error("Missed detached data input array")}let h=await i.signWithPrivateKey(n,e,l);o.signature=new L({valueHex:h});}};Yi.CLASS_NAME="SignedData";Yi.ID_DATA=qA;var $o="version",Fo="authSafe",mn="macData",Mh="parsedValue",uH=[$o,Fo,mn],VA=class s extends O{constructor(e={}){super(),this.version=d(e,$o,s.defaultValues($o)),this.authSafe=d(e,Fo,s.defaultValues(Fo)),mn in e&&(this.macData=d(e,mn,s.defaultValues(mn))),Mh in e&&(this.parsedValue=d(e,Mh,s.defaultValues(Mh))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case $o:return 3;case Fo:return new ot;case mn:return new Er;case Mh:return {};default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case $o:return t===s.defaultValues(e);case Fo:return ot.compareWithDefault("contentType",t.contentType)&&ot.compareWithDefault("content",t.content);case mn:return Er.compareWithDefault("mac",t.mac)&&Er.compareWithDefault("macSalt",t.macSalt)&&Er.compareWithDefault("iterations",t.iterations);case Mh:return t instanceof Object&&Object.keys(t).length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.version||$o}),ot.schema(t.authSafe||{names:{blockName:Fo}}),Er.schema(t.macData||{names:{blockName:mn,optional:!0}})]})}fromSchema(e){V(e,uH);let t=R(e,e,s.schema({names:{version:$o,authSafe:{names:{blockName:Fo}},macData:{names:{blockName:mn}}}}));B.assertSchema(t,this.className),this.version=t.result.version.valueBlock.valueDec,this.authSafe=new ot({schema:t.result.authSafe}),mn in t.result&&(this.macData=new Er({schema:t.result.macData}));}toSchema(){let e=[new T({value:this.version}),this.authSafe.toSchema()];return this.macData&&e.push(this.macData.toSchema()),new b({value:e})}toJSON(){let e={version:this.version,authSafe:this.authSafe.toJSON()};return this.macData&&(e.macData=this.macData.toJSON()),e}async makeInternalValues(e={},t=Ie(!0)){if(Ke.assert(e,"parameters","object"),!this.parsedValue)throw new Error('Please call "parseValues" function first in order to make "parsedValue" data');switch(He.assertEmpty(this.parsedValue.integrityMode,"integrityMode","parsedValue"),He.assertEmpty(this.parsedValue.authenticatedSafe,"authenticatedSafe","parsedValue"),this.parsedValue.integrityMode){case 0:{if(!("iterations"in e))throw new He("iterations");He.assertEmpty(e.pbkdf2HashAlgorithm,"pbkdf2HashAlgorithm"),He.assertEmpty(e.hmacHashAlgorithm,"hmacHashAlgorithm"),He.assertEmpty(e.password,"password");let r=new ArrayBuffer(64),n=new Uint8Array(r);t.getRandomValues(n);let i=this.parsedValue.authenticatedSafe.toSchema().toBER(!1);this.authSafe=new ot({contentType:ot.DATA,content:new L({valueHex:i})});let a=await t.stampDataWithPassword({password:e.password,hashAlgorithm:e.hmacHashAlgorithm,salt:r,iterationCount:e.iterations,contentToStamp:i});this.macData=new Er({mac:new bn({digestAlgorithm:new k({algorithmId:t.getOIDByAlgorithm({name:e.hmacHashAlgorithm},!0,"hmacHashAlgorithm")}),digest:new L({valueHex:a})}),macSalt:new L({valueHex:r}),iterations:e.iterations});}break;case 1:{if(!("signingCertificate"in e))throw new He("signingCertificate");He.assertEmpty(e.privateKey,"privateKey"),He.assertEmpty(e.hashAlgorithm,"hashAlgorithm");let r=this.parsedValue.authenticatedSafe.toSchema().toBER(!1),n=new Yi({version:1,encapContentInfo:new Sn({eContentType:"1.2.840.113549.1.7.1",eContent:new L({valueHex:r})}),certificates:[e.signingCertificate]}),i=await t.digest({name:e.hashAlgorithm},new Uint8Array(r)),a=[];a.push(new ut({type:"1.2.840.113549.1.9.3",values:[new W({value:"1.2.840.113549.1.7.1"})]})),a.push(new ut({type:"1.2.840.113549.1.9.5",values:[new Xr({valueDate:new Date})]})),a.push(new ut({type:"1.2.840.113549.1.9.4",values:[new L({valueHex:i})]})),n.signerInfos.push(new ql({version:1,sid:new It({issuer:e.signingCertificate.issuer,serialNumber:e.signingCertificate.serialNumber}),signedAttrs:new Zt({type:0,attributes:a})})),await n.sign(e.privateKey,0,e.hashAlgorithm,void 0,t),this.authSafe=new ot({contentType:"1.2.840.113549.1.7.2",content:n.toSchema(!0)});}break;default:throw new Error(`Parameter "integrityMode" has unknown value: ${this.parsedValue.integrityMode}`)}}async parseInternalValues(e,t=Ie(!0)){switch(Ke.assert(e,"parameters","object"),e.checkIntegrity===void 0&&(e.checkIntegrity=!0),this.parsedValue={},this.authSafe.contentType){case ot.DATA:{He.assertEmpty(e.password,"password"),this.parsedValue.integrityMode=0,Ke.assert(this.authSafe.content,"authSafe.content",L);let r=this.authSafe.content.getValue();if(this.parsedValue.authenticatedSafe=om.fromBER(r),e.checkIntegrity){if(!this.macData)throw new Error('Absent "macData" value, can not check PKCS#12 data integrity');let n=t.getAlgorithmByOID(this.macData.mac.digestAlgorithm.algorithmId,!0,"digestAlgorithm");if(!await t.verifyDataStampedWithPassword({password:e.password,hashAlgorithm:n.name,salt:ae.toArrayBuffer(this.macData.macSalt.valueBlock.valueHexView),iterationCount:this.macData.iterations||1,contentToVerify:r,signatureToVerify:ae.toArrayBuffer(this.macData.mac.digest.valueBlock.valueHexView)}))throw new Error("Integrity for the PKCS#12 data is broken!")}}break;case ot.SIGNED_DATA:{this.parsedValue.integrityMode=1;let r=new Yi({schema:this.authSafe.content}),n=r.encapContentInfo.eContent;He.assert(n,"eContent","cmsSigned.encapContentInfo"),Ke.assert(n,"eContent",L);let i=n.getValue();if(this.parsedValue.authenticatedSafe=om.fromBER(i),!await r.verify({signer:0,checkChain:!1},t))throw new Error("Integrity for the PKCS#12 data is broken!")}break;default:throw new Error(`Incorrect value for "this.authSafe.contentType": ${this.authSafe.contentType}`)}}};VA.CLASS_NAME="PFX";var Sl="status",$i="statusStrings",Fi="failInfo",lH=[Sl,$i,Fi],t4;(function(s){s[s.granted=0]="granted",s[s.grantedWithMods=1]="grantedWithMods",s[s.rejection=2]="rejection",s[s.waiting=3]="waiting",s[s.revocationWarning=4]="revocationWarning",s[s.revocationNotification=5]="revocationNotification";})(t4||(t4={}));var Jo=class s extends O{constructor(e={}){super(),this.status=d(e,Sl,s.defaultValues(Sl)),$i in e&&(this.statusStrings=d(e,$i,s.defaultValues($i))),Fi in e&&(this.failInfo=d(e,Fi,s.defaultValues(Fi))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Sl:return 2;case $i:return [];case Fi:return new Te;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Sl:return t===s.defaultValues(e);case $i:return t.length===0;case Fi:return t.isEqual(s.defaultValues(e));default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||p,value:[new T({name:t.status||p}),new b({optional:!0,value:[new he({name:t.statusStrings||p,value:new ps})]}),new Te({name:t.failInfo||p,optional:!0})]})}fromSchema(e){V(e,lH);let t=R(e,e,s.schema({names:{status:Sl,statusStrings:$i,failInfo:Fi}}));B.assertSchema(t,this.className);let r=t.result.status;if(r.valueBlock.isHexOnly===!0||r.valueBlock.valueDec<0||r.valueBlock.valueDec>5)throw new Error('PKIStatusInfo "status" has invalid value');this.status=r.valueBlock.valueDec,$i in t.result&&(this.statusStrings=t.result.statusStrings),Fi in t.result&&(this.failInfo=t.result.failInfo);}toSchema(){let e=[];return e.push(new T({value:this.status})),this.statusStrings&&e.push(new b({optional:!0,value:this.statusStrings})),this.failInfo&&e.push(this.failInfo),new b({value:e})}toJSON(){let e={status:this.status};return this.statusStrings&&(e.statusStrings=Array.from(this.statusStrings,t=>t.toJSON())),this.failInfo&&(e.failInfo=this.failInfo.toJSON()),e}};Jo.CLASS_NAME="PKIStatusInfo";var D0="version",L0="messageImprint",vl="reqPolicy",El="nonce",pn="certReq",xl="extensions",ac="TimeStampReq",DA=`${ac}.${D0}`,LA=`${ac}.${L0}`,ow=`${ac}.${vl}`,cw=`${ac}.${El}`,uw=`${ac}.${pn}`,lw=`${ac}.${xl}`,fH=[DA,LA,ow,cw,uw,lw],UA=class s extends O{constructor(e={}){super(),this.version=d(e,D0,s.defaultValues(D0)),this.messageImprint=d(e,L0,s.defaultValues(L0)),vl in e&&(this.reqPolicy=d(e,vl,s.defaultValues(vl))),El in e&&(this.nonce=d(e,El,s.defaultValues(El))),pn in e&&(this.certReq=d(e,pn,s.defaultValues(pn))),xl in e&&(this.extensions=d(e,xl,s.defaultValues(xl))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case D0:return 0;case L0:return new Ns;case vl:return p;case El:return new T;case pn:return !1;case xl:return [];default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case D0:case vl:case pn:return t===s.defaultValues(e);case L0:return Ns.compareWithDefault("hashAlgorithm",t.hashAlgorithm)&&Ns.compareWithDefault("hashedMessage",t.hashedMessage);case El:return t.isEqual(s.defaultValues(e));case xl:return t.length===0;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||ac,value:[new T({name:t.version||DA}),Ns.schema(t.messageImprint||{names:{blockName:LA}}),new W({name:t.reqPolicy||ow,optional:!0}),new T({name:t.nonce||cw,optional:!0}),new Cs({name:t.certReq||uw,optional:!0}),new A({optional:!0,idBlock:{tagClass:3,tagNumber:0},value:[new he({name:t.extensions||lw,value:ys.schema()})]})]})}fromSchema(e){V(e,fH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.version=t.result[DA].valueBlock.valueDec,this.messageImprint=new Ns({schema:t.result[LA]}),ow in t.result&&(this.reqPolicy=t.result[ow].valueBlock.toString()),cw in t.result&&(this.nonce=t.result[cw]),uw in t.result&&(this.certReq=t.result[uw].valueBlock.value),lw in t.result&&(this.extensions=Array.from(t.result[lw],r=>new ys({schema:r})));}toSchema(){let e=[];return e.push(new T({value:this.version})),e.push(this.messageImprint.toSchema()),this.reqPolicy&&e.push(new W({value:this.reqPolicy})),this.nonce&&e.push(this.nonce),pn in this&&s.compareWithDefault(pn,this.certReq)===!1&&e.push(new Cs({value:this.certReq})),this.extensions&&e.push(new A({idBlock:{tagClass:3,tagNumber:0},value:Array.from(this.extensions,t=>t.toSchema())})),new b({value:e})}toJSON(){let e={version:this.version,messageImprint:this.messageImprint.toJSON()};return this.reqPolicy!==void 0&&(e.reqPolicy=this.reqPolicy),this.nonce!==void 0&&(e.nonce=this.nonce.toJSON()),this.certReq!==void 0&&s.compareWithDefault(pn,this.certReq)===!1&&(e.certReq=this.certReq),this.extensions&&(e.extensions=Array.from(this.extensions,t=>t.toJSON())),e}};UA.CLASS_NAME="TimeStampReq";var Al="status",Il="timeStampToken",s6="TimeStampResp",HA=`${s6}.${Al}`,fw=`${s6}.${Il}`,hH=[HA,fw],_A=class s extends O{constructor(e={}){super(),this.status=d(e,Al,s.defaultValues(Al)),Il in e&&(this.timeStampToken=d(e,Il,s.defaultValues(Il))),e.schema&&this.fromSchema(e.schema);}static defaultValues(e){switch(e){case Al:return new Jo;case Il:return new ot;default:return super.defaultValues(e)}}static compareWithDefault(e,t){switch(e){case Al:return Jo.compareWithDefault(Al,t.status)&&!("statusStrings"in t)&&!("failInfo"in t);case Il:return t.contentType===p&&t.content instanceof ue;default:return super.defaultValues(e)}}static schema(e={}){let t=d(e,"names",{});return new b({name:t.blockName||s6,value:[Jo.schema(t.status||{names:{blockName:HA}}),ot.schema(t.timeStampToken||{names:{blockName:fw,optional:!0}})]})}fromSchema(e){V(e,hH);let t=R(e,e,s.schema());B.assertSchema(t,this.className),this.status=new Jo({schema:t.result[HA]}),fw in t.result&&(this.timeStampToken=new ot({schema:t.result[fw]}));}toSchema(){let e=[];return e.push(this.status.toSchema()),this.timeStampToken&&e.push(this.timeStampToken.toSchema()),new b({value:e})}toJSON(){let e={status:this.status.toJSON()};return this.timeStampToken&&(e.timeStampToken=this.timeStampToken.toJSON()),e}async sign(e,t,r=Ie(!0)){return this.assertContentType(),new Yi({schema:this.timeStampToken.content}).sign(e,0,t,void 0,r)}async verify(e={signer:0,trustedCerts:[],data:dt},t=Ie(!0)){return this.assertContentType(),new Yi({schema:this.timeStampToken.content}).verify(e,t)}assertContentType(){if(!this.timeStampToken)throw new Error("timeStampToken is absent in TSP response");if(this.timeStampToken.contentType!==h4)throw new Error(`Wrong format of timeStampToken: ${this.timeStampToken.contentType}`)}};_A.CLASS_NAME="TimeStampResp";function dH(){if(typeof globalThis<"u"&&"crypto"in globalThis){let s="webcrypto";"webkitSubtle"in globalThis.crypto&&(s="safari"),_T(s,new Vl({name:s,crypto:globalThis.crypto}));}else if(typeof crypto<"u"&&"webcrypto"in crypto){let s="NodeJS ^15",e=crypto.webcrypto;_T(s,new Vl({name:s,crypto:e}));}}dH();var i6=(s,e)=>e.some(t=>s instanceof t),E4,x4;function mH(){return E4||(E4=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function pH(){return x4||(x4=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var a6=new WeakMap,r6=new WeakMap,jw=new WeakMap;function gH(s){let e=new Promise((t,r)=>{let n=()=>{s.removeEventListener("success",i),s.removeEventListener("error",a);},i=()=>{t(oc(s.result)),n();},a=()=>{r(s.error),n();};s.addEventListener("success",i),s.addEventListener("error",a);});return jw.set(e,s),e}function yH(s){if(a6.has(s))return;let e=new Promise((t,r)=>{let n=()=>{s.removeEventListener("complete",i),s.removeEventListener("error",a),s.removeEventListener("abort",a);},i=()=>{t(),n();},a=()=>{r(s.error||new DOMException("AbortError","AbortError")),n();};s.addEventListener("complete",i),s.addEventListener("error",a),s.addEventListener("abort",a);});a6.set(s,e);}var o6={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return a6.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return oc(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function N4(s){o6=s(o6);}function wH(s){return pH().includes(s)?function(...e){return s.apply(c6(this),e),oc(this.request)}:function(...e){return oc(s.apply(c6(this),e))}}function bH(s){return typeof s=="function"?wH(s):(s instanceof IDBTransaction&&yH(s),i6(s,mH())?new Proxy(s,o6):s)}function oc(s){if(s instanceof IDBRequest)return gH(s);if(r6.has(s))return r6.get(s);let e=bH(s);return e!==s&&(r6.set(s,e),jw.set(e,s)),e}var c6=s=>jw.get(s);function T4(s,e,{blocked:t,upgrade:r,blocking:n,terminated:i}={}){let a=indexedDB.open(s,e),o=oc(a);return r&&a.addEventListener("upgradeneeded",c=>{r(oc(a.result),c.oldVersion,c.newVersion,oc(a.transaction),c);}),t&&a.addEventListener("blocked",c=>t(c.oldVersion,c.newVersion,c)),o.then(c=>{i&&c.addEventListener("close",()=>i()),n&&c.addEventListener("versionchange",u=>n(u.oldVersion,u.newVersion,u));}).catch(()=>{}),o}var SH=["get","getKey","getAll","getAllKeys","count"],vH=["put","add","delete","clear"],n6=new Map;function A4(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(n6.get(e))return n6.get(e);let t=e.replace(/FromIndex$/,""),r=e!==t,n=vH.includes(t);if(!(t in(r?IDBIndex:IDBObjectStore).prototype)||!(n||SH.includes(t)))return;let i=async function(a,...o){let c=this.transaction(a,n?"readwrite":"readonly"),u=c.store;return r&&(u=u.index(o.shift())),(await Promise.all([u[t](...o),n&&c.done]))[0]};return n6.set(e,i),i}N4(s=>({...s,get:(e,t,r)=>A4(e,t)||s.get(e,t,r),has:(e,t)=>!!A4(e,t)||s.has(e,t)}));var EH=["continue","continuePrimaryKey","advance"],I4={},u6=new WeakMap,k4=new WeakMap,xH={get(s,e){if(!EH.includes(e))return s[e];let t=I4[e];return t||(t=I4[e]=function(...r){u6.set(this,k4.get(this)[e](...r));}),t}};async function*AH(...s){let e=this;if(e instanceof IDBCursor||(e=await e.openCursor(...s)),!e)return;e=e;let t=new Proxy(e,xH);for(k4.set(t,e),jw.set(t,c6(e));e;)yield t,e=await(u6.get(t)||e.continue()),u6.delete(t);}function C4(s,e){return e===Symbol.asyncIterator&&i6(s,[IDBIndex,IDBObjectStore,IDBCursor])||e==="iterate"&&i6(s,[IDBIndex,IDBObjectStore])}N4(s=>({...s,get(e,t,r){return C4(e,t)?AH:s.get(e,t,r)},has(e,t){return C4(e,t)||s.has(e,t)}}));function P4(s,e){if(s===e)return !0;if(s===null||e===null||typeof s!="object"||typeof e!="object")return !1;let t=Object.keys(s),r=Object.keys(e);if(t.length!==r.length)return !1;for(let n of t)if(!r.includes(n)||!P4(s[n],e[n]))return !1;return !0}var Ct=class{dbName;storeName;key;migrations;_db=null;listeners=[];broadcastChannel;constructor(e,t,r,n=[]){this.dbName=e,this.storeName=t,this.key=r,this.migrations=n,typeof BroadcastChannel<"u"&&(this.broadcastChannel=new BroadcastChannel(this.dbName+"-observer"),this.broadcastChannel.onmessage=i=>{i.data&&i.data.keyValue!==void 0&&i.data.updateType&&this.listeners.forEach(a=>a(i.data.keyValue,i.data.updateType,i.data.oldItem,i.data.newItem));});}async openDB(){if(this._db)return this._db;let e=this.migrations.length+1;return this._db=await T4(this.dbName,e,{upgrade:(t,r,n,i,a)=>{if(n!==null)for(let o=r+1;o<=n;o++){let c=o-2;if(c>=0&&c<this.migrations.length){let u=this.migrations[c];if(u)u(t,i,a);else throw new Error(`Migration for schema version ${o} (using migrations[${c}]) not found but expected.`)}}},blocked:()=>{console.error(`IndexedDB ${this.dbName} upgrade blocked.`);},blocking:()=>{console.warn(`IndexedDB ${this.dbName} upgrade is being blocked by other connections. Closing this connection.`),this._db&&(this._db.close(),this._db=null);},terminated:()=>{console.warn(`IndexedDB ${this.dbName} connection terminated.`),this._db=null;}}),await this.handleOpenDB(),this._db}async handleOpenDB(){}async getStore(e){return (await this.openDB()).transaction(this.storeName,e).objectStore(this.storeName)}async get(e){return (await this.getStore("readonly")).get(e)}async list(){return (await this.getStore("readonly")).getAll()}async set(e){let t=await this.openDB(),r=e[this.key],n=t.transaction(this.storeName,"readwrite"),i=n.objectStore(this.storeName),a=await i.get(r);await i.put(e,r),await n.done;let o=null;return a?P4(a,e)||(o="updated"):o="added",o&&this.notifyUpdate(r,o,a,e),r}async del(e){let t=await this.get(e),n=(await this.openDB()).transaction(this.storeName,"readwrite");await n.objectStore(this.storeName).delete(e),await n.done,t&&this.notifyUpdate(e,"removed",t,void 0);}notifyUpdate(e,t,r,n){this.listeners.forEach(i=>i(e,t,r,n)),this.broadcastChannel&&this.broadcastChannel.postMessage({keyValue:e,updateType:t,oldItem:r,newItem:n});}addListener(e){return this.listeners.push(e),()=>this.removeListener(e)}removeListener(e){this.listeners=this.listeners.filter(t=>t!==e);}async close(){this._db&&(this._db.close(),this._db=null),this.broadcastChannel&&(this.broadcastChannel.close(),this.broadcastChannel=void 0);}};var l6="auth-commitments",fm=class extends Ct{constructor(e="sequence-auth-commitments"){super(e,l6,"id",[(t,r,n)=>{t.objectStoreNames.contains(l6)||t.createObjectStore(l6);}]);}};var f6="auth-keys",hm=class extends Ct{expirationTimers=new Map;constructor(e="sequence-auth-keys"){super(e,f6,"address",[(t,r,n)=>{t.objectStoreNames.contains(f6)||t.createObjectStore(f6).createIndex("identitySigner","identitySigner",{unique:!0});}]);}async handleOpenDB(){let e=await this.list();for(let t of e)await this.scheduleExpiration(t);}async set(e){let t=await super.set({...e,address:e.address.toLowerCase(),identitySigner:e.identitySigner.toLowerCase()});return this.scheduleExpiration(e),t}async del(e){let t=await super.del(e.toLowerCase());return this.clearExpiration(e),t}async getBySigner(e,t=1){let r=e.toLowerCase(),n=await this.getStore("readonly"),i=n.index("identitySigner");try{let a=await i.get(r);if(a!==void 0)return a;if(t<2)return await new Promise(o=>setTimeout(o,50)),this.getBySigner(e,t+1);try{let o=await n.getAll();return o&&o.length>0?o.find(u=>u.identitySigner.toLowerCase()===r):void 0}catch(o){throw console.error(`[AuthKeys.getBySigner] Fallback: Error during getAll() for signer ${r}:`,o),o}}catch(a){throw console.error(`[AuthKeys.getBySigner attempt #${t}] Index query error for signer ${r}:`,a),a}}async delBySigner(e){let t=await this.getBySigner(e.toLowerCase());t&&await this.del(t.address.toLowerCase());}async scheduleExpiration(e){this.clearExpiration(e.address.toLowerCase());let t=Date.now(),r=e.expiresAt.getTime()-t;if(r<=0){await this.del(e.address.toLowerCase());return}let n=window.setTimeout(()=>{console.log("removing expired auth key",e),this.del(e.address.toLowerCase());},r);this.expirationTimers.set(e.address.toLowerCase(),n);}clearExpiration(e){let t=this.expirationTimers.get(e.toLowerCase());t&&(window.clearTimeout(t),this.expirationTimers.delete(e.toLowerCase()));}};var h6="messages",dm=class extends Ct{constructor(e="sequence-messages"){super(e,h6,"id",[(t,r,n)=>{t.objectStoreNames.contains(h6)||t.createObjectStore(h6);}]);}};var d6="envelopes",mm=class extends Ct{constructor(e="sequence-signature-requests"){super(e,d6,"id",[(t,r,n)=>{t.objectStoreNames.contains(d6)||t.createObjectStore(d6);}]);}};var m6="transactions",pm=class extends Ct{constructor(e="sequence-transactions"){super(e,m6,"id",[(t,r,n)=>{t.objectStoreNames.contains(m6)||t.createObjectStore(m6);}]);}};var p6="wallets",gm=class extends Ct{constructor(e="sequence-manager"){super(e,p6,"address",[(t,r,n)=>{t.objectStoreNames.contains(p6)||t.createObjectStore(p6);}]);}};var g6="queued-recovery-payloads",ym=class extends Ct{constructor(e="sequence-recovery"){super(e,g6,"id",[(t,r,n)=>{t.objectStoreNames.contains(g6)||t.createObjectStore(g6);}]);}};var y6="passkey-credentials",wm=class extends Ct{constructor(e="sequence-passkey-credentials"){super(e,y6,"credentialId",[(t,r,n)=>{t.objectStoreNames.contains(y6)||t.createObjectStore(y6);}]);}async getByCredentialId(e){return this.get(e)}async saveCredential(e,t,r){let n=new Date().toISOString(),i={credentialId:e,publicKey:t,walletAddress:r,createdAt:n,lastLoginAt:n};await this.set(i);}async updateCredential(e,{lastLoginAt:t,walletAddress:r}){let n=await this.getByCredentialId(e);if(n){let i={...n,lastLoginAt:t,walletAddress:r};await this.set(i);}}};({verbose:!1,extensions:Oe.Rc5,context:Aa.Rc5,context4337:Aa.Rc5_4337,guest:nt.DefaultGuestAddress,encryptedPksDb:new zs.Pk.Encrypted.EncryptedPksDb,managerDb:new gm,signaturesDb:new mm,transactionsDb:new pm,messagesDb:new dm,authCommitmentsDb:new fm,recoveryDb:new ym,authKeysDb:new hm,passkeyCredentialsDb:new wm,dbPruningInterval:1e3*60*60*24,stateProvider:new qc.Sequence.Provider,networks:th.ALL,relayers:()=>typeof window<"u"?[fh.LocalRelayer.createFromWindow(window)].filter(s=>s!==void 0):[],bundlers:[],nonWitnessableSigners:[],guardUrl:"https://guard.sequence.app",guardAddresses:{wallet:"0x26f3D30F41FA897309Ae804A2AFf15CEb1dA5742",sessions:"0xF6Bc87F5F2edAdb66737E32D37b46423901dfEF1"},defaultGuardTopology:{type:"nested",weight:1n,threshold:1n,tree:[{type:"signer",address:nt.PlaceholderAddress,weight:1n},{type:"signer",address:"0x007a47e6BF40C1e0ed5c01aE42fDC75879140bc4",weight:1n}]},defaultSessionsTopology:{type:"sapient-signer",weight:1n},defaultRecoverySettings:{requiredDeltaTime:2592000n,minTimestamp:0n},multiInjectedProviderDiscovery:!0,identity:{url:"https://identity.sequence.app",fetch:typeof window<"u"?window.fetch:void 0,verifyAttestation:!0,email:{enabled:!1},google:{enabled:!1,clientId:""},apple:{enabled:!1,clientId:""}}});var bm=class{#e;#s;#r=null;#t=null;constructor(e,t){this.#e=e,this.#s=t;}async#a(){let e=await this.#e();if(!e)throw new Qe("User not authenticated","NOT_LOGGED_IN_ERROR");return e}async#i(){let e=this.#r;e||(e=await this.#n());let t=await this.#a();return t.profile.sub!==e.userIdentifier&&(e=await this.#n(t)),e}async#n(e){return this.#t?this.#t:(this.#t=(async()=>{try{this.#r=null,await this.#e(!0);let t=e||await this.#a();if(!t.idToken)throw new Qe("User idToken not available","NOT_LOGGED_IN_ERROR");let{idToken:r}=t,n=decodeJwtPayload(r),i=n.iss,a=n.aud,o=await window.crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!1,["sign","verify"]),c=await window.crypto.subtle.exportKey("raw",o.publicKey),u={address:v.fromBytes(new Uint8Array(c)),privateKey:o.privateKey,identitySigner:"",expiresAt:new Date(Date.now()+36e5)},l=new sh(this.#s.identityInstrumentEndpoint,"@14:test"),h=new Hg(i,a,r);await l.commitVerifier(Na.toIdentityAuthKey(u),h);let y=(await l.completeAuth(Na.toIdentityAuthKey(u),h)).signer.address;return u.identitySigner=y,this.#r={userIdentifier:t.profile.sub,signerAddress:y,authKey:u,identityInstrument:l},this.#r}catch(t){let r=`Identity Instrument: Failed to create signer: ${t.message}`;throw new Qe(r,"WALLET_CONNECTION_ERROR")}finally{this.#t=null;}})(),this.#t)}async getAddress(){return (await this.#i()).signerAddress}async signPayload(e,t,r){let n=await this.#i();return new Na.IdentitySigner(n.identityInstrument,n.authKey).sign(e,t,r)}async signMessage(e){let t=await this.#i(),r=new Na.IdentitySigner(t.identityInstrument,t.authKey),n=typeof e=="string"?new TextEncoder().encode(e):e,i=hashMessage({raw:n}),a=await r.signDigest(v.toBytes(i)),o=toHex(a.r,{size:32}),c=toHex(a.s,{size:32}),u=toHex(a.yParity+27,{size:1});return concat([o,c,u])}};var Sm=class{#e;#s=null;#r=null;constructor(e){this.#e=e;}async#t(){let e=await this.#e();if(!e)throw new Qe("User not authenticated","NOT_LOGGED_IN_ERROR");return e}async#a(){let e=this.#s;e||(e=await this.#i());let t=await this.#t();return t.profile.sub!==e.userIdentifier&&(e=await this.#i(t)),e}async#i(e){return this.#r?this.#r:(this.#r=(async()=>{try{this.#s=null;let t=e||await this.#t(),r=keccak256(toBytes(`${t.profile.sub}-sequence`)),n=new zs.Pk.Pk(r),i=n.address;return this.#s={userIdentifier:t.profile.sub,signerAddress:i,signer:n,privateKey:r},this.#s}catch(t){let r=`Failed to create private key wallet: ${t.message}`;throw new Qe(r,"WALLET_CONNECTION_ERROR")}finally{this.#r=null;}})(),this.#r)}async getAddress(){return (await this.#a()).signerAddress}async signPayload(e,t,r){return (await this.#a()).signer.sign(e,t,r)}async signMessage(e){let t=await this.#a(),r=privateKeyToAccount(t.privateKey),n=typeof e=="string"?e:{raw:e};return await r.signMessage({message:n})}};function L4(s,e={}){if(e.isDevEnvironment)return new Sm(s);if(!e.identityInstrumentEndpoint)throw new Error("identityInstrumentEndpoint is required for non-dev environments");return new bm(s,{identityInstrumentEndpoint:e.identityInstrumentEndpoint})}function WH(s){return s in Cn}function JH(s){if(s.magicPublishableApiKey&&s.magicProviderId)return {magicPublishableApiKey:s.magicPublishableApiKey,magicProviderId:s.magicProviderId};let{chainId:e}=s;if(WH(e))return Cn[e];throw new Error(`No Magic configuration available for chain ${s.chainId}. Please provide magicPublishableApiKey and magicProviderId in ChainConfig.`)}var zH="PtQRK4iRJ8GkXjiz6xfImMAYhPhW0cYk",YH="mjtCL8mt06BtbxSkp2vbrYStKWnXVZfo",ZH="openid profile email offline_access transact",XH="platform_api",QH="https://auth.immutable.com/im-logged-in",e_="https://auth.immutable.com",t_=/(sandbox|testnet)/i,s_=[13371,13473,15003];function r_(s){return s_.includes(s.chainId)}function n_(s){if(s.chainId===13473)return !0;let e=s.apiUrl||s.passportDomain||"";return t_.test(e)}function i_(s){if(s.passportDomain)return s.passportDomain;if(s.apiUrl)try{let e=new URL(s.apiUrl),t=e.hostname.replace("api.","passport.");return `${e.protocol}//${t}`}catch{return s.apiUrl.replace("api.","passport.")}return "https://passport.immutable.com"}function a_(){return e_}function o_(){return QH}function U4(s){return n_(s)?YH:zH}function c_(s,e){let t=i_(s),r=a_(),n=o_(),i=e.clientId||U4(s),a=new Auth({clientId:i,redirectUri:n,popupRedirectUri:n,logoutRedirectUri:n,scope:ZH,audience:XH,authenticationDomain:r,passportDomain:t,popupOverlayOptions:e.popupOverlayOptions,crossSdkBridgeEnabled:e.crossSdkBridgeEnabled});return typeof window<"u"&&window.addEventListener("message",async o=>{if(o.data.code&&o.data.state){let c=window.location.search,u=new URLSearchParams(c);u.set("code",o.data.code),u.set("state",o.data.state),window.history.replaceState(null,"",`?${u.toString()}`),await a.loginCallback(),u.delete("code"),u.delete("state"),window.history.replaceState(null,"",`?${u.toString()}`);}}),{getUser:async()=>a.getUserOrLogin(),clientId:i}}async function u_(s={}){let e=s.chains&&s.chains.length>0?s.chains:Vm,t=s.initialChainId||e[0].chainId,r=e.find(w=>w.chainId===t);if(!r)throw new Error(`Initial chain ${t} not found in chains configuration`);let n=createConfig({basePath:r.apiUrl}),i=new MultiRollupApiClients({indexer:n,orderBook:n,passport:n}),a,o;if(s.getUser)a=s.getUser,o=s.clientId||U4(r);else {let w=c_(r,s);a=w.getUser,o=w.clientId;}let c=await a().catch(()=>null),u=r.passportDomain||r.apiUrl.replace("api.","passport."),l=new cf({passportDomain:u,zkEvmRpcUrl:r.rpcUrl,relayerUrl:r.relayerUrl,indexerMrBasePath:r.apiUrl,jsonRpcReferrer:s.jsonRpcReferrer,forceScwDeployBeforeMessageSignature:s.forceScwDeployBeforeMessageSignature,crossSdkBridgeEnabled:s.crossSdkBridgeEnabled,feeTokenSymbol:s.feeTokenSymbol}),h=s.passportEventEmitter||new TypedEventEmitter,m=new mr$1.GuardianApi(n),y=new dc({config:l,getUser:a,guardianApi:m,passportDomain:u,clientId:o}),g;if(r_(r)){let w=JH(r),S=r.magicTeeBasePath||"https://tee.express.magiclabs.com",C=new MagicTeeApiClients({basePath:S,timeout:1e4,magicPublishableApiKey:w.magicPublishableApiKey,magicProviderId:w.magicProviderId}),N=new mc(a,C),x=null;r.chainId===13371?x="https://api.immutable.com":r.chainId===13473?x="https://api.sandbox.immutable.com":r.apiUrl&&(x=r.apiUrl),g=new af({getUser:a,clientId:o,config:l,multiRollupApiClients:i,walletEventEmitter:h,guardianClient:y,ethSigner:N,user:c,sessionActivityApiUrl:x});}else {let w=u.includes(".dev.")||r.apiUrl.includes(".dev."),S=L4(a,{identityInstrumentEndpoint:r.sequenceIdentityInstrumentEndpoint,isDevEnvironment:w});g=new of({getUser:a,chainConfig:r,multiRollupApiClients:i,guardianClient:y,ethSigner:S,passportEventEmitter:h});}return s.announceProvider!==!1&&fb({info:lb,provider:g}),g}function d_(s){return typeof s=="object"&&s!==null&&"code"in s&&"message"in s}async function m_(s,e){let t=await s.getUser();if(!t?.profile.sub)return [];let r={Authorization:`Bearer ${t.accessToken}`},{data:n}=await e.passportProfileApi.getUserInfo({headers:r});return n.linked_addresses}async function p_(s,e,t){let r=trackFlow("wallet","linkExternalWallet");try{let n=await s.getUser();if(!n)throw new Qe("User is not logged in","NOT_LOGGED_IN_ERROR");if(!isUserZkEvm(n))throw new Qe("User has not been registered on Immutable zkEVM","WALLET_CONNECTION_ERROR");let a={Authorization:`Bearer ${n.accessToken}`},o={type:t.type,wallet_address:t.walletAddress,signature:t.signature,nonce:t.nonce};return {...(await e.passportProfileApi.linkWalletV2({linkWalletV2Request:o},{headers:a})).data}}catch(n){if(n instanceof Error?trackError("wallet","linkExternalWallet",n):r.addEvent("errored"),ea(n)&&n.response){if(n.response.data&&d_(n.response.data)){let{code:a,message:o}=n.response.data;switch(a){case"ALREADY_LINKED":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"MAX_WALLETS_LINKED":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"DUPLICATE_NONCE":throw new Qe(o,"WALLET_CONNECTION_ERROR");case"VALIDATION_ERROR":throw new Qe(o,"WALLET_CONNECTION_ERROR");default:throw new Qe(o,"WALLET_CONNECTION_ERROR")}}else if(n.response.status)throw new Qe(`Link wallet request failed with status code ${n.response.status}`,"WALLET_CONNECTION_ERROR")}let i="Link wallet request failed";throw n instanceof Error&&(i+=`: ${n.message}`),new Qe(i,"WALLET_CONNECTION_ERROR")}finally{r.addEvent("End");}}/*! Bundled license information:
|
|
377
377
|
|
|
378
378
|
@noble/hashes/esm/utils.js:
|
|
379
379
|
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
@@ -507,4 +507,4 @@ pkijs/build/index.es.js:
|
|
|
507
507
|
*)
|
|
508
508
|
*/
|
|
509
509
|
|
|
510
|
-
export {
|
|
510
|
+
export { fk as ARBITRUM_ONE, Om as ARBITRUM_ONE_CHAIN, Yw as ARBITRUM_ONE_CHAIN_ID, hk as ARBITRUM_SEPOLIA, F6 as ARBITRUM_SEPOLIA_CHAIN, Zw as ARBITRUM_SEPOLIA_CHAIN_ID, hc as ConfirmationScreen, Vm as DEFAULT_CHAINS, dk as ETHEREUM_SEPOLIA, Rm as ETHEREUM_SEPOLIA_CHAIN, Xw as ETHEREUM_SEPOLIA_CHAIN_ID, vm as EvmChain, dc as GuardianClient, ck as IMMUTABLE_ZKEVM_MAINNET, tf as IMMUTABLE_ZKEVM_MAINNET_CHAIN, ef as IMMUTABLE_ZKEVM_MAINNET_CHAIN_ID, lk as IMMUTABLE_ZKEVM_MULTICHAIN, uk as IMMUTABLE_ZKEVM_TESTNET, sf as IMMUTABLE_ZKEVM_TESTNET_CHAIN, Xi as IMMUTABLE_ZKEVM_TESTNET_CHAIN_ID, ne as JsonRpcError, mc as MagicTEESigner, Zl as ProviderErrorCode, E6 as ProviderEvent, Yl as RelayerClient, _4 as RelayerTransactionStatus, Ls as RpcErrorCode, of as SequenceProvider, cf as WalletConfiguration, Qe as WalletError, Qi as WalletErrorType, v6 as WalletEvents, af as ZkEvmProvider, fb as announceProvider, u_ as connectWallet, yk as getChainConfig, fc as getEvmChainFromChainId, m_ as getLinkedAddresses, p_ as linkExternalWallet, lb as passportProviderInfo, Lm as retryWithDelay, R6 as walletHelpers };
|