From a7a1b173031b64c8a6381bb145db755f6587beb5 Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:28:32 +0000 Subject: [PATCH 01/12] - WalletEventManager.cs initial commit --- Examples/Common/Scripts/AccountInfoUI.cs | 7 +- Examples/Common/Scripts/ContractInfoUI.cs | 5 +- .../WalletConnection/Scripts/LogoutButton.cs | 5 +- .../Scripts/QRImageGenerator.cs | 11 +- .../Scripts/UI/ConnectedTextUI.cs | 5 +- .../WalletConnection/_WalletConnection.unity | 8 +- .../Scripts/Beacon/BeaconConnectorDotNet.cs | 722 ++++++++++-------- Runtime/Scripts/Beacon/WalletEventManager.cs | 347 +++++++++ .../Scripts/Beacon/WalletEventManager.cs.meta | 3 + .../Scripts/Tezos/API/Models/TokenContract.cs | 19 +- Runtime/Scripts/Tezos/Tezos.cs | 6 +- Runtime/Scripts/Tezos/TezosManager.cs | 4 +- .../Scripts/Tezos/Wallet/IWalletProvider.cs | 2 +- .../Scripts/Tezos/Wallet/WalletProvider.cs | 40 +- Runtime/View/AuthenticationManager.cs | 15 +- 15 files changed, 811 insertions(+), 388 deletions(-) create mode 100644 Runtime/Scripts/Beacon/WalletEventManager.cs create mode 100644 Runtime/Scripts/Beacon/WalletEventManager.cs.meta diff --git a/Examples/Common/Scripts/AccountInfoUI.cs b/Examples/Common/Scripts/AccountInfoUI.cs index 2fea30e9..6921f61c 100644 --- a/Examples/Common/Scripts/AccountInfoUI.cs +++ b/Examples/Common/Scripts/AccountInfoUI.cs @@ -1,3 +1,4 @@ +using TezosSDK.Beacon; using TezosSDK.Tezos; using TMPro; using UnityEngine; @@ -18,14 +19,16 @@ private void Start() TezosManager.Instance.MessageReceiver.AccountDisconnected += OnAccountDisconnected; } - private void OnAccountDisconnected(string obj) + private void OnAccountDisconnected(AccountInfo account_info) { addressText.text = notConnectedText; } - private void OnAccountConnected(string obj) + private void OnAccountConnected(AccountInfo account_info) { addressText.text = TezosManager.Instance.Wallet.GetActiveAddress(); + // OR + addressText.text = account_info.Address; } } } \ No newline at end of file diff --git a/Examples/Common/Scripts/ContractInfoUI.cs b/Examples/Common/Scripts/ContractInfoUI.cs index 604aac08..f8557980 100644 --- a/Examples/Common/Scripts/ContractInfoUI.cs +++ b/Examples/Common/Scripts/ContractInfoUI.cs @@ -1,3 +1,4 @@ +using TezosSDK.Beacon; using TezosSDK.Tezos; using TMPro; using UnityEngine; @@ -16,12 +17,12 @@ private void Start() addressText.text = NotConnectedText; } - private void OnAccountDisconnected(string obj) + private void OnAccountDisconnected(AccountInfo account_info) { addressText.text = NotConnectedText; } - private void OnAccountConnected(string obj) + private void OnAccountConnected(AccountInfo account_info) { addressText.text = TezosManager .Instance diff --git a/Examples/WalletConnection/Scripts/LogoutButton.cs b/Examples/WalletConnection/Scripts/LogoutButton.cs index 5e22a610..68ed09a1 100644 --- a/Examples/WalletConnection/Scripts/LogoutButton.cs +++ b/Examples/WalletConnection/Scripts/LogoutButton.cs @@ -1,3 +1,4 @@ +using TezosSDK.Beacon; using TezosSDK.Tezos; using UnityEngine; @@ -19,12 +20,12 @@ private void Start() } - private void OnAccountDisconnected(string obj) + private void OnAccountDisconnected(AccountInfo account_info) { gameObject.SetActive(false); } - private void OnAccountConnected(string obj) + private void OnAccountConnected(AccountInfo account_info) { gameObject.SetActive(true); } diff --git a/Examples/WalletConnection/Scripts/QRImageGenerator.cs b/Examples/WalletConnection/Scripts/QRImageGenerator.cs index c7957759..ec3b6209 100644 --- a/Examples/WalletConnection/Scripts/QRImageGenerator.cs +++ b/Examples/WalletConnection/Scripts/QRImageGenerator.cs @@ -1,4 +1,5 @@ using System; +using TezosSDK.Beacon; using TezosSDK.Tezos; using UnityEngine; using UnityEngine.UI; @@ -23,29 +24,29 @@ private void Start() TezosManager.Instance.MessageReceiver.AccountConnectionFailed += OnAccountConnectionFailed; } - private void OnAccountDisconnected(string obj) + private void OnAccountDisconnected(AccountInfo account_info) { gameObject.SetActive(true); } - private void OnAccountConnectionFailed(string message) + private void OnAccountConnectionFailed(ErrorInfo error_info) { throw new Exception("Account connection failed!"); } - private void OnAccountConnected(string message) + private void OnAccountConnected(AccountInfo account_info) { gameObject.SetActive(false); } - private void SetQrCode(string handshake) + private void SetQrCode(HandshakeData handshake_data) { if (encoded) { return; } - var uri = "tezos://?type=tzip10&data=" + handshake; + var uri = "tezos://?type=tzip10&data=" + handshake_data.PairingData; EncodeTextToQrCode(uri); } diff --git a/Examples/WalletConnection/Scripts/UI/ConnectedTextUI.cs b/Examples/WalletConnection/Scripts/UI/ConnectedTextUI.cs index a30517ce..9ba60c1a 100644 --- a/Examples/WalletConnection/Scripts/UI/ConnectedTextUI.cs +++ b/Examples/WalletConnection/Scripts/UI/ConnectedTextUI.cs @@ -1,3 +1,4 @@ +using TezosSDK.Beacon; using TezosSDK.Tezos; using UnityEngine; @@ -18,12 +19,12 @@ private void Start() } } - private void OnAccountDisconnected(string obj) + private void OnAccountDisconnected(AccountInfo account_info) { gameObject.SetActive(false); } - private void OnAccountConnected(string obj) + private void OnAccountConnected(AccountInfo account_info) { gameObject.SetActive(true); } diff --git a/Examples/WalletConnection/_WalletConnection.unity b/Examples/WalletConnection/_WalletConnection.unity index d9992ce4..97fbd6f0 100644 --- a/Examples/WalletConnection/_WalletConnection.unity +++ b/Examples/WalletConnection/_WalletConnection.unity @@ -1230,8 +1230,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 512, y: 512} + m_AnchoredPosition: {x: 0, y: -31} + m_SizeDelta: {x: 587.134, y: 580.304} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &858666210 MonoBehaviour: @@ -1307,7 +1307,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 389.305, y: 375.283} + m_SizeDelta: {x: 512, y: 478.66} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &882401221 MonoBehaviour: @@ -1512,7 +1512,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: -67} m_SizeDelta: {x: 411.022, y: 102.755} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1092930656 diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index 5ef7e324..3d4405e7 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -23,331 +23,403 @@ namespace TezosSDK.Beacon { - public class BeaconConnectorDotNet : IBeaconConnector, IDisposable - { - private static WalletMessageReceiver _walletMessageReceiver; - private DappBeaconClient BeaconDappClient { get; set; } - private string _network; - private string _rpc; - private DAppMetadata _dAppMetadata; - - #region IBeaconConnector + + public class BeaconConnectorDotNet : IBeaconConnector, IDisposable + { + //private static WalletMessageReceiver _walletMessageReceiver; + private static WalletEventManager _eventManager; + + private DappBeaconClient BeaconDappClient { get; set; } + private string _network; + private string _rpc; + private DAppMetadata _dAppMetadata; + + #region IBeaconConnector + + public async void ConnectAccount() + { + if (BeaconDappClient != null) + return; + + var pathToDb = Path.Combine(Application.persistentDataPath, "beacon.db"); + Logger.LogDebug($"DB file stored in {pathToDb}"); + + var options = new BeaconOptions + { + AppName = _dAppMetadata.Name, + AppUrl = _dAppMetadata.Url, + IconUrl = _dAppMetadata.Icon, + KnownRelayServers = Constants.KnownRelayServers, + DatabaseConnectionString = $"Filename={pathToDb};Connection=direct;Upgrade=true" + }; + + BeaconDappClient = + (DappBeaconClient)BeaconClientFactory.Create(options, new MyLoggerProvider()); + + BeaconDappClient.OnBeaconMessageReceived += OnBeaconDappClientMessageReceived; + + await BeaconDappClient.InitAsync(); + Logger.LogInfo($"Dapp initialized: {BeaconDappClient.LoggedIn}"); + BeaconDappClient.Connect(); + Logger.LogInfo($"Dapp connected: {BeaconDappClient.Connected}"); + + var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); + + if (activeAccountPermissions != null) + { + var permissionsString = activeAccountPermissions.Scopes.Aggregate(string.Empty, + (res, scope) => res + $"{scope}, ") ?? string.Empty; + + Logger.LogInfo( + $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); + + var handshake = new HandshakeData + { + PairingData = BeaconDappClient.GetPairingRequestInfo() + }; + + var eventData = new UnifiedEvent + { + EventType = "HandshakeReceived", + Data = JsonUtility.ToJson(handshake) + }; - public async void ConnectAccount() - { - if (BeaconDappClient != null) return; - - var pathToDb = Path.Combine(Application.persistentDataPath, "beacon.db"); - Logger.LogDebug($"DB file stored in {pathToDb}"); - - var options = new BeaconOptions - { - AppName = _dAppMetadata.Name, - AppUrl = _dAppMetadata.Url, - IconUrl = _dAppMetadata.Icon, - KnownRelayServers = Constants.KnownRelayServers, - DatabaseConnectionString = $"Filename={pathToDb};Connection=direct;Upgrade=true" - }; - - BeaconDappClient = (DappBeaconClient)BeaconClientFactory - .Create(options, new MyLoggerProvider()); - BeaconDappClient.OnBeaconMessageReceived += OnBeaconDappClientMessageReceived; - - await BeaconDappClient.InitAsync(); - Logger.LogInfo($"Dapp initialized: {BeaconDappClient.LoggedIn}"); - BeaconDappClient.Connect(); - Logger.LogInfo($"Dapp connected: {BeaconDappClient.Connected}"); - - var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); - if (activeAccountPermissions != null) - { - var permissionsString = activeAccountPermissions.Scopes.Aggregate(string.Empty, - (res, scope) => res + $"{scope}, ") ?? string.Empty; - Logger.LogInfo( - $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); - - UnityMainThreadDispatcher.Enqueue( - _walletMessageReceiver.TriggerAccountConnected, - new JObject - { - ["accountInfo"] = new JObject - { - ["address"] = activeAccountPermissions.Address, - ["publicKey"] = activeAccountPermissions.PublicKey - } - }.ToString()); - } - else - { - _walletMessageReceiver.TriggerHandshakeReceived(BeaconDappClient.GetPairingRequestInfo()); - } - } - - public string GetActiveAccountAddress() => BeaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; - - public void DisconnectAccount() - { - BeaconDappClient.RemoveActiveAccounts(); - var pairingRequestQrData = BeaconDappClient.GetPairingRequestInfo(); - _walletMessageReceiver.TriggerHandshakeReceived(pairingRequestQrData); - UnityMainThreadDispatcher.Enqueue(_walletMessageReceiver.TriggerAccountDisconnected, string.Empty); - } - - public void InitWalletProvider( - string network, - string rpc, - WalletProviderType walletProviderType, - DAppMetadata dAppMetadata) - { - _network = network; - _rpc = rpc; - _dAppMetadata = dAppMetadata; - } - - public void SetWalletMessageReceiver(WalletMessageReceiver messageReceiver) - { - _walletMessageReceiver = messageReceiver; - } - - public async void RequestTezosPermission(string networkName = "", string networkRPC = "") - { - if (!Enum.TryParse(networkName, out NetworkType networkType)) - networkType = TezosConfig.Instance.Network; - - var network = new BeaconNetwork - { - Type = networkType, - Name = _network, - RpcUrl = _rpc - }; - - var permissionScopes = new List - { - PermissionScope.operation_request, - PermissionScope.sign - }; - - var permissionRequest = new PermissionRequest( - type: BeaconMessageType.permission_request, - version: Constants.BeaconVersion, - id: KeyPairService.CreateGuid(), - senderId: BeaconDappClient.SenderId, - appMetadata: BeaconDappClient.Metadata, - network: network, - scopes: permissionScopes - ); - - var activePeer = BeaconDappClient.GetActivePeer(); - if (activePeer != null) - { - await BeaconDappClient.SendResponseAsync(activePeer.SenderId, permissionRequest); - Logger.LogInfo("Permission request sent"); - } - else - { - Logger.LogError("No active peer found"); - } - } - - public async void RequestTezosOperation( - string destination, - string entryPoint = "default", - string arg = null, - ulong amount = 0, - string networkName = "", - string networkRPC = "") - { - var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); - if (activeAccountPermissions == null) - { - Logger.LogError("No active permissions"); - return; - } - var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); - - var operationDetails = new List(); - var partialTezosTransactionOperation = new PartialTezosTransactionOperation( - amount.ToString(), - destination, - new JObject - { - ["entrypoint"] = entryPoint, - ["value"] = JToken.Parse(arg) - } - ); - - operationDetails.Add(partialTezosTransactionOperation); - - var operationRequest = new OperationRequest( - type: BeaconMessageType.operation_request, - version: Constants.BeaconVersion, - id: KeyPairService.CreateGuid(), - senderId: BeaconDappClient.SenderId, - network: activeAccountPermissions.Network, - operationDetails: operationDetails, - sourceAddress: pubKey.Address); - - Logger.LogDebug("requesting operation: " + operationRequest); - await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); - } - - public async void RequestContractOrigination(string script, string delegateAddress) - { - var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); - if (activeAccountPermissions == null) - { - Logger.LogError("No active permissions"); - return; - } - var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); - - var operationDetails = new List(); - var partialTezosTransactionOperation = new PartialTezosOriginationOperation( - Balance: "0", - Script: JObject.Parse(script), - Delegate: delegateAddress - ); - - operationDetails.Add(partialTezosTransactionOperation); - - var operationRequest = new OperationRequest( - type: BeaconMessageType.operation_request, - version: Constants.BeaconVersion, - id: KeyPairService.CreateGuid(), - senderId: BeaconDappClient.SenderId, - network: activeAccountPermissions.Network, - operationDetails: operationDetails, - sourceAddress: pubKey.Address); - - Logger.LogDebug("requesting operation: " + operationRequest); - await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); - } - - public void RequestTezosSignPayload(SignPayloadType signingType, string payload) - { - BeaconDappClient.RequestSign(NetezosExtensions.GetPayloadString(signingType, payload), signingType); - } - - #endregion - - #region BeaconSDK - - private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessageEventArgs e) - { - if (e.PairingDone) - { - var pairingInfo = new JObject - { - ["appName"] = _dAppMetadata.Name, - ["appUrl"] = _dAppMetadata.Url, - ["network"] = _network, - ["rpcUrl"] = _rpc, - ["timestamp"] = DateTime.UtcNow.ToString("o") // ISO 8601 format (YYYY-MM-DDThh:mm:ss.sss) - }.ToString(); - - _walletMessageReceiver.TriggerPairingCompleted(pairingInfo); - return; - } - - var message = e.Request; - switch (message.Type) - { - case BeaconMessageType.permission_response: - { - if (message is not PermissionResponse permissionResponse) - return; - - var permissionsString = permissionResponse.Scopes.Aggregate(string.Empty, - (res, scope) => res + $"{scope}, "); - Logger.LogDebug( - $"{BeaconDappClient.AppName} received permissions {permissionsString} from {permissionResponse.AppMetadata.Name} with public key {permissionResponse.PublicKey}"); - - UnityMainThreadDispatcher.Enqueue( - _walletMessageReceiver.TriggerAccountConnected, //permissionResponse.PublicKey); - new JObject - { - ["accountInfo"] = new JObject - { - ["address"] = PubKey.FromBase58(permissionResponse.PublicKey).Address, - ["publicKey"] = permissionResponse.PublicKey - } - }.ToString()); - - break; - } - - case BeaconMessageType.operation_response: - { - if (message is not OperationResponse operationResponse) - return; - - UnityMainThreadDispatcher.Enqueue( - _walletMessageReceiver.TriggerContractCallInjected, - new JObject - { - ["transactionHash"] = operationResponse.TransactionHash, - ["success"] = "true" - }.ToString()); - - Logger.LogDebug($"Received operation with hash {operationResponse.TransactionHash}"); - break; - } - - case BeaconMessageType.sign_payload_response: - { - if (message is not SignPayloadResponse signPayloadResponse) - return; - - var senderPermissions = await BeaconDappClient - .PermissionInfoRepository - .TryReadBySenderIdAsync(signPayloadResponse.SenderId); - if (senderPermissions == null) return; - - _walletMessageReceiver.TriggerPayloadSigned( //signPayloadResponse.Signature); - new JObject - { - ["signature"] = signPayloadResponse.Signature - }.ToString()); - - break; - } - } - } + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + } + else + { + var handshakeData = new HandshakeData + { + PairingData = BeaconDappClient.GetPairingRequestInfo() + }; - public void OnReady() - { - } - - #endregion - - public void Dispose() - { - BeaconDappClient.Disconnect(); - } - } - - // todo: this logger didn't work inside Beacon, improve this. - public class MyLoggerProvider : ILoggerProvider - { - public class MyLogger : ILogger - { - public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, - Func formatter) - { - if (exception != null) - Debug.LogException(exception); - - //Debug.Log(state.ToString()); - } - - public bool IsEnabled(LogLevel logLevel) => true; - public IDisposable BeginScope(TState state) => null; - } - - public void Dispose() - { - } - - public ILogger CreateLogger(string categoryName) => new MyLogger(); - } + var eventData = new UnifiedEvent + { + EventType = "HandshakeReceived", + Data = JsonUtility.ToJson(handshakeData) + }; + + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + } + } + + public string GetActiveAccountAddress() => BeaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; + + public void DisconnectAccount() + { + var activeAccount = BeaconDappClient.GetActiveAccount(); + + if (activeAccount == null) + { + Logger.LogError("No active account"); + return; + } + + var pubKey = PubKey.FromBase58(activeAccount.PublicKey); + + var accountInfo = new AccountInfo + { + Address = pubKey.Address, + PublicKey = pubKey.ToString() + }; + + var eventData = new UnifiedEvent + { + EventType = "AccountDisconnected", + Data = JsonUtility.ToJson(accountInfo) + }; + + BeaconDappClient.RemoveActiveAccounts(); + + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + } + + public void InitWalletProvider( + string network, + string rpc, + WalletProviderType walletProviderType, + DAppMetadata dAppMetadata) + { + _network = network; + _rpc = rpc; + _dAppMetadata = dAppMetadata; + } + + public void SetWalletMessageReceiver(WalletEventManager event_manager) + { + _eventManager = event_manager; + } + + public async void RequestTezosPermission(string networkName = "", string networkRPC = "") + { + if (!Enum.TryParse(networkName, out NetworkType networkType)) + networkType = TezosConfig.Instance.Network; + + var network = new BeaconNetwork + { + Type = networkType, + Name = _network, + RpcUrl = _rpc + }; + + var permissionScopes = new List + { + PermissionScope.operation_request, + PermissionScope.sign + }; + + var permissionRequest = new PermissionRequest(type: BeaconMessageType.permission_request, + version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, + appMetadata: BeaconDappClient.Metadata, network: network, scopes: permissionScopes); + + var activePeer = BeaconDappClient.GetActivePeer(); + + if (activePeer != null) + { + await BeaconDappClient.SendResponseAsync(activePeer.SenderId, permissionRequest); + Logger.LogInfo("Permission request sent"); + } + else + { + Logger.LogError("No active peer found"); + } + } + + public async void RequestTezosOperation( + string destination, + string entryPoint = "default", + string arg = null, + ulong amount = 0, + string networkName = "", + string networkRPC = "") + { + var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); + + if (activeAccountPermissions == null) + { + Logger.LogError("No active permissions"); + return; + } + + var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); + + var operationDetails = new List(); + + var partialTezosTransactionOperation = new PartialTezosTransactionOperation(amount.ToString(), destination, + new JObject + { + ["entrypoint"] = entryPoint, + ["value"] = JToken.Parse(arg) + }); + + operationDetails.Add(partialTezosTransactionOperation); + + var operationRequest = new OperationRequest(type: BeaconMessageType.operation_request, + version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, + network: activeAccountPermissions.Network, operationDetails: operationDetails, + sourceAddress: pubKey.Address); + + Logger.LogDebug("requesting operation: " + operationRequest); + await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); + } + + public async void RequestContractOrigination(string script, string delegateAddress) + { + var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); + + if (activeAccountPermissions == null) + { + Logger.LogError("No active permissions"); + return; + } + + var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); + + var operationDetails = new List(); + + var partialTezosTransactionOperation = new PartialTezosOriginationOperation(Balance: "0", + Script: JObject.Parse(script), Delegate: delegateAddress); + + operationDetails.Add(partialTezosTransactionOperation); + + var operationRequest = new OperationRequest(type: BeaconMessageType.operation_request, + version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, + network: activeAccountPermissions.Network, operationDetails: operationDetails, + sourceAddress: pubKey.Address); + + Logger.LogDebug("requesting operation: " + operationRequest); + await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); + } + + public void RequestTezosSignPayload(SignPayloadType signingType, string payload) + { + BeaconDappClient.RequestSign(NetezosExtensions.GetPayloadString(signingType, payload), signingType); + } + + #endregion + + #region BeaconSDK + + private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessageEventArgs e) + { + if (e.PairingDone) + { + var pairingDoneData = new WalletEventManager.PairingDoneData + { + DAppPublicKey = BeaconDappClient.GetActiveAccount()?.PublicKey, + Timestamp = DateTime.UtcNow.ToString("o") // ISO 8601 format + }; + + var pairingDoneEvent = new UnifiedEvent + { + EventType = "PairingDone", + Data = JsonUtility.ToJson(pairingDoneData) + }; + + // Trigger the event through the HandleEvent method on the event manager + _eventManager.HandleEvent(JsonUtility.ToJson(pairingDoneEvent)); + } + + var message = e.Request; + + switch (message.Type) + { + case BeaconMessageType.permission_response: + { + if (message is not PermissionResponse permissionResponse) + return; + + var permissionsString = permissionResponse.Scopes.Aggregate(string.Empty, + (res, scope) => res + $"{scope}, "); + + Logger.LogDebug( + $"{BeaconDappClient.AppName} received permissions {permissionsString} from {permissionResponse.AppMetadata.Name} with public key {permissionResponse.PublicKey}"); + + + var pubKey = PubKey.FromBase58(permissionResponse.PublicKey); + + var accountInfo = new AccountInfo + { + Address = pubKey.Address, + PublicKey = permissionResponse.PublicKey + }; + + var eventData = new UnifiedEvent + { + EventType = "AccountConnected", // Assuming 'AccountConnected' is the right event type for a permission response + Data = JsonUtility.ToJson(accountInfo) + }; + + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + + break; + } + + case BeaconMessageType.operation_response: + { + if (message is not OperationResponse operationResponse) + return; + + Logger.LogDebug($"Received operation with hash {operationResponse.TransactionHash}"); + + var operationResult = new OperationResult + { + TransactionHash = operationResponse.TransactionHash, + IsSuccessful = true + }; + + var eventData = new UnifiedEvent + { + EventType = "ContractCallInjected", + Data = JsonUtility.ToJson(operationResult) + }; + + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + + break; + } + + case BeaconMessageType.sign_payload_response: + { + if (message is not SignPayloadResponse signPayloadResponse) + return; + + var senderPermissions = + await BeaconDappClient.PermissionInfoRepository.TryReadBySenderIdAsync(signPayloadResponse + .SenderId); + + if (senderPermissions == null) + return; + + var signResult = new SignResult + { + Signature = signPayloadResponse.Signature + }; + + var eventData = new UnifiedEvent + { + EventType = "PayloadSigned", + Data = JsonUtility.ToJson(signResult) + }; + + UnityMainThreadDispatcher.Enqueue(() => + _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) + ); + + break; + } + } + } + + public void OnReady() + { + } + + #endregion + + public void Dispose() + { + BeaconDappClient.Disconnect(); + } + } + + // todo: this logger didn't work inside Beacon, improve this. + public class MyLoggerProvider : ILoggerProvider + { + public class MyLogger : ILogger + { + public void Log( + LogLevel logLevel, + EventId eventId, + TState state, + Exception exception, + Func formatter) + { + if (exception != null) + Debug.LogException(exception); + + //Debug.Log(state.ToString()); + } + + public bool IsEnabled(LogLevel logLevel) => true; + public IDisposable BeginScope(TState state) => null; + } + + public void Dispose() + { + } + + public ILogger CreateLogger(string categoryName) => new MyLogger(); + } + } \ No newline at end of file diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs b/Runtime/Scripts/Beacon/WalletEventManager.cs new file mode 100644 index 00000000..8598a0d3 --- /dev/null +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs @@ -0,0 +1,347 @@ +using System; +using UnityEngine; +using Logger = TezosSDK.Helpers.Logger; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json; +using TezosSDK.Tezos; + +namespace TezosSDK.Beacon +{ + + public class WalletEventManager : MonoBehaviour + { + // Define private fields to hold the delegate lists for each event type. + private Action _accountConnected; + private Action _accountDisconnected; + private Action _contractCallCompleted; + private Action _accountConnectionFailed; + private Action _contractCallFailed; + private Action _payloadSigned; + private Action _contractCallInjected; + private Action _handshakeReceived; + private Action _pairingCompleted; + + private void HandleHandshakeReceived(string data) + { + var handshakeData = JsonUtility.FromJson(data); + _handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. + } + + [Serializable] + public class PairingDoneData + { + public string DAppPublicKey; // Public key of the paired DApp + public string Timestamp; // Timestamp to be possibly used for logging actions + } + + // Central method that delegates the received event data to specific handlers. + public void HandleEvent(string jsonEventData) + { + try + { + var eventData = JsonUtility.FromJson(jsonEventData); + + switch (eventData.EventType) + { + case "AccountConnected": + HandleAccountConnected(eventData.Data); + break; + case "AccountDisconnected": + HandleAccountDisconnected(eventData.Data); + break; + case "ContractCallCompleted": + HandleContractCallCompleted(eventData.Data); + break; + case "AccountConnectionFailed": + HandleAccountConnectionFailed(eventData.Data); + break; + case "ContractCallFailed": + HandleContractCallFailed(eventData.Data); + break; + case "PayloadSigned": + HandlePayloadSigned(eventData.Data); + break; + case "PairingDone": + HandlePairingCompleted(eventData.Data); + break; + case "ContractCallInjected": + HandleContractCallInjected(eventData.Data); + break; + case "HandshakeReceived": + HandleHandshakeReceived(eventData.Data); + break; + default: + Debug.LogWarning($"Unhandled event type: {eventData.EventType}"); + break; + } + } + catch (Exception ex) + { + Logger.LogError($"Error parsing event data: {ex.Message}\nData: {jsonEventData}"); + } + } + + /// + /// Triggered when an account is successfully connected. + /// The returned string contains JSON-formatted account information. + /// + public event Action AccountConnected + { + add + { + if (_accountConnected == null || !_accountConnected.GetInvocationList().Contains(value)) + _accountConnected += value; + } + remove => _accountConnected -= value; + } + + /// + /// Triggered when an account connection attempt fails. + /// The returned string contains JSON-formatted account information. + /// + public event Action AccountConnectionFailed + { + add + { + if (_accountConnectionFailed == null || !_accountConnectionFailed.GetInvocationList().Contains(value)) + _accountConnectionFailed += value; + } + remove => _accountConnectionFailed -= value; + } + + /// + /// Triggered when an account is disconnected. + /// The returned string is empty. TODO: Add JSON-formatted account information as return string. + /// + public event Action AccountDisconnected + { + add + { + if (_accountDisconnected == null || !_accountDisconnected.GetInvocationList().Contains(value)) + _accountDisconnected += value; + } + remove => _accountDisconnected -= value; + } + + /// + /// Triggered when a contract call is completed. + /// The returned string is a JSON object containing the transaction hash and a success status. + /// + public event Action ContractCallCompleted + { + add + { + if (_contractCallCompleted == null || !_contractCallCompleted.GetInvocationList().Contains(value)) + _contractCallCompleted += value; + } + remove => _contractCallCompleted -= value; + } + + /// + /// Triggered when a contract call is injected into the blockchain. + /// The returned string is a JSON object containing the transaction hash and a success status. + /// + public event Action ContractCallInjected + { + add + { + if (_contractCallInjected == null || !_contractCallInjected.GetInvocationList().Contains(value)) + _contractCallInjected += value; + } + remove => _contractCallInjected -= value; + } + + /// + /// Triggered when a contract call fails. + /// The returned string is a JSON-formatted object of type ContractCallInjectionResult + /// TODO: "result is error or empty" - please clarify the error type and format and if empty on success + /// + public event Action ContractCallFailed + { + add + { + if (_contractCallFailed == null || !_contractCallFailed.GetInvocationList().Contains(value)) + _contractCallFailed += value; + } + remove => _contractCallFailed -= value; + } + + /// + /// Triggered when a payload is signed. + /// The returned string is a JSON string of the payload signing result. + /// + public event Action PayloadSigned + { + add + { + if (_payloadSigned == null || !_payloadSigned.GetInvocationList().Contains(value)) + _payloadSigned += value; + } + remove => _payloadSigned -= value; + } + + /// + /// Triggered when a handshake is received. + /// The returned string is a serialized summary of the pairing request, + /// including app details like name, relay servers, and URLs. + /// + public event Action HandshakeReceived + { + add + { + if (_handshakeReceived == null || !_handshakeReceived.GetInvocationList().Contains(value)) + _handshakeReceived += value; + } + remove => _handshakeReceived -= value; + } + + /// + /// Invoked when the pairing process with a DApp is successfully completed. + /// The returned string is a JSON-formatted object containing key details about the pairing, + /// including the DApp's name, URL, the network type, RPC URL, and the timestamp of the pairing completion. + /// TODO: If not called from WebGL and if it will stay that way, warn users? + /// + public event Action PairingCompleted + { + add + { + if (_pairingCompleted == null || !_pairingCompleted.GetInvocationList().Contains(value)) + _pairingCompleted += value; + } + remove => _pairingCompleted -= value; + } + + private void HandlePairingCompleted(string data) + { + var pairingDoneData = JsonUtility.FromJson(data); + _pairingCompleted?.Invoke(pairingDoneData); + } + + private void HandleAccountConnected(string data) + { + var accountInfo = JsonUtility.FromJson(data); + _accountConnected?.Invoke(accountInfo); + } + + private void HandleAccountConnectionFailed(string data) + { + var errorInfo = JsonUtility.FromJson(data); + _accountConnectionFailed?.Invoke(errorInfo); + } + + private void HandleAccountDisconnected(string data) + { + var accountInfo = JsonUtility.FromJson(data); + _accountDisconnected?.Invoke(accountInfo); + } + + private void HandleContractCallCompleted(string data) + { + var operationResult = JsonUtility.FromJson(data); + _contractCallCompleted?.Invoke(operationResult); + } + + private void HandleContractCallInjected(string data) + { + var operationResult = JsonUtility.FromJson(data); + _contractCallInjected?.Invoke(operationResult); + } + + private void HandleContractCallFailed(string data) + { + var errorInfo = JsonUtility.FromJson(data); + _contractCallFailed?.Invoke(errorInfo); + } + + private void HandlePayloadSigned(string data) + { + var signResult = JsonUtility.FromJson(data); + _payloadSigned?.Invoke(signResult); + } + + public IEnumerator TrackTransaction(string transactionHash) + { + var success = false; + const float timeout = 30f; // seconds + var timestamp = Time.time; + + // keep making requests until time out or success + while (!success && Time.time - timestamp < timeout) + { + Logger.LogDebug($"Checking tx status: {transactionHash}"); + + yield return TezosManager + .Instance + .Tezos + .API + .GetOperationStatus(result => + { + if (result != null) + success = JsonSerializer.Deserialize(result); + }, transactionHash); + + yield return new WaitForSecondsRealtime(3); + } + + var operationResult = new OperationResult + { + TransactionHash = transactionHash, + IsSuccessful = true + }; + + var eventData = new UnifiedEvent + { + EventType = "ContractCallCompleted", + Data = JsonUtility.ToJson(operationResult) + }; + + HandleEvent(JsonUtility.ToJson(eventData)); + } + + } + + [Serializable] + public class HandshakeData + { + public string PairingData; // The data needed for the user to complete the pairing, like a QR code or deep link + } + + [Serializable] + public class AccountInfo + { + public string Address; + public string PublicKey; + } + + [Serializable] + public class ErrorInfo + { + public string Message; + } + + [Serializable] + public class OperationResult + { + public string TransactionHash; + public bool IsSuccessful; + public string Error; + } + + [Serializable] + public class SignResult + { + public string Signature; + } + + [Serializable] + public class UnifiedEvent + { + public string EventType; + public string Data; // JSON string, to be parsed further in specific handlers + } + + + +} \ No newline at end of file diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs.meta b/Runtime/Scripts/Beacon/WalletEventManager.cs.meta new file mode 100644 index 00000000..f421bfb8 --- /dev/null +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 707fb05e64c64280ab7cc68992aec253 +timeCreated: 1699964994 \ No newline at end of file diff --git a/Runtime/Scripts/Tezos/API/Models/TokenContract.cs b/Runtime/Scripts/Tezos/API/Models/TokenContract.cs index 2d752fb5..a876c9c3 100644 --- a/Runtime/Scripts/Tezos/API/Models/TokenContract.cs +++ b/Runtime/Scripts/Tezos/API/Models/TokenContract.cs @@ -5,6 +5,7 @@ using Netezos.Contracts; using Netezos.Encoding; using Newtonsoft.Json.Linq; +using TezosSDK.Beacon; using TezosSDK.Helpers; using TezosSDK.Tezos.API.Models.Abstract; using TezosSDK.Tezos.API.Models.Tokens; @@ -76,7 +77,7 @@ void TokensReceived(IEnumerable tokens) .ToJson(); _wallet - .MessageReceiver + .EventManager .ContractCallCompleted += MintCompleted; _wallet.CallContract( @@ -86,7 +87,7 @@ void TokensReceived(IEnumerable tokens) } } - private void MintCompleted(string response) + private void MintCompleted(OperationResult operation_result) { var owner = _wallet.GetActiveAddress(); @@ -133,7 +134,7 @@ public void Transfer( }).ToJson(); _wallet - .MessageReceiver + .EventManager .ContractCallCompleted += TransferCompleted; _wallet.CallContract( @@ -142,13 +143,9 @@ public void Transfer( input: param); } - private void TransferCompleted(string response) + private void TransferCompleted(OperationResult operation_result) { - var transactionHash = JsonSerializer - .Deserialize(response) - .GetProperty("transactionHash") - .ToString(); - + var transactionHash = operation_result.TransactionHash; _onTransferCompleted.Invoke(transactionHash); } @@ -161,13 +158,13 @@ public void Deploy(Action completedCallback) var scriptWithAdmin = stringScript.Replace("CONTRACT_ADMIN", address); _wallet - .MessageReceiver + .EventManager .ContractCallCompleted += DeployCompleted; _wallet.OriginateContract(scriptWithAdmin); } - private void DeployCompleted(string response) + private void DeployCompleted(OperationResult operation_result) { var codeHash = Resources.Load("Contracts/FA2TokenContractCodeHash").text; var creator = _wallet.GetActiveAddress(); diff --git a/Runtime/Scripts/Tezos/Tezos.cs b/Runtime/Scripts/Tezos/Tezos.cs index 8315f495..33ded4f6 100644 --- a/Runtime/Scripts/Tezos/Tezos.cs +++ b/Runtime/Scripts/Tezos/Tezos.cs @@ -17,7 +17,7 @@ namespace TezosSDK.Tezos /// public class Tezos : ITezos { - public WalletMessageReceiver MessageReceiver { get; } + public WalletEventManager EventManager { get; } public ITezosAPI API { get; } public IWalletProvider Wallet { get; } public IFA2 TokenContract { get; set; } @@ -29,8 +29,8 @@ public Tezos(DAppMetadata dAppMetadata) Wallet = new WalletProvider(dAppMetadata); - MessageReceiver = Wallet.MessageReceiver; - MessageReceiver.AccountConnected += _ => + EventManager = Wallet.EventManager; + EventManager.AccountConnected += _ => { TokenContract = PlayerPrefs.HasKey("CurrentContract:" + Wallet.GetActiveAddress()) ? new TokenContract(PlayerPrefs.GetString("CurrentContract:" + Wallet.GetActiveAddress())) diff --git a/Runtime/Scripts/Tezos/TezosManager.cs b/Runtime/Scripts/Tezos/TezosManager.cs index 5616b0b4..20d54b8f 100644 --- a/Runtime/Scripts/Tezos/TezosManager.cs +++ b/Runtime/Scripts/Tezos/TezosManager.cs @@ -26,9 +26,9 @@ public IWalletProvider Wallet get => Tezos?.Wallet; } - public WalletMessageReceiver MessageReceiver + public WalletEventManager MessageReceiver { - get => Wallet?.MessageReceiver; + get => Wallet?.EventManager; } protected override void Awake() diff --git a/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs index 90a4b6bc..c77f2a42 100644 --- a/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs +++ b/Runtime/Scripts/Tezos/Wallet/IWalletProvider.cs @@ -8,7 +8,7 @@ public interface IWalletProvider /// /// Exposes a MonoBehaviour class that exposes wallet events /// - WalletMessageReceiver MessageReceiver { get; } + WalletEventManager EventManager { get; } /// /// Callback that needed in WebGL to determine that UI is rendered diff --git a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs index 0be215fa..db24c1d8 100644 --- a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs +++ b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs @@ -10,7 +10,7 @@ namespace TezosSDK.Tezos.Wallet { public class WalletProvider : IWalletProvider, IDisposable { - public WalletMessageReceiver MessageReceiver { get; private set; } + public WalletEventManager EventManager { get; private set; } private IBeaconConnector _beaconConnector; private DAppMetadata _dAppMetadata; @@ -30,49 +30,45 @@ public WalletProvider(DAppMetadata dAppMetadata) private void InitBeaconConnector() { // Create or get a WalletMessageReceiver Game object to receive callback messages - var unityBeacon = GameObject.Find("UnityBeacon"); - MessageReceiver = unityBeacon != null - ? unityBeacon.GetComponent() - : new GameObject("UnityBeacon").AddComponent(); + var event_manager = GameObject.Find("WalletEventManager"); + EventManager = event_manager != null + ? event_manager.GetComponent() + : new GameObject("WalletEventManager").AddComponent(); // Assign the BeaconConnector depending on the platform. #if !UNITY_EDITOR && UNITY_WEBGL _beaconConnector = new BeaconConnectorWebGl(); #else _beaconConnector = new BeaconConnectorDotNet(); - (_beaconConnector as BeaconConnectorDotNet)?.SetWalletMessageReceiver(MessageReceiver); + (_beaconConnector as BeaconConnectorDotNet)?.SetWalletMessageReceiver(EventManager); Connect(WalletProviderType.beacon, withRedirectToWallet: false); // todo: maybe call RequestTezosPermission from _beaconConnector? - MessageReceiver.PairingCompleted += _ => + EventManager.PairingCompleted += _ => { _beaconConnector.RequestTezosPermission( networkName: TezosConfig.Instance.Network.ToString(), networkRPC: TezosConfig.Instance.RpcBaseUrl); }; #endif - MessageReceiver.HandshakeReceived += handshake => { _handshake = handshake; }; - MessageReceiver.AccountConnected += account => + EventManager.HandshakeReceived += handshake => { _handshake = handshake.PairingData; }; + + EventManager.AccountConnected += account => { - var json = JsonSerializer.Deserialize(account); - if (!json.TryGetProperty("accountInfo", out json)) return; - - _pubKey = json.GetProperty("publicKey").GetString(); + _pubKey = account.PublicKey; }; - MessageReceiver.PayloadSigned += payload => + + EventManager.PayloadSigned += payload => { - var json = JsonSerializer.Deserialize(payload); - var signature = json.GetProperty("signature").GetString(); - - _signature = signature; + _signature = payload.Signature; }; - MessageReceiver.ContractCallInjected += transaction => + + EventManager.ContractCallInjected += transaction => { - var json = JsonSerializer.Deserialize(transaction); - var transactionHash = json.GetProperty("transactionHash").GetString(); + var transactionHash = transaction.TransactionHash; CoroutineRunner.Instance.StartWrappedCoroutine( - new CoroutineWrapper(MessageReceiver.TrackTransaction(transactionHash))); + new CoroutineWrapper(EventManager.TrackTransaction(transactionHash))); }; } diff --git a/Runtime/View/AuthenticationManager.cs b/Runtime/View/AuthenticationManager.cs index 55f91ec6..663890cc 100644 --- a/Runtime/View/AuthenticationManager.cs +++ b/Runtime/View/AuthenticationManager.cs @@ -1,3 +1,4 @@ +using TezosSDK.Beacon; using TezosSDK.Tezos; using TezosSDK.Tezos.Wallet; using UnityEngine; @@ -24,24 +25,24 @@ void Start() _isMobile = false; #endif Tezos = TezosManager.Instance.Tezos; - Tezos.Wallet.MessageReceiver.HandshakeReceived += OnHandshakeReceived; - Tezos.Wallet.MessageReceiver.AccountConnected += OnAccountConnected; - Tezos.Wallet.MessageReceiver.AccountDisconnected += OnAccountDisconnected; + Tezos.Wallet.EventManager.HandshakeReceived += OnHandshakeReceived; + Tezos.Wallet.EventManager.AccountConnected += OnAccountConnected; + Tezos.Wallet.EventManager.AccountDisconnected += OnAccountDisconnected; } - void OnHandshakeReceived(string handshake) + void OnHandshakeReceived(HandshakeData handshake_data) { EnableUI(isAuthenticated: false); - qrCodeView.SetQrCode(handshake); + qrCodeView.SetQrCode(handshake_data.PairingData); } - void OnAccountConnected(string result) + void OnAccountConnected(AccountInfo account_info) { EnableUI(isAuthenticated: true); Debug.Log("OnAccountConnected"); } - void OnAccountDisconnected(string result) + void OnAccountDisconnected(AccountInfo account_info) { Debug.Log("OnAccountDisconnected"); } From 022642797c2ba25d29367b4873fc82b48f00a1a7 Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:52:57 +0000 Subject: [PATCH 02/12] - Fix: BeaconConnectorDotNet handshake event -> connected event - Fix: return after PairingDone --- Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index 3d4405e7..0f42b9f4 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -73,17 +73,21 @@ public async void ConnectAccount() Logger.LogInfo( $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); - var handshake = new HandshakeData + + var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); + + var accountInfo = new AccountInfo { - PairingData = BeaconDappClient.GetPairingRequestInfo() + Address = pubKey.Address, + PublicKey = activeAccountPermissions.PublicKey }; - + var eventData = new UnifiedEvent { - EventType = "HandshakeReceived", - Data = JsonUtility.ToJson(handshake) + EventType = "AccountConnected", // Assuming 'AccountConnected' is the right event type for a permission response + Data = JsonUtility.ToJson(accountInfo) }; - + UnityMainThreadDispatcher.Enqueue(() => _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) ); @@ -284,6 +288,7 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag // Trigger the event through the HandleEvent method on the event manager _eventManager.HandleEvent(JsonUtility.ToJson(pairingDoneEvent)); + return; } var message = e.Request; From 965eeb1c8bf54c9b625f38c888eecde5491ff90d Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Wed, 15 Nov 2023 19:59:15 +0000 Subject: [PATCH 03/12] - OperationResult -> Remove unused fields. - Remove nested classes from WalletEventManager.cs - Add comments to WalletEventManager.cs - Cleanup and reformat --- .../Scripts/Beacon/BeaconConnectorDotNet.cs | 3 +- Runtime/Scripts/Beacon/WalletEventManager.cs | 413 +++++++++++------- 2 files changed, 261 insertions(+), 155 deletions(-) diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index 0f42b9f4..a2532fc2 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -274,7 +274,7 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag { if (e.PairingDone) { - var pairingDoneData = new WalletEventManager.PairingDoneData + var pairingDoneData = new PairingDoneData { DAppPublicKey = BeaconDappClient.GetActiveAccount()?.PublicKey, Timestamp = DateTime.UtcNow.ToString("o") // ISO 8601 format @@ -338,7 +338,6 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag var operationResult = new OperationResult { TransactionHash = operationResponse.TransactionHash, - IsSuccessful = true }; var eventData = new UnifiedEvent diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs b/Runtime/Scripts/Beacon/WalletEventManager.cs index 8598a0d3..60de55e3 100644 --- a/Runtime/Scripts/Beacon/WalletEventManager.cs +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs @@ -1,222 +1,297 @@ using System; -using UnityEngine; -using Logger = TezosSDK.Helpers.Logger; using System.Collections; -using System.Collections.Generic; using System.Linq; using System.Text.Json; using TezosSDK.Tezos; +using UnityEngine; +using Logger = TezosSDK.Helpers.Logger; namespace TezosSDK.Beacon { + /// + /// Manages event propagation within a Unity environment for wallet-related actions specific to the Tezos blockchain. + /// Handles incoming JSON event data and triggers corresponding C# events to handle these wallet actions. + /// public class WalletEventManager : MonoBehaviour { // Define private fields to hold the delegate lists for each event type. private Action _accountConnected; + private Action _accountConnectionFailed; private Action _accountDisconnected; private Action _contractCallCompleted; - private Action _accountConnectionFailed; private Action _contractCallFailed; - private Action _payloadSigned; private Action _contractCallInjected; private Action _handshakeReceived; private Action _pairingCompleted; - - private void HandleHandshakeReceived(string data) - { - var handshakeData = JsonUtility.FromJson(data); - _handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. - } - - [Serializable] - public class PairingDoneData - { - public string DAppPublicKey; // Public key of the paired DApp - public string Timestamp; // Timestamp to be possibly used for logging actions - } - - // Central method that delegates the received event data to specific handlers. - public void HandleEvent(string jsonEventData) - { - try - { - var eventData = JsonUtility.FromJson(jsonEventData); - - switch (eventData.EventType) - { - case "AccountConnected": - HandleAccountConnected(eventData.Data); - break; - case "AccountDisconnected": - HandleAccountDisconnected(eventData.Data); - break; - case "ContractCallCompleted": - HandleContractCallCompleted(eventData.Data); - break; - case "AccountConnectionFailed": - HandleAccountConnectionFailed(eventData.Data); - break; - case "ContractCallFailed": - HandleContractCallFailed(eventData.Data); - break; - case "PayloadSigned": - HandlePayloadSigned(eventData.Data); - break; - case "PairingDone": - HandlePairingCompleted(eventData.Data); - break; - case "ContractCallInjected": - HandleContractCallInjected(eventData.Data); - break; - case "HandshakeReceived": - HandleHandshakeReceived(eventData.Data); - break; - default: - Debug.LogWarning($"Unhandled event type: {eventData.EventType}"); - break; - } - } - catch (Exception ex) - { - Logger.LogError($"Error parsing event data: {ex.Message}\nData: {jsonEventData}"); - } - } + private Action _payloadSigned; /// - /// Triggered when an account is successfully connected. - /// The returned string contains JSON-formatted account information. + /// Occurs when an account connected successfully. Provides the account information. /// + /// + /// Provides an object containing the address and public key of the connected account. + /// It is triggered in response to a successful connection action from the wallet. + /// public event Action AccountConnected { add { if (_accountConnected == null || !_accountConnected.GetInvocationList().Contains(value)) + { _accountConnected += value; + } } remove => _accountConnected -= value; } /// - /// Triggered when an account connection attempt fails. - /// The returned string contains JSON-formatted account information. + /// Occurs when the connection to an account failed. Provides error information. /// + /// + /// Provides an object containing the error message of the failed connection attempt. + /// It is triggered when a connection attempt to an account encounters an error. + /// public event Action AccountConnectionFailed { add { if (_accountConnectionFailed == null || !_accountConnectionFailed.GetInvocationList().Contains(value)) + { _accountConnectionFailed += value; + } } remove => _accountConnectionFailed -= value; } /// - /// Triggered when an account is disconnected. - /// The returned string is empty. TODO: Add JSON-formatted account information as return string. + /// Occurs when an account disconnected successfully. Provides the account information. /// + /// + /// Provides an object containing the address and public key of the disconnected account. + /// It is triggered in response to a successful disconnection action from the wallet. + /// public event Action AccountDisconnected { add { if (_accountDisconnected == null || !_accountDisconnected.GetInvocationList().Contains(value)) + { _accountDisconnected += value; + } } remove => _accountDisconnected -= value; } /// - /// Triggered when a contract call is completed. - /// The returned string is a JSON object containing the transaction hash and a success status. + /// Occurs when a contract call completed successfully. Provides the result of the call. /// + /// + /// Provides an object with the transaction hash and success status. + /// This event is fired when a blockchain operation completes and has been injected into the blockchain. + /// The result includes the transaction hash and an indication of whether it was successful. + /// public event Action ContractCallCompleted { add { if (_contractCallCompleted == null || !_contractCallCompleted.GetInvocationList().Contains(value)) + { _contractCallCompleted += value; + } } remove => _contractCallCompleted -= value; } /// - /// Triggered when a contract call is injected into the blockchain. - /// The returned string is a JSON object containing the transaction hash and a success status. - /// - public event Action ContractCallInjected - { - add - { - if (_contractCallInjected == null || !_contractCallInjected.GetInvocationList().Contains(value)) - _contractCallInjected += value; - } - remove => _contractCallInjected -= value; - } - - /// - /// Triggered when a contract call fails. - /// The returned string is a JSON-formatted object of type ContractCallInjectionResult - /// TODO: "result is error or empty" - please clarify the error type and format and if empty on success + /// Occurs when a contract call fails. Provides error details. /// + /// + /// Provides an object containing the error message of the failed contract call. + /// It is triggered when a contract call attempted by the wallet encounters an error. + /// public event Action ContractCallFailed { add { if (_contractCallFailed == null || !_contractCallFailed.GetInvocationList().Contains(value)) + { _contractCallFailed += value; + } } remove => _contractCallFailed -= value; } /// - /// Triggered when a payload is signed. - /// The returned string is a JSON string of the payload signing result. + /// Occurs when a contract call is injected into the blockchain. Provides the result of the injection. /// - public event Action PayloadSigned + /// + /// Provides an object containing the transaction hash and success status after the + /// contract call is injected. + /// It is triggered after an operation request (like a contract call) is sent successfully to the blockchain network. + /// + public event Action ContractCallInjected { add { - if (_payloadSigned == null || !_payloadSigned.GetInvocationList().Contains(value)) - _payloadSigned += value; + if (_contractCallInjected == null || !_contractCallInjected.GetInvocationList().Contains(value)) + { + _contractCallInjected += value; + } } - remove => _payloadSigned -= value; + remove => _contractCallInjected -= value; } /// - /// Triggered when a handshake is received. - /// The returned string is a serialized summary of the pairing request, - /// including app details like name, relay servers, and URLs. + /// Occurs when handshake data is received. Provides the handshake details. /// + /// + /// Provides a object with the pairing information required for user completion. + /// This event is triggered as part of the pairing process. The handshake data may include a QR code or other + /// information necessary to complete pairing with a DApp. + /// public event Action HandshakeReceived { add { if (_handshakeReceived == null || !_handshakeReceived.GetInvocationList().Contains(value)) + { _handshakeReceived += value; + } } remove => _handshakeReceived -= value; } /// - /// Invoked when the pairing process with a DApp is successfully completed. - /// The returned string is a JSON-formatted object containing key details about the pairing, - /// including the DApp's name, URL, the network type, RPC URL, and the timestamp of the pairing completion. - /// TODO: If not called from WebGL and if it will stay that way, warn users? + /// Occurs when the pairing process with a DApp is completed successfully. Provides details of the pairing completion. /// + /// + /// Provides a object with details about the pairing, such as the DApp's public key and + /// the timestamp of pairing completion. + /// Triggered when the pairing between the Tezos wallet and a DApp is completed. Reveals public key and a timestamp + /// indicating when the pairing was finalized. + /// + /// TODO: If not called from WebGL and if it will stay that way, warn users? Or remove completely? Is this needed? public event Action PairingCompleted { add { if (_pairingCompleted == null || !_pairingCompleted.GetInvocationList().Contains(value)) + { _pairingCompleted += value; + } } remove => _pairingCompleted -= value; } - private void HandlePairingCompleted(string data) + /// + /// Occurs when a payload has been signed. Provides the sign result. + /// + /// + /// Provides a object containing the signature value. + /// The event is triggered in response to a successful payload signing request. + /// + public event Action PayloadSigned { - var pairingDoneData = JsonUtility.FromJson(data); - _pairingCompleted?.Invoke(pairingDoneData); + add + { + if (_payloadSigned == null || !_payloadSigned.GetInvocationList().Contains(value)) + { + _payloadSigned += value; + } + } + remove => _payloadSigned -= value; + } + + /// + /// Processes the incoming JSON event data and routes it to the corresponding event handler based on the event type. + /// + /// The JSON string representing the event data, which includes the type and associated data. + /// + /// This method is the central point for event processing within the WalletEventManager system. It parses the incoming + /// JSON event data to extract the event type and data, then dispatches the event by invoking the appropriate specific + /// handler method for each event type. + /// + public void HandleEvent(string jsonEventData) + { + try + { + var eventData = JsonUtility.FromJson(jsonEventData); + + switch (eventData.EventType) + { + case "HandshakeReceived": + HandleHandshakeReceived(eventData.Data); + break; + case "PairingDone": + HandlePairingCompleted(eventData.Data); + break; + case "AccountConnected": + HandleAccountConnected(eventData.Data); + break; + case "AccountDisconnected": + HandleAccountDisconnected(eventData.Data); + break; + case "AccountConnectionFailed": + HandleAccountConnectionFailed(eventData.Data); + break; + case "ContractCallInjected": + HandleContractCallInjected(eventData.Data); + break; + case "ContractCallCompleted": + HandleContractCallCompleted(eventData.Data); + break; + case "ContractCallFailed": + HandleContractCallFailed(eventData.Data); + break; + case "PayloadSigned": + HandlePayloadSigned(eventData.Data); + break; + default: + Debug.LogWarning($"Unhandled event type: {eventData.EventType}"); + break; + } + } + catch (Exception ex) + { + Logger.LogError($"Error parsing event data: {ex.Message}\nData: {jsonEventData}"); + } + } + + public IEnumerator TrackTransaction(string transactionHash) + { + var success = false; + const float timeout = 30f; // seconds + var timestamp = Time.time; + + // keep making requests until time out or success + while (!success && Time.time - timestamp < timeout) + { + Logger.LogDebug($"Checking tx status: {transactionHash}"); + + yield return TezosManager.Instance.Tezos.API.GetOperationStatus(result => + { + if (result != null) + { + success = JsonSerializer.Deserialize(result); + } + }, transactionHash); + + yield return new WaitForSecondsRealtime(3); + } + + var operationResult = new OperationResult + { + TransactionHash = transactionHash + }; + + var eventData = new UnifiedEvent + { + EventType = "ContractCallCompleted", + Data = JsonUtility.ToJson(operationResult) + }; + + HandleEvent(JsonUtility.ToJson(eventData)); } private void HandleAccountConnected(string data) @@ -243,16 +318,28 @@ private void HandleContractCallCompleted(string data) _contractCallCompleted?.Invoke(operationResult); } + private void HandleContractCallFailed(string data) + { + var errorInfo = JsonUtility.FromJson(data); + _contractCallFailed?.Invoke(errorInfo); + } + private void HandleContractCallInjected(string data) { var operationResult = JsonUtility.FromJson(data); _contractCallInjected?.Invoke(operationResult); } - private void HandleContractCallFailed(string data) + private void HandleHandshakeReceived(string data) { - var errorInfo = JsonUtility.FromJson(data); - _contractCallFailed?.Invoke(errorInfo); + var handshakeData = JsonUtility.FromJson(data); + _handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. + } + + private void HandlePairingCompleted(string data) + { + var pairingDoneData = JsonUtility.FromJson(data); + _pairingCompleted?.Invoke(pairingDoneData); } private void HandlePayloadSigned(string data) @@ -260,88 +347,108 @@ private void HandlePayloadSigned(string data) var signResult = JsonUtility.FromJson(data); _payloadSigned?.Invoke(signResult); } + } - public IEnumerator TrackTransaction(string transactionHash) - { - var success = false; - const float timeout = 30f; // seconds - var timestamp = Time.time; - - // keep making requests until time out or success - while (!success && Time.time - timestamp < timeout) - { - Logger.LogDebug($"Checking tx status: {transactionHash}"); - - yield return TezosManager - .Instance - .Tezos - .API - .GetOperationStatus(result => - { - if (result != null) - success = JsonSerializer.Deserialize(result); - }, transactionHash); - - yield return new WaitForSecondsRealtime(3); - } - - var operationResult = new OperationResult - { - TransactionHash = transactionHash, - IsSuccessful = true - }; - - var eventData = new UnifiedEvent - { - EventType = "ContractCallCompleted", - Data = JsonUtility.ToJson(operationResult) - }; - - HandleEvent(JsonUtility.ToJson(eventData)); - } + /// + /// Contains information related to the successful completion of a pairing between the Tezos wallet and a DApp. + /// + [Serializable] + public class PairingDoneData + { + /// + /// The public key of the paired DApp, which is used to identify the DApp on the Tezos blockchain. + /// + public string DAppPublicKey; // Public key of the paired DApp + /// + /// The timestamp indicating the exact time when the pairing was completed. This can be used for logging or + /// verification purposes. + /// + public string Timestamp; // Timestamp to be possibly used for logging actions } + /// + /// Represents data required for the wallet to complete the pairing process with a decentralized application (DApp). + /// [Serializable] public class HandshakeData { - public string PairingData; // The data needed for the user to complete the pairing, like a QR code or deep link + /// + /// The data needed for the user to complete the pairing, which may be a QR code or deep link. + /// + public string PairingData; } + /// + /// Contains information about a Tezos account, including the address and public key. + /// [Serializable] public class AccountInfo { + /// + /// The Tezos wallet address. + /// public string Address; + + /// + /// The public key associated with the Tezos wallet. + /// public string PublicKey; } + /// + /// Contains error information, primarily used when an operation or connection attempt fails. + /// [Serializable] public class ErrorInfo { + /// + /// The error message providing details about the failure. + /// public string Message; } + /// + /// Contains the result of a blockchain operation, indicating its success and transaction details. + /// [Serializable] public class OperationResult { + /// + /// The hash of the transaction associated with the operation. + /// public string TransactionHash; - public bool IsSuccessful; - public string Error; } + /// + /// Contains the result of a payload signing operation. + /// [Serializable] public class SignResult { + /// + /// The signature resulting from the payload signing operation. + /// public string Signature; } + /// + /// Represents a general structure for an event containing its type and associated data. + /// It is used to unify event messages for processing by event handlers. + /// [Serializable] public class UnifiedEvent { + /// + /// Specifies the type of event. + /// public string EventType; - public string Data; // JSON string, to be parsed further in specific handlers + + /// + /// Contains the data associated with the event in a JSON string format, + /// which is further parsed in specific event handlers. + /// + public string Data; } - - } \ No newline at end of file From 299a3916c51a1a8a9550d45c32a2b036fb731190 Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Wed, 15 Nov 2023 20:03:29 +0000 Subject: [PATCH 04/12] - Remove TrackTransaction() from WalletEventManager.cs and add to WalletProvider.cs --- Runtime/Scripts/Beacon/WalletEventManager.cs | 37 +---------------- .../Scripts/Tezos/Wallet/WalletProvider.cs | 41 ++++++++++++++++++- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs b/Runtime/Scripts/Beacon/WalletEventManager.cs index 60de55e3..bf4e53e8 100644 --- a/Runtime/Scripts/Beacon/WalletEventManager.cs +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs @@ -258,42 +258,7 @@ public void HandleEvent(string jsonEventData) } } - public IEnumerator TrackTransaction(string transactionHash) - { - var success = false; - const float timeout = 30f; // seconds - var timestamp = Time.time; - - // keep making requests until time out or success - while (!success && Time.time - timestamp < timeout) - { - Logger.LogDebug($"Checking tx status: {transactionHash}"); - - yield return TezosManager.Instance.Tezos.API.GetOperationStatus(result => - { - if (result != null) - { - success = JsonSerializer.Deserialize(result); - } - }, transactionHash); - - yield return new WaitForSecondsRealtime(3); - } - - var operationResult = new OperationResult - { - TransactionHash = transactionHash - }; - - var eventData = new UnifiedEvent - { - EventType = "ContractCallCompleted", - Data = JsonUtility.ToJson(operationResult) - }; - - HandleEvent(JsonUtility.ToJson(eventData)); - } - + private void HandleAccountConnected(string data) { var accountInfo = JsonUtility.FromJson(data); diff --git a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs index db24c1d8..ce13bcf8 100644 --- a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs +++ b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs @@ -5,6 +5,7 @@ using TezosSDK.Beacon; using TezosSDK.Helpers; using UnityEngine; +using Logger = TezosSDK.Helpers.Logger; namespace TezosSDK.Tezos.Wallet { @@ -68,10 +69,48 @@ private void InitBeaconConnector() var transactionHash = transaction.TransactionHash; CoroutineRunner.Instance.StartWrappedCoroutine( - new CoroutineWrapper(EventManager.TrackTransaction(transactionHash))); + new CoroutineWrapper(TrackTransaction(transactionHash))); }; } + // TODO: Find a better place for this, used to be in WalletMessageReceiver + private IEnumerator TrackTransaction(string transactionHash) + { + var success = false; + const float timeout = 30f; // seconds + var timestamp = Time.time; + + // keep making requests until time out or success + while (!success && Time.time - timestamp < timeout) + { + Logger.LogDebug($"Checking tx status: {transactionHash}"); + + yield return TezosManager.Instance.Tezos.API.GetOperationStatus(result => + { + if (result != null) + { + success = JsonSerializer.Deserialize(result); + } + }, transactionHash); + + yield return new WaitForSecondsRealtime(3); + } + + var operationResult = new OperationResult + { + TransactionHash = transactionHash + }; + + var eventData = new UnifiedEvent + { + EventType = "ContractCallCompleted", + Data = JsonUtility.ToJson(operationResult) + }; + + EventManager.HandleEvent(JsonUtility.ToJson(eventData)); + } + + // Below there are some async/wait workarounds and magic numbers, // we should rewrite the Beacon connector to be coroutine compatible. private IEnumerator OnOpenWallet(bool withRedirectToWallet) From 9b3619da37d58a470252c7f0654fc6128e4783b9 Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Sat, 18 Nov 2023 02:44:44 +0000 Subject: [PATCH 05/12] - Introduce constant for event types --- .../Scripts/Beacon/BeaconConnectorDotNet.cs | 211 +++++++++++------- Runtime/Scripts/Beacon/WalletEventManager.cs | 170 ++++++++------ .../Scripts/Tezos/Wallet/WalletProvider.cs | 6 +- 3 files changed, 227 insertions(+), 160 deletions(-) diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index a2532fc2..b890b8d5 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -1,3 +1,5 @@ +#region + using System; using System.Collections.Generic; using System.IO; @@ -17,38 +19,58 @@ using TezosSDK.Tezos; using TezosSDK.Tezos.Wallet; using UnityEngine; +using BeaconNetwork = Beacon.Sdk.Beacon.Permission.Network; using ILogger = Microsoft.Extensions.Logging.ILogger; using Logger = TezosSDK.Helpers.Logger; -using BeaconNetwork = global::Beacon.Sdk.Beacon.Permission.Network; + +#endregion namespace TezosSDK.Beacon { public class BeaconConnectorDotNet : IBeaconConnector, IDisposable { - //private static WalletMessageReceiver _walletMessageReceiver; - private static WalletEventManager _eventManager; + #region Constants and Fields + + private static WalletEventManager eventManager; + private DAppMetadata dAppMetadata; + private string network; + private string rpc; + + #endregion + + #region Properties private DappBeaconClient BeaconDappClient { get; set; } - private string _network; - private string _rpc; - private DAppMetadata _dAppMetadata; + + #endregion + + #region IDisposable Implementation + + public void Dispose() + { + BeaconDappClient.Disconnect(); + } + + #endregion #region IBeaconConnector public async void ConnectAccount() { if (BeaconDappClient != null) + { return; + } var pathToDb = Path.Combine(Application.persistentDataPath, "beacon.db"); Logger.LogDebug($"DB file stored in {pathToDb}"); var options = new BeaconOptions { - AppName = _dAppMetadata.Name, - AppUrl = _dAppMetadata.Url, - IconUrl = _dAppMetadata.Icon, + AppName = dAppMetadata.Name, + AppUrl = dAppMetadata.Url, + IconUrl = dAppMetadata.Icon, KnownRelayServers = Constants.KnownRelayServers, DatabaseConnectionString = $"Filename={pathToDb};Connection=direct;Upgrade=true" }; @@ -73,7 +95,6 @@ public async void ConnectAccount() Logger.LogInfo( $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); - var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); var accountInfo = new AccountInfo @@ -84,13 +105,11 @@ public async void ConnectAccount() var eventData = new UnifiedEvent { - EventType = "AccountConnected", // Assuming 'AccountConnected' is the right event type for a permission response + EventType = WalletEventManager.EventTypeAccountConnected, Data = JsonUtility.ToJson(accountInfo) }; - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(eventData))); } else { @@ -98,20 +117,21 @@ public async void ConnectAccount() { PairingData = BeaconDappClient.GetPairingRequestInfo() }; - - var eventData = new UnifiedEvent + + var handshakeEvent = new UnifiedEvent { - EventType = "HandshakeReceived", + EventType = WalletEventManager.EventTypeHandshakeReceived, Data = JsonUtility.ToJson(handshakeData) }; - - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); + + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(handshakeEvent))); } } - public string GetActiveAccountAddress() => BeaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; + public string GetActiveAccountAddress() + { + return BeaconDappClient?.GetActiveAccount()?.Address ?? string.Empty; + } public void DisconnectAccount() { @@ -122,7 +142,7 @@ public void DisconnectAccount() Logger.LogError("No active account"); return; } - + var pubKey = PubKey.FromBase58(activeAccount.PublicKey); var accountInfo = new AccountInfo @@ -130,18 +150,16 @@ public void DisconnectAccount() Address = pubKey.Address, PublicKey = pubKey.ToString() }; - - var eventData = new UnifiedEvent + + var disconnectEvent = new UnifiedEvent { - EventType = "AccountDisconnected", + EventType = WalletEventManager.EventTypeAccountDisconnected, Data = JsonUtility.ToJson(accountInfo) }; - + BeaconDappClient.RemoveActiveAccounts(); - - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); + + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(disconnectEvent))); } public void InitWalletProvider( @@ -150,26 +168,28 @@ public void InitWalletProvider( WalletProviderType walletProviderType, DAppMetadata dAppMetadata) { - _network = network; - _rpc = rpc; - _dAppMetadata = dAppMetadata; + this.network = network; + this.rpc = rpc; + this.dAppMetadata = dAppMetadata; } public void SetWalletMessageReceiver(WalletEventManager event_manager) { - _eventManager = event_manager; + eventManager = event_manager; } public async void RequestTezosPermission(string networkName = "", string networkRPC = "") { if (!Enum.TryParse(networkName, out NetworkType networkType)) + { networkType = TezosConfig.Instance.Network; + } var network = new BeaconNetwork { Type = networkType, - Name = _network, - RpcUrl = _rpc + Name = this.network, + RpcUrl = rpc }; var permissionScopes = new List @@ -178,9 +198,9 @@ public async void RequestTezosPermission(string networkName = "", string network PermissionScope.sign }; - var permissionRequest = new PermissionRequest(type: BeaconMessageType.permission_request, - version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, - appMetadata: BeaconDappClient.Metadata, network: network, scopes: permissionScopes); + var permissionRequest = new PermissionRequest(BeaconMessageType.permission_request, Constants.BeaconVersion, + KeyPairService.CreateGuid(), BeaconDappClient.SenderId, BeaconDappClient.Metadata, network, + permissionScopes); var activePeer = BeaconDappClient.GetActivePeer(); @@ -224,10 +244,9 @@ public async void RequestTezosOperation( operationDetails.Add(partialTezosTransactionOperation); - var operationRequest = new OperationRequest(type: BeaconMessageType.operation_request, - version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, - network: activeAccountPermissions.Network, operationDetails: operationDetails, - sourceAddress: pubKey.Address); + var operationRequest = new OperationRequest(BeaconMessageType.operation_request, Constants.BeaconVersion, + KeyPairService.CreateGuid(), BeaconDappClient.SenderId, activeAccountPermissions.Network, + operationDetails, pubKey.Address); Logger.LogDebug("requesting operation: " + operationRequest); await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); @@ -247,15 +266,14 @@ public async void RequestContractOrigination(string script, string delegateAddre var operationDetails = new List(); - var partialTezosTransactionOperation = new PartialTezosOriginationOperation(Balance: "0", - Script: JObject.Parse(script), Delegate: delegateAddress); + var partialTezosTransactionOperation = new PartialTezosOriginationOperation("0", + JObject.Parse(script), delegateAddress); operationDetails.Add(partialTezosTransactionOperation); - var operationRequest = new OperationRequest(type: BeaconMessageType.operation_request, - version: Constants.BeaconVersion, id: KeyPairService.CreateGuid(), senderId: BeaconDappClient.SenderId, - network: activeAccountPermissions.Network, operationDetails: operationDetails, - sourceAddress: pubKey.Address); + var operationRequest = new OperationRequest(BeaconMessageType.operation_request, Constants.BeaconVersion, + KeyPairService.CreateGuid(), BeaconDappClient.SenderId, activeAccountPermissions.Network, + operationDetails, pubKey.Address); Logger.LogDebug("requesting operation: " + operationRequest); await BeaconDappClient.SendResponseAsync(activeAccountPermissions.SenderId, operationRequest); @@ -282,12 +300,11 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag var pairingDoneEvent = new UnifiedEvent { - EventType = "PairingDone", + EventType = WalletEventManager.EventTypePairingDone, Data = JsonUtility.ToJson(pairingDoneData) }; - // Trigger the event through the HandleEvent method on the event manager - _eventManager.HandleEvent(JsonUtility.ToJson(pairingDoneEvent)); + eventManager.HandleEvent(JsonUtility.ToJson(pairingDoneEvent)); return; } @@ -298,7 +315,9 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag case BeaconMessageType.permission_response: { if (message is not PermissionResponse permissionResponse) + { return; + } var permissionsString = permissionResponse.Scopes.Aggregate(string.Empty, (res, scope) => res + $"{scope}, "); @@ -306,7 +325,6 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag Logger.LogDebug( $"{BeaconDappClient.AppName} received permissions {permissionsString} from {permissionResponse.AppMetadata.Name} with public key {permissionResponse.PublicKey}"); - var pubKey = PubKey.FromBase58(permissionResponse.PublicKey); var accountInfo = new AccountInfo @@ -315,15 +333,14 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag PublicKey = permissionResponse.PublicKey }; - var eventData = new UnifiedEvent + var accountConnectedEvent = new UnifiedEvent { - EventType = "AccountConnected", // Assuming 'AccountConnected' is the right event type for a permission response + EventType = WalletEventManager.EventTypeAccountConnected, Data = JsonUtility.ToJson(accountInfo) }; - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); + UnityMainThreadDispatcher.Enqueue(() => + eventManager.HandleEvent(JsonUtility.ToJson(accountConnectedEvent))); break; } @@ -331,54 +348,57 @@ private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessag case BeaconMessageType.operation_response: { if (message is not OperationResponse operationResponse) + { return; + } Logger.LogDebug($"Received operation with hash {operationResponse.TransactionHash}"); - + var operationResult = new OperationResult { - TransactionHash = operationResponse.TransactionHash, + TransactionHash = operationResponse.TransactionHash }; - var eventData = new UnifiedEvent + var contractEvent = new UnifiedEvent { - EventType = "ContractCallInjected", + EventType = WalletEventManager.EventTypeContractCallInjected, Data = JsonUtility.ToJson(operationResult) }; - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); - + UnityMainThreadDispatcher.Enqueue(() => + eventManager.HandleEvent(JsonUtility.ToJson(contractEvent))); + break; } case BeaconMessageType.sign_payload_response: { if (message is not SignPayloadResponse signPayloadResponse) + { return; + } var senderPermissions = await BeaconDappClient.PermissionInfoRepository.TryReadBySenderIdAsync(signPayloadResponse .SenderId); if (senderPermissions == null) + { return; + } var signResult = new SignResult { Signature = signPayloadResponse.Signature }; - var eventData = new UnifiedEvent + var signedEvent = new UnifiedEvent { - EventType = "PayloadSigned", + EventType = WalletEventManager.EventTypePayloadSigned, Data = JsonUtility.ToJson(signResult) }; - UnityMainThreadDispatcher.Enqueue(() => - _eventManager.HandleEvent(JsonUtility.ToJson(eventData)) - ); + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(signedEvent))); break; } @@ -390,18 +410,44 @@ public void OnReady() } #endregion - - public void Dispose() - { - BeaconDappClient.Disconnect(); - } } // todo: this logger didn't work inside Beacon, improve this. public class MyLoggerProvider : ILoggerProvider { + #region IDisposable Implementation + + public void Dispose() + { + } + + #endregion + + #region ILoggerProvider Implementation + + public ILogger CreateLogger(string categoryName) + { + return new MyLogger(); + } + + #endregion + + #region Nested Types + public class MyLogger : ILogger { + #region ILogger Implementation + + public IDisposable BeginScope(TState state) + { + return null; + } + + public bool IsEnabled(LogLevel logLevel) + { + return true; + } + public void Log( LogLevel logLevel, EventId eventId, @@ -410,20 +456,17 @@ public void Log( Func formatter) { if (exception != null) + { Debug.LogException(exception); + } //Debug.Log(state.ToString()); } - public bool IsEnabled(LogLevel logLevel) => true; - public IDisposable BeginScope(TState state) => null; - } - - public void Dispose() - { + #endregion } - public ILogger CreateLogger(string categoryName) => new MyLogger(); + #endregion } } \ No newline at end of file diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs b/Runtime/Scripts/Beacon/WalletEventManager.cs index bf4e53e8..aac2d209 100644 --- a/Runtime/Scripts/Beacon/WalletEventManager.cs +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs @@ -1,8 +1,5 @@ using System; -using System.Collections; using System.Linq; -using System.Text.Json; -using TezosSDK.Tezos; using UnityEngine; using Logger = TezosSDK.Helpers.Logger; @@ -15,16 +12,25 @@ namespace TezosSDK.Beacon /// public class WalletEventManager : MonoBehaviour { - // Define private fields to hold the delegate lists for each event type. - private Action _accountConnected; - private Action _accountConnectionFailed; - private Action _accountDisconnected; - private Action _contractCallCompleted; - private Action _contractCallFailed; - private Action _contractCallInjected; - private Action _handshakeReceived; - private Action _pairingCompleted; - private Action _payloadSigned; + public const string EventTypeAccountConnected = "AccountConnected"; + public const string EventTypeAccountConnectionFailed = "AccountConnectionFailed"; + public const string EventTypeAccountDisconnected = "AccountDisconnected"; + public const string EventTypeContractCallCompleted = "ContractCallCompleted"; + public const string EventTypeContractCallFailed = "ContractCallFailed"; + public const string EventTypeContractCallInjected = "ContractCallInjected"; + public const string EventTypeHandshakeReceived = "HandshakeReceived"; + public const string EventTypePairingDone = "PairingDone"; + public const string EventTypePayloadSigned = "PayloadSigned"; + + private Action accountConnected; + private Action accountConnectionFailed; + private Action accountDisconnected; + private Action contractCallCompleted; + private Action contractCallFailed; + private Action contractCallInjected; + private Action handshakeReceived; + private Action pairingCompleted; + private Action payloadSigned; /// /// Occurs when an account connected successfully. Provides the account information. @@ -37,12 +43,12 @@ public event Action AccountConnected { add { - if (_accountConnected == null || !_accountConnected.GetInvocationList().Contains(value)) + if (accountConnected == null || !accountConnected.GetInvocationList().Contains(value)) { - _accountConnected += value; + accountConnected += value; } } - remove => _accountConnected -= value; + remove => accountConnected -= value; } /// @@ -56,12 +62,12 @@ public event Action AccountConnectionFailed { add { - if (_accountConnectionFailed == null || !_accountConnectionFailed.GetInvocationList().Contains(value)) + if (accountConnectionFailed == null || !accountConnectionFailed.GetInvocationList().Contains(value)) { - _accountConnectionFailed += value; + accountConnectionFailed += value; } } - remove => _accountConnectionFailed -= value; + remove => accountConnectionFailed -= value; } /// @@ -75,12 +81,12 @@ public event Action AccountDisconnected { add { - if (_accountDisconnected == null || !_accountDisconnected.GetInvocationList().Contains(value)) + if (accountDisconnected == null || !accountDisconnected.GetInvocationList().Contains(value)) { - _accountDisconnected += value; + accountDisconnected += value; } } - remove => _accountDisconnected -= value; + remove => accountDisconnected -= value; } /// @@ -95,12 +101,12 @@ public event Action ContractCallCompleted { add { - if (_contractCallCompleted == null || !_contractCallCompleted.GetInvocationList().Contains(value)) + if (contractCallCompleted == null || !contractCallCompleted.GetInvocationList().Contains(value)) { - _contractCallCompleted += value; + contractCallCompleted += value; } } - remove => _contractCallCompleted -= value; + remove => contractCallCompleted -= value; } /// @@ -114,12 +120,12 @@ public event Action ContractCallFailed { add { - if (_contractCallFailed == null || !_contractCallFailed.GetInvocationList().Contains(value)) + if (contractCallFailed == null || !contractCallFailed.GetInvocationList().Contains(value)) { - _contractCallFailed += value; + contractCallFailed += value; } } - remove => _contractCallFailed -= value; + remove => contractCallFailed -= value; } /// @@ -134,12 +140,12 @@ public event Action ContractCallInjected { add { - if (_contractCallInjected == null || !_contractCallInjected.GetInvocationList().Contains(value)) + if (contractCallInjected == null || !contractCallInjected.GetInvocationList().Contains(value)) { - _contractCallInjected += value; + contractCallInjected += value; } } - remove => _contractCallInjected -= value; + remove => contractCallInjected -= value; } /// @@ -154,12 +160,12 @@ public event Action HandshakeReceived { add { - if (_handshakeReceived == null || !_handshakeReceived.GetInvocationList().Contains(value)) + if (handshakeReceived == null || !handshakeReceived.GetInvocationList().Contains(value)) { - _handshakeReceived += value; + handshakeReceived += value; } } - remove => _handshakeReceived -= value; + remove => handshakeReceived -= value; } /// @@ -176,12 +182,12 @@ public event Action PairingCompleted { add { - if (_pairingCompleted == null || !_pairingCompleted.GetInvocationList().Contains(value)) + if (pairingCompleted == null || !pairingCompleted.GetInvocationList().Contains(value)) { - _pairingCompleted += value; + pairingCompleted += value; } } - remove => _pairingCompleted -= value; + remove => pairingCompleted -= value; } /// @@ -195,22 +201,24 @@ public event Action PayloadSigned { add { - if (_payloadSigned == null || !_payloadSigned.GetInvocationList().Contains(value)) + if (payloadSigned == null || !payloadSigned.GetInvocationList().Contains(value)) { - _payloadSigned += value; + payloadSigned += value; } } - remove => _payloadSigned -= value; + remove => payloadSigned -= value; } /// - /// Processes the incoming JSON event data and routes it to the corresponding event handler based on the event type. + /// Processes the incoming JSON event data and dispatches it to the corresponding event based on the event type. /// - /// The JSON string representing the event data, which includes the type and associated data. + /// + /// The JSON string representing the event data, which includes the event type and associated + /// data. + /// /// - /// This method is the central point for event processing within the WalletEventManager system. It parses the incoming - /// JSON event data to extract the event type and data, then dispatches the event by invoking the appropriate specific - /// handler method for each event type. + /// The method decodes the JSON event data, identifies the type of event, and invokes the corresponding + /// event handler with the proper deserialized event data object. /// public void HandleEvent(string jsonEventData) { @@ -220,32 +228,32 @@ public void HandleEvent(string jsonEventData) switch (eventData.EventType) { - case "HandshakeReceived": - HandleHandshakeReceived(eventData.Data); + case EventTypeHandshakeReceived: + HandleEvent(eventData.Data, handshakeReceived); break; - case "PairingDone": - HandlePairingCompleted(eventData.Data); + case EventTypePairingDone: + HandleEvent(eventData.Data, pairingCompleted); break; - case "AccountConnected": - HandleAccountConnected(eventData.Data); + case EventTypeAccountConnected: + HandleEvent(eventData.Data, accountConnected); break; - case "AccountDisconnected": - HandleAccountDisconnected(eventData.Data); + case EventTypeAccountConnectionFailed: + HandleEvent(eventData.Data, accountConnectionFailed); break; - case "AccountConnectionFailed": - HandleAccountConnectionFailed(eventData.Data); + case EventTypeAccountDisconnected: + HandleEvent(eventData.Data, accountDisconnected); break; - case "ContractCallInjected": - HandleContractCallInjected(eventData.Data); + case EventTypeContractCallInjected: + HandleEvent(eventData.Data, contractCallInjected); break; - case "ContractCallCompleted": - HandleContractCallCompleted(eventData.Data); + case EventTypeContractCallCompleted: + HandleEvent(eventData.Data, contractCallCompleted); break; - case "ContractCallFailed": - HandleContractCallFailed(eventData.Data); + case EventTypeContractCallFailed: + HandleEvent(eventData.Data, contractCallFailed); break; - case "PayloadSigned": - HandlePayloadSigned(eventData.Data); + case EventTypePayloadSigned: + HandleEvent(eventData.Data, payloadSigned); break; default: Debug.LogWarning($"Unhandled event type: {eventData.EventType}"); @@ -258,59 +266,75 @@ public void HandleEvent(string jsonEventData) } } - private void HandleAccountConnected(string data) { var accountInfo = JsonUtility.FromJson(data); - _accountConnected?.Invoke(accountInfo); + accountConnected?.Invoke(accountInfo); } private void HandleAccountConnectionFailed(string data) { var errorInfo = JsonUtility.FromJson(data); - _accountConnectionFailed?.Invoke(errorInfo); + accountConnectionFailed?.Invoke(errorInfo); } private void HandleAccountDisconnected(string data) { var accountInfo = JsonUtility.FromJson(data); - _accountDisconnected?.Invoke(accountInfo); + accountDisconnected?.Invoke(accountInfo); } private void HandleContractCallCompleted(string data) { var operationResult = JsonUtility.FromJson(data); - _contractCallCompleted?.Invoke(operationResult); + contractCallCompleted?.Invoke(operationResult); } private void HandleContractCallFailed(string data) { var errorInfo = JsonUtility.FromJson(data); - _contractCallFailed?.Invoke(errorInfo); + contractCallFailed?.Invoke(errorInfo); } private void HandleContractCallInjected(string data) { var operationResult = JsonUtility.FromJson(data); - _contractCallInjected?.Invoke(operationResult); + contractCallInjected?.Invoke(operationResult); + } + + /// + /// Deserializes the event data and invokes the corresponding event delegate. + /// + /// The type of the event data object. + /// The JSON string representing the event data to be deserialized. + /// The action delegate to invoke with the deserialized event data. + /// + /// This method deserializes the JSON string into an object of type + /// and then invokes the provided delegate with the deserialized object. + /// It is designed to be called within a switch-case structure that handles each specific event type. + /// + private void HandleEvent(string data, Action eventAction) + { + var deserializedData = JsonUtility.FromJson(data); + eventAction?.Invoke(deserializedData); } private void HandleHandshakeReceived(string data) { var handshakeData = JsonUtility.FromJson(data); - _handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. + handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. } private void HandlePairingCompleted(string data) { var pairingDoneData = JsonUtility.FromJson(data); - _pairingCompleted?.Invoke(pairingDoneData); + pairingCompleted?.Invoke(pairingDoneData); } private void HandlePayloadSigned(string data) { var signResult = JsonUtility.FromJson(data); - _payloadSigned?.Invoke(signResult); + payloadSigned?.Invoke(signResult); } } diff --git a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs index ce13bcf8..13979a77 100644 --- a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs +++ b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs @@ -101,13 +101,13 @@ private IEnumerator TrackTransaction(string transactionHash) TransactionHash = transactionHash }; - var eventData = new UnifiedEvent + var contactCallInjectedEvent = new UnifiedEvent { - EventType = "ContractCallCompleted", + EventType = WalletEventManager.EventTypeContractCallInjected, Data = JsonUtility.ToJson(operationResult) }; - EventManager.HandleEvent(JsonUtility.ToJson(eventData)); + EventManager.HandleEvent(JsonUtility.ToJson(contactCallInjectedEvent)); } From a7ecb0180adc866f5edcda2fb2e38fbeef3cf608 Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Sat, 18 Nov 2023 04:34:10 +0000 Subject: [PATCH 06/12] - WalletEventManager.cs remove redundant functions - BeaconConnectorDotNet.cs refactor large functions --- .../Scripts/Beacon/BeaconConnectorDotNet.cs | 150 +++++++++++------- Runtime/Scripts/Beacon/WalletEventManager.cs | 54 ------- 2 files changed, 89 insertions(+), 115 deletions(-) diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index b890b8d5..34e3b3b9 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -11,6 +11,7 @@ using Beacon.Sdk.Beacon.Sign; using Beacon.Sdk.BeaconClients; using Beacon.Sdk.BeaconClients.Abstract; +using Beacon.Sdk.Core.Domain.Entities; using Beacon.Sdk.Core.Domain.Services; using Microsoft.Extensions.Logging; using Netezos.Keys; @@ -30,43 +31,27 @@ namespace TezosSDK.Beacon public class BeaconConnectorDotNet : IBeaconConnector, IDisposable { - #region Constants and Fields - - private static WalletEventManager eventManager; private DAppMetadata dAppMetadata; + + private WalletEventManager eventManager; private string network; private string rpc; - #endregion - - #region Properties - private DappBeaconClient BeaconDappClient { get; set; } - #endregion - - #region IDisposable Implementation - public void Dispose() { BeaconDappClient.Disconnect(); } - #endregion - - #region IBeaconConnector - - public async void ConnectAccount() + private string GetDbPath() { - if (BeaconDappClient != null) - { - return; - } - - var pathToDb = Path.Combine(Application.persistentDataPath, "beacon.db"); - Logger.LogDebug($"DB file stored in {pathToDb}"); + return Path.Combine(Application.persistentDataPath, "beacon.db"); + } - var options = new BeaconOptions + private BeaconOptions CreateBeaconOptions(string pathToDb) + { + return new BeaconOptions { AppName = dAppMetadata.Name, AppUrl = dAppMetadata.Url, @@ -74,17 +59,35 @@ public async void ConnectAccount() KnownRelayServers = Constants.KnownRelayServers, DatabaseConnectionString = $"Filename={pathToDb};Connection=direct;Upgrade=true" }; - + } + + private void InitializeBeaconClient(BeaconOptions options) + { BeaconDappClient = - (DappBeaconClient)BeaconClientFactory.Create(options, new MyLoggerProvider()); + BeaconClientFactory.Create(options, new MyLoggerProvider()) as DappBeaconClient; BeaconDappClient.OnBeaconMessageReceived += OnBeaconDappClientMessageReceived; + } + + private async void ConnectAndHandleAccount() + { + try + { + await BeaconDappClient.InitAsync(); + Logger.LogInfo($"Dapp initialized: {BeaconDappClient.LoggedIn}"); + BeaconDappClient.Connect(); + Logger.LogInfo($"Dapp connected: {BeaconDappClient.Connected}"); - await BeaconDappClient.InitAsync(); - Logger.LogInfo($"Dapp initialized: {BeaconDappClient.LoggedIn}"); - BeaconDappClient.Connect(); - Logger.LogInfo($"Dapp connected: {BeaconDappClient.Connected}"); - + HandleActiveAccount(); + } + catch (Exception e) + { + Logger.LogError($"Error during account connection: {e}"); + } + } + + private void HandleActiveAccount() + { var activeAccountPermissions = BeaconDappClient.GetActiveAccount(); if (activeAccountPermissions != null) @@ -95,37 +98,68 @@ public async void ConnectAccount() Logger.LogInfo( $"We have active peer {activeAccountPermissions.AppMetadata.Name} with permissions {permissionsString}"); - var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); - - var accountInfo = new AccountInfo - { - Address = pubKey.Address, - PublicKey = activeAccountPermissions.PublicKey - }; - - var eventData = new UnifiedEvent - { - EventType = WalletEventManager.EventTypeAccountConnected, - Data = JsonUtility.ToJson(accountInfo) - }; + var accountConnectedEvent = CreateAccountConnectedEvent(activeAccountPermissions); - UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(eventData))); + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(accountConnectedEvent))); } else { - var handshakeData = new HandshakeData - { - PairingData = BeaconDappClient.GetPairingRequestInfo() - }; + HandleMissingActiveAccount(); + } + } + + private AccountInfo CreateAccountInfo(PermissionInfo activeAccountPermissions) + { + var pubKey = PubKey.FromBase58(activeAccountPermissions.PublicKey); - var handshakeEvent = new UnifiedEvent - { - EventType = WalletEventManager.EventTypeHandshakeReceived, - Data = JsonUtility.ToJson(handshakeData) - }; + return new AccountInfo + { + Address = pubKey.Address, + PublicKey = activeAccountPermissions.PublicKey + }; + } + + private UnifiedEvent CreateAccountConnectedEvent(PermissionInfo activeAccountPermissions) + { + var accountInfo = CreateAccountInfo(activeAccountPermissions); + + return new UnifiedEvent + { + EventType = WalletEventManager.EventTypeAccountConnected, + Data = JsonUtility.ToJson(accountInfo) + }; + } + + private void HandleMissingActiveAccount() + { + var handshakeData = new HandshakeData + { + PairingData = BeaconDappClient.GetPairingRequestInfo() + }; + + var handshakeEvent = new UnifiedEvent + { + EventType = WalletEventManager.EventTypeHandshakeReceived, + Data = JsonUtility.ToJson(handshakeData) + }; - UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(handshakeEvent))); + UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(handshakeEvent))); + } + + public void ConnectAccount() + { + if (BeaconDappClient != null) + { + return; } + + var pathToDb = GetDbPath(); + Logger.LogDebug($"DB file stored in {pathToDb}"); + + var options = CreateBeaconOptions(pathToDb); + InitializeBeaconClient(options); + + ConnectAndHandleAccount(); } public string GetActiveAccountAddress() @@ -284,10 +318,6 @@ public void RequestTezosSignPayload(SignPayloadType signingType, string payload) BeaconDappClient.RequestSign(NetezosExtensions.GetPayloadString(signingType, payload), signingType); } - #endregion - - #region BeaconSDK - private async void OnBeaconDappClientMessageReceived(object sender, BeaconMessageEventArgs e) { if (e.PairingDone) @@ -408,8 +438,6 @@ await BeaconDappClient.PermissionInfoRepository.TryReadBySenderIdAsync(signPaylo public void OnReady() { } - - #endregion } // todo: this logger didn't work inside Beacon, improve this. diff --git a/Runtime/Scripts/Beacon/WalletEventManager.cs b/Runtime/Scripts/Beacon/WalletEventManager.cs index aac2d209..930751bd 100644 --- a/Runtime/Scripts/Beacon/WalletEventManager.cs +++ b/Runtime/Scripts/Beacon/WalletEventManager.cs @@ -266,42 +266,6 @@ public void HandleEvent(string jsonEventData) } } - private void HandleAccountConnected(string data) - { - var accountInfo = JsonUtility.FromJson(data); - accountConnected?.Invoke(accountInfo); - } - - private void HandleAccountConnectionFailed(string data) - { - var errorInfo = JsonUtility.FromJson(data); - accountConnectionFailed?.Invoke(errorInfo); - } - - private void HandleAccountDisconnected(string data) - { - var accountInfo = JsonUtility.FromJson(data); - accountDisconnected?.Invoke(accountInfo); - } - - private void HandleContractCallCompleted(string data) - { - var operationResult = JsonUtility.FromJson(data); - contractCallCompleted?.Invoke(operationResult); - } - - private void HandleContractCallFailed(string data) - { - var errorInfo = JsonUtility.FromJson(data); - contractCallFailed?.Invoke(errorInfo); - } - - private void HandleContractCallInjected(string data) - { - var operationResult = JsonUtility.FromJson(data); - contractCallInjected?.Invoke(operationResult); - } - /// /// Deserializes the event data and invokes the corresponding event delegate. /// @@ -318,24 +282,6 @@ private void HandleEvent(string data, Action eventAction) var deserializedData = JsonUtility.FromJson(data); eventAction?.Invoke(deserializedData); } - - private void HandleHandshakeReceived(string data) - { - var handshakeData = JsonUtility.FromJson(data); - handshakeReceived?.Invoke(handshakeData); // Invoke the event with the object. - } - - private void HandlePairingCompleted(string data) - { - var pairingDoneData = JsonUtility.FromJson(data); - pairingCompleted?.Invoke(pairingDoneData); - } - - private void HandlePayloadSigned(string data) - { - var signResult = JsonUtility.FromJson(data); - payloadSigned?.Invoke(signResult); - } } /// From 6c51314f292bdfca7234a79656be6152cef5cd4f Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Mon, 20 Nov 2023 13:05:01 +0000 Subject: [PATCH 07/12] - EventTypeContractCallInjected -> EventTypeContractCallCompleted in TrackTransaction() --- Runtime/Scripts/Tezos/Wallet/WalletProvider.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs index 13979a77..ada7ced6 100644 --- a/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs +++ b/Runtime/Scripts/Tezos/Wallet/WalletProvider.cs @@ -101,13 +101,13 @@ private IEnumerator TrackTransaction(string transactionHash) TransactionHash = transactionHash }; - var contactCallInjectedEvent = new UnifiedEvent + var contractCallCompletedEvent = new UnifiedEvent { - EventType = WalletEventManager.EventTypeContractCallInjected, + EventType = WalletEventManager.EventTypeContractCallCompleted, Data = JsonUtility.ToJson(operationResult) }; - EventManager.HandleEvent(JsonUtility.ToJson(contactCallInjectedEvent)); + EventManager.HandleEvent(JsonUtility.ToJson(contractCallCompletedEvent)); } From e4c2242db69b1266dd64aa654da82ea70d2dc4ac Mon Sep 17 00:00:00 2001 From: Can Berk T <53381468+cnbrk13@users.noreply.github.com> Date: Mon, 20 Nov 2023 15:22:49 +0000 Subject: [PATCH 08/12] - TriggerHandshakeEvent() on account disconnect --- Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs index 34e3b3b9..ddbe91b9 100644 --- a/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs +++ b/Runtime/Scripts/Beacon/BeaconConnectorDotNet.cs @@ -131,6 +131,11 @@ private UnifiedEvent CreateAccountConnectedEvent(PermissionInfo activeAccountPer } private void HandleMissingActiveAccount() + { + TriggerHandshakeEvent(); + } + + private void TriggerHandshakeEvent() { var handshakeData = new HandshakeData { @@ -192,7 +197,8 @@ public void DisconnectAccount() }; BeaconDappClient.RemoveActiveAccounts(); - + + TriggerHandshakeEvent(); UnityMainThreadDispatcher.Enqueue(() => eventManager.HandleEvent(JsonUtility.ToJson(disconnectEvent))); } From 09d5a231acbfbc60edc0f9fdb45f2b4aff0c700c Mon Sep 17 00:00:00 2001 From: Konst Date: Fri, 24 Nov 2023 15:30:09 +0300 Subject: [PATCH 09/12] Updated WebGL to use UnityEvent type; --- .../output/StreamingAssets/webgl-frontend.js | 2 +- .../src/WalletProviders/BaseWallet.ts | 64 +++++++++++++------ WebGLFrontend/src/WalletProviders/Beacon.ts | 29 +++++---- WebGLFrontend/src/WalletProviders/Kukai.ts | 20 +++--- WebGLFrontend/src/WalletProviders/Types.ts | 28 +++++++- 5 files changed, 99 insertions(+), 44 deletions(-) diff --git a/WebGLFrontend/output/StreamingAssets/webgl-frontend.js b/WebGLFrontend/output/StreamingAssets/webgl-frontend.js index 18f907a0..e5282c52 100644 --- a/WebGLFrontend/output/StreamingAssets/webgl-frontend.js +++ b/WebGLFrontend/output/StreamingAssets/webgl-frontend.js @@ -1,2 +1,2 @@ /*! For license information please see webgl-frontend.js.LICENSE.txt */ -(()=>{var e={8099:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(7117);function r(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>8,t[n+1]=e>>>0,t}function o(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t}function s(e,t){return void 0===t&&(t=0),e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function a(e,t){return void 0===t&&(t=0),(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function c(e,t){return void 0===t&&(t=0),e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]}function l(e,t){return void 0===t&&(t=0),(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0}function u(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>24,t[n+1]=e>>>16,t[n+2]=e>>>8,t[n+3]=e>>>0,t}function h(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t[n+2]=e>>>16,t[n+3]=e>>>24,t}function d(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),u(e/4294967296>>>0,t,n),u(e>>>0,t,n+4),t}function f(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),h(e>>>0,t,n),h(e/4294967296>>>0,t,n+4),t}t.readInt16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])<<16>>16},t.readUint16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])>>>0},t.readInt16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])<<16>>16},t.readUint16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])>>>0},t.writeUint16BE=r,t.writeInt16BE=r,t.writeUint16LE=o,t.writeInt16LE=o,t.readInt32BE=s,t.readUint32BE=a,t.readInt32LE=c,t.readUint32LE=l,t.writeUint32BE=u,t.writeInt32BE=u,t.writeUint32LE=h,t.writeInt32LE=h,t.readInt64BE=function(e,t){void 0===t&&(t=0);var n=s(e,t),i=s(e,t+4);return 4294967296*n+i-4294967296*(i>>31)},t.readUint64BE=function(e,t){return void 0===t&&(t=0),4294967296*a(e,t)+a(e,t+4)},t.readInt64LE=function(e,t){void 0===t&&(t=0);var n=c(e,t);return 4294967296*c(e,t+4)+n-4294967296*(n>>31)},t.readUint64LE=function(e,t){void 0===t&&(t=0);var n=l(e,t);return 4294967296*l(e,t+4)+n},t.writeUint64BE=d,t.writeInt64BE=d,t.writeUint64LE=f,t.writeInt64LE=f,t.readUintBE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintBE: array is too short for the given bitLength");for(var i=0,r=1,o=e/8+n-1;o>=n;o--)i+=t[o]*r,r*=256;return i},t.readUintLE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintLE: array is too short for the given bitLength");for(var i=0,r=1,o=n;o=r;s--)n[s]=t/o&255,o*=256;return n},t.writeUintLE=function(e,t,n,r){if(void 0===n&&(n=new Uint8Array(e/8)),void 0===r&&(r=0),e%8!=0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!i.isSafeInteger(t))throw new Error("writeUintLE value must be an integer");for(var o=1,s=r;s{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(8099),r=n(7309);t.BLOCK_SIZE=128,t.DIGEST_LENGTH=64,t.KEY_LENGTH=64,t.PERSONALIZATION_LENGTH=16,t.SALT_LENGTH=16,t.MAX_LEAF_SIZE=Math.pow(2,32)-1,t.MAX_FANOUT=255,t.MAX_MAX_DEPTH=255;var o=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6],[22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8],[14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16],[18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26],[4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18],[24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22],[26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20],[12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10],[20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0],[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6]],a=function(){function e(e,n){if(void 0===e&&(e=64),this.digestLength=e,this.blockSize=t.BLOCK_SIZE,this._state=new Int32Array(o),this._buffer=new Uint8Array(t.BLOCK_SIZE),this._bufferLength=0,this._ctr=new Uint32Array(4),this._flag=new Uint32Array(4),this._lastNode=!1,this._finished=!1,this._vtmp=new Uint32Array(32),this._mtmp=new Uint32Array(32),e<1||e>t.DIGEST_LENGTH)throw new Error("blake2b: wrong digest length");n&&this.validateConfig(n);var r=0;n&&n.key&&(r=n.key.length);var s=1,a=1;n&&n.tree&&(s=n.tree.fanout,a=n.tree.maxDepth),this._state[0]^=e|r<<8|s<<16|a<<24,n&&n.tree&&(this._state[1]^=n.tree.leafSize,this._state[2]^=n.tree.nodeOffsetLowBits,this._state[3]^=n.tree.nodeOffsetHighBits,this._state[4]^=n.tree.nodeDepth|n.tree.innerDigestLength<<8,this._lastNode=n.tree.lastNode),n&&n.salt&&(this._state[8]^=i.readUint32LE(n.salt,0),this._state[9]^=i.readUint32LE(n.salt,4),this._state[10]^=i.readUint32LE(n.salt,8),this._state[11]^=i.readUint32LE(n.salt,12)),n&&n.personalization&&(this._state[12]^=i.readUint32LE(n.personalization,0),this._state[13]^=i.readUint32LE(n.personalization,4),this._state[14]^=i.readUint32LE(n.personalization,8),this._state[15]^=i.readUint32LE(n.personalization,12)),this._initialState=new Uint32Array(this._state),n&&n.key&&r>0&&(this._paddedKey=new Uint8Array(t.BLOCK_SIZE),this._paddedKey.set(n.key),this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE)}return e.prototype.reset=function(){return this._state.set(this._initialState),this._paddedKey?(this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE):this._bufferLength=0,r.wipe(this._ctr),r.wipe(this._flag),this._finished=!1,this},e.prototype.validateConfig=function(e){if(e.key&&e.key.length>t.KEY_LENGTH)throw new Error("blake2b: wrong key length");if(e.salt&&e.salt.length!==t.SALT_LENGTH)throw new Error("blake2b: wrong salt length");if(e.personalization&&e.personalization.length!==t.PERSONALIZATION_LENGTH)throw new Error("blake2b: wrong personalization length");if(e.tree){if(e.tree.fanout<0||e.tree.fanout>t.MAX_FANOUT)throw new Error("blake2b: wrong tree fanout");if(e.tree.maxDepth<0||e.tree.maxDepth>t.MAX_MAX_DEPTH)throw new Error("blake2b: wrong tree depth");if(e.tree.leafSize<0||e.tree.leafSize>t.MAX_LEAF_SIZE)throw new Error("blake2b: wrong leaf size");if(e.tree.innerDigestLength<0||e.tree.innerDigestLength>t.DIGEST_LENGTH)throw new Error("blake2b: wrong tree inner digest length")}},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("blake2b: can't update because hash was finished.");var i=t.BLOCK_SIZE-this._bufferLength,r=0;if(0===n)return this;if(n>i){for(var o=0;ot.BLOCK_SIZE;){for(o=0;o>>16,I=65535&p,A=p>>>16;S+=g>>>16,I+=65535&y,A+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(A+=I>>>16)<<16),A=p>>>16,S+=l>>>16,I+=65535&u,A+=u>>>16,f=65535&(E+=65535&l)|(S+=E>>>16)<<16,E=w^=p=65535&(I+=S>>>16)|(A+=I>>>16)<<16,w=v^=f,v=E,E=65535&b,S=b>>>16,I=65535&m,A=m>>>16,S+=v>>>16,I+=65535&w,A+=w>>>16,E=(g^=b=65535&(E+=65535&v)|(S+=E>>>16)<<16)<<8|(y^=m=65535&(I+=S>>>16)|(A+=I>>>16)<<16)>>>24,g=y<<8|g>>>24,y=E,E=65535&f,S=f>>>16,I=65535&p,A=p>>>16,S+=g>>>16,I+=65535&y,A+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(A+=I>>>16)<<16),A=p>>>16,S+=h>>>16,I+=65535&d,A+=d>>>16,E=(v^=f=65535&(E+=65535&h)|(S+=E>>>16)<<16)<<16|(w^=p=65535&(I+=S>>>16)|(A+=I>>>16)<<16)>>>16,v=w<<16|v>>>16,w=E,E=65535&b,S=b>>>16,I=65535&m,A=m>>>16,S+=v>>>16,I+=65535&w,A+=w>>>16,E=(y^=m=65535&(I+=(S+=(E+=65535&v)>>>16)>>>16)|(A+=I>>>16)<<16)<<1|(g^=b=65535&E|S<<16)>>>31,g=g<<1|y>>>31,y=E,e[t]=f,e[o]=p,e[n]=g,e[s]=y,e[i]=b,e[a]=m,e[r]=v,e[c]=w},e.prototype._incrementCounter=function(e){for(var t=0;t<3;t++){var n=this._ctr[t]+e;if(this._ctr[t]=n>>>0,this._ctr[t]===n)return;e=1}},e.prototype._processBlock=function(e){this._incrementCounter(e);var t=this._vtmp;t.set(this._state),t.set(o,16),t[24]^=this._ctr[0],t[25]^=this._ctr[1],t[26]^=this._ctr[2],t[27]^=this._ctr[3],t[28]^=this._flag[0],t[29]^=this._flag[1],t[30]^=this._flag[2],t[31]^=this._flag[3];for(var n=this._mtmp,r=0;r<32;r++)n[r]=i.readUint32LE(this._buffer,4*r);for(var a=0;a<12;a++)this._G(t,0,8,16,24,1,9,17,25,n[s[a][0]],n[s[a][0]+1],n[s[a][1]],n[s[a][1]+1]),this._G(t,2,10,18,26,3,11,19,27,n[s[a][2]],n[s[a][2]+1],n[s[a][3]],n[s[a][3]+1]),this._G(t,4,12,20,28,5,13,21,29,n[s[a][4]],n[s[a][4]+1],n[s[a][5]],n[s[a][5]+1]),this._G(t,6,14,22,30,7,15,23,31,n[s[a][6]],n[s[a][6]+1],n[s[a][7]],n[s[a][7]+1]),this._G(t,0,10,20,30,1,11,21,31,n[s[a][8]],n[s[a][8]+1],n[s[a][9]],n[s[a][9]+1]),this._G(t,2,12,22,24,3,13,23,25,n[s[a][10]],n[s[a][10]+1],n[s[a][11]],n[s[a][11]+1]),this._G(t,4,14,16,26,5,15,17,27,n[s[a][12]],n[s[a][12]+1],n[s[a][13]],n[s[a][13]+1]),this._G(t,6,8,18,28,7,9,19,29,n[s[a][14]],n[s[a][14]+1],n[s[a][15]],n[s[a][15]+1]);for(r=0;r<16;r++)this._state[r]^=t[r]^t[r+16]},e}();t.BLAKE2b=a,t.hash=function(e,n,i){void 0===n&&(n=t.DIGEST_LENGTH);var r=new a(n,i);r.update(e);var o=r.digest();return r.clean(),o}},3683:(e,t)=>{"use strict";t.z=function(){for(var e=0,t=0;t{"use strict";var i=n(5439),r=n(3027),o=n(7309),s=n(8099),a=n(4153);t.Cv=32,t.WH=12,t.pg=16;var c=new Uint8Array(16),l=function(){function e(e){if(this.nonceLength=t.WH,this.tagLength=t.pg,e.length!==t.Cv)throw new Error("ChaCha20Poly1305 needs 32-byte key");this._key=new Uint8Array(e)}return e.prototype.seal=function(e,t,n,r){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var s=new Uint8Array(16);s.set(e,s.length-e.length);var a=new Uint8Array(32);i.stream(this._key,s,a,4);var c,l=t.length+this.tagLength;if(r){if(r.length!==l)throw new Error("ChaCha20Poly1305: incorrect destination length");c=r}else c=new Uint8Array(l);return i.streamXOR(this._key,s,t,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),a,c.subarray(0,c.length-this.tagLength),n),o.wipe(s),c},e.prototype.open=function(e,t,n,r){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(t.length0&&a.update(c.subarray(i.length%16))),a.update(n),n.length%16>0&&a.update(c.subarray(n.length%16));var l=new Uint8Array(8);i&&s.writeUint64LE(i.length,l),a.update(l),s.writeUint64LE(n.length,l),a.update(l);for(var u=a.digest(),h=0;h{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(8099),r=n(7309),o=20;function s(e,t,n){for(var r=1634760805,s=857760878,a=2036477234,c=1797285236,l=n[3]<<24|n[2]<<16|n[1]<<8|n[0],u=n[7]<<24|n[6]<<16|n[5]<<8|n[4],h=n[11]<<24|n[10]<<16|n[9]<<8|n[8],d=n[15]<<24|n[14]<<16|n[13]<<8|n[12],f=n[19]<<24|n[18]<<16|n[17]<<8|n[16],p=n[23]<<24|n[22]<<16|n[21]<<8|n[20],g=n[27]<<24|n[26]<<16|n[25]<<8|n[24],y=n[31]<<24|n[30]<<16|n[29]<<8|n[28],b=t[3]<<24|t[2]<<16|t[1]<<8|t[0],m=t[7]<<24|t[6]<<16|t[5]<<8|t[4],v=t[11]<<24|t[10]<<16|t[9]<<8|t[8],w=t[15]<<24|t[14]<<16|t[13]<<8|t[12],E=r,S=s,I=a,A=c,R=l,x=u,M=h,T=d,k=f,O=p,U=g,C=y,P=b,N=m,K=v,L=w,q=0;q>>16|P<<16)|0)>>>20|R<<12,x=(x^=O=O+(N=(N^=S=S+x|0)>>>16|N<<16)|0)>>>20|x<<12,M=(M^=U=U+(K=(K^=I=I+M|0)>>>16|K<<16)|0)>>>20|M<<12,T=(T^=C=C+(L=(L^=A=A+T|0)>>>16|L<<16)|0)>>>20|T<<12,M=(M^=U=U+(K=(K^=I=I+M|0)>>>24|K<<8)|0)>>>25|M<<7,T=(T^=C=C+(L=(L^=A=A+T|0)>>>24|L<<8)|0)>>>25|T<<7,x=(x^=O=O+(N=(N^=S=S+x|0)>>>24|N<<8)|0)>>>25|x<<7,R=(R^=k=k+(P=(P^=E=E+R|0)>>>24|P<<8)|0)>>>25|R<<7,x=(x^=U=U+(L=(L^=E=E+x|0)>>>16|L<<16)|0)>>>20|x<<12,M=(M^=C=C+(P=(P^=S=S+M|0)>>>16|P<<16)|0)>>>20|M<<12,T=(T^=k=k+(N=(N^=I=I+T|0)>>>16|N<<16)|0)>>>20|T<<12,R=(R^=O=O+(K=(K^=A=A+R|0)>>>16|K<<16)|0)>>>20|R<<12,T=(T^=k=k+(N=(N^=I=I+T|0)>>>24|N<<8)|0)>>>25|T<<7,R=(R^=O=O+(K=(K^=A=A+R|0)>>>24|K<<8)|0)>>>25|R<<7,M=(M^=C=C+(P=(P^=S=S+M|0)>>>24|P<<8)|0)>>>25|M<<7,x=(x^=U=U+(L=(L^=E=E+x|0)>>>24|L<<8)|0)>>>25|x<<7;i.writeUint32LE(E+r|0,e,0),i.writeUint32LE(S+s|0,e,4),i.writeUint32LE(I+a|0,e,8),i.writeUint32LE(A+c|0,e,12),i.writeUint32LE(R+l|0,e,16),i.writeUint32LE(x+u|0,e,20),i.writeUint32LE(M+h|0,e,24),i.writeUint32LE(T+d|0,e,28),i.writeUint32LE(k+f|0,e,32),i.writeUint32LE(O+p|0,e,36),i.writeUint32LE(U+g|0,e,40),i.writeUint32LE(C+y|0,e,44),i.writeUint32LE(P+b|0,e,48),i.writeUint32LE(N+m|0,e,52),i.writeUint32LE(K+v|0,e,56),i.writeUint32LE(L+w|0,e,60)}function a(e,t,n,i,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("ChaCha: key size must be 32 bytes");if(i.length>>=8,t++;if(i>0)throw new Error("ChaCha: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,i){return void 0===i&&(i=0),r.wipe(n),a(e,t,n,n,i)}},4153:(e,t)=>{"use strict";function n(e,t){if(e.length!==t.length)return 0;for(var n=0,i=0;i>>8}Object.defineProperty(t,"__esModule",{value:!0}),t.select=function(e,t,n){return~(e-1)&t|e-1&n},t.lessOrEqual=function(e,t){return(0|e)-(0|t)-1>>>31&1},t.compare=n,t.equal=function(e,t){return 0!==e.length&&0!==t.length&&0!==n(e,t)}},1050:(e,t,n)=>{"use strict";t.zh=t.SH=t.Xx=t._w=t.aP=t.KS=t.jQ=void 0;const i=n(1416),r=n(3350),o=n(7309);function s(e){const t=new Float64Array(16);if(e)for(let n=0;n>16&1),n[e-1]&=65535;n[15]=i[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,y(i,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&i[t],e[2*t+1]=i[t]>>8}function m(e,t){let n=0;for(let i=0;i<32;i++)n|=e[i]^t[i];return(1&n-1>>>8)-1}function v(e,t){const n=new Uint8Array(32),i=new Uint8Array(32);return b(n,e),b(i,t),m(n,i)}function w(e){const t=new Uint8Array(32);return b(t,e),1&t[0]}function E(e,t,n){for(let i=0;i<16;i++)e[i]=t[i]+n[i]}function S(e,t,n){for(let i=0;i<16;i++)e[i]=t[i]-n[i]}function I(e,t,n){let i,r,o=0,s=0,a=0,c=0,l=0,u=0,h=0,d=0,f=0,p=0,g=0,y=0,b=0,m=0,v=0,w=0,E=0,S=0,I=0,A=0,R=0,x=0,M=0,T=0,k=0,O=0,U=0,C=0,P=0,N=0,K=0,L=n[0],q=n[1],z=n[2],V=n[3],F=n[4],j=n[5],D=n[6],B=n[7],W=n[8],J=n[9],Z=n[10],Q=n[11],H=n[12],G=n[13],Y=n[14],X=n[15];i=t[0],o+=i*L,s+=i*q,a+=i*z,c+=i*V,l+=i*F,u+=i*j,h+=i*D,d+=i*B,f+=i*W,p+=i*J,g+=i*Z,y+=i*Q,b+=i*H,m+=i*G,v+=i*Y,w+=i*X,i=t[1],s+=i*L,a+=i*q,c+=i*z,l+=i*V,u+=i*F,h+=i*j,d+=i*D,f+=i*B,p+=i*W,g+=i*J,y+=i*Z,b+=i*Q,m+=i*H,v+=i*G,w+=i*Y,E+=i*X,i=t[2],a+=i*L,c+=i*q,l+=i*z,u+=i*V,h+=i*F,d+=i*j,f+=i*D,p+=i*B,g+=i*W,y+=i*J,b+=i*Z,m+=i*Q,v+=i*H,w+=i*G,E+=i*Y,S+=i*X,i=t[3],c+=i*L,l+=i*q,u+=i*z,h+=i*V,d+=i*F,f+=i*j,p+=i*D,g+=i*B,y+=i*W,b+=i*J,m+=i*Z,v+=i*Q,w+=i*H,E+=i*G,S+=i*Y,I+=i*X,i=t[4],l+=i*L,u+=i*q,h+=i*z,d+=i*V,f+=i*F,p+=i*j,g+=i*D,y+=i*B,b+=i*W,m+=i*J,v+=i*Z,w+=i*Q,E+=i*H,S+=i*G,I+=i*Y,A+=i*X,i=t[5],u+=i*L,h+=i*q,d+=i*z,f+=i*V,p+=i*F,g+=i*j,y+=i*D,b+=i*B,m+=i*W,v+=i*J,w+=i*Z,E+=i*Q,S+=i*H,I+=i*G,A+=i*Y,R+=i*X,i=t[6],h+=i*L,d+=i*q,f+=i*z,p+=i*V,g+=i*F,y+=i*j,b+=i*D,m+=i*B,v+=i*W,w+=i*J,E+=i*Z,S+=i*Q,I+=i*H,A+=i*G,R+=i*Y,x+=i*X,i=t[7],d+=i*L,f+=i*q,p+=i*z,g+=i*V,y+=i*F,b+=i*j,m+=i*D,v+=i*B,w+=i*W,E+=i*J,S+=i*Z,I+=i*Q,A+=i*H,R+=i*G,x+=i*Y,M+=i*X,i=t[8],f+=i*L,p+=i*q,g+=i*z,y+=i*V,b+=i*F,m+=i*j,v+=i*D,w+=i*B,E+=i*W,S+=i*J,I+=i*Z,A+=i*Q,R+=i*H,x+=i*G,M+=i*Y,T+=i*X,i=t[9],p+=i*L,g+=i*q,y+=i*z,b+=i*V,m+=i*F,v+=i*j,w+=i*D,E+=i*B,S+=i*W,I+=i*J,A+=i*Z,R+=i*Q,x+=i*H,M+=i*G,T+=i*Y,k+=i*X,i=t[10],g+=i*L,y+=i*q,b+=i*z,m+=i*V,v+=i*F,w+=i*j,E+=i*D,S+=i*B,I+=i*W,A+=i*J,R+=i*Z,x+=i*Q,M+=i*H,T+=i*G,k+=i*Y,O+=i*X,i=t[11],y+=i*L,b+=i*q,m+=i*z,v+=i*V,w+=i*F,E+=i*j,S+=i*D,I+=i*B,A+=i*W,R+=i*J,x+=i*Z,M+=i*Q,T+=i*H,k+=i*G,O+=i*Y,U+=i*X,i=t[12],b+=i*L,m+=i*q,v+=i*z,w+=i*V,E+=i*F,S+=i*j,I+=i*D,A+=i*B,R+=i*W,x+=i*J,M+=i*Z,T+=i*Q,k+=i*H,O+=i*G,U+=i*Y,C+=i*X,i=t[13],m+=i*L,v+=i*q,w+=i*z,E+=i*V,S+=i*F,I+=i*j,A+=i*D,R+=i*B,x+=i*W,M+=i*J,T+=i*Z,k+=i*Q,O+=i*H,U+=i*G,C+=i*Y,P+=i*X,i=t[14],v+=i*L,w+=i*q,E+=i*z,S+=i*V,I+=i*F,A+=i*j,R+=i*D,x+=i*B,M+=i*W,T+=i*J,k+=i*Z,O+=i*Q,U+=i*H,C+=i*G,P+=i*Y,N+=i*X,i=t[15],w+=i*L,E+=i*q,S+=i*z,I+=i*V,A+=i*F,R+=i*j,x+=i*D,M+=i*B,T+=i*W,k+=i*J,O+=i*Z,U+=i*Q,C+=i*H,P+=i*G,N+=i*Y,K+=i*X,o+=38*E,s+=38*S,a+=38*I,c+=38*A,l+=38*R,u+=38*x,h+=38*M,d+=38*T,f+=38*k,p+=38*O,g+=38*U,y+=38*C,b+=38*P,m+=38*N,v+=38*K,r=1,i=o+r+65535,r=Math.floor(i/65536),o=i-65536*r,i=s+r+65535,r=Math.floor(i/65536),s=i-65536*r,i=a+r+65535,r=Math.floor(i/65536),a=i-65536*r,i=c+r+65535,r=Math.floor(i/65536),c=i-65536*r,i=l+r+65535,r=Math.floor(i/65536),l=i-65536*r,i=u+r+65535,r=Math.floor(i/65536),u=i-65536*r,i=h+r+65535,r=Math.floor(i/65536),h=i-65536*r,i=d+r+65535,r=Math.floor(i/65536),d=i-65536*r,i=f+r+65535,r=Math.floor(i/65536),f=i-65536*r,i=p+r+65535,r=Math.floor(i/65536),p=i-65536*r,i=g+r+65535,r=Math.floor(i/65536),g=i-65536*r,i=y+r+65535,r=Math.floor(i/65536),y=i-65536*r,i=b+r+65535,r=Math.floor(i/65536),b=i-65536*r,i=m+r+65535,r=Math.floor(i/65536),m=i-65536*r,i=v+r+65535,r=Math.floor(i/65536),v=i-65536*r,i=w+r+65535,r=Math.floor(i/65536),w=i-65536*r,o+=r-1+37*(r-1),r=1,i=o+r+65535,r=Math.floor(i/65536),o=i-65536*r,i=s+r+65535,r=Math.floor(i/65536),s=i-65536*r,i=a+r+65535,r=Math.floor(i/65536),a=i-65536*r,i=c+r+65535,r=Math.floor(i/65536),c=i-65536*r,i=l+r+65535,r=Math.floor(i/65536),l=i-65536*r,i=u+r+65535,r=Math.floor(i/65536),u=i-65536*r,i=h+r+65535,r=Math.floor(i/65536),h=i-65536*r,i=d+r+65535,r=Math.floor(i/65536),d=i-65536*r,i=f+r+65535,r=Math.floor(i/65536),f=i-65536*r,i=p+r+65535,r=Math.floor(i/65536),p=i-65536*r,i=g+r+65535,r=Math.floor(i/65536),g=i-65536*r,i=y+r+65535,r=Math.floor(i/65536),y=i-65536*r,i=b+r+65535,r=Math.floor(i/65536),b=i-65536*r,i=m+r+65535,r=Math.floor(i/65536),m=i-65536*r,i=v+r+65535,r=Math.floor(i/65536),v=i-65536*r,i=w+r+65535,r=Math.floor(i/65536),w=i-65536*r,o+=r-1+37*(r-1),e[0]=o,e[1]=s,e[2]=a,e[3]=c,e[4]=l,e[5]=u,e[6]=h,e[7]=d,e[8]=f,e[9]=p,e[10]=g,e[11]=y,e[12]=b,e[13]=m,e[14]=v,e[15]=w}function A(e,t){I(e,t,t)}function R(e,t){const n=s();let i;for(i=0;i<16;i++)n[i]=t[i];for(i=253;i>=0;i--)A(n,n),2!==i&&4!==i&&I(n,n,t);for(i=0;i<16;i++)e[i]=n[i]}function x(e,t){const n=s(),i=s(),r=s(),o=s(),a=s(),c=s(),l=s(),h=s(),d=s();S(n,e[1],e[0]),S(d,t[1],t[0]),I(n,n,d),E(i,e[0],e[1]),E(d,t[0],t[1]),I(i,i,d),I(r,e[3],t[3]),I(r,r,u),I(o,e[2],t[2]),E(o,o,o),S(a,i,n),S(c,o,r),E(l,o,r),E(h,i,n),I(e[0],a,c),I(e[1],h,l),I(e[2],l,c),I(e[3],a,h)}function M(e,t,n){for(let i=0;i<4;i++)y(e[i],t[i],n)}function T(e,t){const n=s(),i=s(),r=s();R(r,t[2]),I(n,t[0],r),I(i,t[1],r),b(e,i),e[31]^=w(n)<<7}function k(e,t,n){p(e[0],a),p(e[1],c),p(e[2],c),p(e[3],a);for(let i=255;i>=0;--i){const r=n[i/8|0]>>(7&i)&1;M(e,t,r),x(t,e),x(e,e),M(e,t,r)}}function O(e,t){const n=[s(),s(),s(),s()];p(n[0],h),p(n[1],d),p(n[2],c),I(n[3],h,d),k(e,n,t)}function U(e){if(e.length!==t.aP)throw new Error(`ed25519: seed must be ${t.aP} bytes`);const n=(0,r.hash)(e);n[0]&=248,n[31]&=127,n[31]|=64;const i=new Uint8Array(32),o=[s(),s(),s(),s()];O(o,n),T(i,o);const a=new Uint8Array(64);return a.set(e),a.set(i,32),{publicKey:i,secretKey:a}}t._w=U;const C=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function P(e,t){let n,i,r,o;for(i=63;i>=32;--i){for(n=0,r=i-32,o=i-12;r>4)*C[r],n=t[r]>>8,t[r]&=255;for(r=0;r<32;r++)t[r]-=n*C[r];for(i=0;i<32;i++)t[i+1]+=t[i]>>8,e[i]=255&t[i]}function N(e){const t=new Float64Array(64);for(let n=0;n<64;n++)t[n]=e[n];for(let t=0;t<64;t++)e[t]=0;P(e,t)}function K(e,t){const n=s(),i=s(),r=s(),o=s(),u=s(),h=s(),d=s();return p(e[2],c),function(e,t){for(let n=0;n<16;n++)e[n]=t[2*n]+(t[2*n+1]<<8);e[15]&=32767}(e[1],t),A(r,e[1]),I(o,r,l),S(r,r,e[2]),E(o,e[2],o),A(u,o),A(h,u),I(d,h,u),I(n,d,r),I(n,n,o),function(e,t){const n=s();let i;for(i=0;i<16;i++)n[i]=t[i];for(i=250;i>=0;i--)A(n,n),1!==i&&I(n,n,t);for(i=0;i<16;i++)e[i]=n[i]}(n,n),I(n,n,r),I(n,n,o),I(n,n,o),I(e[0],n,o),A(i,e[0]),I(i,i,o),v(i,r)&&I(e[0],e[0],f),A(i,e[0]),I(i,i,o),v(i,r)?-1:(w(e[0])===t[31]>>7&&S(e[0],a,e[0]),I(e[3],e[0],e[1]),0)}t.Xx=function(e,t){const n=new Float64Array(64),i=[s(),s(),s(),s()],o=(0,r.hash)(e.subarray(0,32));o[0]&=248,o[31]&=127,o[31]|=64;const a=new Uint8Array(64);a.set(o.subarray(32),32);const c=new r.SHA512;c.update(a.subarray(32)),c.update(t);const l=c.digest();c.clean(),N(l),O(i,l),T(a,i),c.reset(),c.update(a.subarray(0,32)),c.update(e.subarray(32)),c.update(t);const u=c.digest();N(u);for(let e=0;e<32;e++)n[e]=l[e];for(let e=0;e<32;e++)for(let t=0;t<32;t++)n[e+t]+=u[e]*o[t];return P(a.subarray(32),n),a},t.SH=function(e){let t=[s(),s(),s(),s()];if(K(t,e))throw new Error("Ed25519: invalid public key");let n=s(),i=s(),r=t[1];E(n,c,r),S(i,c,r),R(i,i),I(n,n,i);let o=new Uint8Array(32);return b(o,n),o},t.zh=function(e){const t=(0,r.hash)(e.subarray(0,32));t[0]&=248,t[31]&=127,t[31]|=64;const n=new Uint8Array(t.subarray(0,32));return(0,o.wipe)(t),n}},9984:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSerializableHash=function(e){return void 0!==e.saveState&&void 0!==e.restoreState&&void 0!==e.cleanSavedState}},512:(e,t,n)=>{"use strict";var i=n(5629),r=n(7309),o=function(){function e(e,t,n,r){void 0===n&&(n=new Uint8Array(0)),this._counter=new Uint8Array(1),this._hash=e,this._info=r;var o=i.hmac(this._hash,n,t);this._hmac=new i.HMAC(e,o),this._buffer=new Uint8Array(this._hmac.digestLength),this._bufpos=this._buffer.length}return e.prototype._fillBuffer=function(){this._counter[0]++;var e=this._counter[0];if(0===e)throw new Error("hkdf: cannot expand more");this._hmac.reset(),e>1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},e.prototype.expand=function(e){for(var t=new Uint8Array(e),n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(9984),r=n(4153),o=n(7309),s=function(){function e(e,t){this._finished=!1,this._inner=new e,this._outer=new e,this.blockSize=this._outer.blockSize,this.digestLength=this._outer.digestLength;var n=new Uint8Array(this.blockSize);t.length>this.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(var r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mul=Math.imul||function(e,t){var n=65535&e,i=65535&t;return n*i+((e>>>16&65535)*i+n*(t>>>16&65535)<<16>>>0)|0},t.add=function(e,t){return e+t|0},t.sub=function(e,t){return e-t|0},t.rotl=function(e,t){return e<>>32-t},t.rotr=function(e,t){return e<<32-t|e>>>t},t.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},t.MAX_SAFE_INTEGER=9007199254740991,t.isSafeInteger=function(e){return t.isInteger(e)&&e>=-t.MAX_SAFE_INTEGER&&e<=t.MAX_SAFE_INTEGER}},19:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.openBox=t.box=t.precomputeSharedKey=t.generateKeyPair=void 0;const i=n(7664),r=n(7025),o=n(7801),s=n(7309);var a=n(7664);Object.defineProperty(t,"generateKeyPair",{enumerable:!0,get:function(){return a.generateKeyPair}});const c=new Uint8Array(16);function l(e,t){const n=(0,i.scalarMult)(t,e);return(0,r.hsalsa)(n,c,n),n}t.precomputeSharedKey=l,t.box=function(e,t,n,i){const r=l(e,t),a=(0,o.secretBox)(r,n,i);return(0,s.wipe)(r),a},t.openBox=function(e,t,n,i){const r=l(e,t),a=(0,o.openSecretBox)(r,n,i);return(0,s.wipe)(r),a}},450:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(19),t),r(n(7801),t)},7801:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateKey=t.openSecretBox=t.secretBox=void 0;const i=n(7025),r=n(3027),o=n(7309),s=n(1416);t.secretBox=function(e,t,n){if(24!==t.length)throw new Error("secretBox nonce must be 24 bytes");const s=new Uint8Array(64),a=new Uint8Array(32);a.set(t),(0,i.stream)(e,a,s,8);const c=new Uint8Array(16+n.length);for(let e=0;e<32&&e32&&(0,i.streamXOR)(e,a,n.subarray(32),c.subarray(48),8);const l=(0,r.oneTimeAuth)(s.subarray(0,32),c.subarray(16));for(let e=0;e32&&(0,i.streamXOR)(e,a,l.subarray(32),u.subarray(32),8),(0,o.wipe)(c),(0,o.wipe)(s),(0,o.wipe)(a),u},t.generateKey=function(e){return(0,s.randomBytes)(32,e)}},3027:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(4153),r=n(7309);t.DIGEST_LENGTH=16;var o=function(){function e(e){this.digestLength=t.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var n=e[0]|e[1]<<8;this._r[0]=8191&n;var i=e[2]|e[3]<<8;this._r[1]=8191&(n>>>13|i<<3);var r=e[4]|e[5]<<8;this._r[2]=7939&(i>>>10|r<<6);var o=e[6]|e[7]<<8;this._r[3]=8191&(r>>>7|o<<9);var s=e[8]|e[9]<<8;this._r[4]=255&(o>>>4|s<<12),this._r[5]=s>>>1&8190;var a=e[10]|e[11]<<8;this._r[6]=8191&(s>>>14|a<<2);var c=e[12]|e[13]<<8;this._r[7]=8065&(a>>>11|c<<5);var l=e[14]|e[15]<<8;this._r[8]=8191&(c>>>8|l<<8),this._r[9]=l>>>5&127,this._pad[0]=e[16]|e[17]<<8,this._pad[1]=e[18]|e[19]<<8,this._pad[2]=e[20]|e[21]<<8,this._pad[3]=e[22]|e[23]<<8,this._pad[4]=e[24]|e[25]<<8,this._pad[5]=e[26]|e[27]<<8,this._pad[6]=e[28]|e[29]<<8,this._pad[7]=e[30]|e[31]<<8}return e.prototype._blocks=function(e,t,n){for(var i=this._fin?0:2048,r=this._h[0],o=this._h[1],s=this._h[2],a=this._h[3],c=this._h[4],l=this._h[5],u=this._h[6],h=this._h[7],d=this._h[8],f=this._h[9],p=this._r[0],g=this._r[1],y=this._r[2],b=this._r[3],m=this._r[4],v=this._r[5],w=this._r[6],E=this._r[7],S=this._r[8],I=this._r[9];n>=16;){var A=e[t+0]|e[t+1]<<8;r+=8191&A;var R=e[t+2]|e[t+3]<<8;o+=8191&(A>>>13|R<<3);var x=e[t+4]|e[t+5]<<8;s+=8191&(R>>>10|x<<6);var M=e[t+6]|e[t+7]<<8;a+=8191&(x>>>7|M<<9);var T=e[t+8]|e[t+9]<<8;c+=8191&(M>>>4|T<<12),l+=T>>>1&8191;var k=e[t+10]|e[t+11]<<8;u+=8191&(T>>>14|k<<2);var O=e[t+12]|e[t+13]<<8;h+=8191&(k>>>11|O<<5);var U=e[t+14]|e[t+15]<<8,C=0,P=C;P+=r*p,P+=o*(5*I),P+=s*(5*S),P+=a*(5*E),C=(P+=c*(5*w))>>>13,P&=8191,P+=l*(5*v),P+=u*(5*m),P+=h*(5*b),P+=(d+=8191&(O>>>8|U<<8))*(5*y);var N=C+=(P+=(f+=U>>>5|i)*(5*g))>>>13;N+=r*g,N+=o*p,N+=s*(5*I),N+=a*(5*S),C=(N+=c*(5*E))>>>13,N&=8191,N+=l*(5*w),N+=u*(5*v),N+=h*(5*m),N+=d*(5*b),C+=(N+=f*(5*y))>>>13,N&=8191;var K=C;K+=r*y,K+=o*g,K+=s*p,K+=a*(5*I),C=(K+=c*(5*S))>>>13,K&=8191,K+=l*(5*E),K+=u*(5*w),K+=h*(5*v),K+=d*(5*m);var L=C+=(K+=f*(5*b))>>>13;L+=r*b,L+=o*y,L+=s*g,L+=a*p,C=(L+=c*(5*I))>>>13,L&=8191,L+=l*(5*S),L+=u*(5*E),L+=h*(5*w),L+=d*(5*v);var q=C+=(L+=f*(5*m))>>>13;q+=r*m,q+=o*b,q+=s*y,q+=a*g,C=(q+=c*p)>>>13,q&=8191,q+=l*(5*I),q+=u*(5*S),q+=h*(5*E),q+=d*(5*w);var z=C+=(q+=f*(5*v))>>>13;z+=r*v,z+=o*m,z+=s*b,z+=a*y,C=(z+=c*g)>>>13,z&=8191,z+=l*p,z+=u*(5*I),z+=h*(5*S),z+=d*(5*E);var V=C+=(z+=f*(5*w))>>>13;V+=r*w,V+=o*v,V+=s*m,V+=a*b,C=(V+=c*y)>>>13,V&=8191,V+=l*g,V+=u*p,V+=h*(5*I),V+=d*(5*S);var F=C+=(V+=f*(5*E))>>>13;F+=r*E,F+=o*w,F+=s*v,F+=a*m,C=(F+=c*b)>>>13,F&=8191,F+=l*y,F+=u*g,F+=h*p,F+=d*(5*I);var j=C+=(F+=f*(5*S))>>>13;j+=r*S,j+=o*E,j+=s*w,j+=a*v,C=(j+=c*m)>>>13,j&=8191,j+=l*b,j+=u*y,j+=h*g,j+=d*p;var D=C+=(j+=f*(5*I))>>>13;D+=r*I,D+=o*S,D+=s*E,D+=a*w,C=(D+=c*v)>>>13,D&=8191,D+=l*m,D+=u*b,D+=h*y,D+=d*g,r=P=8191&(C=(C=((C+=(D+=f*p)>>>13)<<2)+C|0)+(P&=8191)|0),o=N+=C>>>=13,s=K&=8191,a=L&=8191,c=q&=8191,l=z&=8191,u=V&=8191,h=F&=8191,d=j&=8191,f=D&=8191,t+=16,n-=16}this._h[0]=r,this._h[1]=o,this._h[2]=s,this._h[3]=a,this._h[4]=c,this._h[5]=l,this._h[6]=u,this._h[7]=h,this._h[8]=d,this._h[9]=f},e.prototype.finish=function(e,t){void 0===t&&(t=0);var n,i,r,o,s=new Uint16Array(10);if(this._leftover){for(o=this._leftover,this._buffer[o++]=1;o<16;o++)this._buffer[o]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(n=this._h[1]>>>13,this._h[1]&=8191,o=2;o<10;o++)this._h[o]+=n,n=this._h[o]>>>13,this._h[o]&=8191;for(this._h[0]+=5*n,n=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=n,n=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=n,s[0]=this._h[0]+5,n=s[0]>>>13,s[0]&=8191,o=1;o<10;o++)s[o]=this._h[o]+n,n=s[o]>>>13,s[o]&=8191;for(s[9]-=8192,i=(1^n)-1,o=0;o<10;o++)s[o]&=i;for(i=~i,o=0;o<10;o++)this._h[o]=this._h[o]&i|s[o];for(this._h[0]=65535&(this._h[0]|this._h[1]<<13),this._h[1]=65535&(this._h[1]>>>3|this._h[2]<<10),this._h[2]=65535&(this._h[2]>>>6|this._h[3]<<7),this._h[3]=65535&(this._h[3]>>>9|this._h[4]<<4),this._h[4]=65535&(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14),this._h[5]=65535&(this._h[6]>>>2|this._h[7]<<11),this._h[6]=65535&(this._h[7]>>>5|this._h[8]<<8),this._h[7]=65535&(this._h[8]>>>8|this._h[9]<<5),r=this._h[0]+this._pad[0],this._h[0]=65535&r,o=1;o<8;o++)r=(this._h[o]+this._pad[o]|0)+(r>>>16)|0,this._h[o]=65535&r;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this},e.prototype.update=function(e){var t,n=0,i=e.length;if(this._leftover){(t=16-this._leftover)>i&&(t=i);for(var r=0;r=16&&(t=i-i%16,this._blocks(e,n,t),n+=t,i-=t),i){for(r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomStringForEntropy=t.randomString=t.randomUint32=t.randomBytes=t.defaultRandomSource=void 0;const i=n(6008),r=n(8099),o=n(7309);function s(e,n=t.defaultRandomSource){return n.randomBytes(e)}t.defaultRandomSource=new i.SystemRandomSource,t.randomBytes=s,t.randomUint32=function(e=t.defaultRandomSource){const n=s(4,e),i=(0,r.readUint32LE)(n);return(0,o.wipe)(n),i};const a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function c(e,n=a,i=t.defaultRandomSource){if(n.length<2)throw new Error("randomString charset is too short");if(n.length>256)throw new Error("randomString charset is too long");let r="";const c=n.length,l=256-256%c;for(;e>0;){const t=s(Math.ceil(256*e/l),i);for(let i=0;i0;i++){const o=t[i];o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserRandomSource=void 0;t.BrowserRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;const e="undefined"!=typeof self?self.crypto||self.msCrypto:null;e&&void 0!==e.getRandomValues&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Browser random byte generator is not available.");const t=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeRandomSource=void 0;const i=n(7309);t.NodeRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;{const e=n(5883);e&&e.randomBytes&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Node.js random byte generator is not available.");let t=this._crypto.randomBytes(e);if(t.length!==e)throw new Error("NodeRandomSource: got fewer bytes than requested");const n=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SystemRandomSource=void 0;const i=n(5455),r=n(8871);t.SystemRandomSource=class{constructor(){return this.isAvailable=!1,this.name="",this._source=new i.BrowserRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Browser")):(this._source=new r.NodeRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Node")):void 0)}randomBytes(e){if(!this.isAvailable)throw new Error("System random byte generator is not available.");return this._source.randomBytes(e)}}},7318:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(8099),r=n(7309),o=20;function s(e,t,n){for(var r,s=1634760805,a=n[3]<<24|n[2]<<16|n[1]<<8|n[0],c=n[7]<<24|n[6]<<16|n[5]<<8|n[4],l=n[11]<<24|n[10]<<16|n[9]<<8|n[8],u=n[15]<<24|n[14]<<16|n[13]<<8|n[12],h=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=n[19]<<24|n[18]<<16|n[17]<<8|n[16],m=n[23]<<24|n[22]<<16|n[21]<<8|n[20],v=n[27]<<24|n[26]<<16|n[25]<<8|n[24],w=n[31]<<24|n[30]<<16|n[29]<<8|n[28],E=1797285236,S=s,I=a,A=c,R=l,x=u,M=h,T=d,k=f,O=p,U=g,C=y,P=b,N=m,K=v,L=w,q=E,z=0;z>>25)+S|0)<<9|r>>>23)+x|0)<<13|r>>>19)+O|0)<<18|r>>>14,M^=(r=(I^=(r=(K^=(r=(U^=(r=M+I|0)<<7|r>>>25)+M|0)<<9|r>>>23)+U|0)<<13|r>>>19)+K|0)<<18|r>>>14,C^=(r=(T^=(r=(A^=(r=(L^=(r=C+T|0)<<7|r>>>25)+C|0)<<9|r>>>23)+L|0)<<13|r>>>19)+A|0)<<18|r>>>14,q^=(r=(P^=(r=(k^=(r=(R^=(r=q+P|0)<<7|r>>>25)+q|0)<<9|r>>>23)+R|0)<<13|r>>>19)+k|0)<<18|r>>>14,S^=(r=(R^=(r=(A^=(r=(I^=(r=S+R|0)<<7|r>>>25)+S|0)<<9|r>>>23)+I|0)<<13|r>>>19)+A|0)<<18|r>>>14,M^=(r=(x^=(r=(k^=(r=(T^=(r=M+x|0)<<7|r>>>25)+M|0)<<9|r>>>23)+T|0)<<13|r>>>19)+k|0)<<18|r>>>14,C^=(r=(U^=(r=(O^=(r=(P^=(r=C+U|0)<<7|r>>>25)+C|0)<<9|r>>>23)+P|0)<<13|r>>>19)+O|0)<<18|r>>>14,q^=(r=(L^=(r=(K^=(r=(N^=(r=q+L|0)<<7|r>>>25)+q|0)<<9|r>>>23)+N|0)<<13|r>>>19)+K|0)<<18|r>>>14;i.writeUint32LE(S+s|0,e,0),i.writeUint32LE(I+a|0,e,4),i.writeUint32LE(A+c|0,e,8),i.writeUint32LE(R+l|0,e,12),i.writeUint32LE(x+u|0,e,16),i.writeUint32LE(M+h|0,e,20),i.writeUint32LE(T+d|0,e,24),i.writeUint32LE(k+f|0,e,28),i.writeUint32LE(O+p|0,e,32),i.writeUint32LE(U+g|0,e,36),i.writeUint32LE(C+y|0,e,40),i.writeUint32LE(P+b|0,e,44),i.writeUint32LE(N+m|0,e,48),i.writeUint32LE(K+v|0,e,52),i.writeUint32LE(L+w|0,e,56),i.writeUint32LE(q+E|0,e,60)}function a(e,t,n,i,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("Salsa20: key size must be 32 bytes");if(i.length>>=8,t++;if(i>0)throw new Error("Salsa20: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,i){return void 0===i&&(i=0),r.wipe(n),a(e,t,n,n,i)}},3294:(e,t,n)=>{"use strict";var i=n(8099),r=n(7309);t.k=32,t.cn=64;var o=function(){function e(){this.digestLength=t.k,this.blockSize=t.cn,this._state=new Int32Array(8),this._temp=new Int32Array(64),this._buffer=new Uint8Array(128),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._state[0]=1779033703,this._state[1]=3144134277,this._state[2]=1013904242,this._state[3]=2773480762,this._state[4]=1359893119,this._state[5]=2600822924,this._state[6]=528734635,this._state[7]=1541459225},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){r.wipe(this._buffer),r.wipe(this._temp),this.reset()},e.prototype.update=function(e,t){if(void 0===t&&(t=e.length),this._finished)throw new Error("SHA256: can't update because hash was finished.");var n=0;if(this._bytesHashed+=t,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[n++],t--;this._bufferLength===this.blockSize&&(a(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(n=a(this._temp,this._state,e,n,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[n++],t--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,r=t/536870912|0,o=t<<3,s=t%64<56?64:128;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){r.wipe(e.state),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.mE=o;var s=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function a(e,t,n,r,o){for(;o>=64;){for(var a=t[0],c=t[1],l=t[2],u=t[3],h=t[4],d=t[5],f=t[6],p=t[7],g=0;g<16;g++){var y=r+4*g;e[g]=i.readUint32BE(n,y)}for(g=16;g<64;g++){var b=e[g-2],m=(b>>>17|b<<15)^(b>>>19|b<<13)^b>>>10,v=((b=e[g-15])>>>7|b<<25)^(b>>>18|b<<14)^b>>>3;e[g]=(m+e[g-7]|0)+(v+e[g-16]|0)}for(g=0;g<64;g++){m=(((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(h&d^~h&f)|0)+(p+(s[g]+e[g]|0)|0)|0,v=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&c^a&l^c&l)|0;p=f,f=d,d=h,h=u+m|0,u=l,l=c,c=a,a=m+v|0}t[0]+=a,t[1]+=c,t[2]+=l,t[3]+=u,t[4]+=h,t[5]+=d,t[6]+=f,t[7]+=p,r+=64,o-=64}return r}t.vp=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},3350:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(8099),r=n(7309);t.DIGEST_LENGTH=64,t.BLOCK_SIZE=128;var o=function(){function e(){this.digestLength=t.DIGEST_LENGTH,this.blockSize=t.BLOCK_SIZE,this._stateHi=new Int32Array(8),this._stateLo=new Int32Array(8),this._tempHi=new Int32Array(16),this._tempLo=new Int32Array(16),this._buffer=new Uint8Array(256),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._stateHi[0]=1779033703,this._stateHi[1]=3144134277,this._stateHi[2]=1013904242,this._stateHi[3]=2773480762,this._stateHi[4]=1359893119,this._stateHi[5]=2600822924,this._stateHi[6]=528734635,this._stateHi[7]=1541459225,this._stateLo[0]=4089235720,this._stateLo[1]=2227873595,this._stateLo[2]=4271175723,this._stateLo[3]=1595750129,this._stateLo[4]=2917565137,this._stateLo[5]=725511199,this._stateLo[6]=4215389547,this._stateLo[7]=327033209},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){r.wipe(this._buffer),r.wipe(this._tempHi),r.wipe(this._tempLo),this.reset()},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("SHA512: can't update because hash was finished.");var i=0;if(this._bytesHashed+=n,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[i++],n--;this._bufferLength===this.blockSize&&(a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,this._buffer,0,this.blockSize),this._bufferLength=0)}for(n>=this.blockSize&&(i=a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,e,i,n),n%=this.blockSize);n>0;)this._buffer[this._bufferLength++]=e[i++],n--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,r=t/536870912|0,o=t<<3,s=t%128<112?128:256;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._stateHi.set(e.stateHi),this._stateLo.set(e.stateLo),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){r.wipe(e.stateHi),r.wipe(e.stateLo),e.buffer&&r.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.SHA512=o;var s=new Int32Array([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]);function a(e,t,n,r,o,a,c){for(var l,u,h,d,f,p,g,y,b=n[0],m=n[1],v=n[2],w=n[3],E=n[4],S=n[5],I=n[6],A=n[7],R=r[0],x=r[1],M=r[2],T=r[3],k=r[4],O=r[5],U=r[6],C=r[7];c>=128;){for(var P=0;P<16;P++){var N=8*P+a;e[P]=i.readUint32BE(o,N),t[P]=i.readUint32BE(o,N+4)}for(P=0;P<80;P++){var K,L,q=b,z=m,V=v,F=w,j=E,D=S,B=I,W=R,J=x,Z=M,Q=T,H=k,G=O,Y=U;if(f=65535&(u=C),p=u>>>16,g=65535&(l=A),y=l>>>16,f+=65535&(u=(k>>>14|E<<18)^(k>>>18|E<<14)^(E>>>9|k<<23)),p+=u>>>16,g+=65535&(l=(E>>>14|k<<18)^(E>>>18|k<<14)^(k>>>9|E<<23)),y+=l>>>16,f+=65535&(u=k&O^~k&U),p+=u>>>16,g+=65535&(l=E&S^~E&I),y+=l>>>16,l=s[2*P],f+=65535&(u=s[2*P+1]),p+=u>>>16,g+=65535&l,y+=l>>>16,l=e[P%16],p+=(u=t[P%16])>>>16,g+=65535&l,y+=l>>>16,g+=(p+=(f+=65535&u)>>>16)>>>16,f=65535&(u=d=65535&f|p<<16),p=u>>>16,g=65535&(l=h=65535&g|(y+=g>>>16)<<16),y=l>>>16,f+=65535&(u=(R>>>28|b<<4)^(b>>>2|R<<30)^(b>>>7|R<<25)),p+=u>>>16,g+=65535&(l=(b>>>28|R<<4)^(R>>>2|b<<30)^(R>>>7|b<<25)),y+=l>>>16,p+=(u=R&x^R&M^x&M)>>>16,g+=65535&(l=b&m^b&v^m&v),y+=l>>>16,K=65535&(g+=(p+=(f+=65535&u)>>>16)>>>16)|(y+=g>>>16)<<16,L=65535&f|p<<16,f=65535&(u=Q),p=u>>>16,g=65535&(l=F),y=l>>>16,p+=(u=d)>>>16,g+=65535&(l=h),y+=l>>>16,m=q,v=z,w=V,E=F=65535&(g+=(p+=(f+=65535&u)>>>16)>>>16)|(y+=g>>>16)<<16,S=j,I=D,A=B,b=K,x=W,M=J,T=Z,k=Q=65535&f|p<<16,O=H,U=G,C=Y,R=L,P%16==15)for(N=0;N<16;N++)l=e[N],f=65535&(u=t[N]),p=u>>>16,g=65535&l,y=l>>>16,l=e[(N+9)%16],f+=65535&(u=t[(N+9)%16]),p+=u>>>16,g+=65535&l,y+=l>>>16,h=e[(N+1)%16],f+=65535&(u=((d=t[(N+1)%16])>>>1|h<<31)^(d>>>8|h<<24)^(d>>>7|h<<25)),p+=u>>>16,g+=65535&(l=(h>>>1|d<<31)^(h>>>8|d<<24)^h>>>7),y+=l>>>16,h=e[(N+14)%16],p+=(u=((d=t[(N+14)%16])>>>19|h<<13)^(h>>>29|d<<3)^(d>>>6|h<<26))>>>16,g+=65535&(l=(h>>>19|d<<13)^(d>>>29|h<<3)^h>>>6),y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,e[N]=65535&g|y<<16,t[N]=65535&f|p<<16}f=65535&(u=R),p=u>>>16,g=65535&(l=b),y=l>>>16,l=n[0],p+=(u=r[0])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[0]=b=65535&g|y<<16,r[0]=R=65535&f|p<<16,f=65535&(u=x),p=u>>>16,g=65535&(l=m),y=l>>>16,l=n[1],p+=(u=r[1])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[1]=m=65535&g|y<<16,r[1]=x=65535&f|p<<16,f=65535&(u=M),p=u>>>16,g=65535&(l=v),y=l>>>16,l=n[2],p+=(u=r[2])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[2]=v=65535&g|y<<16,r[2]=M=65535&f|p<<16,f=65535&(u=T),p=u>>>16,g=65535&(l=w),y=l>>>16,l=n[3],p+=(u=r[3])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[3]=w=65535&g|y<<16,r[3]=T=65535&f|p<<16,f=65535&(u=k),p=u>>>16,g=65535&(l=E),y=l>>>16,l=n[4],p+=(u=r[4])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[4]=E=65535&g|y<<16,r[4]=k=65535&f|p<<16,f=65535&(u=O),p=u>>>16,g=65535&(l=S),y=l>>>16,l=n[5],p+=(u=r[5])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[5]=S=65535&g|y<<16,r[5]=O=65535&f|p<<16,f=65535&(u=U),p=u>>>16,g=65535&(l=I),y=l>>>16,l=n[6],p+=(u=r[6])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[6]=I=65535&g|y<<16,r[6]=U=65535&f|p<<16,f=65535&(u=C),p=u>>>16,g=65535&(l=A),y=l>>>16,l=n[7],p+=(u=r[7])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[7]=A=65535&g|y<<16,r[7]=C=65535&f|p<<16,a+=128,c-=128}return a}t.hash=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},6249:(e,t)=>{"use strict";var n="utf8: invalid string",i="utf8: invalid source encoding";function r(e){for(var t=0,i=0;i=e.length-1)throw new Error(n);i++,t+=4}}return t}t.cv=function(e){for(var t=new Uint8Array(r(e)),n=0,i=0;i>6,t[n++]=128|63&o):o<55296?(t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|63&o):(i++,o=(1023&o)<<10,o|=1023&e.charCodeAt(i),o+=65536,t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|63&o)}return t}},7309:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wipe=function(e){for(var t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.X25519Session=t.SECRET_SEED_LENGTH=t.SAVED_STATE_LENGTH=t.ACCEPT_MESSAGE_LENGTH=t.OFFER_MESSAGE_LENGTH=void 0;const i=n(1416),r=n(7309),o=n(7664),s=n(4826);t.OFFER_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.ACCEPT_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.SAVED_STATE_LENGTH=o.SECRET_KEY_LENGTH,t.SECRET_SEED_LENGTH=o.SECRET_KEY_LENGTH;t.X25519Session=class{constructor(e,n){this.offerMessageLength=t.OFFER_MESSAGE_LENGTH,this.acceptMessageLength=t.ACCEPT_MESSAGE_LENGTH,this.sharedKeyLength=o.SHARED_KEY_LENGTH,this.savedStateLength=t.SAVED_STATE_LENGTH,this._seed=e||(0,i.randomBytes)(o.SECRET_KEY_LENGTH,n)}saveState(){return new Uint8Array(this._seed)}restoreState(e){return this._seed=new Uint8Array(e),this}clean(){this._seed&&(0,r.wipe)(this._seed),this._keyPair&&((0,r.wipe)(this._keyPair.secretKey),(0,r.wipe)(this._keyPair.publicKey)),this._sharedKey&&(0,r.wipe)(this._sharedKey),this._sessionKeys&&((0,r.wipe)(this._sessionKeys.receive),(0,r.wipe)(this._sessionKeys.send))}offer(){return this._keyPair=(0,o.generateKeyPairFromSeed)(this._seed),new Uint8Array(this._keyPair.publicKey)}accept(e){if(this._keyPair)throw new Error("X25519Session: accept shouldn't be called by offering party");if(e.length!==this.offerMessageLength)throw new Error("X25519Session: incorrect offer message length");if(this._sharedKey)throw new Error("X25519Session: accept was already called");const t=(0,o.generateKeyPairFromSeed)(this._seed);return this._sharedKey=(0,o.sharedKey)(t.secretKey,e),this._sessionKeys=(0,s.clientSessionKeysFromSharedKey)(this._sharedKey,t.publicKey,e),(0,r.wipe)(t.secretKey),t.publicKey}finish(e){if(e.length!==this.acceptMessageLength)throw new Error("X25519Session: incorrect accept message length");if(!this._keyPair)throw new Error("X25519Session: no offer state");if(this._sharedKey)throw new Error("X25519Session: finish was already called");return this._sharedKey=(0,o.sharedKey)(this._keyPair.secretKey,e),this._sessionKeys=(0,s.serverSessionKeysFromSharedKey)(this._sharedKey,this._keyPair.publicKey,e),this}getSharedKey(){if(!this._sharedKey)throw new Error("X25519Session: no shared key established");return new Uint8Array(this._sharedKey)}getSessionKeys(){if(!this._sessionKeys)throw new Error("X25519Session: no shared key established");return{receive:new Uint8Array(this._sessionKeys.receive),send:new Uint8Array(this._sessionKeys.send)}}}},4826:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clientSessionKeys=t.serverSessionKeys=t.clientSessionKeysFromSharedKey=t.serverSessionKeysFromSharedKey=t.X25519Session=void 0;const i=n(1322),r=n(7664);var o=n(6273);Object.defineProperty(t,"X25519Session",{enumerable:!0,get:function(){return o.X25519Session}});const s=32;function a(e,t,n,r=i.BLAKE2b){const o=new r;if(o.digestLength!==2*s)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(n).update(t).digest();return{send:a.subarray(0,s),receive:a.subarray(s)}}function c(e,t,n,r=i.BLAKE2b){const o=new r;if(o.digestLength!==2*s)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(t).update(n).digest();return{receive:a.subarray(0,s),send:a.subarray(s)}}t.serverSessionKeysFromSharedKey=a,t.clientSessionKeysFromSharedKey=c,t.serverSessionKeys=function(e,t,n=i.BLAKE2b){return a((0,r.sharedKey)(e.secretKey,t),e.publicKey,t,n)},t.clientSessionKeys=function(e,t,n=i.BLAKE2b){return c((0,r.sharedKey)(e.secretKey,t),e.publicKey,t,n)}},7664:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sharedKey=t.generateKeyPair=t.generateKeyPairFromSeed=t.scalarMultBase=t.scalarMult=t.SHARED_KEY_LENGTH=t.SECRET_KEY_LENGTH=t.PUBLIC_KEY_LENGTH=void 0;const i=n(1416),r=n(7309);function o(e){const t=new Float64Array(16);if(e)for(let n=0;n=0;--e){const t=n[e>>>3]>>>(7&e)&1;l(r,s,t),l(p,g,t),u(y,r,p),h(r,r,p),u(p,s,g),h(s,s,g),f(g,y),f(b,r),d(r,p,r),d(p,s,y),u(y,r,p),h(r,r,p),f(s,r),h(p,g,b),d(r,p,a),u(r,r,g),d(p,p,r),d(r,g,b),d(g,s,i),f(s,y),l(r,s,t),l(p,g,t)}for(let e=0;e<16;e++)i[e+16]=r[e],i[e+32]=p[e],i[e+48]=s[e],i[e+64]=g[e];const m=i.subarray(32),v=i.subarray(16);!function(e,t){const n=o();for(let e=0;e<16;e++)n[e]=t[e];for(let e=253;e>=0;e--)f(n,n),2!==e&&4!==e&&d(n,n,t);for(let t=0;t<16;t++)e[t]=n[t]}(m,m),d(v,v,m);const w=new Uint8Array(32);return function(e,t){const n=o(),i=o();for(let e=0;e<16;e++)i[e]=t[e];c(i),c(i),c(i);for(let e=0;e<2;e++){n[0]=i[0]-65517;for(let e=1;e<15;e++)n[e]=i[e]-65535-(n[e-1]>>16&1),n[e-1]&=65535;n[15]=i[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,l(i,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&i[t],e[2*t+1]=i[t]>>8}(w,v),w}function g(e){return p(e,s)}function y(e){if(e.length!==t.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${t.SECRET_KEY_LENGTH} bytes`);const n=new Uint8Array(e);return{publicKey:g(n),secretKey:n}}t.scalarMult=p,t.scalarMultBase=g,t.generateKeyPairFromSeed=y,t.generateKeyPair=function(e){const t=(0,i.randomBytes)(32,e),n=y(t);return(0,r.wipe)(t),n},t.sharedKey=function(e,n,i=!1){if(e.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(n.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const r=p(e,n);if(i){let e=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(8099),r=n(7318),o=n(7309);function s(e,t,n,i,s){if(void 0===s&&(s=0),0===s){if(24!==t.length)throw new Error("XSalsa20 nonce must be 24 bytes")}else if(32!==t.length)throw new Error("XSalsa20 nonce with counter must be 32 bytes");var a=c(e,t.subarray(0,16),new Uint8Array(32)),l=r.streamXOR(a,t.subarray(16),n,i,s);return o.wipe(a),l}t.streamXOR=s,t.stream=function(e,t,n,i){return void 0===i&&(i=0),o.wipe(n),s(e,t,n,n,i)};var a=20;function c(e,t,n){for(var r,o=1634760805,s=e[3]<<24|e[2]<<16|e[1]<<8|e[0],c=e[7]<<24|e[6]<<16|e[5]<<8|e[4],l=e[11]<<24|e[10]<<16|e[9]<<8|e[8],u=e[15]<<24|e[14]<<16|e[13]<<8|e[12],h=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=e[19]<<24|e[18]<<16|e[17]<<8|e[16],m=e[23]<<24|e[22]<<16|e[21]<<8|e[20],v=e[27]<<24|e[26]<<16|e[25]<<8|e[24],w=e[31]<<24|e[30]<<16|e[29]<<8|e[28],E=1797285236,S=0;S>>25)+o|0)<<9|r>>>23)+u|0)<<13|r>>>19)+p|0)<<18|r>>>14,h^=(r=(s^=(r=(v^=(r=(g^=(r=h+s|0)<<7|r>>>25)+h|0)<<9|r>>>23)+g|0)<<13|r>>>19)+v|0)<<18|r>>>14,y^=(r=(d^=(r=(c^=(r=(w^=(r=y+d|0)<<7|r>>>25)+y|0)<<9|r>>>23)+w|0)<<13|r>>>19)+c|0)<<18|r>>>14,E^=(r=(b^=(r=(f^=(r=(l^=(r=E+b|0)<<7|r>>>25)+E|0)<<9|r>>>23)+l|0)<<13|r>>>19)+f|0)<<18|r>>>14,o^=(r=(l^=(r=(c^=(r=(s^=(r=o+l|0)<<7|r>>>25)+o|0)<<9|r>>>23)+s|0)<<13|r>>>19)+c|0)<<18|r>>>14,h^=(r=(u^=(r=(f^=(r=(d^=(r=h+u|0)<<7|r>>>25)+h|0)<<9|r>>>23)+d|0)<<13|r>>>19)+f|0)<<18|r>>>14,y^=(r=(g^=(r=(p^=(r=(b^=(r=y+g|0)<<7|r>>>25)+y|0)<<9|r>>>23)+b|0)<<13|r>>>19)+p|0)<<18|r>>>14,E^=(r=(w^=(r=(v^=(r=(m^=(r=E+w|0)<<7|r>>>25)+E|0)<<9|r>>>23)+m|0)<<13|r>>>19)+v|0)<<18|r>>>14;return i.writeUint32LE(o,n,0),i.writeUint32LE(h,n,4),i.writeUint32LE(y,n,8),i.writeUint32LE(E,n,12),i.writeUint32LE(d,n,16),i.writeUint32LE(f,n,20),i.writeUint32LE(p,n,24),i.writeUint32LE(g,n,28),n}t.hsalsa=c},926:(e,t,n)=>{"use strict";function i(){return(null===n.g||void 0===n.g?void 0:n.g.crypto)||(null===n.g||void 0===n.g?void 0:n.g.msCrypto)||{}}function r(){const e=i();return e.subtle||e.webkitSubtle}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowserCryptoAvailable=t.getSubtleCrypto=t.getBrowerCrypto=void 0,t.getBrowerCrypto=i,t.getSubtleCrypto=r,t.isBrowserCryptoAvailable=function(){return!!i()&&!!r()}},8618:(e,t,n)=>{"use strict";var i=n(4155);function r(){return"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product}function o(){return void 0!==i&&void 0!==i.versions&&void 0!==i.versions.node}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.isNode=t.isReactNative=void 0,t.isReactNative=r,t.isNode=o,t.isBrowser=function(){return!r()&&!o()}},1468:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(926),t),i.__exportStar(n(8618),t)},8200:(e,t,n)=>{"use strict";n.d(t,{q:()=>i});class i{}},997:(e,t,n)=>{"use strict";n.r(t),n.d(t,{IEvents:()=>i.q});var i=n(8200)},2568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HEARTBEAT_EVENTS=t.HEARTBEAT_INTERVAL=void 0;const i=n(6736);t.HEARTBEAT_INTERVAL=i.FIVE_SECONDS,t.HEARTBEAT_EVENTS={pulse:"heartbeat_pulse"}},3401:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(2568),t)},8969:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeartBeat=void 0;const i=n(655),r=n(7187),o=n(6736),s=n(1614),a=n(3401);class c extends s.IHeartBeat{constructor(e){super(e),this.events=new r.EventEmitter,this.interval=a.HEARTBEAT_INTERVAL,this.interval=(null==e?void 0:e.interval)||a.HEARTBEAT_INTERVAL}static init(e){return i.__awaiter(this,void 0,void 0,(function*(){const t=new c(e);return yield t.init(),t}))}init(){return i.__awaiter(this,void 0,void 0,(function*(){yield this.initialize()}))}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}initialize(){return i.__awaiter(this,void 0,void 0,(function*(){this.intervalRef=setInterval((()=>this.pulse()),o.toMiliseconds(this.interval))}))}pulse(){this.events.emit(a.HEARTBEAT_EVENTS.pulse)}}t.HeartBeat=c},159:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(8969),t),i.__exportStar(n(1614),t),i.__exportStar(n(3401),t)},4174:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IHeartBeat=void 0;const i=n(997);class r extends i.IEvents{constructor(e){super()}}t.IHeartBeat=r},1614:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(4174),t)},5150:(e,t,n)=>{"use strict";const i=n(655),r=n(3954),o=i.__importDefault(n(653)),s=n(9728);class a{constructor(){this.localStorage=o.default}getKeys(){return i.__awaiter(this,void 0,void 0,(function*(){return Object.keys(this.localStorage)}))}getEntries(){return i.__awaiter(this,void 0,void 0,(function*(){return Object.entries(this.localStorage).map(s.parseEntry)}))}getItem(e){return i.__awaiter(this,void 0,void 0,(function*(){const t=this.localStorage.getItem(e);if(null!==t)return r.safeJsonParse(t)}))}setItem(e,t){return i.__awaiter(this,void 0,void 0,(function*(){this.localStorage.setItem(e,r.safeJsonStringify(t))}))}removeItem(e){return i.__awaiter(this,void 0,void 0,(function*(){this.localStorage.removeItem(e)}))}}t.ZP=a},653:(e,t,n)=>{"use strict";!function(){let t;function i(){}t=i,t.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},t.prototype.setItem=function(e,t){this[e]=String(t)},t.prototype.removeItem=function(e){delete this[e]},t.prototype.clear=function(){const e=this;Object.keys(e).forEach((function(t){e[t]=void 0,delete e[t]}))},t.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},t.prototype.__defineGetter__("length",(function(){return Object.keys(this).length})),void 0!==n.g&&n.g.localStorage?e.exports=n.g.localStorage:"undefined"!=typeof window&&window.localStorage?e.exports=window.localStorage:e.exports=new i}()},9728:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(9076),t),i.__exportStar(n(496),t)},9076:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IKeyValueStorage=void 0;t.IKeyValueStorage=class{}},496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseEntry=void 0;const i=n(3954);t.parseEntry=function(e){var t;return[e[0],i.safeJsonParse(null!==(t=e[1])&&void 0!==t?t:"")]}},5727:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PINO_CUSTOM_CONTEXT_KEY=t.PINO_LOGGER_DEFAULTS=void 0,t.PINO_LOGGER_DEFAULTS={level:"info"},t.PINO_CUSTOM_CONTEXT_KEY="custom_context"},9107:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pino=void 0;const i=n(655),r=i.__importDefault(n(6559));Object.defineProperty(t,"pino",{enumerable:!0,get:function(){return r.default}}),i.__exportStar(n(5727),t),i.__exportStar(n(8048),t)},8048:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateChildLogger=t.formatChildLoggerContext=t.getLoggerContext=t.setBrowserLoggerContext=t.getBrowserLoggerContext=t.getDefaultLoggerOptions=void 0;const i=n(5727);function r(e,t=i.PINO_CUSTOM_CONTEXT_KEY){return e[t]||""}function o(e,t,n=i.PINO_CUSTOM_CONTEXT_KEY){return e[n]=t,e}function s(e,t=i.PINO_CUSTOM_CONTEXT_KEY){let n="";return n=void 0===e.bindings?r(e,t):e.bindings().context||"",n}function a(e,t,n=i.PINO_CUSTOM_CONTEXT_KEY){const r=s(e,n);return r.trim()?`${r}/${t}`:t}t.getDefaultLoggerOptions=function(e){return Object.assign(Object.assign({},e),{level:(null==e?void 0:e.level)||i.PINO_LOGGER_DEFAULTS.level})},t.getBrowserLoggerContext=r,t.setBrowserLoggerContext=o,t.getLoggerContext=s,t.formatChildLoggerContext=a,t.generateChildLogger=function(e,t,n=i.PINO_CUSTOM_CONTEXT_KEY){const r=a(e,t,n);return o(e.child({context:r}),r,n)}},1882:()=>{},3014:()=>{},6900:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(6869),t),i.__exportStar(n(8033),t)},6869:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_THOUSAND=t.ONE_HUNDRED=void 0,t.ONE_HUNDRED=100,t.ONE_THOUSAND=1e3},8033:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_YEAR=t.FOUR_WEEKS=t.THREE_WEEKS=t.TWO_WEEKS=t.ONE_WEEK=t.THIRTY_DAYS=t.SEVEN_DAYS=t.FIVE_DAYS=t.THREE_DAYS=t.ONE_DAY=t.TWENTY_FOUR_HOURS=t.TWELVE_HOURS=t.SIX_HOURS=t.THREE_HOURS=t.ONE_HOUR=t.SIXTY_MINUTES=t.THIRTY_MINUTES=t.TEN_MINUTES=t.FIVE_MINUTES=t.ONE_MINUTE=t.SIXTY_SECONDS=t.THIRTY_SECONDS=t.TEN_SECONDS=t.FIVE_SECONDS=t.ONE_SECOND=void 0,t.ONE_SECOND=1,t.FIVE_SECONDS=5,t.TEN_SECONDS=10,t.THIRTY_SECONDS=30,t.SIXTY_SECONDS=60,t.ONE_MINUTE=t.SIXTY_SECONDS,t.FIVE_MINUTES=5*t.ONE_MINUTE,t.TEN_MINUTES=10*t.ONE_MINUTE,t.THIRTY_MINUTES=30*t.ONE_MINUTE,t.SIXTY_MINUTES=60*t.ONE_MINUTE,t.ONE_HOUR=t.SIXTY_MINUTES,t.THREE_HOURS=3*t.ONE_HOUR,t.SIX_HOURS=6*t.ONE_HOUR,t.TWELVE_HOURS=12*t.ONE_HOUR,t.TWENTY_FOUR_HOURS=24*t.ONE_HOUR,t.ONE_DAY=t.TWENTY_FOUR_HOURS,t.THREE_DAYS=3*t.ONE_DAY,t.FIVE_DAYS=5*t.ONE_DAY,t.SEVEN_DAYS=7*t.ONE_DAY,t.THIRTY_DAYS=30*t.ONE_DAY,t.ONE_WEEK=t.SEVEN_DAYS,t.TWO_WEEKS=2*t.ONE_WEEK,t.THREE_WEEKS=3*t.ONE_WEEK,t.FOUR_WEEKS=4*t.ONE_WEEK,t.ONE_YEAR=365*t.ONE_DAY},6736:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(4273),t),i.__exportStar(n(7001),t),i.__exportStar(n(2939),t),i.__exportStar(n(6900),t)},2939:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(8766),t)},8766:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IWatch=void 0;t.IWatch=class{}},3207:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromMiliseconds=t.toMiliseconds=void 0;const i=n(6900);t.toMiliseconds=function(e){return e*i.ONE_THOUSAND},t.fromMiliseconds=function(e){return Math.floor(e/i.ONE_THOUSAND)}},3873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.delay=void 0,t.delay=function(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}},4273:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(655);i.__exportStar(n(3873),t),i.__exportStar(n(3207),t)},7001:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Watch=void 0;class n{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw new Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){const t=this.get(e);if(void 0!==t.elapsed)throw new Error(`Watch already stopped for label: ${e}`);const n=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:n})}get(e){const t=this.timestamps.get(e);if(void 0===t)throw new Error(`No timestamp found for label: ${e}`);return t}elapsed(e){const t=this.get(e);return t.elapsed||Date.now()-t.started}}t.Watch=n,t.default=n},2873:(e,t)=>{"use strict";function n(e){let t;return"undefined"!=typeof window&&void 0!==window[e]&&(t=window[e]),t}function i(e){const t=n(e);if(!t)throw new Error(`${e} is not defined in Window`);return t}Object.defineProperty(t,"__esModule",{value:!0}),t.getLocalStorage=t.getLocalStorageOrThrow=t.getCrypto=t.getCryptoOrThrow=t.getLocation=t.getLocationOrThrow=t.getNavigator=t.getNavigatorOrThrow=t.getDocument=t.getDocumentOrThrow=t.getFromWindowOrThrow=t.getFromWindow=void 0,t.getFromWindow=n,t.getFromWindowOrThrow=i,t.getDocumentOrThrow=function(){return i("document")},t.getDocument=function(){return n("document")},t.getNavigatorOrThrow=function(){return i("navigator")},t.getNavigator=function(){return n("navigator")},t.getLocationOrThrow=function(){return i("location")},t.getLocation=function(){return n("location")},t.getCryptoOrThrow=function(){return i("crypto")},t.getCrypto=function(){return n("crypto")},t.getLocalStorageOrThrow=function(){return i("localStorage")},t.getLocalStorage=function(){return n("localStorage")}},5755:(e,t,n)=>{"use strict";t.D=void 0;const i=n(2873);t.D=function(){let e,t;try{e=i.getDocumentOrThrow(),t=i.getLocationOrThrow()}catch(e){return null}function n(...t){const n=e.getElementsByTagName("meta");for(let e=0;ei.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(r.length&&r){const e=i.getAttribute("content");if(e)return e}}return""}const r=function(){let t=n("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:n("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const n=e.getElementsByTagName("link"),i=[];for(let e=0;e-1){const e=r.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let n=t.protocol+"//"+t.host;if(0===e.indexOf("/"))n+=e;else{const i=t.pathname.split("/");i.pop();n+=i.join("/")+"/"+e}i.push(n)}else if(0===e.indexOf("//")){const n=t.protocol+e;i.push(n)}else i.push(e)}}return i}(),name:r}}},9282:(e,t,n)=>{"use strict";var i=n(4155),r=n(5108);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var s,a,c=n(2136).codes,l=c.ERR_AMBIGUOUS_ARGUMENT,u=c.ERR_INVALID_ARG_TYPE,h=c.ERR_INVALID_ARG_VALUE,d=c.ERR_INVALID_RETURN_VALUE,f=c.ERR_MISSING_ARGS,p=n(5961),g=n(9539).inspect,y=n(9539).types,b=y.isPromise,m=y.isRegExp,v=Object.assign?Object.assign:n(8091).assign,w=Object.is?Object.is:n(609);new Map;function E(){var e=n(9158);s=e.isDeepEqual,a=e.isDeepStrictEqual}var S=!1,I=e.exports=M,A={};function R(e){if(e.message instanceof Error)throw e.message;throw new p(e)}function x(e,t,n,i){if(!n){var r=!1;if(0===t)r=!0,i="No value argument passed to `assert.ok()`";else if(i instanceof Error)throw i;var o=new p({actual:n,expected:!0,message:i,operator:"==",stackStartFn:e});throw o.generatedMessage=r,o}}function M(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r1?n-1:0),r=1;r1?n-1:0),r=1;r1?n-1:0),r=1;r{"use strict";var i=n(4155);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;ne.length)&&(n=e.length),e.substring(n-t.length,n)===t}var y="",b="",m="",v="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function S(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function I(e,t,n){var r="",o="",s=0,a="",c=!1,l=S(e),u=l.split("\n"),h=S(t).split("\n"),f=0,p="";if("strictEqual"===n&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===h.length&&u[0]!==h[0]){var E=u[0].length+h[0].length;if(E<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(w[n],"\n\n")+"".concat(u[0]," !== ").concat(h[0],"\n")}else if("strictEqualObject"!==n){if(E<(i.stderr&&i.stderr.isTTY?i.stderr.columns:80)){for(;u[0][f]===h[0][f];)f++;f>2&&(p="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",f),"^"),f=0)}}}for(var I=u[u.length-1],A=h[h.length-1];I===A&&(f++<2?a="\n ".concat(I).concat(a):r=I,u.pop(),h.pop(),0!==u.length&&0!==h.length);)I=u[u.length-1],A=h[h.length-1];var R=Math.max(u.length,h.length);if(0===R){var x=l.split("\n");if(x.length>30)for(x[26]="".concat(y,"...").concat(v);x.length>27;)x.pop();return"".concat(w.notIdentical,"\n\n").concat(x.join("\n"),"\n")}f>3&&(a="\n".concat(y,"...").concat(v).concat(a),c=!0),""!==r&&(a="\n ".concat(r).concat(a),r="");var M=0,T=w[n]+"\n".concat(b,"+ actual").concat(v," ").concat(m,"- expected").concat(v),k=" ".concat(y,"...").concat(v," Lines skipped");for(f=0;f1&&f>2&&(O>4?(o+="\n".concat(y,"...").concat(v),c=!0):O>3&&(o+="\n ".concat(h[f-2]),M++),o+="\n ".concat(h[f-1]),M++),s=f,r+="\n".concat(m,"-").concat(v," ").concat(h[f]),M++;else if(h.length1&&f>2&&(O>4?(o+="\n".concat(y,"...").concat(v),c=!0):O>3&&(o+="\n ".concat(u[f-2]),M++),o+="\n ".concat(u[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(u[f]),M++;else{var U=h[f],C=u[f],P=C!==U&&(!g(C,",")||C.slice(0,-1)!==U);P&&g(U,",")&&U.slice(0,-1)===C&&(P=!1,C+=","),P?(O>1&&f>2&&(O>4?(o+="\n".concat(y,"...").concat(v),c=!0):O>3&&(o+="\n ".concat(u[f-2]),M++),o+="\n ".concat(u[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(C),r+="\n".concat(m,"-").concat(v," ").concat(U),M+=2):(o+=r,r="",1!==O&&0!==f||(o+="\n ".concat(C),M++))}if(M>20&&f30)for(A[26]="".concat(y,"...").concat(v);A.length>27;)A.pop();n=1===A.length?s(this,h(t).call(this,"".concat(g," ").concat(A[0]))):s(this,h(t).call(this,"".concat(g,"\n\n").concat(A.join("\n"),"\n")))}else{var R=S(l),x="",M=w[o];"notDeepEqual"===o||"notEqual"===o?(R="".concat(w[o],"\n\n").concat(R)).length>1024&&(R="".concat(R.slice(0,1021),"...")):(x="".concat(S(u)),R.length>512&&(R="".concat(R.slice(0,509),"...")),x.length>512&&(x="".concat(x.slice(0,509),"...")),"deepEqual"===o||"equal"===o?R="".concat(M,"\n\n").concat(R,"\n\nshould equal\n\n"):x=" ".concat(o," ").concat(x)),n=s(this,h(t).call(this,"".concat(R).concat(x)))}return Error.stackTraceLimit=f,n.generatedMessage=!r,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=l,n.expected=u,n.operator=o,Error.captureStackTrace&&Error.captureStackTrace(a(n),c),n.stack,n.name="AssertionError",s(n)}var n,c,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(t,e),n=t,c=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t{"use strict";function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function r(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}function s(e,t){return s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},s(e,t)}var a,c,l={};function u(e,t,n){n||(n=Error);var i=function(n){function i(n,s,a){var c;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),c=r(this,o(i).call(this,function(e,n,i){return"string"==typeof t?t:t(e,n,i)}(n,s,a))),c.code=e,c}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(i,n),i}(n);l[e]=i}function h(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(e,t,r){var o,s,c,l;if(void 0===a&&(a=n(9282)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(!c||c<0?0:+c,s.length)===s)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))l="The ".concat(e," ").concat(o," ").concat(h(t,"type"));else{var u=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(u," ").concat(o," ").concat(h(t,"type"))}return l+=". Received type ".concat(i(r))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===c&&(c=n(9539));var r=c.inspect(t);return r.length>128&&(r="".concat(r.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(i,". Received ").concat(r)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var r;return r=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(i(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(r,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),i=0;i0,"At least one arg needs to be specified");var r="The ",o=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),o){case 1:r+="".concat(t[0]," argument");break;case 2:r+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:r+=t.slice(0,o-1).join(", "),r+=", and ".concat(t[o-1]," arguments")}return"".concat(r," must be specified")}),TypeError),e.exports.codes=l},9158:(e,t,n)=>{"use strict";function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],i=!0,r=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(i=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);i=!0);}catch(e){r=!0,o=e}finally{try{i||null==a.return||a.return()}finally{if(r)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}var o=void 0!==/a/g.flags,s=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},c=Object.is?Object.is:n(609),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},u=Number.isNaN?Number.isNaN:n(360);function h(e){return e.call.bind(e)}var d=h(Object.prototype.hasOwnProperty),f=h(Object.prototype.propertyIsEnumerable),p=h(Object.prototype.toString),g=n(9539).types,y=g.isAnyArrayBuffer,b=g.isArrayBufferView,m=g.isDate,v=g.isMap,w=g.isRegExp,E=g.isSet,S=g.isNativeError,I=g.isBoxedPrimitive,A=g.isNumberObject,R=g.isStringObject,x=g.isBooleanObject,M=g.isBigIntObject,T=g.isSymbolObject,k=g.isFloat32Array,O=g.isFloat64Array;function U(e){if(0===e.length||e.length>10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function C(e){return Object.keys(e).filter(U).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function P(e,t){if(e===t)return 0;for(var n=e.length,i=t.length,r=0,o=Math.min(n,i);r{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var i=n(4867),r=n(6026),o=n(4372),s=n(5327),a=n(4097),c=n(4109),l=n(7985),u=n(5061),h=n(5655),d=n(5263);e.exports=function(e){return new Promise((function(t,n){var f,p=e.data,g=e.headers,y=e.responseType;function b(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}i.isFormData(p)&&delete g["Content-Type"];var m=new XMLHttpRequest;if(e.auth){var v=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(v+":"+w)}var E=a(e.baseURL,e.url);function S(){if(m){var i="getAllResponseHeaders"in m?c(m.getAllResponseHeaders()):null,o={data:y&&"text"!==y&&"json"!==y?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:i,config:e,request:m};r((function(e){t(e),b()}),(function(e){n(e),b()}),o),m=null}}if(m.open(e.method.toUpperCase(),s(E,e.params,e.paramsSerializer),!0),m.timeout=e.timeout,"onloadend"in m?m.onloadend=S:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(S)},m.onabort=function(){m&&(n(u("Request aborted",e,"ECONNABORTED",m)),m=null)},m.onerror=function(){n(u("Network Error",e,null,m)),m=null},m.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",i=e.transitional||h.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,i.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",m)),m=null},i.isStandardBrowserEnv()){var I=(e.withCredentials||l(E))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;I&&(g[e.xsrfHeaderName]=I)}"setRequestHeader"in m&&i.forEach(g,(function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete g[t]:m.setRequestHeader(t,e)})),i.isUndefined(e.withCredentials)||(m.withCredentials=!!e.withCredentials),y&&"json"!==y&&(m.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&m.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(e){m&&(n(!e||e&&e.type?new d("canceled"):e),m.abort(),m=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),p||(p=null),m.send(p)}))}},1609:(e,t,n)=>{"use strict";var i=n(4867),r=n(1849),o=n(321),s=n(7185);var a=function e(t){var n=new o(t),a=r(o.prototype.request,n);return i.extend(a,o.prototype,n),i.extend(a,n),a.create=function(n){return e(s(t,n))},a}(n(5655));a.Axios=o,a.Cancel=n(5263),a.CancelToken=n(4972),a.isCancel=n(6502),a.VERSION=n(7288).version,a.all=function(e){return Promise.all(e)},a.spread=n(8713),a.isAxiosError=n(6268),e.exports=a,e.exports.default=a},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var i=n(5263);function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,i=n._listeners.length;for(t=0;t{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var i=n(4867),r=n(5327),o=n(782),s=n(3572),a=n(7185),c=n(4875),l=c.validators;function u(e){this.defaults=e,this.interceptors={request:new o,response:new o}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&c.assertOptions(t,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(i=i&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var r,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!i){var u=[s,void 0];for(Array.prototype.unshift.apply(u,n),u=u.concat(o),r=Promise.resolve(e);u.length;)r=r.then(u.shift(),u.shift());return r}for(var h=e;n.length;){var d=n.shift(),f=n.shift();try{h=d(h)}catch(e){f(e);break}}try{r=s(h)}catch(e){return Promise.reject(e)}for(;o.length;)r=r.then(o.shift(),o.shift());return r},u.prototype.getUri=function(e){return e=a(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),i.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,i){return this.request(a(i||{},{method:e,url:t,data:n}))}})),e.exports=u},782:(e,t,n)=>{"use strict";var i=n(4867);function r(){this.handlers=[]}r.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=r},4097:(e,t,n)=>{"use strict";var i=n(1793),r=n(7303);e.exports=function(e,t){return e&&!i(t)?r(e,t):t}},5061:(e,t,n)=>{"use strict";var i=n(481);e.exports=function(e,t,n,r,o){var s=new Error(e);return i(s,t,n,r,o)}},3572:(e,t,n)=>{"use strict";var i=n(4867),r=n(8527),o=n(6502),s=n(5655),a=n(5263);function c(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a("canceled")}e.exports=function(e){return c(e),e.headers=e.headers||{},e.data=r.call(e,e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),i.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return c(e),t.data=r.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(c(e),t&&t.response&&(t.response.data=r.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},7185:(e,t,n)=>{"use strict";var i=n(4867);e.exports=function(e,t){t=t||{};var n={};function r(e,t){return i.isPlainObject(e)&&i.isPlainObject(t)?i.merge(e,t):i.isPlainObject(t)?i.merge({},t):i.isArray(t)?t.slice():t}function o(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(e[n],t[n])}function s(e){if(!i.isUndefined(t[e]))return r(void 0,t[e])}function a(n){return i.isUndefined(t[n])?i.isUndefined(e[n])?void 0:r(void 0,e[n]):r(void 0,t[n])}function c(n){return n in t?r(e[n],t[n]):n in e?r(void 0,e[n]):void 0}var l={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c};return i.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=l[e]||o,r=t(e);i.isUndefined(r)&&t!==c||(n[e]=r)})),n}},6026:(e,t,n)=>{"use strict";var i=n(5061);e.exports=function(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(i("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var i=n(4867),r=n(5655);e.exports=function(e,t,n){var o=this||r;return i.forEach(n,(function(n){e=n.call(o,e,t)})),e}},5655:(e,t,n)=>{"use strict";var i=n(4155),r=n(4867),o=n(6016),s=n(481),a={"Content-Type":"application/x-www-form-urlencoded"};function c(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==i&&"[object process]"===Object.prototype.toString.call(i))&&(l=n(5448)),l),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(c(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(c(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||u.transitional,n=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,o=!n&&"json"===this.responseType;if(o||i&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw s(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(a)})),e.exports=u},7288:e=>{e.exports={version:"0.24.0"}},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i{"use strict";var i=n(4867);function r(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(i.isURLSearchParams(t))o=t.toString();else{var s=[];i.forEach(t,(function(e,t){null!=e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,(function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),s.push(r(t)+"="+r(e))})))})),o=s.join("&")}if(o){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var i=n(4867);e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,o,s){var a=[];a.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),i.isString(r)&&a.push("path="+r),i.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var i=n(4867);e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var i=n(4867);e.exports=function(e,t){i.forEach(e,(function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])}))}},4109:(e,t,n)=>{"use strict";var i=n(4867),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,s={};return e?(i.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=i.trim(e.substr(0,o)).toLowerCase(),n=i.trim(e.substr(o+1)),t){if(s[t]&&r.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var i=n(5108),r=n(7288).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var s={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+r+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,r,a){if(!1===e)throw new Error(o(r," has been removed"+(t?" in "+t:"")));return t&&!s[r]&&(s[r]=!0,i.warn(o(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,a)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var i=Object.keys(e),r=i.length;r-- >0;){var o=i[r],s=t[o];if(s){var a=e[o],c=void 0===a||s(a,o,e);if(!0!==c)throw new TypeError("option "+o+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+o)}},validators:o}},4867:(e,t,n)=>{"use strict";var i=n(1849),r=Object.prototype.toString;function o(e){return"[object Array]"===r.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==r.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===r.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,i=e.length;n{"use strict";var i=n(9509).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,u=new Uint8Array(s);e[n];){var h=t[e.charCodeAt(n)];if(255===h)return;for(var d=0,f=s-1;(0!==h||d>>0,u[f]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=d,n++}for(var p=s-o;p!==s&&0===u[p];)p++;var g=i.allocUnsafe(r+(s-p));g.fill(0,0,r);for(var y=r;p!==s;)g[y++]=u[p++];return g}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=i.from(t)),!i.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,r=0,o=0,s=t.length;o!==s&&0===t[o];)o++,n++;for(var l=(s-o)*u+1>>>0,h=new Uint8Array(l);o!==s;){for(var d=t[o],f=0,p=l-1;(0!==d||f>>0,h[p]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");r=f,o++}for(var g=l-r;g!==l&&0===h[g];)g++;for(var y=c.repeat(n);g{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],i=t[1];return 3*(n+i)/4-i},t.toByteArray=function(e){var t,n,o=a(e),s=o[0],c=o[1],l=new r(function(e,t,n){return 3*(t+n)/4-n}(0,s,c)),u=0,h=c>0?s-4:s;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===c&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[u++]=255&t);1===c&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},t.fromByteArray=function(e){for(var t,i=e.length,r=i%3,o=[],s=16383,a=0,l=i-r;al?l:a+s));1===r?(t=e[i-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[i-2]<<8)+e[i-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],i[o.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function c(e,t,i){for(var r,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},8442:(e,t,n)=>{const i=n(9488);function r(e,t,n){const i=e[t]+e[n];let r=e[t+1]+e[n+1];i>=4294967296&&r++,e[t]=i,e[t+1]=r}function o(e,t,n,i){let r=e[t]+n;n<0&&(r+=4294967296);let o=e[t+1]+i;r>=4294967296&&o++,e[t]=r,e[t+1]=o}function s(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function a(e,t,n,i,s,a){const c=h[s],l=h[s+1],d=h[a],f=h[a+1];r(u,e,t),o(u,e,c,l);let p=u[i]^u[e],g=u[i+1]^u[e+1];u[i]=g,u[i+1]=p,r(u,n,i),p=u[t]^u[n],g=u[t+1]^u[n+1],u[t]=p>>>24^g<<8,u[t+1]=g>>>24^p<<8,r(u,e,t),o(u,e,d,f),p=u[i]^u[e],g=u[i+1]^u[e+1],u[i]=p>>>16^g<<16,u[i+1]=g>>>16^p<<16,r(u,n,i),p=u[t]^u[n],g=u[t+1]^u[n+1],u[t]=g>>>31^p<<1,u[t+1]=p>>>31^g<<1}const c=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),l=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((function(e){return 2*e}))),u=new Uint32Array(32),h=new Uint32Array(32);function d(e,t){let n=0;for(n=0;n<16;n++)u[n]=e.h[n],u[n+16]=c[n];for(u[24]=u[24]^e.t,u[25]=u[25]^e.t/4294967296,t&&(u[28]=~u[28],u[29]=~u[29]),n=0;n<32;n++)h[n]=s(e.b,4*n);for(n=0;n<12;n++)a(0,8,16,24,l[16*n+0],l[16*n+1]),a(2,10,18,26,l[16*n+2],l[16*n+3]),a(4,12,20,28,l[16*n+4],l[16*n+5]),a(6,14,22,30,l[16*n+6],l[16*n+7]),a(0,10,20,30,l[16*n+8],l[16*n+9]),a(2,12,22,24,l[16*n+10],l[16*n+11]),a(4,14,16,26,l[16*n+12],l[16*n+13]),a(6,8,18,28,l[16*n+14],l[16*n+15]);for(n=0;n<16;n++)e.h[n]=e.h[n]^u[n]^u[n+16]}const f=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function p(e,t,n,i){if(0===e||e>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(t&&t.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&16!==n.length)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(i&&16!==i.length)throw new Error("Illegal personal, expected Uint8Array with length is 16");const r={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:e};f.fill(0),f[0]=e,t&&(f[1]=t.length),f[2]=1,f[3]=1,n&&f.set(n,32),i&&f.set(i,48);for(let e=0;e<16;e++)r.h[e]=c[e]^s(f,4*e);return t&&(g(r,t),r.c=128),r}function g(e,t){for(let n=0;n>2]>>8*(3&n);return t}function b(e,t,n,r,o){n=n||64,e=i.normalizeInput(e),r&&(r=i.normalizeInput(r)),o&&(o=i.normalizeInput(o));const s=p(n,t,r,o);return g(s,e),y(s)}e.exports={blake2b:b,blake2bHex:function(e,t,n,r,o){const s=b(e,t,n,r,o);return i.toHex(s)},blake2bInit:p,blake2bUpdate:g,blake2bFinal:y}},5297:(e,t,n)=>{const i=n(9488);function r(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function o(e,t,n,i,r,o){l[e]=l[e]+l[t]+r,l[i]=s(l[i]^l[e],16),l[n]=l[n]+l[i],l[t]=s(l[t]^l[n],12),l[e]=l[e]+l[t]+o,l[i]=s(l[i]^l[e],8),l[n]=l[n]+l[i],l[t]=s(l[t]^l[n],7)}function s(e,t){return e>>>t^e<<32-t}const a=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),c=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),l=new Uint32Array(16),u=new Uint32Array(16);function h(e,t){let n=0;for(n=0;n<8;n++)l[n]=e.h[n],l[n+8]=a[n];for(l[12]^=e.t,l[13]^=e.t/4294967296,t&&(l[14]=~l[14]),n=0;n<16;n++)u[n]=r(e.b,4*n);for(n=0;n<10;n++)o(0,4,8,12,u[c[16*n+0]],u[c[16*n+1]]),o(1,5,9,13,u[c[16*n+2]],u[c[16*n+3]]),o(2,6,10,14,u[c[16*n+4]],u[c[16*n+5]]),o(3,7,11,15,u[c[16*n+6]],u[c[16*n+7]]),o(0,5,10,15,u[c[16*n+8]],u[c[16*n+9]]),o(1,6,11,12,u[c[16*n+10]],u[c[16*n+11]]),o(2,7,8,13,u[c[16*n+12]],u[c[16*n+13]]),o(3,4,9,14,u[c[16*n+14]],u[c[16*n+15]]);for(n=0;n<8;n++)e.h[n]^=l[n]^l[n+8]}function d(e,t){if(!(e>0&&e<=32))throw new Error("Incorrect output length, should be in [1, 32]");const n=t?t.length:0;if(t&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");const i={h:new Uint32Array(a),b:new Uint8Array(64),c:0,t:0,outlen:e};return i.h[0]^=16842752^n<<8^e,n>0&&(f(i,t),i.c=64),i}function f(e,t){for(let n=0;n>2]>>8*(3&n)&255;return t}function g(e,t,n){n=n||32,e=i.normalizeInput(e);const r=d(n,t);return f(r,e),p(r)}e.exports={blake2s:g,blake2sHex:function(e,t,n){const r=g(e,t,n);return i.toHex(r)},blake2sInit:d,blake2sUpdate:f,blake2sFinal:p}},1191:(e,t,n)=>{const i=n(8442),r=n(5297);e.exports={blake2b:i.blake2b,blake2bHex:i.blake2bHex,blake2bInit:i.blake2bInit,blake2bUpdate:i.blake2bUpdate,blake2bFinal:i.blake2bFinal,blake2s:r.blake2s,blake2sHex:r.blake2sHex,blake2sInit:r.blake2sInit,blake2sUpdate:r.blake2sUpdate,blake2sFinal:r.blake2sFinal}},9488:(e,t,n)=>{var i=n(5108);function r(e){return(4294967296+e).toString(16).substring(1)}e.exports={normalizeInput:function(e){let t;if(e instanceof Uint8Array)t=e;else{if("string"!=typeof e)throw new Error("Input must be an string, Buffer or Uint8Array");t=(new TextEncoder).encode(e)}return t},toHex:function(e){return Array.prototype.map.call(e,(function(e){return(e<16?"0":"")+e.toString(16)})).join("")},debugPrint:function(e,t,n){let o="\n"+e+" = ";for(let i=0;i=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var i=a(e,n);return n-1>=t&&(i|=a(e,n-1)<<4),i}function l(e,t,n,i){for(var r=0,o=Math.min(e.length,n),s=t;s=49?a-49+10:a>=17?a-17+10:a}return r}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),i(t===(0|t)&&t>=2&&t<=36);var r=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(r++,this.negative=1),r=0;r-=3)s=e[r]|e[r-1]<<8|e[r-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(r=0,o=0;r>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var i=0;i=t;i-=2)r=c(e,t,i)<=18?(o-=18,s+=1,this.words[s]|=r>>>26):o+=8;else for(i=(e.length-t)%2==0?t+1:t;i=18?(o-=18,s+=1,this.words[s]|=r>>>26):o+=8;this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var i=0,r=1;r<=67108863;r*=t)i++;i--,r=r/t|0;for(var o=e.length-n,s=o%i,a=Math.min(o,o-s)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var i=e.length+t.length|0;n.length=i,i=i-1|0;var r=0|e.words[0],o=0|t.words[0],s=r*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var l=1;l>>26,h=67108863&c,d=Math.min(l,t.length-1),f=Math.max(0,l-e.length+1);f<=d;f++){var p=l-f|0;u+=(s=(r=0|e.words[p])*(o=0|t.words[f])+h)/67108864|0,h=67108863&s}n.words[l]=0|h,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var r=0,o=0,s=0;s>>24-r&16777215)||s!==this.length-1?u[6-c.length]+c+n:c+n,(r+=2)>=26&&(r-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?g+n:u[l-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var r=this.byteLength(),o=n||Math.max(1,r);i(r<=o,"byte array longer than desired length"),i(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,l=new e(o),u=this.clone();if(c){for(a=0;!u.isZero();a++)s=u.andln(255),u.iushrn(8),l[a]=s;for(;a=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var i=0;ie.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var r=0;r0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var n=e/26|0,r=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,i=e):(n=e,i=this);for(var r=0,o=0;o>>26;for(;0!==r&&o>>26;if(this.length=n.length,0!==r)this.words[this.length]=r,this.length++;else if(n!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,i,r=this.cmp(e);if(0===r)return this.negative=0,this.length=1,this.words[0]=0,this;r>0?(n=this,i=e):(n=e,i=this);for(var o=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==o&&s>26,this.words[s]=67108863&t;if(0===o&&s>>13,f=0|s[1],p=8191&f,g=f>>>13,y=0|s[2],b=8191&y,m=y>>>13,v=0|s[3],w=8191&v,E=v>>>13,S=0|s[4],I=8191&S,A=S>>>13,R=0|s[5],x=8191&R,M=R>>>13,T=0|s[6],k=8191&T,O=T>>>13,U=0|s[7],C=8191&U,P=U>>>13,N=0|s[8],K=8191&N,L=N>>>13,q=0|s[9],z=8191&q,V=q>>>13,F=0|a[0],j=8191&F,D=F>>>13,B=0|a[1],W=8191&B,J=B>>>13,Z=0|a[2],Q=8191&Z,H=Z>>>13,G=0|a[3],Y=8191&G,X=G>>>13,_=0|a[4],$=8191&_,ee=_>>>13,te=0|a[5],ne=8191&te,ie=te>>>13,re=0|a[6],oe=8191&re,se=re>>>13,ae=0|a[7],ce=8191&ae,le=ae>>>13,ue=0|a[8],he=8191&ue,de=ue>>>13,fe=0|a[9],pe=8191&fe,ge=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(i=Math.imul(h,j))|0)+((8191&(r=(r=Math.imul(h,D))+Math.imul(d,j)|0))<<13)|0;l=((o=Math.imul(d,D))+(r>>>13)|0)+(ye>>>26)|0,ye&=67108863,i=Math.imul(p,j),r=(r=Math.imul(p,D))+Math.imul(g,j)|0,o=Math.imul(g,D);var be=(l+(i=i+Math.imul(h,W)|0)|0)+((8191&(r=(r=r+Math.imul(h,J)|0)+Math.imul(d,W)|0))<<13)|0;l=((o=o+Math.imul(d,J)|0)+(r>>>13)|0)+(be>>>26)|0,be&=67108863,i=Math.imul(b,j),r=(r=Math.imul(b,D))+Math.imul(m,j)|0,o=Math.imul(m,D),i=i+Math.imul(p,W)|0,r=(r=r+Math.imul(p,J)|0)+Math.imul(g,W)|0,o=o+Math.imul(g,J)|0;var me=(l+(i=i+Math.imul(h,Q)|0)|0)+((8191&(r=(r=r+Math.imul(h,H)|0)+Math.imul(d,Q)|0))<<13)|0;l=((o=o+Math.imul(d,H)|0)+(r>>>13)|0)+(me>>>26)|0,me&=67108863,i=Math.imul(w,j),r=(r=Math.imul(w,D))+Math.imul(E,j)|0,o=Math.imul(E,D),i=i+Math.imul(b,W)|0,r=(r=r+Math.imul(b,J)|0)+Math.imul(m,W)|0,o=o+Math.imul(m,J)|0,i=i+Math.imul(p,Q)|0,r=(r=r+Math.imul(p,H)|0)+Math.imul(g,Q)|0,o=o+Math.imul(g,H)|0;var ve=(l+(i=i+Math.imul(h,Y)|0)|0)+((8191&(r=(r=r+Math.imul(h,X)|0)+Math.imul(d,Y)|0))<<13)|0;l=((o=o+Math.imul(d,X)|0)+(r>>>13)|0)+(ve>>>26)|0,ve&=67108863,i=Math.imul(I,j),r=(r=Math.imul(I,D))+Math.imul(A,j)|0,o=Math.imul(A,D),i=i+Math.imul(w,W)|0,r=(r=r+Math.imul(w,J)|0)+Math.imul(E,W)|0,o=o+Math.imul(E,J)|0,i=i+Math.imul(b,Q)|0,r=(r=r+Math.imul(b,H)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,H)|0,i=i+Math.imul(p,Y)|0,r=(r=r+Math.imul(p,X)|0)+Math.imul(g,Y)|0,o=o+Math.imul(g,X)|0;var we=(l+(i=i+Math.imul(h,$)|0)|0)+((8191&(r=(r=r+Math.imul(h,ee)|0)+Math.imul(d,$)|0))<<13)|0;l=((o=o+Math.imul(d,ee)|0)+(r>>>13)|0)+(we>>>26)|0,we&=67108863,i=Math.imul(x,j),r=(r=Math.imul(x,D))+Math.imul(M,j)|0,o=Math.imul(M,D),i=i+Math.imul(I,W)|0,r=(r=r+Math.imul(I,J)|0)+Math.imul(A,W)|0,o=o+Math.imul(A,J)|0,i=i+Math.imul(w,Q)|0,r=(r=r+Math.imul(w,H)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,H)|0,i=i+Math.imul(b,Y)|0,r=(r=r+Math.imul(b,X)|0)+Math.imul(m,Y)|0,o=o+Math.imul(m,X)|0,i=i+Math.imul(p,$)|0,r=(r=r+Math.imul(p,ee)|0)+Math.imul(g,$)|0,o=o+Math.imul(g,ee)|0;var Ee=(l+(i=i+Math.imul(h,ne)|0)|0)+((8191&(r=(r=r+Math.imul(h,ie)|0)+Math.imul(d,ne)|0))<<13)|0;l=((o=o+Math.imul(d,ie)|0)+(r>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,i=Math.imul(k,j),r=(r=Math.imul(k,D))+Math.imul(O,j)|0,o=Math.imul(O,D),i=i+Math.imul(x,W)|0,r=(r=r+Math.imul(x,J)|0)+Math.imul(M,W)|0,o=o+Math.imul(M,J)|0,i=i+Math.imul(I,Q)|0,r=(r=r+Math.imul(I,H)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,H)|0,i=i+Math.imul(w,Y)|0,r=(r=r+Math.imul(w,X)|0)+Math.imul(E,Y)|0,o=o+Math.imul(E,X)|0,i=i+Math.imul(b,$)|0,r=(r=r+Math.imul(b,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0,i=i+Math.imul(p,ne)|0,r=(r=r+Math.imul(p,ie)|0)+Math.imul(g,ne)|0,o=o+Math.imul(g,ie)|0;var Se=(l+(i=i+Math.imul(h,oe)|0)|0)+((8191&(r=(r=r+Math.imul(h,se)|0)+Math.imul(d,oe)|0))<<13)|0;l=((o=o+Math.imul(d,se)|0)+(r>>>13)|0)+(Se>>>26)|0,Se&=67108863,i=Math.imul(C,j),r=(r=Math.imul(C,D))+Math.imul(P,j)|0,o=Math.imul(P,D),i=i+Math.imul(k,W)|0,r=(r=r+Math.imul(k,J)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,J)|0,i=i+Math.imul(x,Q)|0,r=(r=r+Math.imul(x,H)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,H)|0,i=i+Math.imul(I,Y)|0,r=(r=r+Math.imul(I,X)|0)+Math.imul(A,Y)|0,o=o+Math.imul(A,X)|0,i=i+Math.imul(w,$)|0,r=(r=r+Math.imul(w,ee)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,ee)|0,i=i+Math.imul(b,ne)|0,r=(r=r+Math.imul(b,ie)|0)+Math.imul(m,ne)|0,o=o+Math.imul(m,ie)|0,i=i+Math.imul(p,oe)|0,r=(r=r+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Ie=(l+(i=i+Math.imul(h,ce)|0)|0)+((8191&(r=(r=r+Math.imul(h,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((o=o+Math.imul(d,le)|0)+(r>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,i=Math.imul(K,j),r=(r=Math.imul(K,D))+Math.imul(L,j)|0,o=Math.imul(L,D),i=i+Math.imul(C,W)|0,r=(r=r+Math.imul(C,J)|0)+Math.imul(P,W)|0,o=o+Math.imul(P,J)|0,i=i+Math.imul(k,Q)|0,r=(r=r+Math.imul(k,H)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,H)|0,i=i+Math.imul(x,Y)|0,r=(r=r+Math.imul(x,X)|0)+Math.imul(M,Y)|0,o=o+Math.imul(M,X)|0,i=i+Math.imul(I,$)|0,r=(r=r+Math.imul(I,ee)|0)+Math.imul(A,$)|0,o=o+Math.imul(A,ee)|0,i=i+Math.imul(w,ne)|0,r=(r=r+Math.imul(w,ie)|0)+Math.imul(E,ne)|0,o=o+Math.imul(E,ie)|0,i=i+Math.imul(b,oe)|0,r=(r=r+Math.imul(b,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0,i=i+Math.imul(p,ce)|0,r=(r=r+Math.imul(p,le)|0)+Math.imul(g,ce)|0,o=o+Math.imul(g,le)|0;var Ae=(l+(i=i+Math.imul(h,he)|0)|0)+((8191&(r=(r=r+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;l=((o=o+Math.imul(d,de)|0)+(r>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,i=Math.imul(z,j),r=(r=Math.imul(z,D))+Math.imul(V,j)|0,o=Math.imul(V,D),i=i+Math.imul(K,W)|0,r=(r=r+Math.imul(K,J)|0)+Math.imul(L,W)|0,o=o+Math.imul(L,J)|0,i=i+Math.imul(C,Q)|0,r=(r=r+Math.imul(C,H)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,H)|0,i=i+Math.imul(k,Y)|0,r=(r=r+Math.imul(k,X)|0)+Math.imul(O,Y)|0,o=o+Math.imul(O,X)|0,i=i+Math.imul(x,$)|0,r=(r=r+Math.imul(x,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,i=i+Math.imul(I,ne)|0,r=(r=r+Math.imul(I,ie)|0)+Math.imul(A,ne)|0,o=o+Math.imul(A,ie)|0,i=i+Math.imul(w,oe)|0,r=(r=r+Math.imul(w,se)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,se)|0,i=i+Math.imul(b,ce)|0,r=(r=r+Math.imul(b,le)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,le)|0,i=i+Math.imul(p,he)|0,r=(r=r+Math.imul(p,de)|0)+Math.imul(g,he)|0,o=o+Math.imul(g,de)|0;var Re=(l+(i=i+Math.imul(h,pe)|0)|0)+((8191&(r=(r=r+Math.imul(h,ge)|0)+Math.imul(d,pe)|0))<<13)|0;l=((o=o+Math.imul(d,ge)|0)+(r>>>13)|0)+(Re>>>26)|0,Re&=67108863,i=Math.imul(z,W),r=(r=Math.imul(z,J))+Math.imul(V,W)|0,o=Math.imul(V,J),i=i+Math.imul(K,Q)|0,r=(r=r+Math.imul(K,H)|0)+Math.imul(L,Q)|0,o=o+Math.imul(L,H)|0,i=i+Math.imul(C,Y)|0,r=(r=r+Math.imul(C,X)|0)+Math.imul(P,Y)|0,o=o+Math.imul(P,X)|0,i=i+Math.imul(k,$)|0,r=(r=r+Math.imul(k,ee)|0)+Math.imul(O,$)|0,o=o+Math.imul(O,ee)|0,i=i+Math.imul(x,ne)|0,r=(r=r+Math.imul(x,ie)|0)+Math.imul(M,ne)|0,o=o+Math.imul(M,ie)|0,i=i+Math.imul(I,oe)|0,r=(r=r+Math.imul(I,se)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,se)|0,i=i+Math.imul(w,ce)|0,r=(r=r+Math.imul(w,le)|0)+Math.imul(E,ce)|0,o=o+Math.imul(E,le)|0,i=i+Math.imul(b,he)|0,r=(r=r+Math.imul(b,de)|0)+Math.imul(m,he)|0,o=o+Math.imul(m,de)|0;var xe=(l+(i=i+Math.imul(p,pe)|0)|0)+((8191&(r=(r=r+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;l=((o=o+Math.imul(g,ge)|0)+(r>>>13)|0)+(xe>>>26)|0,xe&=67108863,i=Math.imul(z,Q),r=(r=Math.imul(z,H))+Math.imul(V,Q)|0,o=Math.imul(V,H),i=i+Math.imul(K,Y)|0,r=(r=r+Math.imul(K,X)|0)+Math.imul(L,Y)|0,o=o+Math.imul(L,X)|0,i=i+Math.imul(C,$)|0,r=(r=r+Math.imul(C,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,ee)|0,i=i+Math.imul(k,ne)|0,r=(r=r+Math.imul(k,ie)|0)+Math.imul(O,ne)|0,o=o+Math.imul(O,ie)|0,i=i+Math.imul(x,oe)|0,r=(r=r+Math.imul(x,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,i=i+Math.imul(I,ce)|0,r=(r=r+Math.imul(I,le)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,le)|0,i=i+Math.imul(w,he)|0,r=(r=r+Math.imul(w,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Me=(l+(i=i+Math.imul(b,pe)|0)|0)+((8191&(r=(r=r+Math.imul(b,ge)|0)+Math.imul(m,pe)|0))<<13)|0;l=((o=o+Math.imul(m,ge)|0)+(r>>>13)|0)+(Me>>>26)|0,Me&=67108863,i=Math.imul(z,Y),r=(r=Math.imul(z,X))+Math.imul(V,Y)|0,o=Math.imul(V,X),i=i+Math.imul(K,$)|0,r=(r=r+Math.imul(K,ee)|0)+Math.imul(L,$)|0,o=o+Math.imul(L,ee)|0,i=i+Math.imul(C,ne)|0,r=(r=r+Math.imul(C,ie)|0)+Math.imul(P,ne)|0,o=o+Math.imul(P,ie)|0,i=i+Math.imul(k,oe)|0,r=(r=r+Math.imul(k,se)|0)+Math.imul(O,oe)|0,o=o+Math.imul(O,se)|0,i=i+Math.imul(x,ce)|0,r=(r=r+Math.imul(x,le)|0)+Math.imul(M,ce)|0,o=o+Math.imul(M,le)|0,i=i+Math.imul(I,he)|0,r=(r=r+Math.imul(I,de)|0)+Math.imul(A,he)|0,o=o+Math.imul(A,de)|0;var Te=(l+(i=i+Math.imul(w,pe)|0)|0)+((8191&(r=(r=r+Math.imul(w,ge)|0)+Math.imul(E,pe)|0))<<13)|0;l=((o=o+Math.imul(E,ge)|0)+(r>>>13)|0)+(Te>>>26)|0,Te&=67108863,i=Math.imul(z,$),r=(r=Math.imul(z,ee))+Math.imul(V,$)|0,o=Math.imul(V,ee),i=i+Math.imul(K,ne)|0,r=(r=r+Math.imul(K,ie)|0)+Math.imul(L,ne)|0,o=o+Math.imul(L,ie)|0,i=i+Math.imul(C,oe)|0,r=(r=r+Math.imul(C,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,i=i+Math.imul(k,ce)|0,r=(r=r+Math.imul(k,le)|0)+Math.imul(O,ce)|0,o=o+Math.imul(O,le)|0,i=i+Math.imul(x,he)|0,r=(r=r+Math.imul(x,de)|0)+Math.imul(M,he)|0,o=o+Math.imul(M,de)|0;var ke=(l+(i=i+Math.imul(I,pe)|0)|0)+((8191&(r=(r=r+Math.imul(I,ge)|0)+Math.imul(A,pe)|0))<<13)|0;l=((o=o+Math.imul(A,ge)|0)+(r>>>13)|0)+(ke>>>26)|0,ke&=67108863,i=Math.imul(z,ne),r=(r=Math.imul(z,ie))+Math.imul(V,ne)|0,o=Math.imul(V,ie),i=i+Math.imul(K,oe)|0,r=(r=r+Math.imul(K,se)|0)+Math.imul(L,oe)|0,o=o+Math.imul(L,se)|0,i=i+Math.imul(C,ce)|0,r=(r=r+Math.imul(C,le)|0)+Math.imul(P,ce)|0,o=o+Math.imul(P,le)|0,i=i+Math.imul(k,he)|0,r=(r=r+Math.imul(k,de)|0)+Math.imul(O,he)|0,o=o+Math.imul(O,de)|0;var Oe=(l+(i=i+Math.imul(x,pe)|0)|0)+((8191&(r=(r=r+Math.imul(x,ge)|0)+Math.imul(M,pe)|0))<<13)|0;l=((o=o+Math.imul(M,ge)|0)+(r>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,i=Math.imul(z,oe),r=(r=Math.imul(z,se))+Math.imul(V,oe)|0,o=Math.imul(V,se),i=i+Math.imul(K,ce)|0,r=(r=r+Math.imul(K,le)|0)+Math.imul(L,ce)|0,o=o+Math.imul(L,le)|0,i=i+Math.imul(C,he)|0,r=(r=r+Math.imul(C,de)|0)+Math.imul(P,he)|0,o=o+Math.imul(P,de)|0;var Ue=(l+(i=i+Math.imul(k,pe)|0)|0)+((8191&(r=(r=r+Math.imul(k,ge)|0)+Math.imul(O,pe)|0))<<13)|0;l=((o=o+Math.imul(O,ge)|0)+(r>>>13)|0)+(Ue>>>26)|0,Ue&=67108863,i=Math.imul(z,ce),r=(r=Math.imul(z,le))+Math.imul(V,ce)|0,o=Math.imul(V,le),i=i+Math.imul(K,he)|0,r=(r=r+Math.imul(K,de)|0)+Math.imul(L,he)|0,o=o+Math.imul(L,de)|0;var Ce=(l+(i=i+Math.imul(C,pe)|0)|0)+((8191&(r=(r=r+Math.imul(C,ge)|0)+Math.imul(P,pe)|0))<<13)|0;l=((o=o+Math.imul(P,ge)|0)+(r>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,i=Math.imul(z,he),r=(r=Math.imul(z,de))+Math.imul(V,he)|0,o=Math.imul(V,de);var Pe=(l+(i=i+Math.imul(K,pe)|0)|0)+((8191&(r=(r=r+Math.imul(K,ge)|0)+Math.imul(L,pe)|0))<<13)|0;l=((o=o+Math.imul(L,ge)|0)+(r>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Ne=(l+(i=Math.imul(z,pe))|0)+((8191&(r=(r=Math.imul(z,ge))+Math.imul(V,pe)|0))<<13)|0;return l=((o=Math.imul(V,ge))+(r>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=ye,c[1]=be,c[2]=me,c[3]=ve,c[4]=we,c[5]=Ee,c[6]=Se,c[7]=Ie,c[8]=Ae,c[9]=Re,c[10]=xe,c[11]=Me,c[12]=Te,c[13]=ke,c[14]=Oe,c[15]=Ue,c[16]=Ce,c[17]=Pe,c[18]=Ne,0!==l&&(c[19]=l,n.length++),n};function g(e,t,n){return(new y).mulp(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=f),o.prototype.mulTo=function(e,t){var n,i=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):i<63?f(this,e,t):i<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var i=0,r=0,o=0;o>>26)|0)>>>26,s&=67108863}n.words[o]=a,i=s,s=r}return 0!==i?n.words[o]=i:n.length--,n.strip()}(this,e,t):g(this,e,t),n},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,i=0;i>=1;return i},y.prototype.permute=function(e,t,n,i,r,o){for(var s=0;s>>=1)r++;return 1<>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s>=26,t+=r/67108864|0,t+=o>>>26,this.words[n]=67108863&o}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>r}return t}(e);if(0===t.length)return new o(1);for(var n=this,i=0;i=0);var t,n=e%26,r=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==r){for(t=this.length-1;t>=0;t--)this.words[t+r]=this.words[t];for(t=0;t=0),r=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,l=0;l=0&&(0!==u||l>=r);l--){var h=0|this.words[l];this.words[l]=u<<26-o|h>>>o,u=h&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return i(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,r=1<=0);var t=e%26,n=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var r=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[r+n]=67108863&o}for(;r>26,this.words[r+n]=67108863&o;if(0===a)return this.strip();for(i(-1===a),a=0,r=0;r>26,this.words[r]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),i=this.clone(),r=e,s=0|r.words[r.length-1];0!==(n=26-this._countBits(s))&&(r=r.ushln(n),i.iushln(n),s=0|r.words[r.length-1]);var a,c=i.length-r.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l=0;h--){var d=67108864*(0|i.words[r.length+h])+(0|i.words[r.length+h-1]);for(d=Math.min(d/s|0,67108863),i._ishlnsubmul(r,d,h);0!==i.negative;)d--,i.negative=0,i._ishlnsubmul(r,1,h),i.isZero()||(i.negative^=1);a&&(a.words[h]=d)}return a&&a.strip(),i.strip(),"div"!==t&&0!==n&&i.iushrn(n),{div:a||null,mod:i}},o.prototype.divmod=function(e,t,n){return i(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(r=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:r,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(r=a.div.neg()),{div:r,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var r,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,i=e.ushrn(1),r=e.andln(1),o=n.cmp(i);return o<0||1===r&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,n=0,r=this.length-1;r>=0;r--)n=(t*n+(0|this.words[r]))%e;return n},o.prototype.idivn=function(e){i(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*t;this.words[n]=r/e|0,t=r%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var r=new o(1),s=new o(0),a=new o(0),c=new o(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),h=t.clone();!t.isZero();){for(var d=0,f=1;0==(t.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(r.isOdd()||s.isOdd())&&(r.iadd(u),s.isub(h)),r.iushrn(1),s.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(h)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),r.isub(a),s.isub(c)):(n.isub(t),a.isub(r),c.isub(s))}return{a,b:c,gcd:n.iushln(l)}},o.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var r,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,d=1;0==(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(r=0===t.cmpn(1)?s:a).cmpn(0)<0&&r.iadd(e),r},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var i=0;t.isEven()&&n.isEven();i++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var r=t.cmp(n);if(r<0){var o=t;t=n,n=o}else if(0===r||0===n.cmpn(1))break;t.isub(n)}return n.iushln(i)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,n=(e-t)/26,r=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),i(e<=67108863,"Number is too big");var r=0|this.words[0];t=r===e?0:re.length)return 1;if(this.length=0;n--){var i=0|this.words[n],r=0|e.words[n];if(i!==r){ir&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function A(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var i=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},r(v,m),v.prototype.split=function(e,t){for(var n=4194303,i=Math.min(e.length,9),r=0;r>>22,o=s}o>>>=22,e.words[r-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=r,t=i}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new E;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},I.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},I.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var r=this.m.subn(1),s=0;!r.isZero()&&0===r.andln(1);)s++,r.iushrn(1);i(!r.isZero());var a=new o(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new o(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var h=this.pow(u,r),d=this.pow(e,r.addn(1).iushrn(1)),f=this.pow(e,r),p=s;0!==f.cmp(a);){for(var g=f,y=0;0!==g.cmp(a);y++)g=g.redSqr();i(y=0;i--){for(var l=t.words[i],u=c-1;u>=0;u--){var h=l>>u&1;r!==n[0]&&(r=this.sqr(r)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===i&&0===u)&&(r=this.mul(r,n[s]),a=0,s=0)):a=0}c=26}return r},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new A(e)},r(A,I),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),o=r;return r.cmp(this.m)>=0?o=r.isub(this.m):r.cmpn(0)<0&&(o=r.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),i=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),r=n.isub(i).iushrn(this.shift),s=r;return r.cmp(this.m)>=0?s=r.isub(this.m):r.cmpn(0)<0&&(s=r.iadd(this.m)),s._forceRed(this)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},9931:(e,t,n)=>{var i;function r(e){this.rand=e}if(e.exports=function(e){return i||(i=new r(null)),i.generate(e)},e.exports.Rand=r,r.prototype.generate=function(e){return this._rand(e)},r.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n{var i=n(8162);e.exports=i("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},3310:(e,t,n)=>{"use strict";var i=n(7191),r=n(9509).Buffer;e.exports=function(e){function t(t){var n=t.slice(0,-4),i=t.slice(-4),r=e(n);if(!(i[0]^r[0]|i[1]^r[1]|i[2]^r[2]|i[3]^r[3]))return n}return{encode:function(t){var n=e(t);return i.encode(r.concat([t,n],t.length+4))},decode:function(e){var n=t(i.decode(e));if(!n)throw new Error("Invalid checksum");return n},decodeUnsafe:function(e){var n=i.decodeUnsafe(e);if(n)return t(n)}}}},8334:(e,t,n)=>{"use strict";var i=n(3482),r=n(3310);e.exports=r((function(e){var t=i("sha256").update(e).digest();return i("sha256").update(t).digest()}))},8764:(e,t,n)=>{"use strict";var i=n(5108);const r=n(9742),o=n(645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function c(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|y(e,t);let i=c(n);const r=i.write(e,t);r!==n&&(i=i.slice(0,r));return i}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const i=e.valueOf&&e.valueOf();if(null!=i&&i!==e)return l.from(i,t,n);const r=function(e){if(l.isBuffer(e)){const t=0|g(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||X(e.length)?c(0):f(e);if("Buffer"===e.type&&Array.isArray(e.data))return f(e.data)}(e);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return h(e),c(e<0?0:0|g(e))}function f(e){const t=e.length<0?0:0|g(e.length),n=c(t);for(let i=0;i=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function y(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,i=arguments.length>2&&!0===arguments[2];if(!i&&0===n)return 0;let r=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return i?-1:Q(e).length;t=(""+t).toLowerCase(),r=!0}}function b(e,t,n){let i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return U(this,t,n);case"utf8":case"utf-8":return M(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function m(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function v(e,t,n,i,r){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=l.from(t,i)),l.isBuffer(t))return 0===t.length?-1:w(e,t,n,i,r);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,i,r);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,i,r){let o,s=1,a=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(r){let i=-1;for(o=n;oa&&(n=a-c),o=n;o>=0;o--){let n=!0;for(let i=0;ir&&(i=r):i=r;const o=t.length;let s;for(i>o/2&&(i=o/2),s=0;s>8,r=n%256,o.push(r),o.push(i);return o}(t,e.length-n),e,n,i)}function x(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function M(e,t,n){n=Math.min(e.length,n);const i=[];let r=t;for(;r239?4:t>223?3:t>191?2:1;if(r+s<=n){let n,i,a,c;switch(s){case 1:t<128&&(o=t);break;case 2:n=e[r+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(o=c));break;case 3:n=e[r+1],i=e[r+2],128==(192&n)&&128==(192&i)&&(c=(15&t)<<12|(63&n)<<6|63&i,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=e[r+1],i=e[r+2],a=e[r+3],128==(192&n)&&128==(192&i)&&128==(192&a)&&(c=(15&t)<<18|(63&n)<<12|(63&i)<<6|63&a,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,i.push(o>>>10&1023|55296),o=56320|1023&o),i.push(o),r+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let n="",i=0;for(;ii.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(i,r)):Uint8Array.prototype.set.call(i,t,r);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(i,r)}r+=t.length}return i},l.byteLength=y,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(e,t,n,i,r){if(Y(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===r&&(r=this.length),t<0||n>e.length||i<0||r>this.length)throw new RangeError("out of range index");if(i>=r&&t>=n)return 0;if(i>=r)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(r>>>=0)-(i>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(o,s),c=this.slice(i,r),u=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===i&&(i="utf8")):(i=n,n=void 0)}const r=this.length-t;if((void 0===n||n>r)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":case"latin1":case"binary":return I(this,e,t,n);case"base64":return A(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function k(e,t,n){let i="";n=Math.min(e.length,n);for(let r=t;ri)&&(n=i);let r="";for(let i=t;in)throw new RangeError("Trying to access beyond buffer length")}function N(e,t,n,i,r,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function K(e,t,n,i,r){B(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function L(e,t,n,i,r){B(t,i,r,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function q(e,t,n,i,r,o){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function z(e,t,n,i,r){return t=+t,n>>>=0,r||q(e,0,n,4),o.write(e,t,n,i,23,4),n+4}function V(e,t,n,i,r){return t=+t,n>>>=0,r||q(e,0,n,8),o.write(e,t,n,i,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||P(e,t,this.length);let i=this[e],r=1,o=0;for(;++o>>=0,t>>>=0,n||P(e,t,this.length);let i=this[e+--t],r=1;for(;t>0&&(r*=256);)i+=this[e+--t]*r;return i},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=$((function(e){W(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||J(e,this.length-8);const i=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,r=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(i)+(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||J(e,this.length-8);const i=t*2**24+65536*this[++e]+256*this[++e]+this[++e],r=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(i)<>>=0,t>>>=0,n||P(e,t,this.length);let i=this[e],r=1,o=0;for(;++o=r&&(i-=Math.pow(2,8*t)),i},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let i=t,r=1,o=this[e+--i];for(;i>0&&(r*=256);)o+=this[e+--i]*r;return r*=128,o>=r&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=$((function(e){W(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||J(e,this.length-8);const i=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||J(e,this.length-8);const i=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(i)<>>=0,t||P(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,i){if(e=+e,t>>>=0,n>>>=0,!i){N(this,e,t,n,Math.pow(2,8*n)-1,0)}let r=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,!i){N(this,e,t,n,Math.pow(2,8*n)-1,0)}let r=n-1,o=1;for(this[t+r]=255&e;--r>=0&&(o*=256);)this[t+r]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=$((function(e,t=0){return K(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=$((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}let r=0,o=1,s=0;for(this[t]=255&e;++r>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t>>>=0,!i){const i=Math.pow(2,8*n-1);N(this,e,t,n,i-1,-i)}let r=n-1,o=1,s=0;for(this[t+r]=255&e;--r>=0&&(o*=256);)e<0&&0===s&&0!==this[t+r+1]&&(s=1),this[t+r]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=$((function(e,t=0){return K(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=$((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return z(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return z(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return V(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return V(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,i){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(r=t;r=i+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function B(e,t,n,i,r,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${i} and < 2${i} ** ${8*(o+1)}${i}`:`>= -(2${i} ** ${8*(o+1)-1}${i}) and < 2 ** ${8*(o+1)-1}${i}`:`>= ${t}${i} and <= ${n}${i}`,new F.ERR_OUT_OF_RANGE("value",r,e)}!function(e,t,n){W(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||J(t,e.length-(n+1))}(i,r,o)}function W(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function J(e,t,n){if(Math.floor(e)!==e)throw W(e,n),new F.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}j("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),j("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),j("ERR_OUT_OF_RANGE",(function(e,t,n){let i=`The value of "${e}" is out of range.`,r=n;return Number.isInteger(n)&&Math.abs(n)>2**32?r=D(String(n)):"bigint"==typeof n&&(r=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(r=D(r)),r+="n"),i+=` It must be ${t}. Received ${r}`,i}),RangeError);const Z=/[^+/0-9A-Za-z-_]/g;function Q(e,t){let n;t=t||1/0;const i=e.length;let r=null;const o=[];for(let s=0;s55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===i){(t-=3)>-1&&o.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&o.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function H(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(Z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,i){let r;for(r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}function Y(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const _=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const i=16*n;for(let r=0;r<16;++r)t[i+r]=e[n]+e[r]}return t}();function $(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},1924:(e,t,n)=>{"use strict";var i=n(210),r=n(5559),o=r(i("String.prototype.indexOf"));e.exports=function(e,t){var n=i(e,!!t);return"function"==typeof n&&o(e,".prototype.")>-1?r(n):n}},5559:(e,t,n)=>{"use strict";var i=n(8612),r=n(210),o=r("%Function.prototype.apply%"),s=r("%Function.prototype.call%"),a=r("%Reflect.apply%",!0)||i.call(s,o),c=r("%Object.getOwnPropertyDescriptor%",!0),l=r("%Object.defineProperty%",!0),u=r("%Math.max%");if(l)try{l({},"a",{value:1})}catch(e){l=null}e.exports=function(e){var t=a(i,s,arguments);c&&l&&(c(t,"length").configurable&&l(t,"length",{value:1+u(0,e.length-(arguments.length-1))}));return t};var h=function(){return a(i,o,arguments)};l?l(e.exports,"apply",{value:h}):e.exports.apply=h},1027:(e,t,n)=>{var i=n(9509).Buffer,r=n(2830).Transform,o=n(2553).s;function s(e){r.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(5717)(s,r),s.prototype.update=function(e,t,n){"string"==typeof e&&(e=i.from(e,t));var r=this._update(e);return this.hashMode?this:(n&&(r=this._toString(r,n)),r)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,n){var i;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){i=e}finally{n(i)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||i.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var i=this._decoder.write(e);return n&&(i+=this._decoder.end()),i},e.exports=s},5108:(e,t,n)=>{var i=n(9539),r=n(9282);function o(){return(new Date).getTime()}var s,a=Array.prototype.slice,c={};s=void 0!==n.g&&n.g.console?n.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var l=[[function(){},"log"],[function(){s.log.apply(s,arguments)},"info"],[function(){s.log.apply(s,arguments)},"warn"],[function(){s.warn.apply(s,arguments)},"error"],[function(e){c[e]=o()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=o()-t;s.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=i.format.apply(null,arguments),s.error(e.stack)},"trace"],[function(e){s.log(i.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);r.ok(!1,i.format.apply(null,t))}},"assert"]],u=0;u{"use strict";var i=n(5717),r=n(2318),o=n(9785),s=n(9072),a=n(1027);function c(e){a.call(this,"digest"),this._hash=e}i(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new r:"rmd160"===e||"ripemd160"===e?new o:new c(s(e))}},4020:e=>{"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),i=new RegExp("("+t+")+","gi");function r(e,t){try{return[decodeURIComponent(e.join(""))]}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),i=e.slice(t);return Array.prototype.concat.call([],r(n),r(i))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n)||[],i=1;i{"use strict";var i=n(2215),r="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),o=Object.prototype.toString,s=Array.prototype.concat,a=Object.defineProperty,c=n(1044)(),l=a&&c,u=function(e,t,n,i){if(t in e)if(!0===i){if(e[t]===n)return}else if("function"!=typeof(r=i)||"[object Function]"!==o.call(r)||!i())return;var r;l?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},h=function(e,t){var n=arguments.length>2?arguments[2]:{},o=i(t);r&&(o=s.call(o,Object.getOwnPropertySymbols(t)));for(var a=0;a{"use strict";var i=t;i.version=n(8597).i8,i.utils=n(953),i.rand=n(9931),i.curve=n(8254),i.curves=n(5427),i.ec=n(7954),i.eddsa=n(5980)},4918:(e,t,n)=>{"use strict";var i=n(3550),r=n(953),o=r.getNAF,s=r.getJSF,a=r.assert;function c(e,t){this.type=e,this.p=new i(t.p,16),this.red=t.prime?i.red(t.prime):i.mont(this.p),this.zero=new i(0).toRed(this.red),this.one=new i(1).toRed(this.red),this.two=new i(2).toRed(this.red),this.n=t.n&&new i(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),i=o(t,1,this._bitLength),r=(1<=s;u--)c=(c<<1)+i[u];l.push(c)}for(var h=this.jpoint(null,null,null),d=this.jpoint(null,null,null),f=r;f>0;f--){for(s=0;s=0;l--){for(var u=0;l>=0&&0===s[l];l--)u++;if(l>=0&&u++,c=c.dblp(u),l<0)break;var h=s[l];a(0!==h),c="affine"===e.type?h>0?c.mixedAdd(r[h-1>>1]):c.mixedAdd(r[-h-1>>1].neg()):h>0?c.add(r[h-1>>1]):c.add(r[-h-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,i,r){var a,c,l,u=this._wnafT1,h=this._wnafT2,d=this._wnafT3,f=0;for(a=0;a=1;a-=2){var g=a-1,y=a;if(1===u[g]&&1===u[y]){var b=[t[g],null,null,t[y]];0===t[g].y.cmp(t[y].y)?(b[1]=t[g].add(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg())):0===t[g].y.cmp(t[y].y.redNeg())?(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].add(t[y].neg())):(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[g],n[y]);for(f=Math.max(v[0].length,f),d[g]=new Array(f),d[y]=new Array(f),c=0;c=0;a--){for(var A=0;a>=0;){var R=!0;for(c=0;c=0&&A++,S=S.dblp(A),a<0)break;for(c=0;c0?l=h[c][x-1>>1]:x<0&&(l=h[c][-x-1>>1].neg()),S="affine"===l.type?S.mixedAdd(l):S.add(l))}}for(a=0;a=Math.ceil((e.bitLength()+1)/t.step)},l.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],i=this,r=0;r{"use strict";var i=n(953),r=n(3550),o=n(5717),s=n(4918),a=i.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new r(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new r(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new r(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function l(e,t,n,i,o){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===i?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new r(t,16),this.y=new r(n,16),this.z=i?new r(i,16):this.curve.one,this.t=o&&new r(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(c,s),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,i){return this.point(e,t,n,i)},c.prototype.pointFromX=function(e,t){(e=new r(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),i=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=i.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new r(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),i=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=i.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),i=t.redMul(this.a).redAdd(n),r=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===i.cmp(r)},o(l,s.BasePoint),c.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},c.prototype.point=function(e,t,n,i){return new l(this,e,t,n,i)},l.fromJSON=function(e,t){return new l(e,t[0],t[1],t[2])},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var i=this.curve._mulA(e),r=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=i.redAdd(t),s=o.redSub(n),a=i.redSub(t),c=r.redMul(s),l=o.redMul(a),u=r.redMul(a),h=s.redMul(o);return this.curve.point(c,l,h,u)},l.prototype._projDbl=function(){var e,t,n,i,r,o,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var l=(i=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(l.redSub(this.curve.two)),t=l.redMul(i.redSub(c)),n=l.redSqr().redSub(l).redSub(l)):(r=this.z.redSqr(),o=l.redSub(r).redISub(r),e=s.redSub(a).redISub(c).redMul(o),t=l.redMul(i.redSub(c)),n=l.redMul(o))}else i=a.redAdd(c),r=this.curve._mulC(this.z).redSqr(),o=i.redSub(r).redSub(r),e=this.curve._mulC(s.redISub(i)).redMul(o),t=this.curve._mulC(i).redMul(a.redISub(c)),n=i.redMul(o);return this.curve.point(e,t,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),i=this.t.redMul(this.curve.dd).redMul(e.t),r=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(t),s=r.redSub(i),a=r.redAdd(i),c=n.redAdd(t),l=o.redMul(s),u=a.redMul(c),h=o.redMul(c),d=s.redMul(a);return this.curve.point(l,u,d,h)},l.prototype._projAdd=function(e){var t,n,i=this.z.redMul(e.z),r=i.redSqr(),o=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(o).redMul(s),c=r.redSub(a),l=r.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(s),h=i.redMul(c).redMul(u);return this.curve.twisted?(t=i.redMul(l).redMul(s.redSub(this.curve._mulA(o))),n=c.redMul(l)):(t=i.redMul(l).redMul(s.redSub(o)),n=this.curve._mulC(c).redMul(l)),this.curve.point(h,t,n)},l.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},l.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},l.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},l.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),i=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(i),0===this.x.cmp(t))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},8254:(e,t,n)=>{"use strict";var i=t;i.base=n(4918),i.short=n(6673),i.mont=n(2881),i.edwards=n(1138)},2881:(e,t,n)=>{"use strict";var i=n(3550),r=n(5717),o=n(4918),s=n(953);function a(e){o.call(this,"mont",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.i4=new i(4).toRed(this.red).redInvm(),this.two=new i(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){o.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new i(t,16),this.z=new i(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}r(a,o),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),i=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===i.redSqrt().redSqr().cmp(i)},r(c,o.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),i=e.redMul(t),r=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(i,r)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),i=this.x.redSub(this.z),r=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(n),s=r.redMul(i),a=t.z.redMul(o.redAdd(s).redSqr()),c=t.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,i=this.curve.point(null,null),r=[];0!==t.cmpn(0);t.iushrn(1))r.push(t.andln(1));for(var o=r.length-1;o>=0;o--)0===r[o]?(n=n.diffAdd(i,this),i=i.dbl()):(i=n.diffAdd(i,this),n=n.dbl());return i},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,n)=>{"use strict";var i=n(953),r=n(3550),o=n(5717),s=n(4918),a=i.assert;function c(e){s.call(this,"short",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(e,t,n,i){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new r(t,16),this.y=new r(n,16),i&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,n,i){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===i?(this.x=this.curve.one,this.y=this.curve.one,this.z=new r(0)):(this.x=new r(t,16),this.y=new r(n,16),this.z=new r(i,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(c,s),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new r(e.beta,16).toRed(this.red);else{var i=this._getEndoRoots(this.p);t=(t=i[0].cmp(i[1])<0?i[0]:i[1]).toRed(this.red)}if(e.lambda)n=new r(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new r(e.a,16),b:new r(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:r.mont(e),n=new r(2).toRed(t).redInvm(),i=n.redNeg(),o=new r(3).toRed(t).redNeg().redSqrt().redMul(n);return[i.redAdd(o).fromRed(),i.redSub(o).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,i,o,s,a,c,l,u,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new r(1),g=new r(0),y=new r(0),b=new r(1),m=0;0!==d.cmpn(0);){var v=f.div(d);l=f.sub(v.mul(d)),u=y.sub(v.mul(p));var w=b.sub(v.mul(g));if(!i&&l.cmp(h)<0)t=c.neg(),n=p,i=l.neg(),o=u;else if(i&&2==++m)break;c=l,f=d,d=l,y=p,p=u,b=g,g=w}s=l.neg(),a=u;var E=i.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(E)>=0&&(s=t,a=n),i.negative&&(i=i.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:i,b:o},{a:s,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],i=t[1],r=i.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),s=r.mul(n.a),a=o.mul(i.a),c=r.mul(n.b),l=o.mul(i.b);return{k1:e.sub(s).sub(a),k2:c.add(l).neg()}},c.prototype.pointFromX=function(e,t){(e=new r(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),i=n.redSqrt();if(0!==i.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=i.fromRed().isOdd();return(t&&!o||!t&&o)&&(i=i.redNeg()),this.point(e,i)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,i=this.a.redMul(t),r=t.redSqr().redMul(t).redIAdd(i).redIAdd(this.b);return 0===n.redSqr().redISub(r).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var i=this._endoWnafT1,r=this._endoWnafT2,o=0;o":""},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),i=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,i)},l.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),i=e.redInvm(),r=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(i),o=r.redSqr().redISub(this.x.redAdd(this.x)),s=r.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(e){return e=new r(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){var i=[this,t],r=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,r):this.curve._wnafMulAdd(1,i,r,2)},l.prototype.jmulAdd=function(e,t,n){var i=[this,t],r=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(i,r,!0):this.curve._wnafMulAdd(1,i,r,2,!0)},l.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},l.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,i=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(i)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(i)}}}return t},l.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(u,s.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),i=this.y.redMul(t).redMul(e);return this.curve.point(n,i)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),i=this.x.redMul(t),r=e.x.redMul(n),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),a=i.redSub(r),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),u=l.redMul(a),h=i.redMul(l),d=c.redSqr().redIAdd(u).redISub(h).redISub(h),f=c.redMul(h.redISub(d)).redISub(o.redMul(u)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(d,f,p)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,i=e.x.redMul(t),r=this.y,o=e.y.redMul(t).redMul(this.z),s=n.redSub(i),a=r.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),u=n.redMul(c),h=a.redSqr().redIAdd(l).redISub(u).redISub(u),d=a.redMul(u.redISub(h)).redISub(r.redMul(l)),f=this.z.redMul(s);return this.curve.jpoint(h,d,f)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(r),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},5427:(e,t,n)=>{"use strict";var i,r=t,o=n(3715),s=n(8254),a=n(953).assert;function c(e){"short"===e.type?this.curve=new s.short(e):"edwards"===e.type?this.curve=new s.edwards(e):this.curve=new s.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function l(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=c,l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{i=n(1037)}catch(e){i=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",i]})},7954:(e,t,n)=>{"use strict";var i=n(3550),r=n(2156),o=n(953),s=n(5427),a=n(9931),c=o.assert,l=n(1251),u=n(611);function h(e){if(!(this instanceof h))return new h(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=h,h.prototype.keyPair=function(e){return new l(this,e)},h.prototype.keyFromPrivate=function(e,t){return l.fromPrivate(this,e,t)},h.prototype.keyFromPublic=function(e,t){return l.fromPublic(this,e,t)},h.prototype.genKeyPair=function(e){e||(e={});for(var t=new r({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new i(2));;){var s=new i(t.generate(n));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},h.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},h.prototype.sign=function(e,t,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new i(e,16));for(var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),c=e.toArray("be",s),l=new r({hash:this.hash,entropy:a,nonce:c,pers:o.pers,persEnc:o.persEnc||"utf8"}),h=this.n.sub(new i(1)),d=0;;d++){var f=o.k?o.k(d):new i(l.generate(this.n.byteLength()));if(!((f=this._truncateToN(f,!0)).cmpn(1)<=0||f.cmp(h)>=0)){var p=this.g.mul(f);if(!p.isInfinity()){var g=p.getX(),y=g.umod(this.n);if(0!==y.cmpn(0)){var b=f.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==g.cmp(y)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),m^=1),new u({r:y,s:b,recoveryParam:m})}}}}}},h.prototype.verify=function(e,t,n,r){e=this._truncateToN(new i(e,16)),n=this.keyFromPublic(n,r);var o=(t=new u(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),l=c.mul(e).umod(this.n),h=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,n.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,n.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},h.prototype.recoverPubKey=function(e,t,n,r){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,r);var o=this.n,s=new i(e),a=t.r,l=t.s,h=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),h):this.curve.pointFromX(a,h);var f=t.r.invm(o),p=o.sub(s).mul(f).umod(o),g=l.mul(f).umod(o);return this.g.mulAdd(p,a,g)},h.prototype.getKeyRecoveryParam=function(e,t,n,i){if(null!==(t=new u(t,i)).recoveryParam)return t.recoveryParam;for(var r=0;r<4;r++){var o;try{o=this.recoverPubKey(e,t,r)}catch(e){continue}if(o.eq(n))return r}throw new Error("Unable to find valid recovery factor")}},1251:(e,t,n)=>{"use strict";var i=n(3550),r=n(953).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,n){return t instanceof o?t:new o(e,{pub:t,pubEnc:n})},o.fromPrivate=function(e,t,n){return t instanceof o?t:new o(e,{priv:t,privEnc:n})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new i(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?r(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||r(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.validate()||r(e.validate(),"public point not validated"),e.mul(this.priv).getX()},o.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return""}},611:(e,t,n)=>{"use strict";var i=n(3550),r=n(953),o=r.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new i(e.r,16),this.s=new i(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var i=15&n;if(0===i||i>4)return!1;for(var r=0,o=0,s=t.place;o>>=0;return!(r<=127)&&(t.place=s,r)}function l(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=r.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;var o=c(e,n);if(!1===o)return!1;if(o+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=c(e,n);if(!1===s)return!1;var l=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var u=c(e,n);if(!1===u)return!1;if(e.length!==u+n.place)return!1;var h=e.slice(n.place,u+n.place);if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new i(l),this.s=new i(h),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=l(t),n=l(n);!(n[0]||128&n[1]);)n=n.slice(1);var i=[2];u(i,t.length),(i=i.concat(t)).push(2),u(i,n.length);var o=i.concat(n),s=[48];return u(s,o.length),s=s.concat(o),r.encode(s,e)}},5980:(e,t,n)=>{"use strict";var i=n(3715),r=n(5427),o=n(953),s=o.assert,a=o.parseBytes,c=n(9087),l=n(3622);function u(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=r[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=i.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),i=this.hashInt(n.messagePrefix(),e),r=this.g.mul(i),o=this.encodePoint(r),s=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),c=i.add(s).umod(this.curve.n);return this.makeSignature({R:r,S:c,Rencoded:o})},u.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var i=this.keyFromPublic(n),r=this.hashInt(t.Rencoded(),i.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(i.pub().mul(r)).eq(o)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var i=n(953),r=i.assert,o=i.parseBytes,s=i.cachedProperty;function a(e,t){this.eddsa=e,this._secret=o(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=o(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,i=t.slice(0,e.encodingLength);return i[0]&=248,i[n]&=127,i[n]|=64,i})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return r(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return r(this._secret,"KeyPair is public only"),i.encode(this.secret(),e)},a.prototype.getPublic=function(e){return i.encode(this.pubBytes(),e)},e.exports=a},3622:(e,t,n)=>{"use strict";var i=n(3550),r=n(953),o=r.assert,s=r.cachedProperty,a=r.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),o(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof i&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return r.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},1037:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},953:(e,t,n)=>{"use strict";var i=t,r=n(3550),o=n(9746),s=n(4504);i.assert=o,i.toArray=s.toArray,i.zero2=s.zero2,i.toHex=s.toHex,i.encode=s.encode,i.getNAF=function(e,t,n){var i=new Array(Math.max(e.bitLength(),n)+1);i.fill(0);for(var r=1<(r>>1)-1?(r>>1)-c:c,o.isubn(a)):a=0,i[s]=a,o.iushrn(1)}return i},i.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var i,r=0,o=0;e.cmpn(-r)>0||t.cmpn(-o)>0;){var s,a,c=e.andln(3)+r&3,l=t.andln(3)+o&3;3===c&&(c=-1),3===l&&(l=-1),s=0==(1&c)?0:3!==(i=e.andln(7)+r&7)&&5!==i||2!==l?c:-c,n[0].push(s),a=0==(1&l)?0:3!==(i=t.andln(7)+o&7)&&5!==i||2!==c?l:-l,n[1].push(a),2*r===s+1&&(r=1-r),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return n},i.cachedProperty=function(e,t,n){var i="_"+t;e.prototype[t]=function(){return void 0!==this[i]?this[i]:this[i]=n.call(this)}},i.parseBytes=function(e){return"string"==typeof e?i.toArray(e,"hex"):e},i.intFromLE=function(e){return new r(e,"hex","le")}},8091:e=>{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),i=1;i{"use strict";var i,r=n(5108),o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};i=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(n,i){function r(n){e.removeListener(t,o),i(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,r,{once:!0})}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var l=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function d(e,t,n,i){var o,s,a,c;if(u(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]),void 0===a)a=s[t]=n,++e._eventsCount;else if("function"==typeof a?a=s[t]=i?[n,a]:[a,n]:i?a.unshift(n):a.push(n),(o=h(e))>0&&a.length>o&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,c=l,r&&r.warn&&r.warn(c)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=f.bind(i);return r.listener=n,i.wrapFn=r,r}function g(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=r[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var l=c.length,u=b(c,l);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,r=o;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1=0;i--)this.removeListener(e,t[i]);return this},c.prototype.listeners=function(e){return g(this,e,!0)},c.prototype.rawListeners=function(e){return g(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):y.call(e,t)},c.prototype.listenerCount=y,c.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},4029:(e,t,n)=>{"use strict";var i=n(5320),r=Object.prototype.toString,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!i(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=n),"[object Array]"===r.call(e)?function(e,t,n){for(var i=0,r=e.length;i{"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var i=this;if("function"!=typeof i||"[object Function]"!==n.call(i))throw new TypeError("Function.prototype.bind called on incompatible "+i);for(var r,o=t.call(arguments,1),s=Math.max(0,i.length-o.length),a=[],c=0;c{"use strict";var i=n(7648);e.exports=Function.prototype.bind||i},210:(e,t,n)=>{"use strict";var i,r=SyntaxError,o=Function,s=TypeError,a=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var l=function(){throw new s},u=c?function(){try{return l}catch(e){try{return c(arguments,"callee").get}catch(e){return l}}}():l,h=n(1405)(),d=n(8185)(),f=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),p={},g="undefined"!=typeof Uint8Array&&f?f(Uint8Array):i,y={"%AggregateError%":"undefined"==typeof AggregateError?i:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?i:ArrayBuffer,"%ArrayIteratorPrototype%":h&&f?f([][Symbol.iterator]()):i,"%AsyncFromSyncIteratorPrototype%":i,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"==typeof Atomics?i:Atomics,"%BigInt%":"undefined"==typeof BigInt?i:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?i:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?i:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?i:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?i:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?i:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?i:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":p,"%Int8Array%":"undefined"==typeof Int8Array?i:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?i:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?i:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":h&&f?f(f([][Symbol.iterator]())):i,"%JSON%":"object"==typeof JSON?JSON:i,"%Map%":"undefined"==typeof Map?i:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&h&&f?f((new Map)[Symbol.iterator]()):i,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?i:Promise,"%Proxy%":"undefined"==typeof Proxy?i:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?i:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?i:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&h&&f?f((new Set)[Symbol.iterator]()):i,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?i:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":h&&f?f(""[Symbol.iterator]()):i,"%Symbol%":h?Symbol:i,"%SyntaxError%":r,"%ThrowTypeError%":u,"%TypedArray%":g,"%TypeError%":s,"%Uint8Array%":"undefined"==typeof Uint8Array?i:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?i:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?i:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?i:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?i:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?i:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?i:WeakSet};if(f)try{null.error}catch(e){var b=f(f(e));y["%Error.prototype%"]=b}var m=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var i=e("%AsyncGeneratorFunction%");i&&(n=i.prototype)}else if("%AsyncIteratorPrototype%"===t){var r=e("%AsyncGenerator%");r&&f&&(n=f(r.prototype))}return y[t]=n,n},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(8612),E=n(7642),S=w.call(Function.call,Array.prototype.concat),I=w.call(Function.apply,Array.prototype.splice),A=w.call(Function.call,String.prototype.replace),R=w.call(Function.call,String.prototype.slice),x=w.call(Function.call,RegExp.prototype.exec),M=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,T=/\\(\\)?/g,k=function(e,t){var n,i=e;if(E(v,i)&&(i="%"+(n=v[i])[0]+"%"),E(y,i)){var o=y[i];if(o===p&&(o=m(i)),void 0===o&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:i,value:o}}throw new r("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');if(null===x(/^%?[^%]*%?$/,e))throw new r("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=R(e,0,1),n=R(e,-1);if("%"===t&&"%"!==n)throw new r("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new r("invalid intrinsic syntax, expected opening `%`");var i=[];return A(e,M,(function(e,t,n,r){i[i.length]=n?A(r,T,"$1"):t||e})),i}(e),i=n.length>0?n[0]:"",o=k("%"+i+"%",t),a=o.name,l=o.value,u=!1,h=o.alias;h&&(i=h[0],I(n,S([0,1],h)));for(var d=1,f=!0;d=n.length){var m=c(l,p);l=(f=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:l[p]}else f=E(l,p),l=l[p];f&&!u&&(y[a]=l)}}return l}},7296:(e,t,n)=>{"use strict";var i=n(210)("%Object.getOwnPropertyDescriptor%",!0);if(i)try{i([],"length")}catch(e){i=null}e.exports=i},1044:(e,t,n)=>{"use strict";var i=n(210)("%Object.defineProperty%",!0),r=function(){if(i)try{return i({},"a",{value:1}),!0}catch(e){return!1}return!1};r.hasArrayLengthDefineBug=function(){if(!r())return null;try{return 1!==i([],"length",{value:1}).length}catch(e){return!0}},e.exports=r},8185:e=>{"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},1405:(e,t,n)=>{"use strict";var i="undefined"!=typeof Symbol&&Symbol,r=n(5419);e.exports=function(){return"function"==typeof i&&("function"==typeof Symbol&&("symbol"==typeof i("foo")&&("symbol"==typeof Symbol("bar")&&r())))}},5419:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var i=Object.getOwnPropertySymbols(e);if(1!==i.length||i[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var r=Object.getOwnPropertyDescriptor(e,t);if(42!==r.value||!0!==r.enumerable)return!1}return!0}},6410:(e,t,n)=>{"use strict";var i=n(5419);e.exports=function(){return i()&&!!Symbol.toStringTag}},7642:(e,t,n)=>{"use strict";var i=n(8612);e.exports=i.call(Function.call,Object.prototype.hasOwnProperty)},3349:(e,t,n)=>{"use strict";var i=n(9509).Buffer,r=n(8473).Transform;function o(e){r.call(this),this._block=i.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(5717)(o,r),o.prototype._transform=function(e,t,n){var i=null;try{this.update(e,t)}catch(e){i=e}n(i)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!i.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");i.isBuffer(e)||(e=i.from(e,t));for(var n=this._block,r=0;this._blockOffset+e.length-r>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},3715:(e,t,n)=>{var i=t;i.utils=n(6436),i.common=n(5772),i.sha=n(9041),i.ripemd=n(2949),i.hmac=n(2344),i.sha1=i.sha.sha1,i.sha256=i.sha.sha256,i.sha224=i.sha.sha224,i.sha384=i.sha.sha384,i.sha512=i.sha.sha512,i.ripemd160=i.ripemd.ripemd160},5772:(e,t,n)=>{"use strict";var i=n(6436),r=n(9746);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=i.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=i.join32(e,0,e.length-n,this.endian);for(var r=0;r>>24&255,i[r++]=e>>>16&255,i[r++]=e>>>8&255,i[r++]=255&e}else for(i[r++]=255&e,i[r++]=e>>>8&255,i[r++]=e>>>16&255,i[r++]=e>>>24&255,i[r++]=0,i[r++]=0,i[r++]=0,i[r++]=0,o=8;o{"use strict";var i=n(6436),r=n(9746);function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(i.toArray(t,n))}e.exports=o,o.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),r(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var i=n(6436),r=n(5772),o=i.rotl32,s=i.sum32,a=i.sum32_3,c=i.sum32_4,l=r.BlockHash;function u(){if(!(this instanceof u))return new u;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(e,t,n,i){return e<=15?t^n^i:e<=31?t&n|~t&i:e<=47?(t|~n)^i:e<=63?t&i|n&~i:t^(n|~i)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function f(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}i.inherits(u,l),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],i=this.h[1],r=this.h[2],l=this.h[3],u=this.h[4],m=n,v=i,w=r,E=l,S=u,I=0;I<80;I++){var A=s(o(c(n,h(I,i,r,l),e[p[I]+t],d(I)),y[I]),u);n=u,u=l,l=o(r,10),r=i,i=A,A=s(o(c(m,h(79-I,v,w,E),e[g[I]+t],f(I)),b[I]),S),m=S,S=E,E=o(w,10),w=v,v=A}A=a(this.h[1],r,E),this.h[1]=a(this.h[2],l,S),this.h[2]=a(this.h[3],u,m),this.h[3]=a(this.h[4],n,v),this.h[4]=a(this.h[0],i,w),this.h[0]=A},u.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"little"):i.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},9041:(e,t,n)=>{"use strict";t.sha1=n(4761),t.sha224=n(799),t.sha256=n(9344),t.sha384=n(772),t.sha512=n(4236)},4761:(e,t,n)=>{"use strict";var i=n(6436),r=n(5772),o=n(7038),s=i.rotl32,a=i.sum32,c=i.sum32_5,l=o.ft_1,u=r.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,i=0;i<16;i++)n[i]=e[t+i];for(;i{"use strict";var i=n(6436),r=n(9344);function o(){if(!(this instanceof o))return new o;r.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}i.inherits(o,r),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,7),"big"):i.split32(this.h.slice(0,7),"big")}},9344:(e,t,n)=>{"use strict";var i=n(6436),r=n(5772),o=n(7038),s=n(9746),a=i.sum32,c=i.sum32_4,l=i.sum32_5,u=o.ch32,h=o.maj32,d=o.s0_256,f=o.s1_256,p=o.g0_256,g=o.g1_256,y=r.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}i.inherits(m,y),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var n=this.W,i=0;i<16;i++)n[i]=e[t+i];for(;i{"use strict";var i=n(6436),r=n(4236);function o(){if(!(this instanceof o))return new o;r.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}i.inherits(o,r),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h.slice(0,12),"big"):i.split32(this.h.slice(0,12),"big")}},4236:(e,t,n)=>{"use strict";var i=n(6436),r=n(5772),o=n(9746),s=i.rotr64_hi,a=i.rotr64_lo,c=i.shr64_hi,l=i.shr64_lo,u=i.sum64,h=i.sum64_hi,d=i.sum64_lo,f=i.sum64_4_hi,p=i.sum64_4_lo,g=i.sum64_5_hi,y=i.sum64_5_lo,b=r.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(e,t,n,i,r){var o=e&n^~e&r;return o<0&&(o+=4294967296),o}function E(e,t,n,i,r,o){var s=t&i^~t&o;return s<0&&(s+=4294967296),s}function S(e,t,n,i,r){var o=e&n^e&r^n&r;return o<0&&(o+=4294967296),o}function I(e,t,n,i,r,o){var s=t&i^t&o^i&o;return s<0&&(s+=4294967296),s}function A(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function R(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=a(e,t,14)^a(e,t,18)^a(t,e,9);return n<0&&(n+=4294967296),n}function T(e,t){var n=s(e,t,1)^s(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function k(e,t){var n=a(e,t,1)^a(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=s(e,t,19)^s(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function U(e,t){var n=a(e,t,19)^a(t,e,29)^l(e,t,6);return n<0&&(n+=4294967296),n}i.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,i=0;i<32;i++)n[i]=e[t+i];for(;i{"use strict";var i=n(6436).rotr32;function r(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,i){return 0===e?r(t,n,i):1===e||3===e?s(t,n,i):2===e?o(t,n,i):void 0},t.ch32=r,t.maj32=o,t.p32=s,t.s0_256=function(e){return i(e,2)^i(e,13)^i(e,22)},t.s1_256=function(e){return i(e,6)^i(e,11)^i(e,25)},t.g0_256=function(e){return i(e,7)^i(e,18)^e>>>3},t.g1_256=function(e){return i(e,17)^i(e,19)^e>>>10}},6436:(e,t,n)=>{"use strict";var i=n(9746),r=n(5717);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=r,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r>6|192,n[i++]=63&s|128):o(e,r)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++r)),n[i++]=s>>18|240,n[i++]=s>>12&63|128,n[i++]=s>>6&63|128,n[i++]=63&s|128):(n[i++]=s>>12|224,n[i++]=s>>6&63|128,n[i++]=63&s|128)}else for(r=0;r>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),i=0,r=0;i>>24,n[r+1]=o>>>16&255,n[r+2]=o>>>8&255,n[r+3]=255&o):(n[r+3]=o>>>24,n[r+2]=o>>>16&255,n[r+1]=o>>>8&255,n[r]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,i){return e+t+n+i>>>0},t.sum32_5=function(e,t,n,i,r){return e+t+n+i+r>>>0},t.sum64=function(e,t,n,i){var r=e[t],o=i+e[t+1]>>>0,s=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,i){return(t+i>>>0>>0},t.sum64_lo=function(e,t,n,i){return t+i>>>0},t.sum64_4_hi=function(e,t,n,i,r,o,s,a){var c=0,l=t;return c+=(l=l+i>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,i,r,o,s,a){return t+i+o+a>>>0},t.sum64_5_hi=function(e,t,n,i,r,o,s,a,c,l){var u=0,h=t;return u+=(h=h+i>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,i,r,o,s,a,c,l){return t+i+o+a+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},2156:(e,t,n)=>{"use strict";var i=n(3715),r=n(4504),o=n(9746);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=r.toArray(e.entropy,e.entropyEnc||"hex"),n=r.toArray(e.nonce,e.nonceEnc||"hex"),i=r.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,i)}e.exports=s,s.prototype._init=function(e,t,n){var i=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var r=0;r=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,i){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(i=n,n=t,t=null),n&&(n=r.toArray(n,i||"hex"),this._update(n));for(var o=[];o.length{t.read=function(e,t,n,i,r){var o,s,a=8*r-i-1,c=(1<>1,u=-7,h=n?r-1:0,d=n?-1:1,f=e[t+h];for(h+=d,o=f&(1<<-u)-1,f>>=-u,u+=a;u>0;o=256*o+e[t+h],h+=d,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=i;u>0;s=256*s+e[t+h],h+=d,u-=8);if(0===o)o=1-l;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,i),o-=l}return(f?-1:1)*s*Math.pow(2,o-i)},t.write=function(e,t,n,i,r,o){var s,a,c,l=8*o-r-1,u=(1<>1,d=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,p=i?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=u):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=u?(a=0,s=u):s+h>=1?(a=(t*c-1)*Math.pow(2,r),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,r),s=0));r>=8;e[n+f]=255&a,f+=p,a/=256,r-=8);for(s=s<0;e[n+f]=255&s,f+=p,s/=256,l-=8);e[n+f-p]|=128*g}},5717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},2584:(e,t,n)=>{"use strict";var i=n(6410)(),r=n(1924)("Object.prototype.toString"),o=function(e){return!(i&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===r(e)},s=function(e){return!!o(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==r(e)&&"[object Function]"===r(e.callee)},a=function(){return o(arguments)}();o.isLegacyArguments=s,e.exports=a?o:s},5320:e=>{"use strict";var t,n,i=Function.prototype.toString,r="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof r&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},r((function(){throw 42}),null,t)}catch(e){e!==n&&(r=null)}else r=null;var o=/^\s*class\b/,s=function(e){try{var t=i.call(e);return o.test(t)}catch(e){return!1}},a=function(e){try{return!s(e)&&(i.call(e),!0)}catch(e){return!1}},c=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),h=function(){return!1};if("object"==typeof document){var d=document.all;c.call(d)===c.call(document.all)&&(h=function(e){if((u||!e)&&(void 0===e||"object"==typeof e))try{var t=c.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=r?function(e){if(h(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{r(e,null,t)}catch(e){if(e!==n)return!1}return!s(e)&&a(e)}:function(e){if(h(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(l)return a(e);if(s(e))return!1;var t=c.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&a(e)}},8662:(e,t,n)=>{"use strict";var i,r=Object.prototype.toString,o=Function.prototype.toString,s=/^\s*(?:function)?\*/,a=n(6410)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(s.test(o.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===r.call(e);if(!c)return!1;if(void 0===i){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();i=!!t&&c(t)}return c(e)===i}},8611:e=>{"use strict";e.exports=function(e){return e!=e}},360:(e,t,n)=>{"use strict";var i=n(5559),r=n(4289),o=n(8611),s=n(9415),a=n(3194),c=i(s(),Number);r(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},9415:(e,t,n)=>{"use strict";var i=n(8611);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:i}},3194:(e,t,n)=>{"use strict";var i=n(4289),r=n(9415);e.exports=function(){var e=r();return i(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},5692:(e,t,n)=>{"use strict";var i=n(4029),r=n(3083),o=n(1924),s=o("Object.prototype.toString"),a=n(6410)(),c=n(7296),l="undefined"==typeof globalThis?n.g:globalThis,u=r(),h=o("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n-1}return!!c&&function(e){var t=!1;return i(f,(function(n,i){if(!t)try{t=n.call(e)===i}catch(e){}})),t}(e)}},3006:function(e,t){"use strict";var n,i=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IconUI=void 0;const r="kukai-icon";t.IconUI=class{constructor(){n.set(this,(()=>document.getElementById(r)))}async init(e,t){var o;if(this.isInit)throw new Error("Kukai-Embed Already Present");{let s=document.createElement("button");s.id=r;let a=document.createElement("img");a.style.width="60px",a.style.height="60px",a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhQTFRF0dH/amn+urn/o6L+8/P/U1L+9PP/Xl3+mJf+3dz/gYD+3Nz/xcX/jIz+jIv+o6P/dXT+urr/xsX/6Oj/r67/////R0b+////pIBhiAAAABh0Uk5T//////////////////////////////8AzRMu6gAAAaZJREFUeNqsl9uSgyAMhgNyUNS2eyB9/zddXHW1QAKW/ccrhm8MSUgCPAkpkN2vJChqD2RBOVs8yc5SVcLgMCMHFbC0SMjKAgwCGQlgYNVjQb2i4FFgUWLMw5PGCukpB0uslEzhavZE7/CEFzS9wqO+AuvxDCuBlyTUCe7xovoDBrws+IMTox/Rin3EPhE7HEdJD94P59037/0tE68Fju9RH/b6/pX1Jr5jK5ycGJbN8Mp6nzl1+BwPu5VNfuEWWCELC/PLmjQTVIAlC9NscBk8Zw5mWJwDbBl4CRrFBn+DQhpm2XBoABousAggafiDZ1FCR8Irm+TloY6GN9YPb8CH7i2wF2/B5pM1nIWN0F+c4R0ZqjVGjjNckkmyxZczHMj03HLDGtpwxV+MvSZlDbelKxk0UIbPxWIQyjCVKrJchhC/CcNVRQFEbbIV0FWV3j3Yj1zpTfwdw1vg77min7gs7hgofLxytJu40WmIehXeTLwi6BYrYtfquG/C/zT3trGiaaBpG6Xahri28bFtcG0bmduG9bZnQuMDpfFp1Pgoq38O/ggwACoyIQpeKqtUAAAAAElFTkSuQmCC",s.innerHTML=a.outerHTML,t?s.className=t:(s.style.width="60px",s.style.height="60px",s.style.bottom="40px",s.style.left="40px",s.style.position="fixed",s.style.borderRadius="50px",s.style.boxShadow="2px 2px 3px #999",s.style.padding="0",s.style.border="0"),s.style.zIndex="99998",s.style.display="none",document.body.appendChild(s),null===(o=i(this,n).call(this))||void 0===o||o.addEventListener("click",e)}}get isInit(){return!!i(this,n).call(this)}deinit(){const e=i(this,n).call(this);e&&document.body.removeChild(e)}show(){const e=i(this,n).call(this);e&&(e.style.display="block")}hide(){const e=i(this,n).call(this);e&&(e.style.display="none")}},n=new WeakMap},7771:function(e,t,n){"use strict";var i,r,o=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},s=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameKukai=void 0;const a=n(5308),c="kukai-iframe";t.IFrameKukai=class{constructor(e){i.set(this,void 0),r.set(this,(()=>document.getElementById(c))),o(this,i,e)}show(){const e=s(this,r).call(this);e&&(e.style.display="block")}hide(){const e=s(this,r).call(this);e&&(e.style.display="none")}isHidden(){const e=s(this,r).call(this);return"none"===(null==e?void 0:e.style.display)}toCard(){const e=s(this,r).call(this);e&&(e.style.position="fixed",e.style.top="",e.style.bottom="70px",e.style.left="70px",e.style.borderRadius="10px",e.style.border="0",e.style.width="400px",e.style.height="200px")}isCard(){const e=s(this,r).call(this);return"10px"===(null==e?void 0:e.style.borderRadius)}toFullScreen(){const e=s(this,r).call(this);e&&(e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.borderRadius="0px",e.style.border="0",e.style.width="100%",e.style.height="100%")}async init(e){if(s(this,r).call(this))throw new Error("Kukai-Embed Already Present");{let t=document.createElement("iframe");const n=e?`?instanceId=${e}`:"";t.src=s(this,i)+"/embedded"+n,t.id=c,t.style.zIndex="99999",t.style.display="none";const{promise:r,deferred:o}=a.defer();try{return t.addEventListener("load",(()=>o.resolve())),document.body.appendChild(t),await r.then((()=>this.toFullScreen()))}catch(e){throw o.reject(e),e}}}get isInit(){return!!s(this,r).call(this)}deinit(){const e=s(this,r).call(this);e&&document.body.removeChild(e)}request(e){var t,n;null===(n=null===(t=s(this,r).call(this))||void 0===t?void 0:t.contentWindow)||void 0===n||n.postMessage(JSON.stringify(e),s(this,i)?s(this,i):"*")}},i=new WeakMap,r=new WeakMap},6257:function(e,t,n){"use strict";var i,r,o,s,a=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),c=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)},l=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},u=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiEmbed=t.Networks=void 0;const h=n(5272);Object.defineProperty(t,"Networks",{enumerable:!0,get:function(){return h.Networks}});const d=n(5308),f=n(7771),p=n(3006),g=n(3163);c(n(5272),t);const y="kukai-embed-instance-id";t.KukaiEmbed=class{constructor(e={}){i.set(this,void 0),r.set(this,void 0),o.set(this,null),s.set(this,null),this._kukaiIsInit=!1;const t={net:h.Networks.mainnet,icon:!1,enableLogging:void 0!==e.net&&e.net!==h.Networks.mainnet,...e},n=d.networkToSrc(t.net),a=new f.IFrameKukai(n);l(this,i,a),l(this,r,new g.KukaiMessaging(a,n,t.enableLogging)),t.icon&&l(this,o,new p.IconUI)}async init(){var e;if(this.initialized)throw new Error("Kukai-Embed Already Present");const t=window.sessionStorage.getItem(y),n=t||void 0;let a=async e=>{let t=u(this,r).init(window);return u(this,i).init(n),await t};if(n){const t=window.sessionStorage.getItem(n);t?(await a(),l(this,s,JSON.parse(t)),u(this,i).toCard(),u(this,i).hide(),null===(e=u(this,o))||void 0===e||e.init((()=>this.toggle())).then((()=>{var e;return null===(e=u(this,o))||void 0===e?void 0:e.show()}))):await a()}else await a();this._kukaiIsInit=!0}get initialized(){return u(this,i).isInit&&u(this,r).isInit&&this._kukaiIsInit}deinit(){var e;u(this,r).deinit(),u(this,i).deinit(),null===(e=u(this,o))||void 0===e||e.deinit()}get user(){return u(this,s)}async login(e={}){var t;if(!this.initialized)throw new Error("Cannot login: Embed Uninitialized");if(null===(t=this.user)||void 0===t?void 0:t.pk)throw new Error("Already logged in");if(!this.user&&"high"===(null==e?void 0:e.customPrio)){let t=JSON.parse(JSON.stringify(e));t.customPrio=h.LoginPrio.Low;const n=await this.login(t);if(null==n?void 0:n.pk)return n}return u(this,i).toFullScreen(),u(this,i).show(),await u(this,r).login(e).then((({pk:t,pkh:n,userData:a,instanceId:c,authResponse:h})=>{var d;window.sessionStorage.setItem(y,c),window.sessionStorage.setItem(c,JSON.stringify({pk:t,pkh:n,userData:a})),null===(d=u(this,o))||void 0===d||d.init((()=>this.toggle())).then((()=>{var e;return null===(e=u(this,o))||void 0===e?void 0:e.show()})),l(this,s,{pk:t,pkh:n,userData:a});const f={...u(this,s),...h?{authResponse:h}:{}};return e.customSpinnerDismissal?{...f,dismissCallback:async()=>await u(this,r).dismiss().finally((()=>{u(this,i).hide(),u(this,i).toCard()}))}:f})).catch((t=>{throw e.customSpinnerDismissal=!1,t})).finally((()=>{e.customSpinnerDismissal||(u(this,i).hide(),u(this,i).toCard())}))}async logout(){if(!this.initialized)throw new Error("Cannot logout: Embed Uninitialized");return u(this,i).isCard()&&!u(this,i).isHidden()&&await u(this,r).card(!1),await u(this,r).logout().then((e=>{var t,n;try{const e=window.sessionStorage.getItem(y),t=e||void 0;t&&window.sessionStorage.removeItem(t)}catch(e){}window.sessionStorage.removeItem(y),u(this,i).hide(),null===(t=u(this,o))||void 0===t||t.hide(),null===(n=u(this,o))||void 0===n||n.deinit(),l(this,s,null)})).finally((()=>u(this,i).hide()))}async send(e,t){if(!this.initialized)throw new Error("Cannot send: Embed Uninitialized");return(null==t?void 0:t.silent)||(u(this,i).isCard()&&!u(this,i).isHidden()&&await u(this,r).card(!1),u(this,i).toFullScreen(),u(this,i).show()),await u(this,r).operation(e,t).then((e=>e.opHash)).finally((()=>{(null==t?void 0:t.silent)||(u(this,i).toCard(),u(this,i).hide())}))}async trackOperation(e){if(!this.initialized)throw new Error("Cannot track: Embed Uninitialized");return await u(this,r).track(e)}async signExpr(e,t){if(!this.initialized)throw new Error("Cannot sign: Embed Uninitialized");return u(this,i).isCard()&&!u(this,i).isHidden()&&await u(this,r).card(!1),u(this,i).toFullScreen(),u(this,i).show(),await u(this,r).signExpr(e,t).then((e=>e.signature)).finally((()=>{u(this,i).hide(),u(this,i).toCard()}))}async authenticate(e,t){if(!this.initialized)throw new Error("Cannot authenticate: Embed Uninitialized");return await u(this,r).authenticate(e,t).then((({message:e,signature:t})=>({message:e,signature:t})))}async toggle(){u(this,i).isHidden()?(u(this,i).toCard(),u(this,i).show(),u(this,r).card(!0)):await u(this,r).card(!1).then((()=>{u(this,i).hide()}))}},i=new WeakMap,r=new WeakMap,o=new WeakMap,s=new WeakMap},3163:function(e,t,n){"use strict";var i,r,o,s,a,c,l,u,h,d,f,p,g,y,b,m,v,w,E,S=n(5108),I=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},A=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiMessaging=void 0;const R=n(5272),x=n(5308);class M{constructor(e){i.set(this,{}),r.set(this,void 0),I(this,r,e)}async listen(e){const{promise:t,deferred:n}=x.defer();return A(this,i)[e]=n,await t}handle(e){var t;const n=A(this,r).call(this,e);null===(t=A(this,i)[n])||void 0===t||t.resolve(e),delete A(this,i)[n]}}i=new WeakMap,r=new WeakMap;class T{constructor(){o.set(this,[])}async listen(){const{promise:e,deferred:t}=x.defer();return A(this,o).push(t),await e}get length(){return A(this,o).length}handle(e){var t;null===(t=A(this,o).shift())||void 0===t||t.resolve(e)}}o=new WeakMap;class k{constructor(){s.set(this,null)}async listen(){if(A(this,s))throw new Error("OCCUPIED");{const{promise:e,deferred:t}=x.defer();return I(this,s,t),await e}}handle(e){var t;null===(t=A(this,s))||void 0===t||t.resolve(e),I(this,s,null)}}s=new WeakMap;class O{constructor(e,t){a.set(this,void 0),c.set(this,void 0),l.set(this,new k),u.set(this,new T),h.set(this,new T),d.set(this,new k),f.set(this,new M((e=>e.opHash))),p.set(this,new T),g.set(this,new T),y.set(this,new T),b.set(this,new T),m.set(this,(e=>{switch(e.type){case R.ResponseTypes.cardResponse:A(this,u).handle(e);break;case R.ResponseTypes.loginResponse:A(this,h).handle(e);break;case R.ResponseTypes.operationResponse:A(this,d).handle(e);break;case R.ResponseTypes.trackResponse:A(this,f).handle(e);break;case R.ResponseTypes.logoutResponse:A(this,p).handle(e);break;case R.ResponseTypes.signExprResponse:A(this,g).handle(e);break;case R.ResponseTypes.authResponse:A(this,y).handle(e);break;case R.ResponseTypes.initComplete:A(this,l).handle(e);break;case R.ResponseTypes.dismissResponse:A(this,b).handle(e)}})),I(this,a,e),I(this,c,t)}async init(){return await A(this,l).listen()}async login(){return await A(this,h).listen()}async operation(){return await A(this,d).listen()}async track(e){return await A(this,f).listen(e)}async logout(){return await A(this,p).listen()}async signExpr(){return await A(this,g).listen()}async auth(){return await A(this,y).listen()}async card(){return await A(this,u).listen()}async dismiss(){return await A(this,b).listen()}handleEvent(e){if("message"===e.type&&e.origin===A(this,a)){A(this,c)&&S.log(`Received ${e.data} from ${e.origin}`);const t=JSON.parse(e.data);A(this,m).call(this,t)}}}a=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,h=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap;t.KukaiMessaging=class{constructor(e,t,n){v.set(this,void 0),w.set(this,void 0),E.set(this,null),I(this,w,e),I(this,v,new O(t,n))}async init(e){if(A(this,E))throw new Error("Already Initialized");return I(this,E,e),e.addEventListener("message",A(this,v)),await A(this,v).init().then((e=>{if(e.failed)throw new Error("Init Failed: "+e.error)}))}get isInit(){return!!A(this,E)}deinit(){A(this,E)&&(A(this,E).removeEventListener("message",A(this,v)),I(this,E,null))}async card(e){return A(this,w).request({type:R.RequestTypes.cardRequest,show:e}),await A(this,v).card().then((e=>{if(e.failed)throw new Error("Card Failed: "+e.error)}))}async login(e){return A(this,w).request({type:R.RequestTypes.loginRequest,config:e}),await A(this,v).login().then((e=>{if(e.failed)throw new Error("Login Failed: "+e.error);return e}))}async operation(e,t){return A(this,w).request({type:R.RequestTypes.operationRequest,operations:e,ui:t}),await A(this,v).operation().then((e=>{if(e.failed)throw new Error("Operation Failed: "+e.error);return e})).catch((e=>{throw"OCCUPIED"===e.message?new Error("Cannot send: Operation in progress"):e}))}async track(e){return A(this,w).request({type:R.RequestTypes.trackRequest,opHash:e}),await A(this,v).track(e).then((e=>{if(e.failed)throw new Error("Track Failed: "+e.error);return e}))}async logout(){return A(this,w).request({type:R.RequestTypes.logoutRequest}),await A(this,v).logout().then((e=>{if(e.failed)throw new Error("Logout Failed: "+e.error);return e}))}async signExpr(e,t){return A(this,w).request({type:R.RequestTypes.signExprRequest,expr:e,ui:t}),await A(this,v).signExpr().then((e=>{if(e.failed)throw new Error("Signing Failed: "+e.error);return e}))}async authenticate(e,t){return A(this,w).request({type:R.RequestTypes.authRequest,id:e,nonce:t}),await A(this,v).auth().then((e=>{if(e.failed)throw new Error("Auth Failed: "+e.error);return e}))}async dismiss(){return A(this,w).request({type:R.RequestTypes.dismissRequest}),await A(this,v).dismiss().then((e=>{if(e.failed)throw new Error("Dismiss Failed: "+e.error)}))}},v=new WeakMap,w=new WeakMap,E=new WeakMap},5272:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseTypes=t.RequestTypes=t.LoginPrio=t.TypeOfLogin=t.Networks=void 0,function(e){e.mainnet="mainnet",e.ghostnet="ghostnet",e.ithacanet="ithacanet",e.jakartanet="jakartanet",e.kathmandu="kathmandu",e.dev="dev",e.local="local"}(t.Networks||(t.Networks={})),function(e){e.Google="google",e.Reddit="reddit",e.Twitter="twitter",e.Facebook="facebook"}(t.TypeOfLogin||(t.TypeOfLogin={})),function(e){e.LowFast="low_always_skip_key",e.Low="low",e.High="high"}(t.LoginPrio||(t.LoginPrio={})),function(e){e.loginRequest="login_request",e.operationRequest="operation_request",e.trackRequest="track_request",e.logoutRequest="logout_request",e.signExprRequest="sign_expr_request",e.authRequest="authentication_request",e.cardRequest="card_request",e.dismissRequest="dismiss_request"}(t.RequestTypes||(t.RequestTypes={})),function(e){e.initComplete="init_complete",e.loginResponse="login_response",e.operationResponse="operation_response",e.trackResponse="track_response",e.logoutResponse="logout_response",e.signExprResponse="sign_expr_response",e.authResponse="authentication_response",e.cardResponse="card_response",e.dismissResponse="dismiss_response"}(t.ResponseTypes||(t.ResponseTypes={}))},5308:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.networkToSrc=t.defer=void 0;const i=n(5272);t.defer=()=>{let e={resolve:e=>{},reject:e=>{}};const t=new Promise(((t,n)=>{e={resolve:t,reject:n}}));return{deferred:e,promise:t}};t.networkToSrc=e=>{switch(e){case i.Networks.mainnet:return"https://wallet.kukai.app";case i.Networks.ghostnet:return"https://ghostnet.kukai.app";case i.Networks.ithacanet:return"https://ithacanet.kukai.app";case i.Networks.jakartanet:return"https://jakartanet.kukai.app";case i.Networks.kathmandu:return"https://kathmandu.kukai.app";case i.Networks.dev:return"https://ichabod-dev.kukai.app";case i.Networks.local:return"http://localhost:4200";default:return e}}},2307:(e,t,n)=>{e=n.nmd(e);var i="__lodash_hash_undefined__",r=1,o=2,s=9007199254740991,a="[object Arguments]",c="[object Array]",l="[object AsyncFunction]",u="[object Boolean]",h="[object Date]",d="[object Error]",f="[object Function]",p="[object GeneratorFunction]",g="[object Map]",y="[object Number]",b="[object Null]",m="[object Object]",v="[object Promise]",w="[object Proxy]",E="[object RegExp]",S="[object Set]",I="[object String]",A="[object Symbol]",R="[object Undefined]",x="[object WeakMap]",M="[object ArrayBuffer]",T="[object DataView]",k=/^\[object .+?Constructor\]$/,O=/^(?:0|[1-9]\d*)$/,U={};U["[object Float32Array]"]=U["[object Float64Array]"]=U["[object Int8Array]"]=U["[object Int16Array]"]=U["[object Int32Array]"]=U["[object Uint8Array]"]=U["[object Uint8ClampedArray]"]=U["[object Uint16Array]"]=U["[object Uint32Array]"]=!0,U[a]=U[c]=U[M]=U[u]=U[T]=U[h]=U[d]=U[f]=U[g]=U[y]=U[m]=U[E]=U[S]=U[I]=U[x]=!1;var C="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,P="object"==typeof self&&self&&self.Object===Object&&self,N=C||P||Function("return this")(),K=t&&!t.nodeType&&t,L=K&&e&&!e.nodeType&&e,q=L&&L.exports===K,z=q&&C.process,V=function(){try{return z&&z.binding&&z.binding("util")}catch(e){}}(),F=V&&V.isTypedArray;function j(e,t){for(var n=-1,i=null==e?0:e.length;++nl))return!1;var h=a.get(e);if(h&&a.get(t))return h==t;var d=-1,f=!0,p=n&o?new Me:void 0;for(a.set(e,t),a.set(t,e);++d-1},Re.prototype.set=function(e,t){var n=this.__data__,i=Oe(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},xe.prototype.clear=function(){this.size=0,this.__data__={hash:new Ae,map:new(de||Re),string:new Ae}},xe.prototype.delete=function(e){var t=ze(this,e).delete(e);return this.size-=t?1:0,t},xe.prototype.get=function(e){return ze(this,e).get(e)},xe.prototype.has=function(e){return ze(this,e).has(e)},xe.prototype.set=function(e,t){var n=ze(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},Me.prototype.add=Me.prototype.push=function(e){return this.__data__.set(e,i),this},Me.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.clear=function(){this.__data__=new Re,this.size=0},Te.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Te.prototype.get=function(e){return this.__data__.get(e)},Te.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Re){var i=n.__data__;if(!de||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new xe(i)}return n.set(e,t),this.size=n.size,this};var Fe=ce?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=s}function Ye(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Xe(e){return null!=e&&"object"==typeof e}var _e=F?function(e){return function(t){return e(t)}}(F):function(e){return Xe(e)&&Ge(e.length)&&!!U[Ue(e)]};function $e(e){return null!=(t=e)&&Ge(t.length)&&!He(t)?ke(e):Ke(e);var t}e.exports=function(e,t){return Pe(e,t)}},2318:(e,t,n)=>{"use strict";var i=n(5717),r=n(3349),o=n(9509).Buffer,s=new Array(16);function a(){r.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<>>32-t}function l(e,t,n,i,r,o,s){return c(e+(t&n|~t&i)+r+o|0,s)+t|0}function u(e,t,n,i,r,o,s){return c(e+(t&i|n&~i)+r+o|0,s)+t|0}function h(e,t,n,i,r,o,s){return c(e+(t^n^i)+r+o|0,s)+t|0}function d(e,t,n,i,r,o,s){return c(e+(n^(t|~i))+r+o|0,s)+t|0}i(a,r),a.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,i=this._b,r=this._c,o=this._d;n=l(n,i,r,o,e[0],3614090360,7),o=l(o,n,i,r,e[1],3905402710,12),r=l(r,o,n,i,e[2],606105819,17),i=l(i,r,o,n,e[3],3250441966,22),n=l(n,i,r,o,e[4],4118548399,7),o=l(o,n,i,r,e[5],1200080426,12),r=l(r,o,n,i,e[6],2821735955,17),i=l(i,r,o,n,e[7],4249261313,22),n=l(n,i,r,o,e[8],1770035416,7),o=l(o,n,i,r,e[9],2336552879,12),r=l(r,o,n,i,e[10],4294925233,17),i=l(i,r,o,n,e[11],2304563134,22),n=l(n,i,r,o,e[12],1804603682,7),o=l(o,n,i,r,e[13],4254626195,12),r=l(r,o,n,i,e[14],2792965006,17),n=u(n,i=l(i,r,o,n,e[15],1236535329,22),r,o,e[1],4129170786,5),o=u(o,n,i,r,e[6],3225465664,9),r=u(r,o,n,i,e[11],643717713,14),i=u(i,r,o,n,e[0],3921069994,20),n=u(n,i,r,o,e[5],3593408605,5),o=u(o,n,i,r,e[10],38016083,9),r=u(r,o,n,i,e[15],3634488961,14),i=u(i,r,o,n,e[4],3889429448,20),n=u(n,i,r,o,e[9],568446438,5),o=u(o,n,i,r,e[14],3275163606,9),r=u(r,o,n,i,e[3],4107603335,14),i=u(i,r,o,n,e[8],1163531501,20),n=u(n,i,r,o,e[13],2850285829,5),o=u(o,n,i,r,e[2],4243563512,9),r=u(r,o,n,i,e[7],1735328473,14),n=h(n,i=u(i,r,o,n,e[12],2368359562,20),r,o,e[5],4294588738,4),o=h(o,n,i,r,e[8],2272392833,11),r=h(r,o,n,i,e[11],1839030562,16),i=h(i,r,o,n,e[14],4259657740,23),n=h(n,i,r,o,e[1],2763975236,4),o=h(o,n,i,r,e[4],1272893353,11),r=h(r,o,n,i,e[7],4139469664,16),i=h(i,r,o,n,e[10],3200236656,23),n=h(n,i,r,o,e[13],681279174,4),o=h(o,n,i,r,e[0],3936430074,11),r=h(r,o,n,i,e[3],3572445317,16),i=h(i,r,o,n,e[6],76029189,23),n=h(n,i,r,o,e[9],3654602809,4),o=h(o,n,i,r,e[12],3873151461,11),r=h(r,o,n,i,e[15],530742520,16),n=d(n,i=h(i,r,o,n,e[2],3299628645,23),r,o,e[0],4096336452,6),o=d(o,n,i,r,e[7],1126891415,10),r=d(r,o,n,i,e[14],2878612391,15),i=d(i,r,o,n,e[5],4237533241,21),n=d(n,i,r,o,e[12],1700485571,6),o=d(o,n,i,r,e[3],2399980690,10),r=d(r,o,n,i,e[10],4293915773,15),i=d(i,r,o,n,e[1],2240044497,21),n=d(n,i,r,o,e[8],1873313359,6),o=d(o,n,i,r,e[15],4264355552,10),r=d(r,o,n,i,e[6],2734768916,15),i=d(i,r,o,n,e[13],1309151649,21),n=d(n,i,r,o,e[4],4149444226,6),o=d(o,n,i,r,e[11],3174756917,10),r=d(r,o,n,i,e[2],718787259,15),i=d(i,r,o,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+i|0,this._c=this._c+r|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},9746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},4504:(e,t)=>{"use strict";var n=t;function i(e){return 1===e.length?"0"+e:e}function r(e){for(var t="",n=0;n>8,s=255&r;o?n.push(o,s):n.push(s)}return n},n.zero2=i,n.toHex=r,n.encode=function(e,t){return"hex"===t?r(e):e}},4244:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},609:(e,t,n)=>{"use strict";var i=n(4289),r=n(5559),o=n(4244),s=n(5624),a=n(2281),c=r(s(),Object);i(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},5624:(e,t,n)=>{"use strict";var i=n(4244);e.exports=function(){return"function"==typeof Object.is?Object.is:i}},2281:(e,t,n)=>{"use strict";var i=n(5624),r=n(4289);e.exports=function(){var e=i();return r(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8987:(e,t,n)=>{"use strict";var i;if(!Object.keys){var r=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=n(1414),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),l=a.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&r.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{h(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();i=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===o.call(e),i=s(e),a=t&&"[object String]"===o.call(e),d=[];if(!t&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var p=l&&n;if(a&&e.length>0&&!r.call(e,0))for(var g=0;g0)for(var y=0;y{"use strict";var i=Array.prototype.slice,r=n(1414),o=Object.keys,s=o?function(e){return o(e)}:n(8987),a=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return r(e)?a(i.call(e)):a(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),i="[object Arguments]"===n;return i||(i="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),i}},4155:e=>{var t,n,i=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===r||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:r}catch(e){t=r}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var a,c=[],l=!1,u=-1;function h(){l&&a&&(l=!1,a.length?c=a.concat(c):u=-1,c.length&&d())}function d(){if(!l){var e=s(h);l=!0;for(var t=c.length;t;){for(a=c,c=[];++u1)for(var n=1;n{function i(e){this.mode=o.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t65536?(i[0]=240|(1835008&r)>>>18,i[1]=128|(258048&r)>>>12,i[2]=128|(4032&r)>>>6,i[3]=128|63&r):r>2048?(i[0]=224|(61440&r)>>>12,i[1]=128|(4032&r)>>>6,i[2]=128|63&r):r>128?(i[0]=192|(1984&r)>>>6,i[1]=128|63&r):i[0]=r,this.parsedData.push(i)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function r(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}i.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=r.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var i=-1;i<=7;i++)t+i<=-1||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&n<=6&&(0==i||6==i)||0<=i&&i<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=i&&i<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var i=m.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){var i=e.createEmptyMovieClip(t,n);this.make();for(var r=0;r>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;n<18;n++){i=!e&&1==(t>>n&1);this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i}},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,i=m.getBCHTypeInfo(n),r=0;r<15;r++){var o=!e&&1==(i>>r&1);r<6?this.modules[r][8]=o:r<8?this.modules[r+1][8]=o:this.modules[this.moduleCount-15+r][8]=o}for(r=0;r<15;r++){o=!e&&1==(i>>r&1);r<8?this.modules[8][this.moduleCount-r-1]=o:r<9?this.modules[8][15-r-1+1]=o:this.modules[8][15-r-1]=o}this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,r=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var a=0;a<2;a++)if(null==this.modules[i][s-a]){var c=!1;o>>r&1)),m.getMask(t,i,s-a)&&(c=!c),this.modules[i][s-a]=c,-1==--r&&(o++,r=7)}if((i+=n)<0||this.moduleCount<=i){i-=n,n=-n;break}}}},r.PAD0=236,r.PAD1=17,r.createData=function(e,t,n){for(var i=S.getRSBlocks(e,t),o=new I,s=0;s8*c)throw new Error("code length overflow. ("+o.getLengthInBits()+">"+8*c+")");for(o.getLengthInBits()+4<=8*c&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*c||(o.put(r.PAD0,8),o.getLengthInBits()>=8*c));)o.put(r.PAD1,8);return r.createBytes(o,i)},r.createBytes=function(e,t){for(var n=0,i=0,r=0,o=new Array(t.length),s=new Array(t.length),a=0;a=0?d.get(f):0}}var p=0;for(u=0;u=0;)t^=m.G15<=0;)t^=m.G18<>>=1;return t},getPatternPosition:function(e){return m.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case u:return(t+n)%2==0;case h:return t%2==0;case d:return n%3==0;case f:return(t+n)%3==0;case p:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case g:return t*n%2+t*n%3==0;case y:return(t*n%2+t*n%3)%2==0;case b:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new E([1],0),n=0;n5&&(n+=3+o-5)}for(i=0;i=256;)e-=255;return v.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},w=0;w<8;w++)v.EXP_TABLE[w]=1<>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var A=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function R(e){if(this.options={padding:4,width:256,height:256,typeNumber:4,color:"#000000",background:"#ffffff",ecl:"M"},"string"==typeof e&&(e={content:e}),e)for(var t in e)this.options[t]=e[t];if("string"!=typeof this.options.content)throw new Error("Expected 'content' as string!");if(0===this.options.content.length)throw new Error("Expected 'content' to be non-empty!");if(!(this.options.padding>=0))throw new Error("Expected 'padding' value to be non-negative!");if(!(this.options.width>0&&this.options.height>0))throw new Error("Expected 'width' or 'height' value to be higher than zero!");var n=this.options.content,i=function(e,t){for(var n=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),i=1,r=0,o=0,s=A.length;o<=s;o++){var a=A[o];if(!a)throw new Error("Content too long: expected "+r+" but got "+n);switch(t){case"L":r=a[0];break;case"M":r=a[1];break;case"Q":r=a[2];break;case"H":r=a[3];break;default:throw new Error("Unknwon error correction level: "+t)}if(n<=r)break;i++}if(i>A.length)throw new Error("Content too long");return i}(n,this.options.ecl),o=function(e){switch(e){case"L":return s;case"M":return a;case"Q":return c;case"H":return l;default:throw new Error("Unknwon error correction level: "+e)}}(this.options.ecl);this.qrcode=new r(i,o),this.qrcode.addData(n),this.qrcode.make()}R.prototype.svg=function(e){var t=this.options||{},n=this.qrcode.modules;void 0===e&&(e={container:t.container||"svg"});for(var i=void 0===t.pretty||!!t.pretty,r=i?" ":"",o=i?"\r\n":"",s=t.width,a=t.height,c=n.length,l=s/(c+2*t.padding),u=a/(c+2*t.padding),h=void 0!==t.join&&!!t.join,d=void 0!==t.swap&&!!t.swap,f=void 0===t.xmlDeclaration||!!t.xmlDeclaration,p=void 0!==t.predefined&&!!t.predefined,g=p?r+''+o:"",y=r+''+o,b="",m="",v=0;v'+o:r+''+o}}h&&(b=r+'');var x="";switch(e.container){case"svg":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"svg-viewbox":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"g":x+=''+o,x+=g+y+b,x+="";break;default:x+=(g+y+b).replace(/^\s+/,"")}return x},R.prototype.save=function(e,t){var i=this.svg();"function"!=typeof t&&(t=function(e,t){});try{n(9951).writeFile(e,i,t)}catch(e){t(e)}},e.exports=R},7563:(e,t,n)=>{"use strict";const i=n(610),r=n(4020),o=n(500),s=n(2300),a=Symbol("encodeFragmentIdentifier");function c(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?i(e):encodeURIComponent(e):e}function u(e,t){return t.decode?r(e):e}function h(e){return Array.isArray(e)?e.sort():"object"==typeof e?h(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function f(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){c((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,i)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===i[e]&&(i[e]={}),i[e][t[1]]=n):i[e]=n};case"bracket":return(e,n,i)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==i[e]?i[e]=[].concat(i[e],n):i[e]=[n]:i[e]=n};case"colon-list-separator":return(e,n,i)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==i[e]?i[e]=[].concat(i[e],n):i[e]=[n]:i[e]=n};case"comma":case"separator":return(t,n,i)=>{const r="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!r&&u(n,e).includes(e.arrayFormatSeparator);n=o?u(n,e):n;const s=r||o?n.split(e.arrayFormatSeparator).map((t=>u(t,e))):null===n?n:u(n,e);i[t]=s};case"bracket-separator":return(t,n,i)=>{const r=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!r)return void(i[t]=n?u(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>u(t,e)));void 0!==i[t]?i[t]=[].concat(i[t],o):i[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),i=Object.create(null);if("string"!=typeof e)return i;if(!(e=e.trim().replace(/^[?#&]/,"")))return i;for(const r of e.split("&")){if(""===r)continue;let[e,s]=o(t.decode?r.replace(/\+/g," "):r,"=");s=void 0===s?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?s:u(s,t),n(u(e,t),s,i)}for(const e of Object.keys(i)){const n=i[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=p(n[e],t);else i[e]=p(n,t)}return!1===t.sort?i:(!0===t.sort?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce(((e,t)=>{const n=i[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=h(n):e[t]=n,e}),Object.create(null))}t.extract=f,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";c((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],i=function(e){switch(e.arrayFormat){case"index":return t=>(n,i)=>{const r=n.length;return void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?n:null===i?[...n,[l(t,e),"[",r,"]"].join("")]:[...n,[l(t,e),"[",l(r,e),"]=",l(i,e)].join("")]};case"bracket":return t=>(n,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?n:null===i?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(i,e)].join("")];case"colon-list-separator":return t=>(n,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?n:null===i?[...n,[l(t,e),":list="].join("")]:[...n,[l(t,e),":list=",l(i,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(i,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?i:(r=null===r?"":r,0===i.length?[[l(n,e),t,l(r,e)].join("")]:[[i,l(r,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?n:null===i?[...n,l(t,e)]:[...n,[l(t,e),"=",l(i,e)].join("")]}}(t),r={};for(const t of Object.keys(e))n(t)||(r[t]=e[t]);const o=Object.keys(r);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const r=e[n];return void 0===r?"":null===r?l(n,t):Array.isArray(r)?0===r.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":r.reduce(i(n),[]).join("&"):l(n,t)+"="+l(r,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,i]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(f(e),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:u(i,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[a]:!0},n);const i=d(e.url).split("?")[0]||"",r=t.extract(e.url),o=t.parse(r,{sort:!1}),s=Object.assign(o,e.query);let c=t.stringify(s,n);c&&(c=`?${c}`);let u=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(u=`#${n[a]?l(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${i}${c}${u}`},t.pick=(e,n,i)=>{i=Object.assign({parseFragmentIdentifier:!0,[a]:!1},i);const{url:r,query:o,fragmentIdentifier:c}=t.parseUrl(e,i);return t.stringifyUrl({url:r,query:s(o,n),fragmentIdentifier:c},i)},t.exclude=(e,n,i)=>{const r=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,r,i)}},2300:e=>{"use strict";e.exports=function(e,t){for(var n={},i=Object.keys(e),r=Array.isArray(t),o=0;o{"use strict";function t(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}e.exports=function(e,n,i){var r=i&&i.stringify||t;if("object"==typeof e&&null!==e){var o=n.length+1;if(1===o)return e;var s=new Array(o);s[0]=r(e);for(var a=1;a-1?h:0,e.charCodeAt(f+1)){case 100:case 102:if(u>=c)break;if(null==n[u])break;h=c)break;if(null==n[u])break;h=c)break;if(void 0===n[u])break;h",h=f+2,f++;break}l+=r(n[u]),h=f+2,f++;break;case 115:if(u>=c)break;h{"use strict";var t={};function n(e,n,i){i||(i=Error);var r=function(e){var t,i;function r(t,i,r){return e.call(this,function(e,t,i){return"string"==typeof n?n:n(e,t,i)}(t,i,r))||this}return i=e,(t=r).prototype=Object.create(i.prototype),t.prototype.constructor=t,t.__proto__=i,r}(i);r.prototype.name=i.name,r.prototype.code=e,t[e]=r}function i(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var r,o,s,a;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(r="must not be",t=t.replace(/^not /,"")):r="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a="The ".concat(e," ").concat(r," ").concat(i(t,"type"));else{var c=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(c," ").concat(r," ").concat(i(t,"type"))}return a+=". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},6753:(e,t,n)=>{"use strict";var i=n(4155),r=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=u;var o=n(9481),s=n(4229);n(5717)(u,o);for(var a=r(s.prototype),c=0;c{"use strict";e.exports=r;var i=n(4605);function r(e){if(!(this instanceof r))return new r(e);i.call(this,e)}n(5717)(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},9481:(e,t,n)=>{"use strict";var i,r=n(4155);e.exports=R,R.ReadableState=A;n(7187).EventEmitter;var o=function(e,t){return e.listeners(t).length},s=n(2503),a=n(8764).Buffer,c=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var l,u=n(4616);l=u&&u.debuglog?u.debuglog("stream"):function(){};var h,d,f,p=n(7327),g=n(1195),y=n(2457).getHighWaterMark,b=n(4281).q,m=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,E=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(5717)(R,s);var S=g.errorOrDestroy,I=["error","close","destroy","pause","resume"];function A(e,t,r){i=i||n(6753),e=e||{},"boolean"!=typeof r&&(r=t instanceof i),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=y(this,e,"readableHighWaterMark",r),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(2553).s),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function R(e){if(i=i||n(6753),!(this instanceof R))return new R(e);var t=this instanceof i;this._readableState=new A(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function x(e,t,n,i,r){l("readableAddChunk",t);var o,s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(l("onEofChunk"),t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?O(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,U(e)))}(e,s);else if(r||(o=function(e,t){var n;i=t,a.isBuffer(i)||i instanceof c||"string"==typeof t||void 0===t||e.objectMode||(n=new m("chunk",["string","Buffer","Uint8Array"],t));var i;return n}(s,t)),o)S(e,o);else if(s.objectMode||t&&t.length>0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),i)s.endEmitted?S(e,new E):M(e,s,t,!0);else if(s.ended)S(e,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?M(e,s,t,!1):C(e,s)):M(e,s,t,!1)}else i||(s.reading=!1,C(e,s));return!s.ended&&(s.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=T?e=T:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function O(e){var t=e._readableState;l("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(l("emitReadable",t.flowing),t.emittedReadable=!0,r.nextTick(U,e))}function U(e){var t=e._readableState;l("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,q(e)}function C(e,t){t.readingMore||(t.readingMore=!0,r.nextTick(P,e,t))}function P(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function K(e){l("readable nexttick read 0"),e.read(0)}function L(e,t){l("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),q(e),t.flowing&&!t.reading&&e.read(0)}function q(e){var t=e._readableState;for(l("flow",t.flowing);t.flowing&&null!==e.read(););}function z(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function V(e){var t=e._readableState;l("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,r.nextTick(F,t,e))}function F(e,t){if(l("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function j(e,t){for(var n=0,i=e.length;n=t.highWaterMark:t.length>0)||t.ended))return l("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?V(this):O(this),null;if(0===(e=k(e,t))&&t.ended)return 0===t.length&&V(this),null;var i,r=t.needReadable;return l("need readable",r),(0===t.length||t.length-e0?z(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&V(this)),null!==i&&this.emit("data",i),i},R.prototype._read=function(e){S(this,new w("_read()"))},R.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,l("pipe count=%d opts=%j",i.pipesCount,t);var s=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:y;function a(t,r){l("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,l("cleanup"),e.removeListener("close",p),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",f),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",d),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){l("onend"),e.end()}i.endEmitted?r.nextTick(s):n.once("end",s),e.on("unpipe",a);var u=function(e){return function(){var t=e._readableState;l("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,q(e))}}(n);e.on("drain",u);var h=!1;function d(t){l("ondata");var r=e.write(t);l("dest.write",r),!1===r&&((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==j(i.pipes,e))&&!h&&(l("false write response, pause",i.awaitDrain),i.awaitDrain++),n.pause())}function f(t){l("onerror",t),y(),e.removeListener("error",f),0===o(e,"error")&&S(e,t)}function p(){e.removeListener("finish",g),y()}function g(){l("onfinish"),e.removeListener("close",p),y()}function y(){l("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",p),e.once("finish",g),e.emit("pipe",n),i.flowing||(l("pipe resume"),n.resume()),e},R.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var i=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==i.flowing&&this.resume()):"readable"===e&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,l("on readable",i.length,i.reading),i.length?O(this):i.reading||r.nextTick(K,this))),n},R.prototype.addListener=R.prototype.on,R.prototype.removeListener=function(e,t){var n=s.prototype.removeListener.call(this,e,t);return"readable"===e&&r.nextTick(N,this),n},R.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||r.nextTick(N,this),t},R.prototype.resume=function(){var e=this._readableState;return e.flowing||(l("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(L,e,t))}(this,e)),e.paused=!1,this},R.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},R.prototype.wrap=function(e){var t=this,n=this._readableState,i=!1;for(var r in e.on("end",(function(){if(l("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(r){(l("wrapped data"),n.decoder&&(r=n.decoder.write(r)),n.objectMode&&null==r)||(n.objectMode||r&&r.length)&&(t.push(r)||(i=!0,e.pause()))})),e)void 0===this[r]&&"function"==typeof e[r]&&(this[r]=function(t){return function(){return e[t].apply(e,arguments)}}(r));for(var o=0;o{"use strict";e.exports=u;var i=n(4281).q,r=i.ERR_METHOD_NOT_IMPLEMENTED,o=i.ERR_MULTIPLE_CALLBACK,s=i.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=i.ERR_TRANSFORM_WITH_LENGTH_0,c=n(6753);function l(e,t){var n=this._transformState;n.transforming=!1;var i=n.writecb;if(null===i)return this.emit("error",new o);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),i(e);var r=this._readableState;r.reading=!1,(r.needReadable||r.length{"use strict";var i,r=n(4155);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var i=e.entry;e.entry=null;for(;i;){var r=i.callback;t.pendingcb--,r(n),i=i.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=R,R.WritableState=A;var s={deprecate:n(4927)},a=n(2503),c=n(8764).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var u,h=n(1195),d=n(2457).getHighWaterMark,f=n(4281).q,p=f.ERR_INVALID_ARG_TYPE,g=f.ERR_METHOD_NOT_IMPLEMENTED,y=f.ERR_MULTIPLE_CALLBACK,b=f.ERR_STREAM_CANNOT_PIPE,m=f.ERR_STREAM_DESTROYED,v=f.ERR_STREAM_NULL_VALUES,w=f.ERR_STREAM_WRITE_AFTER_END,E=f.ERR_UNKNOWN_ENCODING,S=h.errorOrDestroy;function I(){}function A(e,t,s){i=i||n(6753),e=e||{},"boolean"!=typeof s&&(s=t instanceof i),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,i=n.sync,o=n.writecb;if("function"!=typeof o)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,i,o){--t.pendingcb,n?(r.nextTick(o,i),r.nextTick(U,e,t),e._writableState.errorEmitted=!0,S(e,i)):(o(i),e._writableState.errorEmitted=!0,S(e,i),U(e,t))}(e,n,i,t,o);else{var s=k(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||T(e,n),i?r.nextTick(M,e,n,s,o):M(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function R(e){var t=this instanceof(i=i||n(6753));if(!t&&!u.call(R,this))return new R(e);this._writableState=new A(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),a.call(this)}function x(e,t,n,i,r,o,s){t.writelen=i,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new m("write")):n?e._writev(r,t.onwrite):e._write(r,o,t.onwrite),t.sync=!1}function M(e,t,n,i){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,i(),U(e,t)}function T(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var i=t.bufferedRequestCount,r=new Array(i),s=t.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)r[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;r.allBuffers=c,x(e,t,!0,t.length,r,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,u=n.encoding,h=n.callback;if(x(e,t,!1,t.objectMode?1:l.length,l,u,h),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function k(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function O(e,t){e._final((function(n){t.pendingcb--,n&&S(e,n),t.prefinished=!0,e.emit("prefinish"),U(e,t)}))}function U(e,t){var n=k(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,r.nextTick(O,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var i=e._readableState;(!i||i.autoDestroy&&i.endEmitted)&&e.destroy()}return n}n(5717)(R,a),A.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(A.prototype,"buffer",{get:s.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(R,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===R&&(e&&e._writableState instanceof A)}})):u=function(e){return e instanceof this},R.prototype.pipe=function(){S(this,new b)},R.prototype.write=function(e,t,n){var i,o=this._writableState,s=!1,a=!o.objectMode&&(i=e,c.isBuffer(i)||i instanceof l);return a&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=I),o.ending?function(e,t){var n=new w;S(e,n),r.nextTick(t,n)}(this,n):(a||function(e,t,n,i){var o;return null===n?o=new v:"string"==typeof n||t.objectMode||(o=new p("chunk",["string","Buffer"],n)),!o||(S(e,o),r.nextTick(i,o),!1)}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,i,r,o){if(!n){var s=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n));return t}(t,i,r);i!==s&&(n=!0,r="buffer",i=s)}var a=t.objectMode?1:i.length;t.length+=a;var l=t.length-1))throw new E(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(R.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(R.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),R.prototype._write=function(e,t,n){n(new g("_write()"))},R.prototype._writev=null,R.prototype.end=function(e,t,n){var i=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),i.corked&&(i.corked=1,this.uncork()),i.ending||function(e,t,n){t.ending=!0,U(e,t),n&&(t.finished?r.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,i,n),this},Object.defineProperty(R.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),R.prototype.destroy=h.destroy,R.prototype._undestroy=h.undestroy,R.prototype._destroy=function(e,t){t(e)}},5850:(e,t,n)=>{"use strict";var i,r=n(4155);function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(8610),a=Symbol("lastResolve"),c=Symbol("lastReject"),l=Symbol("error"),u=Symbol("ended"),h=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function p(e,t){return{value:e,done:t}}function g(e){var t=e[a];if(null!==t){var n=e[f].read();null!==n&&(e[h]=null,e[a]=null,e[c]=null,t(p(n,!1)))}}function y(e){r.nextTick(g,e)}var b=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((o(i={get stream(){return this[f]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(p(void 0,!0));if(this[f].destroyed)return new Promise((function(t,n){r.nextTick((function(){e[l]?n(e[l]):t(p(void 0,!0))}))}));var n,i=this[h];if(i)n=new Promise(function(e,t){return function(n,i){e.then((function(){t[u]?n(p(void 0,!0)):t[d](n,i)}),i)}}(i,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(p(o,!1));n=new Promise(this[d])}return this[h]=n,n}},Symbol.asyncIterator,(function(){return this})),o(i,"return",(function(){var e=this;return new Promise((function(t,n){e[f].destroy(null,(function(e){e?n(e):t(p(void 0,!0))}))}))})),i),b);e.exports=function(e){var t,n=Object.create(m,(o(t={},f,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,l,{value:null,writable:!0}),o(t,u,{value:e._readableState.endEmitted,writable:!0}),o(t,d,{value:function(e,t){var i=n[f].read();i?(n[h]=null,n[a]=null,n[c]=null,e(p(i,!1))):(n[a]=e,n[c]=t)},writable:!0}),t));return n[h]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[h]=null,n[a]=null,n[c]=null,t(e)),void(n[l]=e)}var i=n[a];null!==i&&(n[h]=null,n[a]=null,n[c]=null,i(p(void 0,!0))),n[u]=!0})),e.on("readable",y.bind(null,n)),n}},7327:(e,t,n)=>{"use strict";function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return c.alloc(0);for(var t,n,i,r=c.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,n=r,i=s,c.prototype.copy.call(t,n,i),s+=o.data.length,o=o.next;return r}},{key:"consume",value:function(e,t){var n;return er.length?r.length:e;if(o===r.length?i+=r:i+=r.slice(0,e),0==(e-=o)){o===r.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=r.slice(o));break}++n}return this.length-=n,i}},{key:"_getBuffer",value:function(e){var t=c.allocUnsafe(e),n=this.head,i=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var r=n.data,o=e>r.length?r.length:e;if(r.copy(t,t.length-e,0,o),0==(e-=o)){o===r.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=r.slice(o));break}++i}return this.length-=i,t}},{key:u,value:function(e,t){return l(this,r(r({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,n),i&&s(t,i),Object.defineProperty(t,"prototype",{writable:!1}),e}()},1195:(e,t,n)=>{"use strict";var i=n(4155);function r(e,t){s(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,i.nextTick(s,this,e)):i.nextTick(s,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?i.nextTick(o,n):(n._writableState.errorEmitted=!0,i.nextTick(r,n,e)):i.nextTick(r,n,e):t?(i.nextTick(o,n),t(e)):i.nextTick(o,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,i=e._writableState;n&&n.autoDestroy||i&&i.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,n)=>{"use strict";var i=n(4281).q.ERR_STREAM_PREMATURE_CLOSE;function r(){}e.exports=function e(t,n,o){if("function"==typeof n)return e(t,null,n);n||(n={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,i=new Array(n),r=0;r{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},9946:(e,t,n)=>{"use strict";var i;var r=n(4281).q,o=r.ERR_MISSING_ARGS,s=r.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function c(e){e()}function l(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),r=0;r0,(function(e){u||(u=e),e&&d.forEach(c),o||(d.forEach(c),h(u))}))}));return t.reduce(l)}},2457:(e,t,n)=>{"use strict";var i=n(4281).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,r){var o=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,r,n);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new i(r?n:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},2503:(e,t,n)=>{e.exports=n(7187).EventEmitter},8473:(e,t,n)=>{(t=e.exports=n(9481)).Stream=t,t.Readable=t,t.Writable=n(4229),t.Duplex=n(6753),t.Transform=n(4605),t.PassThrough=n(2725),t.finished=n(8610),t.pipeline=n(9946)},9785:(e,t,n)=>{"use strict";var i=n(8764).Buffer,r=n(5717),o=n(3349),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function f(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function g(e,t,n,i,r,o,s,a){return p(e+(t^n^i)+o+s|0,a)+r|0}function y(e,t,n,i,r,o,s,a){return p(e+(t&n|~t&i)+o+s|0,a)+r|0}function b(e,t,n,i,r,o,s,a){return p(e+((t|~n)^i)+o+s|0,a)+r|0}function m(e,t,n,i,r,o,s,a){return p(e+(t&i|n&~i)+o+s|0,a)+r|0}function v(e,t,n,i,r,o,s,a){return p(e+(t^(n|~i))+o+s|0,a)+r|0}r(f,o),f.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,i=0|this._b,r=0|this._c,o=0|this._d,f=0|this._e,w=0|this._a,E=0|this._b,S=0|this._c,I=0|this._d,A=0|this._e,R=0;R<80;R+=1){var x,M;R<16?(x=g(n,i,r,o,f,e[a[R]],h[0],l[R]),M=v(w,E,S,I,A,e[c[R]],d[0],u[R])):R<32?(x=y(n,i,r,o,f,e[a[R]],h[1],l[R]),M=m(w,E,S,I,A,e[c[R]],d[1],u[R])):R<48?(x=b(n,i,r,o,f,e[a[R]],h[2],l[R]),M=b(w,E,S,I,A,e[c[R]],d[2],u[R])):R<64?(x=m(n,i,r,o,f,e[a[R]],h[3],l[R]),M=y(w,E,S,I,A,e[c[R]],d[3],u[R])):(x=v(n,i,r,o,f,e[a[R]],h[4],l[R]),M=g(w,E,S,I,A,e[c[R]],d[4],u[R])),n=f,f=o,o=p(r,10),r=i,i=x,w=A,A=I,I=p(S,10),S=E,E=M}var T=this._b+r+I|0;this._b=this._c+o+A|0,this._c=this._d+f+w|0,this._d=this._e+n+E|0,this._e=this._a+i+S|0,this._a=T},f.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=i.alloc?i.alloc(20):new i(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=f},9509:(e,t,n)=>{var i=n(8764),r=i.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return r(e,t,n)}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?e.exports=i:(o(i,t),t.Buffer=s),s.prototype=Object.create(r.prototype),o(r,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return r(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var i=r(e);return void 0!==t?"string"==typeof n?i.fill(t,n):i.fill(t):i.fill(0),i},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i.SlowBuffer(e)}},3954:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.safeJsonParse=function(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSON.parse(e)}catch(t){return e}},t.safeJsonStringify=function(e){return"string"==typeof e?e:JSON.stringify(e,((e,t)=>void 0===t?null:t))}},4189:(e,t,n)=>{var i=n(9509).Buffer;function r(e,t){this._block=i.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}r.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=i.from(e,t));for(var n=this._block,r=this._blockSize,o=e.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var i=(4294967295&n)>>>0,r=(n-i)/4294967296;this._block.writeUInt32BE(r,this._blockSize-8),this._block.writeUInt32BE(i,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},r.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=r},9072:(e,t,n)=>{var i=e.exports=function(e){e=e.toLowerCase();var t=i[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};i.sha=n(4448),i.sha1=n(8336),i.sha224=n(8432),i.sha256=n(7499),i.sha384=n(1686),i.sha512=n(7816)},4448:(e,t,n)=>{var i=n(5717),r=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,r.call(this,64,56)}function l(e){return e<<30|e>>>2}function u(e,t,n,i){return 0===e?t&n|~t&i:2===e?t&n|t&i|n&i:t^n^i}i(c,r),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,i=0|this._a,r=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,h=0;h<16;++h)n[h]=e.readInt32BE(4*h);for(;h<80;++h)n[h]=n[h-3]^n[h-8]^n[h-14]^n[h-16];for(var d=0;d<80;++d){var f=~~(d/20),p=0|((t=i)<<5|t>>>27)+u(f,r,o,a)+c+n[d]+s[f];c=a,a=o,o=l(r),r=i,i=p}this._a=i+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8336:(e,t,n)=>{var i=n(5717),r=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,r.call(this,64,56)}function l(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function h(e,t,n,i){return 0===e?t&n|~t&i:2===e?t&n|t&i|n&i:t^n^i}i(c,r),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,i=0|this._a,r=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var f=0;f<80;++f){var p=~~(f/20),g=l(i)+h(p,r,o,a)+c+n[f]+s[p]|0;c=a,a=o,o=u(r),r=i,i=g}this._a=i+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8432:(e,t,n)=>{var i=n(5717),r=n(7499),o=n(4189),s=n(9509).Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}i(c,r),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},7499:(e,t,n)=>{var i=n(5717),r=n(4189),o=n(9509).Buffer,s=[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],a=new Array(64);function c(){this.init(),this._w=a,r.call(this,64,56)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function f(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}i(c,r),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,i=0|this._a,r=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,p=0|this._f,g=0|this._g,y=0|this._h,b=0;b<16;++b)n[b]=e.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((t=n[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[b-7]+f(n[b-15])+n[b-16];for(var m=0;m<64;++m){var v=y+d(c)+l(c,p,g)+s[m]+n[m]|0,w=h(i)+u(i,r,o)|0;y=g,g=p,p=c,c=a+v|0,a=o,o=r,r=i,i=v+w|0}this._a=i+this._a|0,this._b=r+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=y+this._h|0},c.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},1686:(e,t,n)=>{var i=n(5717),r=n(7816),o=n(4189),s=n(9509).Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}i(c,r),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,i){e.writeInt32BE(t,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},7816:(e,t,n)=>{var i=n(5717),r=n(4189),o=n(9509).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,r.call(this,128,112)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}i(c,r),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,i=0|this._bh,r=0|this._ch,o=0|this._dh,a=0|this._eh,c=0|this._fh,m=0|this._gh,v=0|this._hh,w=0|this._al,E=0|this._bl,S=0|this._cl,I=0|this._dl,A=0|this._el,R=0|this._fl,x=0|this._gl,M=0|this._hl,T=0;T<32;T+=2)t[T]=e.readInt32BE(4*T),t[T+1]=e.readInt32BE(4*T+4);for(;T<160;T+=2){var k=t[T-30],O=t[T-30+1],U=f(k,O),C=p(O,k),P=g(k=t[T-4],O=t[T-4+1]),N=y(O,k),K=t[T-14],L=t[T-14+1],q=t[T-32],z=t[T-32+1],V=C+L|0,F=U+K+b(V,C)|0;F=(F=F+P+b(V=V+N|0,N)|0)+q+b(V=V+z|0,z)|0,t[T]=F,t[T+1]=V}for(var j=0;j<160;j+=2){F=t[j],V=t[j+1];var D=u(n,i,r),B=u(w,E,S),W=h(n,w),J=h(w,n),Z=d(a,A),Q=d(A,a),H=s[j],G=s[j+1],Y=l(a,c,m),X=l(A,R,x),_=M+Q|0,$=v+Z+b(_,M)|0;$=($=($=$+Y+b(_=_+X|0,X)|0)+H+b(_=_+G|0,G)|0)+F+b(_=_+V|0,V)|0;var ee=J+B|0,te=W+D+b(ee,J)|0;v=m,M=x,m=c,x=R,c=a,R=A,a=o+$+b(A=I+_|0,I)|0,o=r,I=S,r=i,S=E,i=n,E=w,n=$+te+b(w=_+ee|0,_)|0}this._al=this._al+w|0,this._bl=this._bl+E|0,this._cl=this._cl+S|0,this._dl=this._dl+I|0,this._el=this._el+A|0,this._fl=this._fl+R|0,this._gl=this._gl+x|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+i+b(this._bl,E)|0,this._ch=this._ch+r+b(this._cl,S)|0,this._dh=this._dh+o+b(this._dl,I)|0,this._eh=this._eh+a+b(this._el,A)|0,this._fh=this._fh+c+b(this._fl,R)|0,this._gh=this._gh+m+b(this._gl,x)|0,this._hh=this._hh+v+b(this._hl,M)|0},c.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,n,i){e.writeInt32BE(t,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},500:e=>{"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},2830:(e,t,n)=>{e.exports=r;var i=n(7187).EventEmitter;function r(){i.call(this)}n(5717)(r,i),r.Readable=n(9481),r.Writable=n(4229),r.Duplex=n(6753),r.Transform=n(4605),r.PassThrough=n(2725),r.finished=n(8610),r.pipeline=n(9946),r.Stream=r,r.prototype.pipe=function(e,t){var n=this;function r(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",r),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",c));var s=!1;function a(){s||(s=!0,e.end())}function c(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",r),e.removeListener("drain",o),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",l),e.on("error",l),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},610:e=>{"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},2553:(e,t,n)=>{"use strict";var i=n(9509).Buffer,r=i.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(i.isEncoding===r||!r(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=h,t=3;break;default:return this.write=d,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=i.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var i=n.charCodeAt(n.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return r>0&&(e.lastNeed=r-1),r;if(--i=0)return r>0&&(e.lastNeed=r-2),r;if(--i=0)return r>0&&(2===r?r=0:e.lastNeed=r-3),r;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var i=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,i),e.toString("utf8",t,i)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>w,__asyncGenerator:()=>v,__asyncValues:()=>E,__await:()=>m,__awaiter:()=>u,__classPrivateFieldGet:()=>R,__classPrivateFieldSet:()=>x,__createBinding:()=>d,__decorate:()=>a,__exportStar:()=>f,__extends:()=>r,__generator:()=>h,__importDefault:()=>A,__importStar:()=>I,__makeTemplateObject:()=>S,__metadata:()=>l,__param:()=>c,__read:()=>g,__rest:()=>s,__spread:()=>y,__spreadArrays:()=>b,__values:()=>p});var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i(e,t)};function r(e,t){function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function c(e,t){return function(n,i){t(n,i,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))}function h(e,t){var n,i,r,o,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,i&&(r=2&o[0]?i.return:o[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,o[1])).done)return r;switch(i=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,i=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(r=s.trys,(r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)s.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return s}function y(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(n=r[e](t)).value instanceof m?Promise.resolve(n.value.v).then(c,l):u(o[0][2],n)}catch(e){u(o[0][3],e)}var n}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function w(e){var t,n;return t={},i("next"),i("throw",(function(e){throw e})),i("return"),t[Symbol.iterator]=function(){return this},t;function i(i,r){t[i]=e[i]?function(t){return(n=!n)?{value:m(e[i](t)),done:"return"===i}:r?r(t):t}:r}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise((function(i,r){(function(e,t,n,i){Promise.resolve(i).then((function(t){e({value:t,done:n})}),t)})(i,r,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function I(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function A(e){return e&&e.__esModule?e:{default:e}}function R(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function x(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},5054:(e,t,n)=>{var i=n(8764).Buffer;e.exports=function(e){return ArrayBuffer.isView(e)?i.from(e.buffer,e.byteOffset,e.byteLength):i.from(e)}},4927:(e,t,n)=>{var i=n(5108);function r(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?i.trace(t):i.warn(t),n=!0}return e.apply(this,arguments)}}},384:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},5955:(e,t,n)=>{"use strict";var i=n(2584),r=n(8662),o=n(6430),s=n(5692);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,u=a(Object.prototype.toString),h=a(Number.prototype.valueOf),d=a(String.prototype.valueOf),f=a(Boolean.prototype.valueOf);if(c)var p=a(BigInt.prototype.valueOf);if(l)var g=a(Symbol.prototype.valueOf);function y(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function b(e){return"[object Map]"===u(e)}function m(e){return"[object Set]"===u(e)}function v(e){return"[object WeakMap]"===u(e)}function w(e){return"[object WeakSet]"===u(e)}function E(e){return"[object ArrayBuffer]"===u(e)}function S(e){return"undefined"!=typeof ArrayBuffer&&(E.working?E(e):e instanceof ArrayBuffer)}function I(e){return"[object DataView]"===u(e)}function A(e){return"undefined"!=typeof DataView&&(I.working?I(e):e instanceof DataView)}t.isArgumentsObject=i,t.isGeneratorFunction=r,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||A(e)},t.isUint8Array=function(e){return"Uint8Array"===o(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===o(e)},t.isUint16Array=function(e){return"Uint16Array"===o(e)},t.isUint32Array=function(e){return"Uint32Array"===o(e)},t.isInt8Array=function(e){return"Int8Array"===o(e)},t.isInt16Array=function(e){return"Int16Array"===o(e)},t.isInt32Array=function(e){return"Int32Array"===o(e)},t.isFloat32Array=function(e){return"Float32Array"===o(e)},t.isFloat64Array=function(e){return"Float64Array"===o(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===o(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===o(e)},b.working="undefined"!=typeof Map&&b(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(b.working?b(e):e instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(m.working?m(e):e instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(v.working?v(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),t.isArrayBuffer=S,I.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&I(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=A;var R="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function x(e){return"[object SharedArrayBuffer]"===u(e)}function M(e){return void 0!==R&&(void 0===x.working&&(x.working=x(new R)),x.working?x(e):e instanceof R)}function T(e){return y(e,h)}function k(e){return y(e,d)}function O(e){return y(e,f)}function U(e){return c&&y(e,p)}function C(e){return l&&y(e,g)}t.isSharedArrayBuffer=M,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===u(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===u(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===u(e)},t.isGeneratorObject=function(e){return"[object Generator]"===u(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===u(e)},t.isNumberObject=T,t.isStringObject=k,t.isBooleanObject=O,t.isBigIntObject=U,t.isSymbolObject=C,t.isBoxedPrimitive=function(e){return T(e)||k(e)||O(e)||U(e)||C(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(S(e)||M(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},9539:(e,t,n)=>{var i=n(4155),r=n(5108),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},i=0;i=r)return e;switch(e){case"%s":return String(i[n++]);case"%d":return Number(i[n++]);case"%j":try{return JSON.stringify(i[n++])}catch(e){return"[Circular]"}default:return e}})),a=i[n];n=3&&(i.depth=arguments[2]),arguments.length>=4&&(i.colors=arguments[3]),b(n)?i.showHidden=n:n&&t._extend(i,n),E(i.showHidden)&&(i.showHidden=!1),E(i.depth)&&(i.depth=2),E(i.colors)&&(i.colors=!1),E(i.customInspect)&&(i.customInspect=!0),i.colors&&(i.stylize=h),f(i,e,i.depth)}function h(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function d(e,t){return e}function f(e,n,i){if(e.customInspect&&n&&x(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var r=n.inspect(i,e);return w(r)||(r=f(e,r,i)),r}var o=function(e,t){if(E(t))return e.stylize("undefined","undefined");if(w(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(v(t))return e.stylize(""+t,"number");if(b(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),R(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return p(n);if(0===s.length){if(x(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(S(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(A(n))return e.stylize(Date.prototype.toString.call(n),"date");if(R(n))return p(n)}var l,u="",h=!1,d=["{","}"];(y(n)&&(h=!0,d=["[","]"]),x(n))&&(u=" [Function"+(n.name?": "+n.name:"")+"]");return S(n)&&(u=" "+RegExp.prototype.toString.call(n)),A(n)&&(u=" "+Date.prototype.toUTCString.call(n)),R(n)&&(u=" "+p(n)),0!==s.length||h&&0!=n.length?i<0?S(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=h?function(e,t,n,i,r){for(var o=[],s=0,a=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(i>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,u,d)):d[0]+u+d[1]}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function g(e,t,n,i,r,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,r)||{value:t[r]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),O(i,r)||(s="["+r+"]"),a||(e.seen.indexOf(c.value)<0?(a=m(n)?f(e,c.value,null):f(e,c.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),E(s)){if(o&&r.match(/^\d+$/))return a;(s=JSON.stringify(""+r)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function y(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return"number"==typeof e}function w(e){return"string"==typeof e}function E(e){return void 0===e}function S(e){return I(e)&&"[object RegExp]"===M(e)}function I(e){return"object"==typeof e&&null!==e}function A(e){return I(e)&&"[object Date]"===M(e)}function R(e){return I(e)&&("[object Error]"===M(e)||e instanceof Error)}function x(e){return"function"==typeof e}function M(e){return Object.prototype.toString.call(e)}function T(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(c.test(e)){var n=i.pid;a[e]=function(){var i=t.format.apply(t,arguments);r.error("%s %d: %s",e,n,i)}}else a[e]=function(){};return a[e]},t.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(5955),t.isArray=y,t.isBoolean=b,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=v,t.isString=w,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=E,t.isRegExp=S,t.types.isRegExp=S,t.isObject=I,t.isDate=A,t.types.isDate=A,t.isError=R,t.types.isNativeError=R,t.isFunction=x,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(384);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;r.log("%s - %s",(e=new Date,n=[T(e.getHours()),T(e.getMinutes()),T(e.getSeconds())].join(":"),[e.getDate(),k[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(5717),t._extend=function(e,t){if(!t||!I(t))return e;for(var n=Object.keys(t),i=n.length;i--;)e[n[i]]=t[n[i]];return e};var U="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function C(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(U&&e[U]){var t;if("function"!=typeof(t=e[U]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,U,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,i=new Promise((function(e,i){t=e,n=i})),r=[],o=0;o{"use strict";var i=n(4029),r=n(3083),o=n(1924),s=n(7296),a=o("Object.prototype.toString"),c=n(6410)(),l="undefined"==typeof globalThis?n.g:globalThis,u=r(),h=o("String.prototype.slice"),d={},f=Object.getPrototypeOf;c&&s&&f&&i(u,(function(e){if("function"==typeof l[e]){var t=new l[e];if(Symbol.toStringTag in t){var n=f(t),i=s(n,Symbol.toStringTag);if(!i){var r=f(n);i=s(r,Symbol.toStringTag)}d[e]=i.get}}}));var p=n(5692);e.exports=function(e){return!!p(e)&&(c&&Symbol.toStringTag in e?function(e){var t=!1;return i(d,(function(n,i){if(!t)try{var r=n.call(e);r===i&&(t=r)}catch(e){}})),t}(e):h(a(e),8,-1))}},7026:e=>{"use strict";e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}},5883:()=>{},6601:()=>{},9214:()=>{},9951:()=>{},2361:()=>{},4616:()=>{},3083:(e,t,n)=>{"use strict";var i=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],r="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;t{"use strict";const i=n(5346);e.exports=s;const r=function(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{},o={mapHttpRequest:d,mapHttpResponse:d,wrapRequestSerializer:f,wrapResponseSerializer:f,wrapErrorSerializer:f,req:d,res:d,err:function(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}};function s(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const n=e.browser.write||r;e.browser.write&&(e.browser.asObject=!0);const i=e.serializers||{},o=function(e,t){if(Array.isArray(e))return e.filter((function(e){return"!stdSerializers.err"!==e}));return!0===e&&Object.keys(t)}(e.browser.serialize,i);let d=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(d=!1);"function"==typeof n&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),!1===e.enabled&&(e.level="silent");const f=e.level||"info",g=Object.create(n);g.log||(g.log=p),Object.defineProperty(g,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(g,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,a(y,g,"error","log"),a(y,g,"fatal","error"),a(y,g,"warn","error"),a(y,g,"info","log"),a(y,g,"debug","log"),a(y,g,"trace","log")}});const y={transmit:t,serialize:o,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:h(e)};return g.levels=s.levels,g.level=f,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=p,g.serializers=i,g._serialize=o,g._stdErrSerialize=d,g.child=function(n,r){if(!n)throw new Error("missing bindings for child Pino");r=r||{},o&&n.serializers&&(r.serializers=n.serializers);const s=r.serializers;if(o&&s){var a=Object.assign({},i,s),h=!0===e.browser.serialize?Object.keys(a):o;delete n.serializers,c([n],h,a,this._stdErrSerialize)}function d(e){this._childLevel=1+(0|e._childLevel),this.error=l(e,n,"error"),this.fatal=l(e,n,"fatal"),this.warn=l(e,n,"warn"),this.info=l(e,n,"info"),this.debug=l(e,n,"debug"),this.trace=l(e,n,"trace"),a&&(this.serializers=a,this._serialize=h),t&&(this._logEvent=u([].concat(e._logEvent.bindings,n)))}return d.prototype=this,new d(this)},t&&(g._logEvent=u()),g}function a(e,t,n,o){const a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?p:a[n]?a[n]:r[n]||r[o]||p,function(e,t,n){if(!e.transmit&&t[n]===p)return;t[n]=(o=t[n],function(){const a=e.timestamp(),l=new Array(arguments.length),h=Object.getPrototypeOf&&Object.getPrototypeOf(this)===r?r:this;for(var d=0;d-1&&i in n&&(e[r][i]=n[i](e[r][i]))}function l(e,t,n){return function(){const i=new Array(1+arguments.length);i[0]=t;for(var r=1;r{"use strict";e.exports={i8:"6.5.4"}}},t={};function n(i){var r=t[i];if(void 0!==r)return r.exports;var o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e={};n.r(e),n.d(e,{identity:()=>Oa});var t={};n.r(t),n.d(t,{base2:()=>Ua});var i={};n.r(i),n.d(i,{base8:()=>Ca});var r={};n.r(r),n.d(r,{base10:()=>Pa});var o={};n.r(o),n.d(o,{base16:()=>Na,base16upper:()=>Ka});var s={};n.r(s),n.d(s,{base32:()=>La,base32hex:()=>Fa,base32hexpad:()=>Da,base32hexpadupper:()=>Ba,base32hexupper:()=>ja,base32pad:()=>za,base32padupper:()=>Va,base32upper:()=>qa,base32z:()=>Wa});var a={};n.r(a),n.d(a,{base36:()=>Ja,base36upper:()=>Za});var c={};n.r(c),n.d(c,{base58btc:()=>Qa,base58flickr:()=>Ha});var l={};n.r(l),n.d(l,{base64:()=>Ga,base64pad:()=>Ya,base64url:()=>Xa,base64urlpad:()=>_a});var u={};n.r(u),n.d(u,{base256emoji:()=>nc});var h={};n.r(h),n.d(h,{sha256:()=>Mc,sha512:()=>Tc});var d={};n.r(d),n.d(d,{identity:()=>Oc});var f={};n.r(f),n.d(f,{code:()=>Cc,decode:()=>Nc,encode:()=>Pc,name:()=>Uc});var p,g={};n.r(g),n.d(g,{code:()=>zc,decode:()=>Fc,encode:()=>Vc,name:()=>qc}),function(e){e.beacon="beacon",e.kukai="kukai"}(p||(p={}));const y=function(){function e(){}return e.prototype.Init=function(e){var t=this;this.Config=e,this.FileUploaderDomElement=document.getElementById("fileuploader"),this.FileUploaderDomElement||(this.FileUploaderDomElement=document.createElement("input"),this.FileUploaderDomElement.setAttribute("style","display:none;"),this.FileUploaderDomElement.setAttribute("type","file"),this.FileUploaderDomElement.setAttribute("id","fileuploader"),this.FileUploaderDomElement.setAttribute("class","nonfocused"),document.getElementsByTagName("body")[0].appendChild(this.FileUploaderDomElement),this.FileUploaderDomElement.onchange=function(e){var n=e.target.files;0===n.length?t.ResetFileUploader():t.FileReceived(n[0])})},e.prototype.ResetFileUploader=function(){var e;null===(e=this.FileUploaderDomElement)||void 0===e||e.setAttribute("class","nonfocused")},e.prototype.RequestUserFile=function(e){null===this.FileUploaderDomElement&&this.Init(this.Config),null===e&&null!==e.match(/^ *$/)||this.FileUploaderDomElement.setAttribute("accept",e),this.FileUploaderDomElement.setAttribute("class","focused"),this.FileUploaderDomElement.click()},e}();var b,m=(b=function(e,t){return b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},b(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),v=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))},w=function(e,t){var n,i,r,o,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(n=1,i&&(r=2&a[0]?i.return:a[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;switch(i=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,i=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(r=s.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]0&&r[r.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]0||e===t?t:t-1}function B(e){for(var t,n,i=1,r=e.length,o=e[0]+"";il^n?1:-1;for(a=(c=r.length)<(l=o.length)?c:l,s=0;so[s]^n?1:-1;return c==l?0:c>l^n?1:-1}function J(e,t,n,i){if(en||e!==P(e))throw Error(N+(i||"Argument")+("number"==typeof e?en?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function Z(e){var t=e.c.length-1;return D(e.e/q)==t&&e.c[t]%2!=0}function Q(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function H(e,t,n){var i,r;if(t<0){for(r=n+".";++t;r+=n);e=r+e}else if(++t>(i=e.length)){for(r=n,t-=i;--t;r+=n);e+=r}else tv?d.c=d.e=null:e.e=10;c/=10,a++);return void(a>v?d.c=d.e=null:(d.e=a,d.c=[e]))}h=String(e)}else{if(!U.test(h=String(e)))return r(d,h,l);d.s=45==h.charCodeAt(0)?(h=h.slice(1),-1):1}(a=h.indexOf("."))>-1&&(h=h.replace(".","")),(c=h.search(/e/i))>0?(a<0&&(a=c),a+=+h.slice(c+1),h=h.substring(0,c)):a<0&&(a=h.length)}else{if(J(t,2,A.length,"Base"),10==t&&R)return O(d=new x(e),p+d.e+1,g);if(h=String(e),l="number"==typeof e){if(0*e!=0)return r(d,h,l,t);if(d.s=1/e<0?(h=h.slice(1),-1):1,x.DEBUG&&h.replace(/^0\.0*|\./,"").length>15)throw Error(K+e)}else d.s=45===h.charCodeAt(0)?(h=h.slice(1),-1):1;for(n=A.slice(0,t),a=c=0,u=h.length;ca){a=u;continue}}else if(!s&&(h==h.toUpperCase()&&(h=h.toLowerCase())||h==h.toLowerCase()&&(h=h.toUpperCase()))){s=!0,c=-1,a=0;continue}return r(d,String(e),l,t)}l=!1,(a=(h=i(h,t,10,d.s)).indexOf("."))>-1?h=h.replace(".",""):a=h.length}for(c=0;48===h.charCodeAt(c);c++);for(u=h.length;48===h.charCodeAt(--u););if(h=h.slice(c,++u)){if(u-=c,l&&x.DEBUG&&u>15&&(e>z||e!==P(e)))throw Error(K+d.s*e);if((a=a-c-1)>v)d.c=d.e=null;else if(a=b)?Q(c,s):H(c,s,"0");else if(o=(e=O(new x(e),t,n)).e,a=(c=B(e.c)).length,1==i||2==i&&(t<=o||o<=y)){for(;aa){if(--t>0)for(c+=".";t--;c+="0");}else if((t+=o-a)>0)for(o+1==a&&(c+=".");t--;c+="0");return e.s<0&&r?"-"+c:c}function T(e,t){for(var n,i=1,r=new x(e[0]);i=10;r/=10,i++);return(n=i+n*q-1)>v?e.c=e.e=null:n=10;a/=10,r++);if((o=t-r)<0)o+=q,s=t,u=(c=h[l=0])/d[r-s-1]%10|0;else if((l=C((o+1)/q))>=h.length){if(!i)break e;for(;h.length<=l;h.push(0));c=u=0,r=1,s=(o%=q)-q+1}else{for(c=a=h[l],r=1;a>=10;a/=10,r++);u=(s=(o%=q)-q+r)<0?0:c/d[r-s-1]%10|0}if(i=i||t<0||null!=h[l+1]||(s<0?c:c%d[r-s-1]),i=n<4?(u||i)&&(0==n||n==(e.s<0?3:2)):u>5||5==u&&(4==n||i||6==n&&(o>0?s>0?c/d[r-s]:0:h[l-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,i?(t-=e.e+1,h[0]=d[(q-t%q)%q],e.e=-t||0):h[0]=e.e=0,e;if(0==o?(h.length=l,a=1,l--):(h.length=l+1,a=d[q-o],h[l]=s>0?P(c/d[r-s]%d[s])*a:0),i)for(;;){if(0==l){for(o=1,s=h[0];s>=10;s/=10,o++);for(s=h[0]+=a,a=1;s>=10;s/=10,a++);o!=a&&(e.e++,h[0]==L&&(h[0]=1));break}if(h[l]+=a,h[l]!=L)break;h[l--]=0,a=1}for(o=h.length;0===h[--o];h.pop());}e.e>v?e.c=e.e=null:e.e=b?Q(t,n):H(t,n,"0"),e.s<0?"-"+t:t)}return x.clone=e,x.ROUND_UP=0,x.ROUND_DOWN=1,x.ROUND_CEIL=2,x.ROUND_FLOOR=3,x.ROUND_HALF_UP=4,x.ROUND_HALF_DOWN=5,x.ROUND_HALF_EVEN=6,x.ROUND_HALF_CEIL=7,x.ROUND_HALF_FLOOR=8,x.EUCLID=9,x.config=x.set=function(e){var t,n;if(null!=e){if("object"!=typeof e)throw Error(N+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(J(n=e[t],0,j,t),p=n),e.hasOwnProperty(t="ROUNDING_MODE")&&(J(n=e[t],0,8,t),g=n),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((n=e[t])&&n.pop?(J(n[0],-j,0,t),J(n[1],0,j,t),y=n[0],b=n[1]):(J(n,-j,j,t),y=-(b=n<0?-n:n))),e.hasOwnProperty(t="RANGE"))if((n=e[t])&&n.pop)J(n[0],-j,-1,t),J(n[1],1,j,t),m=n[0],v=n[1];else{if(J(n,-j,j,t),!n)throw Error(N+t+" cannot be zero: "+n);m=-(v=n<0?-n:n)}if(e.hasOwnProperty(t="CRYPTO")){if((n=e[t])!==!!n)throw Error(N+t+" not true or false: "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw w=!n,Error(N+"crypto unavailable");w=n}else w=n}if(e.hasOwnProperty(t="MODULO_MODE")&&(J(n=e[t],0,9,t),E=n),e.hasOwnProperty(t="POW_PRECISION")&&(J(n=e[t],0,j,t),S=n),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(n=e[t]))throw Error(N+t+" not an object: "+n);I=n}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(n=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(n))throw Error(N+t+" invalid: "+n);R="0123456789"==n.slice(0,10),A=n}}return{DECIMAL_PLACES:p,ROUNDING_MODE:g,EXPONENTIAL_AT:[y,b],RANGE:[m,v],CRYPTO:w,MODULO_MODE:E,POW_PRECISION:S,FORMAT:I,ALPHABET:A}},x.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!x.DEBUG)return!0;var t,n,i=e.c,r=e.e,o=e.s;e:if("[object Array]"=={}.toString.call(i)){if((1===o||-1===o)&&r>=-j&&r<=j&&r===P(r)){if(0===i[0]){if(0===r&&1===i.length)return!0;break e}if((t=(r+1)%q)<1&&(t+=q),String(i[0]).length==t){for(t=0;t=L||n!==P(n))break e;if(0!==n)return!0}}}else if(null===i&&null===r&&(null===o||1===o||-1===o))return!0;throw Error(N+"Invalid BigNumber: "+e)},x.maximum=x.max=function(){return T(arguments,d.lt)},x.minimum=x.min=function(){return T(arguments,d.gt)},x.random=(o=9007199254740992,s=Math.random()*o&2097151?function(){return P(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,n,i,r,o,a=0,c=[],l=new x(f);if(null==e?e=p:J(e,0,j),r=C(e/q),w)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(r*=2));a>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[a]=n[0],t[a+1]=n[1]):(c.push(o%1e14),a+=2);a=r/2}else{if(!crypto.randomBytes)throw w=!1,Error(N+"crypto unavailable");for(t=crypto.randomBytes(r*=7);a=9e15?crypto.randomBytes(7).copy(t,a):(c.push(o%1e14),a+=7);a=r/7}if(!w)for(;a=10;o/=10,a++);an-1&&(null==s[r+1]&&(s[r+1]=0),s[r+1]+=s[r]/n|0,s[r]%=n)}return s.reverse()}return function(i,r,o,s,a){var c,l,u,h,d,f,y,b,m=i.indexOf("."),v=p,w=g;for(m>=0&&(h=S,S=0,i=i.replace(".",""),f=(b=new x(r)).pow(i.length-m),S=h,b.c=t(H(B(f.c),f.e,"0"),10,o,e),b.e=b.c.length),u=h=(y=t(i,r,o,a?(c=A,e):(c=e,A))).length;0==y[--h];y.pop());if(!y[0])return c.charAt(0);if(m<0?--u:(f.c=y,f.e=u,f.s=s,y=(f=n(f,b,v,w,o)).c,d=f.r,u=f.e),m=y[l=u+v+1],h=o/2,d=d||l<0||null!=y[l+1],d=w<4?(null!=m||d)&&(0==w||w==(f.s<0?3:2)):m>h||m==h&&(4==w||d||6==w&&1&y[l-1]||w==(f.s<0?8:7)),l<1||!y[0])i=d?H(c.charAt(1),-v,c.charAt(0)):c.charAt(0);else{if(y.length=l,d)for(--o;++y[--l]>o;)y[l]=0,l||(++u,y=[1].concat(y));for(h=y.length;!y[--h];);for(m=0,i="";m<=h;i+=c.charAt(y[m++]));i=H(i,u,c.charAt(0))}return i}}(),n=function(){function e(e,t,n){var i,r,o,s,a=0,c=e.length,l=t%F,u=t/F|0;for(e=e.slice();c--;)a=((r=l*(o=e[c]%F)+(i=u*o+(s=e[c]/F|0)*l)%F*F+a)/n|0)+(i/F|0)+u*s,e[c]=r%n;return a&&(e=[a].concat(e)),e}function t(e,t,n,i){var r,o;if(n!=i)o=n>i?1:-1;else for(r=o=0;rt[r]?1:-1;break}return o}function n(e,t,n,i){for(var r=0;n--;)e[n]-=r,r=e[n]1;e.splice(0,1));}return function(i,r,o,s,a){var c,l,u,h,d,f,p,g,y,b,m,v,w,E,S,I,A,R=i.s==r.s?1:-1,M=i.c,T=r.c;if(!(M&&M[0]&&T&&T[0]))return new x(i.s&&r.s&&(M?!T||M[0]!=T[0]:T)?M&&0==M[0]||!T?0*R:R/0:NaN);for(y=(g=new x(R)).c=[],R=o+(l=i.e-r.e)+1,a||(a=L,l=D(i.e/q)-D(r.e/q),R=R/q|0),u=0;T[u]==(M[u]||0);u++);if(T[u]>(M[u]||0)&&l--,R<0)y.push(1),h=!0;else{for(E=M.length,I=T.length,u=0,R+=2,(d=P(a/(T[0]+1)))>1&&(T=e(T,d,a),M=e(M,d,a),I=T.length,E=M.length),w=I,m=(b=M.slice(0,I)).length;m=a/2&&S++;do{if(d=0,(c=t(T,b,I,m))<0){if(v=b[0],I!=m&&(v=v*a+(b[1]||0)),(d=P(v/S))>1)for(d>=a&&(d=a-1),p=(f=e(T,d,a)).length,m=b.length;1==t(f,b,p,m);)d--,n(f,I=10;R/=10,u++);O(g,o+(g.e=u+l*q-1)+1,s,h)}else g.e=l,g.r=+h;return g}}(),a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,c=/^([^.]+)\.$/,l=/^\.([^.]+)$/,u=/^-?(Infinity|NaN)$/,h=/^\s*\+(?=[\w.])|^\s+|\s+$/g,r=function(e,t,n,i){var r,o=n?t:t.replace(h,"");if(u.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!n&&(o=o.replace(a,(function(e,t,n){return r="x"==(n=n.toLowerCase())?16:"b"==n?2:8,i&&i!=r?e:t})),i&&(r=i,o=o.replace(c,"$1").replace(l,"0.$1")),t!=o))return new x(o,r);if(x.DEBUG)throw Error(N+"Not a"+(i?" base "+i:"")+" number: "+t);e.s=null}e.c=e.e=null},d.absoluteValue=d.abs=function(){var e=new x(this);return e.s<0&&(e.s=1),e},d.comparedTo=function(e,t){return W(this,new x(e,t))},d.decimalPlaces=d.dp=function(e,t){var n,i,r,o=this;if(null!=e)return J(e,0,j),null==t?t=g:J(t,0,8),O(new x(o),e+o.e+1,t);if(!(n=o.c))return null;if(i=((r=n.length-1)-D(this.e/q))*q,r=n[r])for(;r%10==0;r/=10,i--);return i<0&&(i=0),i},d.dividedBy=d.div=function(e,t){return n(this,new x(e,t),p,g)},d.dividedToIntegerBy=d.idiv=function(e,t){return n(this,new x(e,t),0,1)},d.exponentiatedBy=d.pow=function(e,t){var n,i,r,o,s,a,c,l,u=this;if((e=new x(e)).c&&!e.isInteger())throw Error(N+"Exponent not an integer: "+G(e));if(null!=t&&(t=new x(t)),s=e.e>14,!u.c||!u.c[0]||1==u.c[0]&&!u.e&&1==u.c.length||!e.c||!e.c[0])return l=new x(Math.pow(+G(u),s?e.s*(2-Z(e)):+G(e))),t?l.mod(t):l;if(a=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new x(NaN);(i=!a&&u.isInteger()&&t.isInteger())&&(u=u.mod(t))}else{if(e.e>9&&(u.e>0||u.e<-1||(0==u.e?u.c[0]>1||s&&u.c[1]>=24e7:u.c[0]<8e13||s&&u.c[0]<=9999975e7)))return o=u.s<0&&Z(e)?-0:0,u.e>-1&&(o=1/o),new x(a?1/o:o);S&&(o=C(S/q+2))}for(s?(n=new x(.5),a&&(e.s=1),c=Z(e)):c=(r=Math.abs(+G(e)))%2,l=new x(f);;){if(c){if(!(l=l.times(u)).c)break;o?l.c.length>o&&(l.c.length=o):i&&(l=l.mod(t))}if(r){if(0===(r=P(r/2)))break;c=r%2}else if(O(e=e.times(n),e.e+1,1),e.e>14)c=Z(e);else{if(0===(r=+G(e)))break;c=r%2}u=u.times(u),o?u.c&&u.c.length>o&&(u.c.length=o):i&&(u=u.mod(t))}return i?l:(a&&(l=f.div(l)),t?l.mod(t):o?O(l,S,g,undefined):l)},d.integerValue=function(e){var t=new x(this);return null==e?e=g:J(e,0,8),O(t,t.e+1,e)},d.isEqualTo=d.eq=function(e,t){return 0===W(this,new x(e,t))},d.isFinite=function(){return!!this.c},d.isGreaterThan=d.gt=function(e,t){return W(this,new x(e,t))>0},d.isGreaterThanOrEqualTo=d.gte=function(e,t){return 1===(t=W(this,new x(e,t)))||0===t},d.isInteger=function(){return!!this.c&&D(this.e/q)>this.c.length-2},d.isLessThan=d.lt=function(e,t){return W(this,new x(e,t))<0},d.isLessThanOrEqualTo=d.lte=function(e,t){return-1===(t=W(this,new x(e,t)))||0===t},d.isNaN=function(){return!this.s},d.isNegative=function(){return this.s<0},d.isPositive=function(){return this.s>0},d.isZero=function(){return!!this.c&&0==this.c[0]},d.minus=function(e,t){var n,i,r,o,s=this,a=s.s;if(t=(e=new x(e,t)).s,!a||!t)return new x(NaN);if(a!=t)return e.s=-t,s.plus(e);var c=s.e/q,l=e.e/q,u=s.c,h=e.c;if(!c||!l){if(!u||!h)return u?(e.s=-t,e):new x(h?s:NaN);if(!u[0]||!h[0])return h[0]?(e.s=-t,e):new x(u[0]?s:3==g?-0:0)}if(c=D(c),l=D(l),u=u.slice(),a=c-l){for((o=a<0)?(a=-a,r=u):(l=c,r=h),r.reverse(),t=a;t--;r.push(0));r.reverse()}else for(i=(o=(a=u.length)<(t=h.length))?a:t,a=t=0;t0)for(;t--;u[n++]=0);for(t=L-1;i>a;){if(u[--i]=0;){for(n=0,d=v[r]%y,f=v[r]/y|0,o=r+(s=c);o>r;)n=((l=d*(l=m[--s]%y)+(a=f*l+(u=m[s]/y|0)*d)%y*y+p[o]+n)/g|0)+(a/y|0)+f*u,p[o--]=l%g;p[o]=n}return n?++i:p.splice(0,1),k(e,p,i)},d.negated=function(){var e=new x(this);return e.s=-e.s||null,e},d.plus=function(e,t){var n,i=this,r=i.s;if(t=(e=new x(e,t)).s,!r||!t)return new x(NaN);if(r!=t)return e.s=-t,i.minus(e);var o=i.e/q,s=e.e/q,a=i.c,c=e.c;if(!o||!s){if(!a||!c)return new x(r/0);if(!a[0]||!c[0])return c[0]?e:new x(a[0]?i:0*r)}if(o=D(o),s=D(s),a=a.slice(),r=o-s){for(r>0?(s=o,n=c):(r=-r,n=a),n.reverse();r--;n.push(0));n.reverse()}for((r=a.length)-(t=c.length)<0&&(n=c,c=a,a=n,t=r),r=0;t;)r=(a[--t]=a[t]+c[t]+r)/L|0,a[t]=L===a[t]?0:a[t]%L;return r&&(a=[r].concat(a),++s),k(e,a,s)},d.precision=d.sd=function(e,t){var n,i,r,o=this;if(null!=e&&e!==!!e)return J(e,1,j),null==t?t=g:J(t,0,8),O(new x(o),e,t);if(!(n=o.c))return null;if(i=(r=n.length-1)*q+1,r=n[r]){for(;r%10==0;r/=10,i--);for(r=n[0];r>=10;r/=10,i++);}return e&&o.e+1>i&&(i=o.e+1),i},d.shiftedBy=function(e){return J(e,-9007199254740991,z),this.times("1e"+e)},d.squareRoot=d.sqrt=function(){var e,t,i,r,o,s=this,a=s.c,c=s.s,l=s.e,u=p+4,h=new x("0.5");if(1!==c||!a||!a[0])return new x(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);if(0==(c=Math.sqrt(+G(s)))||c==1/0?(((t=B(a)).length+l)%2==0&&(t+="0"),c=Math.sqrt(+t),l=D((l+1)/2)-(l<0||l%2),i=new x(t=c==1/0?"5e"+l:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+l)):i=new x(c+""),i.c[0])for((c=(l=i.e)+u)<3&&(c=0);;)if(o=i,i=h.times(o.plus(n(s,o,u,1))),B(o.c).slice(0,c)===(t=B(i.c)).slice(0,c)){if(i.e0&&p>0){for(o=p%a||a,u=f.substr(0,o);o0&&(u+=l+f.slice(o)),d&&(u="-"+u)}i=h?u+(n.decimalSeparator||"")+((c=+n.fractionGroupSize)?h.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(n.fractionGroupSeparator||"")):h):u}return(n.prefix||"")+i+(n.suffix||"")},d.toFraction=function(e){var t,i,r,o,s,a,c,l,u,h,d,p,y=this,b=y.c;if(null!=e&&(!(c=new x(e)).isInteger()&&(c.c||1!==c.s)||c.lt(f)))throw Error(N+"Argument "+(c.isInteger()?"out of range: ":"not an integer: ")+G(c));if(!b)return new x(y);for(t=new x(f),u=i=new x(f),r=l=new x(f),p=B(b),s=t.e=p.length-y.e-1,t.c[0]=V[(a=s%q)<0?q+a:a],e=!e||c.comparedTo(t)>0?s>0?t:u:c,a=v,v=1/0,c=new x(p),l.c[0]=0;h=n(c,t,0,1),1!=(o=i.plus(h.times(r))).comparedTo(e);)i=r,r=o,u=l.plus(h.times(o=u)),l=o,t=c.minus(h.times(o=t)),c=o;return o=n(e.minus(i),r,0,1),l=l.plus(o.times(u)),i=i.plus(o.times(r)),l.s=u.s=y.s,d=n(u,r,s*=2,g).minus(y).abs().comparedTo(n(l,i,s,g).minus(y).abs())<1?[u,r]:[l,i],v=a,d},d.toNumber=function(){return+G(this)},d.toPrecision=function(e,t){return null!=e&&J(e,1,j),M(this,e,t,2)},d.toString=function(e){var t,n=this,r=n.s,o=n.e;return null===o?r?(t="Infinity",r<0&&(t="-"+t)):t="NaN":(null==e?t=o<=y||o>=b?Q(B(n.c),o):H(B(n.c),o,"0"):10===e&&R?t=H(B((n=O(new x(n),p+o+1,g)).c),n.e,"0"):(J(e,2,A.length,"Base"),t=i(H(B(n.c),o,"0"),10,e,r,!0)),r<0&&n.c[0]&&(t="-"+t)),t},d.valueOf=d.toJSON=function(){return G(this)},d._isBigNumber=!0,d[Symbol.toStringTag]="BigNumber",d[Symbol.for("nodejs.util.inspect.custom")]=d.valueOf,null!=t&&x.set(t),x})();var G;n(6266),n(5054);!function(e){e.TZ1="tz1",e.TZ2="tz2",e.TZ3="tz3",e.TZ4="tz4",e.KT="KT",e.KT1="KT1",e.EDSK2="edsk2",e.SPSK="spsk",e.P2SK="p2sk",e.EDPK="edpk",e.SPPK="sppk",e.P2PK="p2pk",e.BLPK="BLpk",e.EDESK="edesk",e.SPESK="spesk",e.P2ESK="p2esk",e.EDSK="edsk",e.EDSIG="edsig",e.SPSIG="spsig",e.P2SIG="p2sig",e.SIG="sig",e.NET="Net",e.NCE="nce",e.B="B",e.O="o",e.LO="Lo",e.LLO="LLo",e.P="P",e.CO="Co",e.ID="id",e.EXPR="expr",e.TZ="TZ",e.VH="vh",e.SASK="sask",e.ZET1="zet1",e.TXR1="txr1",e.TXI="txi",e.TXM="txm",e.TXC="txc",e.TXMR="txmr",e.TXRL="txM",e.TXW="txw",e.SR1="sr1",e.SRC1="src1"}(G||(G={}));G.TZ1,new Uint8Array([6,161,159]),G.TZ2,new Uint8Array([6,161,161]),G.TZ3,new Uint8Array([6,161,164]),G.TZ4,new Uint8Array([6,161,166]),G.KT,new Uint8Array([2,90,121]),G.KT1,new Uint8Array([2,90,121]),G.EDSK,new Uint8Array([43,246,78,7]),G.EDSK2,new Uint8Array([13,15,58,7]),G.SPSK,new Uint8Array([17,162,224,201]),G.P2SK,new Uint8Array([16,81,238,189]),G.EDPK,new Uint8Array([13,15,37,217]),G.SPPK,new Uint8Array([3,254,226,86]),G.P2PK,new Uint8Array([3,178,139,127]),G.BLPK,new Uint8Array([6,149,135,204]),G.EDESK,new Uint8Array([7,90,60,179,41]),G.SPESK,new Uint8Array([9,237,241,174,150]),G.P2ESK,new Uint8Array([9,48,57,115,171]),G.EDSIG,new Uint8Array([9,245,205,134,18]),G.SPSIG,new Uint8Array([13,115,101,19,63]),G.P2SIG,new Uint8Array([54,240,44,52]),G.SIG,new Uint8Array([4,130,43]),G.NET,new Uint8Array([87,82,0]),G.NCE,new Uint8Array([69,220,169]),G.B,new Uint8Array([1,52]),G.O,new Uint8Array([5,116]),G.LO,new Uint8Array([133,233]),G.LLO,new Uint8Array([29,159,109]),G.P,new Uint8Array([2,170]),G.CO,new Uint8Array([79,179]),G.ID,new Uint8Array([153,103]),G.EXPR,new Uint8Array([13,44,64,27]),G.TZ,new Uint8Array([2,90,121]),G.VH,new Uint8Array([1,106,242]),G.SASK,new Uint8Array([11,237,20,92]),G.ZET1,new Uint8Array([18,71,40,223]),G.TXR1,new Uint8Array([1,128,120,31]),G.TXI,new Uint8Array([79,148,196]),G.TXM,new Uint8Array([79,149,30]),G.TXC,new Uint8Array([79,148,17]),G.TXMR,new Uint8Array([18,7,206,87]),G.TXRL,new Uint8Array([79,146,82]),G.TXW,new Uint8Array([79,150,72]),G.SR1,new Uint8Array([6,124,117]),G.SRC1,new Uint8Array([17,165,134,138]),G.TZ1,G.TZ2,G.TZ3,G.TZ4,G.KT,G.KT1,G.EDPK,G.SPPK,G.P2PK,G.BLPK,G.EDSIG,G.SPSIG,G.P2SIG,G.SIG,G.NET,G.B,G.P,G.O,G.VH,G.SASK,G.ZET1,G.TXR1,G.TXI,G.TXM,G.TXC,G.TXMR,G.TXRL,G.TXW,G.SR1,G.SRC1;var Y;!function(e){e[e.NO_PREFIX_MATCHED=0]="NO_PREFIX_MATCHED",e[e.INVALID_CHECKSUM=1]="INVALID_CHECKSUM",e[e.INVALID_LENGTH=2]="INVALID_LENGTH",e[e.VALID=3]="VALID"}(Y||(Y={}));G.TZ1,G.TZ2,G.TZ3,G.TZ4,G.KT1,G.TXR1,G.EDSIG,G.P2SIG,G.SPSIG,G.SIG,G.EDPK,G.SPPK,G.P2PK,G.BLPK,G.O,G.P,G.B;var X,_,$,ee,te,ne,ie,re,oe,se;!function(e){e.BlockchainRequest="blockchain_request",e.PermissionRequest="permission_request",e.SignPayloadRequest="sign_payload_request",e.OperationRequest="operation_request",e.BroadcastRequest="broadcast_request",e.ChangeAccountRequest="change_account_request",e.BlockchainResponse="blockchain_response",e.PermissionResponse="permission_response",e.SignPayloadResponse="sign_payload_response",e.OperationResponse="operation_response",e.BroadcastResponse="broadcast_response",e.Acknowledge="acknowledge",e.Disconnect="disconnect",e.Error="error"}(X||(X={})),function(e){e.SIGN="sign",e.OPERATION_REQUEST="operation_request",e.ENCRYPT="encrypt",e.NOTIFICATION="notification",e.THRESHOLD="threshold"}(_||(_={})),function(e){e.MAINNET="mainnet",e.GHOSTNET="ghostnet",e.MONDAYNET="mondaynet",e.DAILYNET="dailynet",e.DELPHINET="delphinet",e.EDONET="edonet",e.FLORENCENET="florencenet",e.GRANADANET="granadanet",e.HANGZHOUNET="hangzhounet",e.ITHACANET="ithacanet",e.JAKARTANET="jakartanet",e.KATHMANDUNET="kathmandunet",e.LIMANET="limanet",e.MUMBAINET="mumbainet",e.NAIROBINET="nairobinet",e.OXFORDNET="oxfordnet",e.CUSTOM="custom"}($||($={})),function(e){e.ENDORSEMENT="endorsement",e.SEED_NONCE_REVELATION="seed_nonce_revelation",e.DOUBLE_ENDORSEMENT_EVIDENCE="double_endorsement_evidence",e.DOUBLE_BAKING_EVIDENCE="double_baking_evidence",e.ACTIVATE_ACCOUNT="activate_account",e.PROPOSALS="proposals",e.BALLOT="ballot",e.REVEAL="reveal",e.TRANSACTION="transaction",e.ORIGINATION="origination",e.DELEGATION="delegation"}(ee||(ee={})),function(e){e.WEBSITE="website",e.EXTENSION="extension",e.P2P="p2p",e.WALLETCONNECT="walletconnect"}(te||(te={})),function(e){e.BACKGROUND="toBackground",e.PAGE="toPage",e.EXTENSION="toExtension"}(ne||(ne={})),function(e){e.BROADCAST_ERROR="BROADCAST_ERROR",e.NETWORK_NOT_SUPPORTED="NETWORK_NOT_SUPPORTED",e.NO_ADDRESS_ERROR="NO_ADDRESS_ERROR",e.NO_PRIVATE_KEY_FOUND_ERROR="NO_PRIVATE_KEY_FOUND_ERROR",e.NOT_GRANTED_ERROR="NOT_GRANTED_ERROR",e.PARAMETERS_INVALID_ERROR="PARAMETERS_INVALID_ERROR",e.TOO_MANY_OPERATIONS="TOO_MANY_OPERATIONS",e.TRANSACTION_INVALID_ERROR="TRANSACTION_INVALID_ERROR",e.SIGNATURE_TYPE_NOT_SUPPORTED="SIGNATURE_TYPE_NOT_SUPPORTED",e.ABORTED_ERROR="ABORTED_ERROR",e.UNKNOWN_ERROR="UNKNOWN_ERROR"}(ie||(ie={})),function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTING="CONNECTING",e.CONNECTED="CONNECTED"}(re||(re={})),function(e){e.CHROME_MESSAGE="chrome_message",e.WALLETCONNECT="walletconnect",e.POST_MESSAGE="post_message",e.LEDGER="ledger",e.P2P="p2p"}(oe||(oe={})),function(e){e.TRANSPORT_P2P_PEERS_DAPP="beacon:communication-peers-dapp",e.TRANSPORT_P2P_PEERS_WALLET="beacon:communication-peers-wallet",e.TRANSPORT_POSTMESSAGE_PEERS_DAPP="beacon:postmessage-peers-dapp",e.TRANSPORT_POSTMESSAGE_PEERS_WALLET="beacon:postmessage-peers-wallet",e.TRANSPORT_WALLETCONNECT_PEERS_DAPP="beacon:walletconnect-peers-dapp",e.LAST_SELECTED_WALLET="beacon:last-selected-wallet",e.ACCOUNTS="beacon:accounts",e.ACTIVE_ACCOUNT="beacon:active-account",e.PUSH_TOKENS="beacon:push-tokens",e.BEACON_SDK_SECRET_SEED="beacon:sdk-secret-seed",e.APP_METADATA_LIST="beacon:app-metadata-list",e.PERMISSION_LIST="beacon:permissions",e.BEACON_SDK_VERSION="beacon:sdk_version",e.MATRIX_PRESERVED_STATE="beacon:sdk-matrix-preserved-state",e.MATRIX_PEER_ROOM_IDS="beacon:matrix-peer-rooms",e.MATRIX_SELECTED_NODE="beacon:matrix-selected-node",e.MULTI_NODE_SETUP_DONE="beacon:multi-node-setup"}(se||(se={}));const ae={[se.TRANSPORT_P2P_PEERS_DAPP]:[],[se.TRANSPORT_P2P_PEERS_WALLET]:[],[se.TRANSPORT_POSTMESSAGE_PEERS_DAPP]:[],[se.TRANSPORT_POSTMESSAGE_PEERS_WALLET]:[],[se.TRANSPORT_WALLETCONNECT_PEERS_DAPP]:[],[se.LAST_SELECTED_WALLET]:void 0,[se.ACCOUNTS]:[],[se.ACTIVE_ACCOUNT]:void 0,[se.PUSH_TOKENS]:[],[se.BEACON_SDK_SECRET_SEED]:void 0,[se.APP_METADATA_LIST]:[],[se.PERMISSION_LIST]:[],[se.BEACON_SDK_VERSION]:void 0,[se.MATRIX_PRESERVED_STATE]:{},[se.MATRIX_PEER_ROOM_IDS]:{},[se.MATRIX_SELECTED_NODE]:void 0,[se.MULTI_NODE_SETUP_DONE]:void 0};var ce,le,ue;!function(e){e.RAW="raw",e.OPERATION="operation",e.MICHELINE="micheline"}(ce||(ce={})),function(e){e.LIGHT="light",e.DARK="dark"}(le||(le={})),function(e){e.EUROPE_EAST="europe-east",e.EUROPE_WEST="europe-west",e.NORTH_AMERICA_EAST="north-america-east",e.NORTH_AMERICA_WEST="north-america-west",e.CENTRAL_AMERICA="central-america",e.SOUTH_AMERICA="south-america",e.ASIA_EAST="asia-east",e.ASIA_WEST="asia-west",e.AFRICA="africa",e.AUSTRALIA="australia"}(ue||(ue={}));var he=function(){function e(e,t,n){this.dappName=e,this.dappUrl=t,this.iconUrl=n}return e.prototype.CallUnityOnAccountFailedToConnect=function(e){this.CallUnityMethod("OnAccountFailedToConnect",e)},e.prototype.CallUnityOnContractCallCompleted=function(e){this.CallUnityMethod("OnContractCallCompleted",e)},e.prototype.CallUnityOnContractCallFailed=function(e){this.CallUnityMethod("OnContractCallFailed",e)},e.prototype.CallUnityOnPayloadSigned=function(e){this.CallUnityMethod("OnPayloadSigned",e)},e.prototype.CallUnityOnAccountDisconnected=function(e){this.CallUnityMethod("OnAccountDisconnected",e),localStorage.removeItem("dappName"),localStorage.removeItem("dappUrl"),localStorage.removeItem("iconUrl")},e.prototype.CallUnityOnAccountConnected=function(e){this.CallUnityMethod("OnAccountConnected",{accountInfo:e}),localStorage.setItem("dappName",this.dappName),localStorage.setItem("dappUrl",this.dappUrl),localStorage.setItem("iconUrl",this.iconUrl)},e.prototype.CallUnityMethod=function(e,t){window.unityInstance.SendMessage("UnityBeacon",e,"string"==typeof t?t:JSON.stringify(t))},e.prototype.GetHexPayloadString=function(e,t){var n,i=(n=t,M.Buffer.from(n,"utf8").toString("hex")),r=(i.length/2).toString(16),o="00000000".concat(r),s=o.slice(o.length-8);return(e===ce.MICHELINE?"0501":"0300")+s+i},e.prototype.NumToSigningType=function(e){return 0==e?ce.RAW:1==e?ce.OPERATION:2==e?ce.MICHELINE:void 0},e.prototype.GetOperationsList=function(e,t,n,i){return[{kind:ee.TRANSACTION,amount:t,destination:e,parameters:{entrypoint:n,value:JSON.parse(i)}}]},e.prototype.GetOriginationOperationsList=function(e,t){return[{kind:ee.ORIGINATION,balance:"0",delegate:t,script:JSON.parse(e)}]},e}();const de=he;var fe,pe;!function(e){e.transfer_request="transfer_request",e.sign_payload_request="sign_payload_request"}(fe||(fe={})),function(e){e.transfer="transfer",e.sign_payload_json="sign_payload_json",e.sign_payload_raw="sign_payload_raw"}(pe||(pe={}));var ge;function ye(e){return Object.keys(e)}!function(e){e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(ge||(ge={}));const be=()=>{throw new Error("ExposedPromise not initialized yet.")};class me{constructor(){this._resolve=be,this._reject=be,this._status=ge.PENDING,this._promise=new Promise(((e,t)=>{this._resolve=t=>{this.isSettled()||(this._promiseResult=t,e(t),this._status=ge.RESOLVED)},this._reject=e=>{this.isSettled()||(this._promiseError=e,t(e),this._status=ge.REJECTED)}}))}get promise(){return this._promise}get resolve(){return this._resolve}get reject(){return this._reject}get status(){return this._status}get promiseResult(){return this._promiseResult}get promiseError(){return this._promiseError}static resolve(e){const t=new me;return t.resolve(e),t}static reject(e){const t=new me;return t.reject(e),t}isPending(){return this.status===ge.PENDING}isResolved(){return this.status===ge.RESOLVED}isRejected(){return this.status===ge.REJECTED}isSettled(){return this.isResolved()||this.isRejected()}}var ve=n(450),we=n(1416),Ee=n(6249),Se=n(3683),Ie=n(8764).Buffer,Ae=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};function Re(e){return Ie.from(e).toString("hex")}function xe(e){return Ae(this,void 0,void 0,(function*(){return Re("string"==typeof e?(0,k.hash)((0,Ee.cv)(e),32):(0,k.hash)(e,32))}))}function Me(e){return Ae(this,void 0,void 0,(function*(){return(0,T._w)((0,k.hash)((0,Ee.cv)(e),32))}))}function Te(e,t){return Ae(this,void 0,void 0,(function*(){const n=Ie.from((0,we.randomBytes)(24));return Re(Ie.concat([n,Ie.from((0,ve.secretBox)(t,n,Ie.from(e,"utf8")))]))}))}function ke(e,t){return Ae(this,void 0,void 0,(function*(){const n=e.slice(0,24),i=e.slice(24),r=(0,ve.openSecretBox)(t,n,i);if(!r)throw new Error("Decryption failed");return Ie.from(r).toString("utf8")}))}function Oe(e,t,n){return Ae(this,void 0,void 0,(function*(){const i=(0,T.zh)(Ie.from(n)),r=(0,T.SH)(Ie.from(t)),o="string"==typeof e?(0,Ee.cv)(e):e,s=o.slice(0,32),a=o.slice(32),c=new k.BLAKE2b(24).update(s,32).update(r,32).digest(),l=(0,ve.openBox)(s,i,c,a);if(!l)throw new Error("Decryption failed");return Ie.from(l).toString()}))}function Ue(e){return Ae(this,void 0,void 0,(function*(){const t={edpk:{length:54,prefix:Ie.from(new Uint8Array([6,161,159]))},sppk:{length:55,prefix:Ie.from(new Uint8Array([6,161,161]))},p2pk:{length:55,prefix:Ie.from(new Uint8Array([6,161,164]))}};let n,i;if(64===e.length)n=t.edpk.prefix,i=e;else{const r=Object.entries(t);for(let t=0;tAe(void 0,void 0,void 0,(function*(){const n=yield(e=>Ae(void 0,void 0,void 0,(function*(){if(e.length%2!=0)return(0,Ee.cv)(e);let t=e;e.startsWith("0x")&&(t=e.slice(2));const n=Ie.from(t,"hex");return n.length===t.length/2?n:(0,Ee.cv)(e)})))(e),i=new Uint8Array([9,245,205,134,18]),r=yield((e,t=32)=>Ae(void 0,void 0,void 0,(function*(){return(0,k.hash)(e,t)})))(n),o=(0,T.Xx)(t.secretKey,r);return O.encode(Ie.concat([Ie.from(i),Ie.from(o)]))}));var Ne=n(8764).Buffer,Ke=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};function Le(){return Ke(this,void 0,void 0,(function*(){const e=(0,we.randomBytes)(16);return[e.slice(0,4),e.slice(4,6),e.slice(6,8),e.slice(8,10),e.slice(10,16)].map((function(e){return Ne.from(e).toString("hex")})).join("-")}))}var qe=n(5108);const ze=[e=>{}];let Ve={postMessage:(e,t)=>{qe.log("GOT MOCK POST MESSAGE",e),ze.forEach((t=>{t({data:e})}))},addEventListener:(e,t)=>{ze.push(t)},removeEventListener:(e,t)=>{ze.splice(ze.indexOf((e=>e===t)),1)},location:{origin:"*"}};try{"undefined"!=typeof window&&(Ve=window)}catch(e){qe.log(`not defined: ${e}`)}class Fe{track(e,t,n,i){}}var je=n(5108),De=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Be{constructor(e){var t,n;if(this._beaconId=new me,this._keyPair=new me,!e.name)throw new Error("Name not set");if(!e.storage)throw new Error("Storage not set");this.name=e.name,this.iconUrl=e.iconUrl,this.appUrl=null!==(t=e.appUrl)&&void 0!==t?t:Ve.location.origin,this.storage=e.storage,this.analytics=null!==(n=e.analytics)&&void 0!==n?n:new Fe,Ve.beaconCreatedClientInstance?je.error("[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere."):Ve.beaconCreatedClientInstance=!0,this.initSDK().catch(je.error)}get beaconId(){return this._beaconId.promise}get keyPair(){return this._keyPair.promise}destroy(){return De(this,void 0,void 0,(function*(){yield this.removeBeaconEntriesFromStorage(),Ve.beaconCreatedClientInstance=!1}))}initSDK(){return De(this,void 0,void 0,(function*(){return this.storage.set(se.BEACON_SDK_VERSION,"4.0.12").catch(je.error),this.loadOrCreateBeaconSecret().catch(je.error),this.keyPair.then((e=>{this._beaconId.resolve(Re(e.publicKey))}))}))}removeBeaconEntriesFromStorage(){return De(this,void 0,void 0,(function*(){const e=Object.values(se);yield Promise.all(e.map((e=>this.storage.delete(e))))}))}loadOrCreateBeaconSecret(){return De(this,void 0,void 0,(function*(){const e=yield this.storage.get(se.BEACON_SDK_SECRET_SEED);if(e&&"string"==typeof e)this._keyPair.resolve(yield Me(e));else{const e=yield Le();yield this.storage.set(se.BEACON_SDK_SECRET_SEED,e),this._keyPair.resolve(yield Me(e))}}))}}var We=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Je{constructor(e,t){this.storage=e,this.storageKey=t}getAll(){var e;return We(this,void 0,void 0,(function*(){return null!==(e=yield this.storage.get(this.storageKey))&&void 0!==e?e:[]}))}getOne(e){return We(this,void 0,void 0,(function*(){return(yield this.storage.get(this.storageKey)).find(e)}))}addOne(e,t,n=!0){return We(this,void 0,void 0,(function*(){const i=yield this.storage.get(this.storageKey);if(i.some(t)){if(n)for(let n=0;n!e(t)));return this.storage.set(this.storageKey,t)}))}removeAll(){return We(this,void 0,void 0,(function*(){return this.storage.delete(this.storageKey)}))}}var Ze=n(8764).Buffer,Qe=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const He=(e,t)=>Qe(void 0,void 0,void 0,(function*(){const n=[e,t.type];t.name&&n.push(`name:${t.name}`),t.rpcUrl&&n.push(`rpc:${t.rpcUrl}`);const i=Ze.from((0,k.hash)((0,Ee.cv)(n.join("-")),10));return O.encode(i)}));var Ge=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Ye{static hasPermission(e,t,n){return Ge(this,void 0,void 0,(function*(){switch(e.type){case X.PermissionRequest:case X.BroadcastRequest:return!0;case X.OperationRequest:{const n=yield He(e.sourceAddress,e.network),i=yield t(n);return!!i&&i.scopes.includes(_.OPERATION_REQUEST)}case X.SignPayloadRequest:{const t=(yield n()).filter((t=>t.address===e.sourceAddress));return 0!==t.length&&t.some((e=>e.scopes.includes(_.SIGN)))}default:throw new Error("Message not handled")}}))}}var Xe=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class _e{constructor(e){this.storageManager=new Je(e,se.ACCOUNTS)}getAccounts(){var e;return Xe(this,void 0,void 0,(function*(){return null!==(e=yield this.storageManager.getAll())&&void 0!==e?e:[]}))}getAccount(e){return Xe(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.accountIdentifier===e))}))}addAccount(e){return Xe(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.accountIdentifier===e.accountIdentifier))}))}removeAccount(e){return Xe(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.accountIdentifier===e))}))}removeAccounts(e){return Xe(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.accountIdentifier)))}))}removeAllAccounts(){return Xe(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}hasPermission(e){return Xe(this,void 0,void 0,(function*(){return Ye.hasPermission(e,this.getAccount.bind(this),this.getAccounts.bind(this))}))}}var $e=n(8764).Buffer,et=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const tt=e=>et(void 0,void 0,void 0,(function*(){const t=$e.from((0,k.hash)($e.from(e,"hex"),5));return O.encode(t)}));var nt=n(5108);let it=!!Ve.beaconSdkDebugEnabled;it&&nt.log("[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)");var rt=n(5108);class ot{constructor(e){this.name=e}debug(e,...t){st.debug(this.name,e,t)}log(e,...t){st.log(this.name,e,t)}warn(e,...t){st.warn(this.name,e,t)}error(e,...t){st.error(this.name,e,t)}time(e,t){st.time(e,t)}timeLog(e,...t){st.timeLog(e,t)}}new ot("");let st=new class{constructor(){}debug(e,t,...n){this._log("debug",e,t,n)}log(e,t,...n){this._log("log",e,t,n)}warn(e,t,...n){this._log("warn",e,t,n)}error(e,t,...n){this._log("error",e,t,n)}time(e,t){e?rt.time(t):rt.timeEnd(t)}timeLog(e,t,...n){this._log("timeLog",e,t,n)}_log(e,t,n,i=[]){if(!it)return;let r=`[BEACON] ${(new Date).toISOString()} [${t}](${n})`,o=i;switch(i[0]&&"string"==typeof i[0]&&(r+=` ${i[0]}`,o=i.slice(1)),e){case"error":rt.group(r),rt.error(...o);break;case"warn":rt.group(r),rt.warn(...o);break;case"debug":rt.groupCollapsed(r),rt.debug(...o);break;case"timeLog":rt.group(r),rt.timeLog(...o);break;default:rt.group(r),rt.log(...o)}rt.groupEnd()}};var at=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const ct=new ot("Client");class lt extends Be{constructor(e){var t;super(e),this.rateLimit=2,this.rateLimitWindowInSeconds=5,this.requestCounter=[],this._transport=new me,this.accountManager=new _e(e.storage),this.matrixNodes=null!==(t=e.matrixNodes)&&void 0!==t?t:{},this.handleResponse=(e,t)=>{throw new Error(`not overwritten${JSON.stringify(e)} - ${JSON.stringify(t)}`)}}get transport(){return this._transport.promise}get connectionStatus(){var e,t;return null!==(t=null===(e=this._transport.promiseResult)||void 0===e?void 0:e.connectionStatus)&&void 0!==t?t:re.NOT_CONNECTED}get ready(){return this.transport.then((()=>{}))}getAccounts(){return at(this,void 0,void 0,(function*(){return this.accountManager.getAccounts()}))}getAccount(e){return at(this,void 0,void 0,(function*(){return this.accountManager.getAccount(e)}))}removeAccount(e){return at(this,void 0,void 0,(function*(){return this.accountManager.removeAccount(e)}))}removeAllAccounts(){return at(this,void 0,void 0,(function*(){return this.accountManager.removeAllAccounts()}))}addRequestAndCheckIfRateLimited(){return at(this,void 0,void 0,(function*(){const e=(new Date).getTime();return this.requestCounter=this.requestCounter.filter((t=>t+1e3*this.rateLimitWindowInSeconds>e)),this.requestCounter.push(e),this.requestCounter.length>this.rateLimit}))}init(e){return at(this,void 0,void 0,(function*(){return this._transport.status===ge.RESOLVED?(yield this.transport).type:(yield this.setTransport(e),e.type)}))}getOwnAppMetadata(){return at(this,void 0,void 0,(function*(){return{senderId:yield tt(yield this.beaconId),name:this.name,icon:this.iconUrl}}))}getPeers(){return at(this,void 0,void 0,(function*(){return(yield this.transport).getPeers()}))}addPeer(e){return at(this,void 0,void 0,(function*(){return(yield this.transport).addPeer(e)}))}destroy(){const e=Object.create(null,{destroy:{get:()=>super.destroy}});return at(this,void 0,void 0,(function*(){this._transport.status===ge.RESOLVED&&(yield(yield this.transport).disconnect()),yield e.destroy.call(this)}))}setTransport(e){return at(this,void 0,void 0,(function*(){e?this._transport.isSettled()?this._transport=me.resolve(e):this._transport.resolve(e):this._transport.isSettled()&&(this._transport=new me)}))}addListener(e){return at(this,void 0,void 0,(function*(){e.addListener(((e,t)=>at(this,void 0,void 0,(function*(){if("string"==typeof e){const n=yield(new Mt).deserialize(e);this.handleResponse(n,t)}})))).catch((e=>ct.error("addListener",e)))}))}sendDisconnectToPeer(e,t){return at(this,void 0,void 0,(function*(){const n={id:yield Le(),version:e.version,senderId:yield tt(yield this.beaconId),type:X.Disconnect},i=yield(new Mt).serialize(n),r=null!=t?t:yield this.transport;yield r.send(i,e)}))}}class ut{constructor(e,t){this.name="BeaconError",this.title="Error",this.message=`[${e}]:${t}`,this.description=t}get fullDescription(){return{description:this.description}}static getError(e,t){switch(e){case ie.BROADCAST_ERROR:return new ht;case ie.NETWORK_NOT_SUPPORTED:return new dt;case ie.NO_ADDRESS_ERROR:return new ft;case ie.NO_PRIVATE_KEY_FOUND_ERROR:return new pt;case ie.NOT_GRANTED_ERROR:return new gt;case ie.PARAMETERS_INVALID_ERROR:return new yt;case ie.TOO_MANY_OPERATIONS:return new bt;case ie.TRANSACTION_INVALID_ERROR:return new mt(t);case ie.SIGNATURE_TYPE_NOT_SUPPORTED:return new jt;case ie.ABORTED_ERROR:return new Ot;case ie.UNKNOWN_ERROR:return new vt}}}class ht extends ut{constructor(){super(ie.BROADCAST_ERROR,"The transaction could not be broadcast to the network. Please try again."),this.name="BroadcastBeaconError",this.title="Broadcast Error"}}class dt extends ut{constructor(){super(ie.NETWORK_NOT_SUPPORTED,"The wallet does not support this network. Please select another one."),this.name="NetworkNotSupportedBeaconError",this.title="Network Error"}}class ft extends ut{constructor(){super(ie.NO_ADDRESS_ERROR,"The wallet does not have an account set up. Please make sure to set up your wallet and try again."),this.name="NoAddressBeaconError",this.title="No Address"}}class pt extends ut{constructor(){super(ie.NO_PRIVATE_KEY_FOUND_ERROR,"The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again."),this.name="NoPrivateKeyBeaconError",this.title="Account Not Found"}}class gt extends ut{constructor(){super(ie.NOT_GRANTED_ERROR,"You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions."),this.name="NotGrantedBeaconError",this.title="Permission Not Granted"}}class yt extends ut{constructor(){super(ie.PARAMETERS_INVALID_ERROR,"Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again."),this.name="ParametersInvalidBeaconError",this.title="Parameters Invalid"}}class bt extends ut{constructor(){super(ie.TOO_MANY_OPERATIONS,"The request contains too many transactions. Please include fewer operations and try again."),this.name="TooManyOperationsBeaconError",this.title="Too Many Operations"}}class mt extends ut{constructor(e){super(ie.TRANSACTION_INVALID_ERROR,"The transaction is invalid and the node did not accept it."),this.data=e,this.name="TransactionInvalidBeaconError",this.title="Transaction Invalid",this.data=e}get fullDescription(){return{description:this.description,data:JSON.stringify(this.data,void 0,2)}}}class vt extends ut{constructor(){super(ie.UNKNOWN_ERROR,"An unknown error occured. Please try again or report it to a developer."),this.name="UnknownBeaconError",this.title="Error"}}var wt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const Et=new ot("Transport");class St{constructor(e,t,n){this.type=oe.POST_MESSAGE,this._isConnected=re.NOT_CONNECTED,this.listeners=[],this.name=e,this.client=t,this.peerManager=n}setEventHandler(e,t){this.client.eventHandlers.set(e,t)}get connectionStatus(){return this._isConnected}static isAvailable(){return wt(this,void 0,void 0,(function*(){return Promise.resolve(!1)}))}connect(){return wt(this,void 0,void 0,(function*(){Et.log("connect"),this._isConnected=re.CONNECTED}))}disconnect(){return wt(this,void 0,void 0,(function*(){Et.log("disconnect"),this._isConnected=re.NOT_CONNECTED}))}send(e,t){return wt(this,void 0,void 0,(function*(){if(t)return this.client.sendMessage(e,t);{const t=(yield this.getPeers()).map((t=>this.client.sendMessage(e,t)));return(yield Promise.all(t))[0]}}))}addListener(e){return wt(this,void 0,void 0,(function*(){Et.debug("addListener"),this.listeners.push(e)}))}removeListener(e){return wt(this,void 0,void 0,(function*(){Et.log("removeListener"),this.listeners=this.listeners.filter((t=>t!==e))}))}getPeers(){return wt(this,void 0,void 0,(function*(){return this.peerManager.getPeers()}))}addPeer(e,t=!0){return wt(this,void 0,void 0,(function*(){Et.log("addPeer","adding peer",e),yield this.peerManager.addPeer(e),yield this.listen(e.publicKey)}))}removePeer(e){return wt(this,void 0,void 0,(function*(){Et.log("removePeer","removing peer",e),yield this.peerManager.removePeer(e.publicKey),this.client&&(yield this.client.unsubscribeFromEncryptedMessage(e.publicKey))}))}removeAllPeers(){return wt(this,void 0,void 0,(function*(){Et.log("removeAllPeers"),yield this.peerManager.removeAllPeers(),this.client&&(yield this.client.unsubscribeFromEncryptedMessages())}))}notifyListeners(e,t){return wt(this,void 0,void 0,(function*(){0===this.listeners.length?Et.warn("notifyListeners","0 listeners notified!",this):Et.log("notifyListeners",`Notifying ${this.listeners.length} listeners`,this),this.listeners.forEach((n=>{n(e,t)}))}))}}var It=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class At{constructor(e){this.prefix=e}static isSupported(){return It(this,void 0,void 0,(function*(){return Promise.resolve(Boolean("undefined"!=typeof window)&&Boolean(window.localStorage))}))}get(e){return It(this,void 0,void 0,(function*(){const t=localStorage.getItem(this.getPrefixedKey(e));if(!t)return"object"==typeof ae[e]?JSON.parse(JSON.stringify(ae[e])):ae[e];try{return JSON.parse(t)}catch(e){return t}}))}set(e,t){return It(this,void 0,void 0,(function*(){return"string"==typeof t?localStorage.setItem(this.getPrefixedKey(e),t):localStorage.setItem(this.getPrefixedKey(e),JSON.stringify(t))}))}delete(e){return It(this,void 0,void 0,(function*(){return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(e)))}))}getPrefixedKey(e){return this.prefix?`${this.prefix}-${e}`:e}}new ot("STORAGE");var Rt=n(8764).Buffer,xt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Mt{serialize(e){return xt(this,void 0,void 0,(function*(){const t=JSON.stringify(e);return O.encode(Rt.from(t))}))}deserialize(e){return xt(this,void 0,void 0,(function*(){if("string"!=typeof e)throw new Error("Encoded payload needs to be a string");return JSON.parse(O.decode(e).toString())}))}}var Tt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class kt{constructor(e){this.storageManager=new Je(e,se.APP_METADATA_LIST)}getAppMetadataList(){var e;return Tt(this,void 0,void 0,(function*(){return null!==(e=yield this.storageManager.getAll())&&void 0!==e?e:[]}))}getAppMetadata(e){return Tt(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.senderId===e))}))}addAppMetadata(e){return Tt(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.senderId===e.senderId))}))}removeAppMetadata(e){return Tt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.senderId===e))}))}removeAppMetadatas(e){return Tt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.senderId)))}))}removeAllAppMetadata(){return Tt(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}class Ot extends ut{constructor(){super(ie.ABORTED_ERROR,"The action was aborted by the user."),this.name="UnknownBeaconError",this.title="Aborted"}}var Ut=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Ct{constructor(e,t){this.storageManager=new Je(e,t)}hasPeer(e){return Ut(this,void 0,void 0,(function*(){return!!(yield this.getPeer(e))}))}getPeers(){var e;return Ut(this,void 0,void 0,(function*(){return null!==(e=yield this.storageManager.getAll())&&void 0!==e?e:[]}))}getPeer(e){return Ut(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.publicKey===e))}))}addPeer(e){return Ut(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.publicKey===e.publicKey))}))}removePeer(e){return Ut(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.publicKey===e))}))}removePeers(e){return Ut(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.publicKey)))}))}removeAllPeers(){return Ut(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}var Pt=n(4826),Nt=n(8764).Buffer,Kt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Lt{constructor(e){this.keyPair=e,this.eventHandlers=new Map}getPublicKey(){var e;return Kt(this,void 0,void 0,(function*(){return Re(null===(e=this.keyPair)||void 0===e?void 0:e.publicKey)}))}getPublicKeyHash(){return Kt(this,void 0,void 0,(function*(){return xe(this.keyPair.publicKey)}))}createCryptoBoxServer(e,t){return Kt(this,void 0,void 0,(function*(){return(0,Pt.serverSessionKeys)({publicKey:(0,T.SH)(t.publicKey),secretKey:(0,T.zh)(t.secretKey)},(0,T.SH)(Nt.from(e,"hex")))}))}createCryptoBoxClient(e,t){return Kt(this,void 0,void 0,(function*(){return(0,Pt.clientSessionKeys)({publicKey:(0,T.SH)(t.publicKey),secretKey:(0,T.zh)(t.secretKey)},(0,T.SH)(Nt.from(e,"hex")))}))}encryptMessageAsymmetric(e,t){return Kt(this,void 0,void 0,(function*(){return function(e,t){return Ae(this,void 0,void 0,(function*(){const n=(0,T.SH)(Ie.from(t)),i=(0,ve.generateKeyPair)(),r=new k.BLAKE2b(24).update(i.publicKey,32).update(n,32).digest(),o="string"==typeof e?(0,Ee.cv)(e):e,s=(0,ve.box)(n,i.secretKey,r,o);return Re((0,Se.z)(i.publicKey,s))}))}(t,Nt.from(e,"hex"))}))}}var qt=n(5108),zt=n(8764).Buffer,Vt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Ft extends Lt{constructor(e,t){super(t),this.name=e,this.init().catch(qt.error)}start(){return Vt(this,void 0,void 0,(function*(){yield Promise.resolve()}))}getPairingRequestInfo(){return Vt(this,void 0,void 0,(function*(){return{id:yield Le(),type:"postmessage-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey()}}))}getPairingResponseInfo(e){return Vt(this,void 0,void 0,(function*(){return{id:e.id,type:"postmessage-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey()}}))}unsubscribeFromEncryptedMessage(e){return Vt(this,void 0,void 0,(function*(){this.activeListeners.get(e)&&this.activeListeners.delete(e)}))}unsubscribeFromEncryptedMessages(){return Vt(this,void 0,void 0,(function*(){this.activeListeners.clear()}))}decryptMessage(e,t){return Vt(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxServer(e,this.keyPair),i=zt.from(t,"hex");if(i.length>=40)try{return yield ke(i,n.receive)}catch(e){}throw new Error("Could not decrypt message")}))}encryptMessage(e,t){return Vt(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(e,this.keyPair);return Te(t,n.send)}))}}class jt extends ut{constructor(){super(ie.SIGNATURE_TYPE_NOT_SUPPORTED,"The wallet is not able to sign payloads of this type."),this.name="SignatureTypeNotSupportedBeaconError",this.title="Signature Type Not Supported"}}var Dt,Bt=n(9669),Wt=n.n(Bt);!function(e){e.TEXT="m.text"}(Dt||(Dt={}));class Jt{constructor(e,t,n,i){this.type=e,this.sender=t,this.content=n,this.timestamp=i}static from(e){if(Qt(e))return new Jt(e.content.msgtype,e.sender,e.content.body,e.origin_server_ts)}}const Zt=e=>"m.room.message"===e.type,Qt=e=>Zt(e)&&e.content instanceof Object&&"msgtype"in e.content&&e.content.msgtype===Dt.TEXT;var Ht;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.JOINED=1]="JOINED",e[e.INVITED=2]="INVITED",e[e.LEFT=3]="LEFT"}(Ht||(Ht={}));class Gt{constructor(e,t=Ht.UNKNOWN,n=[],i=[]){this.id=e,this.status=t,this.members=n,this.messages=i}static fromSync(e){var t,n,i;if(!e)return[];function r(e,t){return Object.entries(e).map((([e,n])=>t(e,n)))}return[...r(null!==(t=e.join)&&void 0!==t?t:{},Gt.fromJoined),...r(null!==(n=e.invite)&&void 0!==n?n:{},Gt.fromInvited),...r(null!==(i=e.leave)&&void 0!==i?i:{},Gt.fromLeft)]}static from(e,t){return"string"==typeof e?new Gt(e,t||Ht.UNKNOWN):void 0!==t?new Gt(e.id,t,e.members,e.messages):e}static merge(e,t){return t&&t.id===e.id?new Gt(e.id,e.status,[...t.members,...e.members].filter(((e,t,n)=>n.indexOf(e)===t)),[...t.messages,...e.messages]):Gt.from(e)}static fromJoined(e,t){const n=[...t.state.events,...t.timeline.events],i=Gt.getMembersFromEvents(n),r=Gt.getMessagesFromEvents(n);return new Gt(e,Ht.JOINED,i,r)}static fromInvited(e,t){const n=Gt.getMembersFromEvents(t.invite_state.events);return new Gt(e,Ht.INVITED,n)}static fromLeft(e,t){const n=[...t.state.events,...t.timeline.events],i=Gt.getMembersFromEvents(n),r=Gt.getMessagesFromEvents(n);return new Gt(e,Ht.LEFT,i,r)}static getMembersFromEvents(e){return Gt.getUniqueEvents(e.filter((e=>(e=>"m.room.create"===e.type&&e.content instanceof Object&&"creator"in e.content)(e)||(e=>"m.room.member"===e.type&&e.content instanceof Object&&"membership"in e.content&&"join"===e.content.membership)(e)))).map((e=>e.sender)).filter(((e,t,n)=>n.indexOf(e)===t))}static getMessagesFromEvents(e){return Gt.getUniqueEvents(e.filter(Zt)).map((e=>Jt.from(e))).filter(Boolean)}static getUniqueEvents(e){const t={},n=[];return e.forEach(((e,i)=>{const r=e.event_id;void 0!==r&&r in t||(void 0!==r&&(t[r]=i),n.push(e))})),n}}var Yt=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const Xt=["syncToken","rooms"];class _t{constructor(e){this.storage=e,this.state={isRunning:!1,userId:void 0,deviceId:void 0,txnNo:0,accessToken:void 0,syncToken:void 0,pollingTimeout:void 0,pollingRetries:0,rooms:{}},this.onStateChangedListeners=new Map,this.waitReadyPromise=new Promise(((e,t)=>Yt(this,void 0,void 0,(function*(){try{yield this.initFromStorage(),e()}catch(e){t(e)}}))))}get(e){return this.state[e]}getRoom(e){const t=Gt.from(e,Ht.UNKNOWN);return this.state.rooms[t.id]||t}update(e){return Yt(this,void 0,void 0,(function*(){yield this.waitReady();const t=Object.assign({},this.state);this.setState(e),this.updateStorage(e),this.notifyListeners(t,this.state,e)}))}onStateChanged(e,...t){t.length>0?t.forEach((t=>{this.onStateChangedListeners.set(t,e)})):this.onStateChangedListeners.set("all",e)}waitReady(){return Yt(this,void 0,void 0,(function*(){return this.waitReadyPromise}))}initFromStorage(){return Yt(this,void 0,void 0,(function*(){const e=yield this.storage.get(se.MATRIX_PRESERVED_STATE);this.setState(e)}))}prepareData(e){const t=["rooms"].some((t=>void 0!==e[t]))?JSON.parse(JSON.stringify(e)):e;return Object.values(t.rooms||{}).forEach((e=>{e.messages=[]})),t}updateStorage(e){if(Object.entries(e).filter((([e,t])=>Xt.includes(e)&&Boolean(t))).length>0){const e={};Xt.forEach((t=>{e[t]=this.state[t]})),this.storage.set(se.MATRIX_PRESERVED_STATE,this.prepareData(e))}}setState(e){this.state={isRunning:e.isRunning||this.state.isRunning,userId:e.userId||this.state.userId,deviceId:e.deviceId||this.state.deviceId,txnNo:e.txnNo||this.state.txnNo,accessToken:e.accessToken||this.state.accessToken,syncToken:e.syncToken||this.state.syncToken,pollingTimeout:e.pollingTimeout||this.state.pollingTimeout,pollingRetries:e.pollingRetries||this.state.pollingRetries,rooms:this.mergeRooms(this.state.rooms,e.rooms)}}mergeRooms(e,t){if(!t)return e;const n=Array.isArray(t)?t:Object.values(t),i=Object.assign({},e);return n.forEach((t=>{i[t.id]=Gt.merge(t,e[t.id])})),i}notifyListeners(e,t,n){const i=this.onStateChangedListeners.get("all");i&&i(e,t,n),ye(n).filter((e=>void 0!==n[e])).forEach((i=>{const r=this.onStateChangedListeners.get(i);r&&r(e,t,n)}))}}var $t=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const en=new ot("MatrixHttpClient");class tn{constructor(e){this.baseUrl=e,this.cancelTokenSource=Wt().CancelToken.source()}get(e,t,n){return $t(this,void 0,void 0,(function*(){return this.send("GET",e,n,t)}))}post(e,t,n,i){return $t(this,void 0,void 0,(function*(){return this.send("POST",e,n,i,t)}))}put(e,t,n,i){return $t(this,void 0,void 0,(function*(){return this.send("PUT",e,n,i,t)}))}cancelAllRequests(){return $t(this,void 0,void 0,(function*(){return this.cancelTokenSource.cancel("Manually cancelled")}))}send(e,t,n,i,r){return $t(this,void 0,void 0,(function*(){const o=n?this.getHeaders(n):void 0,s=i?this.getParams(i):void 0;let a;try{a=yield Wt().request({method:e,url:t,baseURL:this.apiUrl("/_matrix/client/r0"),headers:o,data:r,params:s,cancelToken:this.cancelTokenSource.token})}catch(e){const t=e;throw en.error("send",t.code,t.message,t.response.data),e.response.data}return a.data}))}getHeaders(e){const t={},n=[];if(e.accessToken&&n.push(["Authorization",`Bearer ${e.accessToken}`]),0!==n.length){for(const[e,i]of n)t[e]=i;return t}}getParams(e){if(!e)return;const t=Object.assign(e,{});return ye(t).forEach((e=>void 0===t[e]&&delete t[e])),t}apiUrl(...e){return[this.baseUrl.endsWith("/")?this.baseUrl.substr(0,this.baseUrl.length-1):this.baseUrl,...e.map((e=>e.startsWith("/")?e.substr(1):e))].join("/")}}var nn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class rn{constructor(e){this.httpClient=e}createRoom(e,t={}){return nn(this,void 0,void 0,(function*(){return this.httpClient.post("/createRoom",t,{accessToken:e})}))}inviteToRoom(e,t,n){return nn(this,void 0,void 0,(function*(){return n.status!==Ht.JOINED&&n.status!==Ht.UNKNOWN?Promise.reject(`User is not a member of room ${n.id}.`):this.httpClient.post(`/rooms/${encodeURIComponent(n.id)}/invite`,{user_id:t},{accessToken:e})}))}joinRoom(e,t){return nn(this,void 0,void 0,(function*(){return t.status===Ht.JOINED?Promise.resolve({room_id:t.id}):this.httpClient.post(`/rooms/${encodeURIComponent(t.id)}/join`,{},{accessToken:e})}))}getJoinedRooms(e){return nn(this,void 0,void 0,(function*(){return this.httpClient.get("/joined_rooms",void 0,{accessToken:e})}))}}var on=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class sn{constructor(e){this.httpClient=e}login(e,t,n){return on(this,void 0,void 0,(function*(){return this.httpClient.post("/login",{type:"m.login.password",identifier:{type:"m.id.user",user:e},password:t,device_id:n})}))}}var an,cn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class ln{constructor(e){this.httpClient=e,this.cachedPromises=new Map}sync(e,t){return cn(this,void 0,void 0,(function*(){return this.withCache("sync",(()=>this.httpClient.get("/sync",{timeout:t?t.pollingTimeout:void 0,since:t?t.syncToken:void 0},{accessToken:e})))}))}sendMessage(e,t,n,i){return cn(this,void 0,void 0,(function*(){return new Promise(((r,o)=>this.scheduleEvent({accessToken:e,roomId:t,type:"m.room.message",content:n,txnId:i,onSuccess:r,onError:o})))}))}scheduleEvent(e){this.sendEvent(e)}sendEvent(e){return cn(this,void 0,void 0,(function*(){const{roomId:t,type:n,txnId:i,content:r,accessToken:o}=e;try{const s=yield this.httpClient.put(`/rooms/${encodeURIComponent(t)}/send/${n}/${encodeURIComponent(i)}`,r,{accessToken:o});e.onSuccess(s)}catch(t){e.onError(t)}}))}withCache(e,t){let n=this.cachedPromises.get(e);return n||(n=t().finally((()=>{this.cachedPromises.delete(e)})),this.cachedPromises.set(e,n)),n}}class un{constructor(){this.events={}}on(e,t){return"object"!=typeof this.events[e]&&(this.events[e]=[]),this.events[e].push(t),()=>this.removeListener(e,t)}removeListener(e,t){if("object"!=typeof this.events[e])return;if(!t)return void(this.events[e]=[]);const n=this.events[e].indexOf(t);n>-1&&this.events[e].splice(n,1)}removeAllListeners(){Object.keys(this.events).forEach((e=>this.events[e].splice(0,this.events[e].length)))}emit(e,...t){"object"==typeof this.events[e]&&[...this.events[e]].forEach((e=>e.apply(this,t)))}once(e,t){const n=this.on(e,((...e)=>{n(),t.apply(this,e)}));return n}}!function(e){e.INVITE="invite",e.MESSAGE="message"}(an||(an={}));class hn extends un{constructor(){super(...arguments),this.eventEmitProviders=new Map([[an.INVITE,()=>[this.isInvite,this.emitInvite.bind(this)]],[an.MESSAGE,()=>[this.isMessage,this.emitMessage.bind(this)]]])}onStateChanged(e,t,n){for(const e of ye(an))this.emitIfEvent(an[e],n)}emitIfEvent(e,t){const n=this.eventEmitProviders.get(e);if(n){const[i,r]=n();i(t)&&r(e,t)}}emitClientEvent(e,t,n){this.emit(e,{type:e,content:t,timestamp:n})}isInvite(e){return!!e.rooms&&e.rooms.some((e=>e.status===Ht.INVITED))}emitInvite(e,t){t.rooms.filter((e=>e.status===Ht.INVITED)).map((e=>[e.id,e.members])).forEach((([t,n])=>{this.emitClientEvent(e,{roomId:t,members:n})}))}isMessage(e){return!!e.rooms&&e.rooms.some((e=>e.messages.length>0))}emitMessage(e,t){t.rooms.filter((e=>e.messages.length>0)).map((e=>e.messages.map((t=>[e.id,t,t.timestamp])))).reduce(((e,t)=>e.concat(t)),[]).forEach((([t,n,i])=>{this.emitClientEvent(e,{roomId:t,message:n},i)}))}}var dn=n(5108),fn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const pn=new ot("MatrixClient");class gn{constructor(e,t,n,i,r,o){this.store=e,this.eventEmitter=t,this.userService=n,this.roomService=i,this.eventService=r,this.httpClient=o,this.isActive=!0,this._isReady=new me,this.store.onStateChanged(((e,t,n)=>{this.eventEmitter.onStateChanged(e,t,n)}),"rooms")}static create(e){const t=new _t(e.storage),n=new hn,i=new tn(e.baseUrl),r=new sn(i),o=new rn(i),s=new ln(i);return new gn(t,n,r,o,s,i)}get joinedRooms(){return new Promise((e=>fn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ht.JOINED)))}))))}get invitedRooms(){return new Promise((e=>fn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ht.INVITED)))}))))}get leftRooms(){return new Promise((e=>fn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ht.LEFT)))}))))}start(e){return fn(this,void 0,void 0,(function*(){const t=yield this.userService.login(e.id,e.password,e.deviceId);yield this.store.update({accessToken:t.access_token});const n=new Promise(((e,t)=>fn(this,void 0,void 0,(function*(){yield this.poll(0,(t=>fn(this,void 0,void 0,(function*(){this.store.get("isRunning")||e(),yield this.store.update({isRunning:!0,syncToken:t.next_batch,pollingTimeout:3e4,pollingRetries:0,rooms:Gt.fromSync(t.rooms)})}))),(e=>fn(this,void 0,void 0,(function*(){this.store.get("isRunning")||t(e),yield this.store.update({isRunning:!1,pollingRetries:this.store.get("pollingRetries")+1})}))))}))));return n.then((()=>{this._isReady.resolve()})).catch(dn.error),n}))}isConnected(){return fn(this,void 0,void 0,(function*(){return this._isReady.promise}))}stop(){return fn(this,void 0,void 0,(function*(){return pn.log("MATRIX CLIENT STOPPED"),this.isActive=!1,this._isReady=new me,this.httpClient.cancelAllRequests()}))}subscribe(e,t){this.eventEmitter.on(e,t)}unsubscribe(e,t){t&&this.eventEmitter.removeListener(e,t)}unsubscribeAll(e){this.eventEmitter.removeListener(e)}getRoomById(e){return fn(this,void 0,void 0,(function*(){return yield this.isConnected(),this.store.getRoom(e)}))}createTrustedPrivateRoom(...e){return fn(this,void 0,void 0,(function*(){return yield this.isConnected(),this.requiresAuthorization("createRoom",(t=>fn(this,void 0,void 0,(function*(){return(yield this.roomService.createRoom(t,{room_version:"5",invite:e,preset:"public_chat",is_direct:!0})).room_id}))))}))}inviteToRooms(e,...t){return fn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("invite",(n=>Promise.all(t.map((t=>{const i=this.store.getRoom(t);this.roomService.inviteToRoom(n,e,i).catch((e=>pn.warn("inviteToRooms",e)))})))))}))}joinRooms(...e){return fn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("join",(t=>Promise.all(e.map((e=>{const n=this.store.getRoom(e);return this.roomService.joinRoom(t,n)})))))}))}sendTextMessage(e,t){return fn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("send",(n=>fn(this,void 0,void 0,(function*(){const i=yield this.createTxnId();return this.eventService.sendMessage(n,e,{msgtype:"m.text",body:t},i)}))))}))}poll(e,t,n){return fn(this,void 0,void 0,(function*(){const i=this.store,r=this.sync.bind(this),o=(s,a)=>fn(this,void 0,void 0,(function*(){let c=0;try{const e=yield r();t(e)}catch(e){n(e),c=i.get("pollingRetries"),this.isActive&&pn.log(`Retry syncing... ${c} retries so far`)}finally{this.isActive?setTimeout((()=>fn(this,void 0,void 0,(function*(){yield o(s,a)}))),c>3?5e3+e:e):a(new Error("Syncing stopped manually."))}}));return new Promise(o)}))}sync(){return fn(this,void 0,void 0,(function*(){return this.requiresAuthorization("sync",(e=>fn(this,void 0,void 0,(function*(){return this.eventService.sync(e,{pollingTimeout:this.store.get("pollingTimeout"),syncToken:this.store.get("syncToken")})}))))}))}requiresAuthorization(e,t){return fn(this,void 0,void 0,(function*(){const n=this.store.get("accessToken");return n?t(n):Promise.reject(`${e} requires authorization but no access token has been provided.`)}))}createTxnId(){return fn(this,void 0,void 0,(function*(){const e=(new Date).getTime(),t=this.store.get("txnNo");return yield this.store.update({txnNo:t+1}),`m${e}.${t}`}))}}var yn=n(8764).Buffer,bn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const mn=new ot("P2PCommunicationClient"),vn={[ue.EUROPE_WEST]:["beacon-node-1.diamond.papers.tech","beacon-node-1.sky.papers.tech","beacon-node-2.sky.papers.tech","beacon-node-1.hope.papers.tech","beacon-node-1.hope-2.papers.tech","beacon-node-1.hope-3.papers.tech","beacon-node-1.hope-4.papers.tech","beacon-node-1.hope-5.papers.tech"]};class wn extends Lt{constructor(e,t,n,i,r,o,s){super(t),this.name=e,this.replicationCount=n,this.storage=i,this.iconUrl=o,this.appUrl=s,this.client=new me,this.activeListeners=new Map,this.ignoredRooms=[],this.loginCounter=0,mn.log("constructor","P2PCommunicationClient created"),this.ENABLED_RELAY_SERVERS=vn,r&&(this.ENABLED_RELAY_SERVERS=Object.assign(Object.assign({},vn),r))}getPairingRequestInfo(){return bn(this,void 0,void 0,(function*(){const e={id:yield Le(),type:"p2p-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(e.icon=this.iconUrl),this.appUrl&&(e.appUrl=this.appUrl),e}))}getPairingResponseInfo(e){return bn(this,void 0,void 0,(function*(){const t={id:e.id,type:"p2p-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(t.icon=this.iconUrl),this.appUrl&&(t.appUrl=this.appUrl),t}))}findBestRegion(){return bn(this,void 0,void 0,(function*(){if(this.selectedRegion)return this.selectedRegion;const e=Object.keys(this.ENABLED_RELAY_SERVERS),t=[];e.forEach((e=>{var n;const i=null!==(n=this.ENABLED_RELAY_SERVERS[e])&&void 0!==n?n:[];if(0===i.length)return;const r=Math.floor(Math.random()*i.length);t.push(this.getBeaconInfo(i[r]).then((t=>({region:e,server:i[r],response:t}))).catch((e=>new Promise(((t,n)=>{setTimeout((()=>n(e)),2e3)})))))}));const n=yield Promise.race(t);return this.selectedRegion=n.region,n.region}))}getRelayServer(){return bn(this,void 0,void 0,(function*(){if(this.relayServer){const e=yield this.relayServer.promise;if(Date.now()-e.localTimestamp<6e4)return{server:e.server,timestamp:e.timestamp};const t=yield this.getBeaconInfo(e.server);return this.relayServer.resolve({server:e.server,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e.server,timestamp:t.timestamp}}this.relayServer=new me;const e=yield this.storage.get(se.MATRIX_SELECTED_NODE);if(e&&e.length>0){const t=yield this.getBeaconInfo(e);return this.relayServer.resolve({server:e,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e,timestamp:t.timestamp}}const t=yield this.findBestRegion(),n=this.ENABLED_RELAY_SERVERS[t];if(!n)throw new Error(`No servers found for region ${t}`);const i=[...n];for(;i.length>0;){const e=Math.floor(Math.random()*i.length),t=i[e];try{const e=yield this.getBeaconInfo(t);return this.storage.set(se.MATRIX_SELECTED_NODE,t).catch((e=>mn.log(e))),this.relayServer.resolve({server:t,timestamp:e.timestamp,localTimestamp:(new Date).getTime()}),{server:t,timestamp:e.timestamp}}catch(n){mn.log(`Ignoring server "${t}", trying another one...`),i.splice(e,1)}}throw this.relayServer.reject("No matrix server reachable!"),new Error("No matrix server reachable!")}))}getBeaconInfo(e){return bn(this,void 0,void 0,(function*(){return Wt().get(`https://${e}/_synapse/client/beacon/info`).then((e=>({region:e.data.region,known_servers:e.data.known_servers,timestamp:Math.floor(e.data.timestamp)})))}))}tryJoinRooms(e,t=1){return bn(this,void 0,void 0,(function*(){try{yield(yield this.client.promise).joinRooms(e)}catch(n){t<=10&&"M_FORBIDDEN"===n.errcode?(mn.log("Retrying to join...",n),setTimeout((()=>bn(this,void 0,void 0,(function*(){yield this.tryJoinRooms(e,t+1)}))),200)):mn.log(`Failed to join after ${t} tries.`,n)}}))}start(){var e,t;return bn(this,void 0,void 0,(function*(){mn.log("start","starting client"),mn.log("start","connecting to server");const n=yield this.getRelayServer(),i=gn.create({baseUrl:`https://${n.server}`,storage:this.storage});if(this.initialListener=e=>bn(this,void 0,void 0,(function*(){this.initialEvent&&this.initialEvent.timestamp&&e&&e.timestamp?this.initialEvent.timestampbn(this,void 0,void 0,(function*(){let t;1===e.content.members.length&&(t=e.content.members[0]),yield this.tryJoinRooms(e.content.roomId),t&&(yield this.updateRelayServer(t),yield this.updatePeerRoom(t,e.content.roomId))})))),!n.timestamp)throw new Error("No timestamp received from relay server");const r=Math.floor(n.timestamp),o=`login:${Math.floor(r/300)}`;mn.log("start",`login ${o}, ${yield this.getPublicKeyHash()} on ${n.server}`);const s=(0,k.hash)((0,Ee.cv)(o),32),a=null!==(e=this.keyPair.secretKey)&&void 0!==e?e:this.keyPair.privateKey,c=(0,T.Xx)(a,s);try{yield i.start({id:yield this.getPublicKeyHash(),password:`ed:${Re(c)}:${yield this.getPublicKey()}`,deviceId:Re(this.keyPair.publicKey)})}catch(e){if(mn.error("start","Could not log in, retrying"),yield this.reset(),!this.selectedRegion)throw new Error("No region selected.");if(this.loginCounter<=(null!==(t=this.ENABLED_RELAY_SERVERS[this.selectedRegion])&&void 0!==t?t:[]).length)return this.loginCounter++,void this.start();throw mn.error("start","Tried to log in to every known beacon node, but no login was successful."),new Error("Could not connect to any beacon nodes. Try again later.")}mn.log("start","login successful, client is ready"),this.client.resolve(i)}))}stop(){return bn(this,void 0,void 0,(function*(){mn.log("stop","stopping client"),this.client.isResolved()&&(yield(yield this.client.promise).stop().catch((e=>mn.error(e)))),yield this.reset()}))}reset(){return bn(this,void 0,void 0,(function*(){mn.log("reset","resetting connection"),yield this.storage.delete(se.MATRIX_PEER_ROOM_IDS).catch((e=>mn.log(e))),yield this.storage.delete(se.MATRIX_PRESERVED_STATE).catch((e=>mn.log(e))),yield this.storage.delete(se.MATRIX_SELECTED_NODE).catch((e=>mn.log(e))),this.relayServer=void 0,this.client=new me,this.initialEvent=void 0,this.initialListener=void 0}))}listenForEncryptedMessage(e,t){return bn(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;mn.log("listenForEncryptedMessage",`start listening for encrypted messages from publicKey ${e}`);const n=yield this.createCryptoBoxServer(e,this.keyPair),i=i=>bn(this,void 0,void 0,(function*(){if(this.isTextMessage(i.content)&&(yield this.isSender(i,e))){let r;yield this.updateRelayServer(i.content.message.sender),yield this.updatePeerRoom(i.content.message.sender,i.content.roomId);try{r=yn.from(i.content.message.content,"hex")}catch(e){}if(r&&r.length>=40)try{const i=yield ke(r,n.receive);mn.log("listenForEncryptedMessage",`received a message from ${e}`,i),t(i)}catch(e){}}}));this.activeListeners.set(e,i),(yield this.client.promise).subscribe(an.MESSAGE,i);const r=this.initialEvent;r&&r.timestamp&&(new Date).getTime()-r.timestamp<3e5?(mn.log("listenForEncryptedMessage","Handling previous event"),yield i(r)):mn.log("listenForEncryptedMessage","No previous event found");const o=this.initialListener;o&&(yield this.client.promise).unsubscribe(an.MESSAGE,o),this.initialListener=void 0,this.initialEvent=void 0}))}unsubscribeFromEncryptedMessage(e){return bn(this,void 0,void 0,(function*(){const t=this.activeListeners.get(e);t&&((yield this.client.promise).unsubscribe(an.MESSAGE,t),this.activeListeners.delete(e))}))}unsubscribeFromEncryptedMessages(){return bn(this,void 0,void 0,(function*(){(yield this.client.promise).unsubscribeAll(an.MESSAGE),this.activeListeners.clear()}))}sendMessage(e,t){return bn(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(t.publicKey,this.keyPair),i=Ce(yield xe(yn.from(t.publicKey,"hex")),t.relayServer),r=yield this.getRelevantRoom(i);yield this.waitForJoin(r);const o=yield Te(e,n.send);mn.log("sendMessage","sending encrypted message",t.publicKey,r,e),(yield this.client.promise).sendTextMessage(r,o).catch((e=>bn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){mn.log("sendMessage","M_FORBIDDEN",r,e),yield this.deleteRoomIdFromRooms(r);const t=yield this.getRelevantRoom(i);mn.log("sendMessage","Old room deleted, new room created",t),(yield this.client.promise).sendTextMessage(t,o).catch((e=>bn(this,void 0,void 0,(function*(){mn.log("sendMessage","inner error",t,e)}))))}else mn.log("sendMessage","unexpected error",e)}))))}))}updatePeerRoom(e,t){return bn(this,void 0,void 0,(function*(){mn.log("updatePeerRoom",e,t);const n=e.split(":");if(n.length<2||!n[0].startsWith("@"))throw new Error("Invalid sender");const i=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS),r=i[e];r===t&&mn.debug("updatePeerRoom","rooms are the same, not updating"),mn.debug("updatePeerRoom","current room",r,"new room",t),r&&r[1]&&(mn.log("updatePeerRoom",`adding room "${r[1]}" to ignored array`),this.ignoredRooms.push(r[1])),i[e]=t,yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,i)}))}deleteRoomIdFromRooms(e){return bn(this,void 0,void 0,(function*(){const t=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS),n=Object.entries(t).filter((t=>t[1]!==e)).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t[0]]:t[1]})),{});yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,n),this.ignoredRooms.push(e)}))}listenForChannelOpening(e){return bn(this,void 0,void 0,(function*(){mn.debug("listenForChannelOpening"),(yield this.client.promise).subscribe(an.MESSAGE,(t=>bn(this,void 0,void 0,(function*(){if(this.isTextMessage(t.content)&&(yield this.isChannelOpenMessage(t.content))){mn.log("listenForChannelOpening","channel opening received, trying to decrypt",JSON.stringify(t)),yield this.updateRelayServer(t.content.message.sender),yield this.updatePeerRoom(t.content.message.sender,t.content.roomId);const n=t.content.message.content.split(":"),i=yn.from(n[n.length-1],"hex");if(i.length>=40)try{const t=JSON.parse(yield Oe(i,this.keyPair.publicKey,this.keyPair.secretKey));mn.log("listenForChannelOpening","channel opening received and decrypted",JSON.stringify(t)),e(Object.assign(Object.assign({},t),{senderId:yield tt(t.publicKey)}))}catch(e){}}}))))}))}waitForJoin(e,t=0){return bn(this,void 0,void 0,(function*(){const n=yield(yield this.client.promise).getRoomById(e);if(mn.log("waitForJoin",`Currently ${n.members.length} members, we need at least 2`),!(n.members.length>=2)){if(t<=200)return mn.log(`Waiting for join... Try: ${t}`),new Promise((n=>{setTimeout((()=>bn(this,void 0,void 0,(function*(){n(this.waitForJoin(e,t+1))}))),100*(t>50?10:1))}));throw new Error(`No one joined after ${t} tries.`)}}))}sendPairingResponse(e){return bn(this,void 0,void 0,(function*(){mn.log("sendPairingResponse");const t=Ce(yield xe(yn.from(e.publicKey,"hex")),e.relayServer),n=yield(yield this.client.promise).createTrustedPrivateRoom(t);mn.debug("sendPairingResponse",`Connecting to room "${n}"`),yield this.updatePeerRoom(t,n),yield this.waitForJoin(n),mn.debug("sendPairingResponse","Successfully joined room.");const i=void 0===e.version?yield this.getPublicKey():JSON.stringify(yield this.getPairingResponseInfo(e));mn.debug("sendPairingResponse","Sending pairing response",i);const r=yield this.encryptMessageAsymmetric(e.publicKey,i),o=["@channel-open",t,r].join(":");(yield this.client.promise).sendTextMessage(n,o).catch((e=>bn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){mn.log("sendPairingResponse","M_FORBIDDEN",n,e),yield this.deleteRoomIdFromRooms(n);const i=yield this.getRelevantRoom(t);mn.log("sendPairingResponse","Old room deleted, new room created",i),(yield this.client.promise).sendTextMessage(i,o).catch((e=>bn(this,void 0,void 0,(function*(){mn.log("sendPairingResponse","inner error",i,e)}))))}else mn.log("sendPairingResponse","unexpected error",e)}))))}))}isTextMessage(e){return e.message.type===Dt.TEXT}updateRelayServer(e){return bn(this,void 0,void 0,(function*(){mn.log("updateRelayServer",e);const t=e.split(":");if(t.length<2||!t[0].startsWith("@"))throw new Error("Invalid sender");const n=t.shift(),i=t.join(":"),r=localStorage.getItem("beacon:communication-peers-dapp")?new Ct(this.storage,se.TRANSPORT_P2P_PEERS_DAPP):new Ct(this.storage,se.TRANSPORT_P2P_PEERS_WALLET),o=(yield r.getPeers()).map((e=>bn(this,void 0,void 0,(function*(){`@${yield xe(yn.from(e.publicKey,"hex"))}`===n&&e.relayServer!==i&&(e.relayServer=i,yield r.addPeer(e))}))));yield Promise.all(o)}))}isChannelOpenMessage(e){return bn(this,void 0,void 0,(function*(){return e.message.content.startsWith(`@channel-open:@${yield xe(yn.from(yield this.getPublicKey(),"hex"))}`)}))}isSender(e,t){return bn(this,void 0,void 0,(function*(){return e.content.message.sender.startsWith(`@${yield xe(yn.from(t,"hex"))}`)}))}getRelevantRoom(e){return bn(this,void 0,void 0,(function*(){const t=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS);let n=t[e];if(!n){mn.log("getRelevantRoom",`No room found for peer ${e}, checking joined ones.`);const i=yield this.getRelevantJoinedRoom(e);n=i.id,t[e]=i.id,yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,t)}return mn.log("getRelevantRoom",`Using room ${n}`),n}))}getRelevantJoinedRoom(e){return bn(this,void 0,void 0,(function*(){const t=yield(yield this.client.promise).joinedRooms;mn.log("checking joined rooms",t,e);const n=t.filter((e=>!this.ignoredRooms.some((t=>e.id===t)))).filter((t=>t.members.some((t=>t===e))));let i;if(0===n.length||this.ignoredRooms.length>0){mn.log("getRelevantJoinedRoom","no relevant rooms found, creating new one");const t=yield(yield this.client.promise).createTrustedPrivateRoom(e);i=yield(yield this.client.promise).getRoomById(t),mn.log("getRelevantJoinedRoom",`waiting for other party to join room: ${i.id}`),yield this.waitForJoin(t),mn.log("getRelevantJoinedRoom",`new room created and peer invited: ${i.id}`)}else i=n[0],mn.log("getRelevantJoinedRoom",`channel already open, reusing room ${i.id}`);return i}))}}var En=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const Sn=new ot("P2PTransport");class In extends St{constructor(e,t,n,i,r,o,s){super(e,new wn(e,t,1,n,i,o,s),new Ct(n,r)),this.type=oe.P2P}static isAvailable(){return En(this,void 0,void 0,(function*(){return Promise.resolve(!0)}))}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return En(this,void 0,void 0,(function*(){if(this._isConnected!==re.NOT_CONNECTED)return;Sn.log("connect"),this._isConnected=re.CONNECTING,yield this.client.start();const t=yield this.getPeers();if(t.length>0){Sn.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>En(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>Sn.error("connect",e)))}return yield this.startOpenChannelListener(),e.connect.call(this)}))}disconnect(){const e=Object.create(null,{disconnect:{get:()=>super.disconnect}});return En(this,void 0,void 0,(function*(){return yield this.client.stop(),e.disconnect.call(this)}))}startOpenChannelListener(){return En(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return En(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return En(this,void 0,void 0,(function*(){yield this.client.listenForEncryptedMessage(e,(t=>{const n={origin:te.P2P,id:e};this.notifyListeners(t,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}var An=n(5108),Rn=n(8764).Buffer,xn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};class Mn extends Ft{constructor(){super(...arguments),this.activeListeners=new Map}init(){return xn(this,void 0,void 0,(function*(){this.subscribeToMessages().catch(An.error)}))}listenForEncryptedMessage(e,t){return xn(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;this.activeListeners.set(e,((n,i)=>xn(this,void 0,void 0,(function*(){try{const r=yield this.decryptMessage(e,n.encryptedPayload);t(r,i)}catch(e){}}))))}))}sendMessage(e,t){return xn(this,void 0,void 0,(function*(){const n=yield this.encryptMessage(t.publicKey,e),i=null==t?void 0:t.extensionId,r={target:ne.EXTENSION,encryptedPayload:n,targetId:i};Ve.postMessage(r,Ve.location.origin)}))}listenForChannelOpening(e){return xn(this,void 0,void 0,(function*(){Ve.addEventListener("message",(t=>xn(this,void 0,void 0,(function*(){var n,i;if(t.source!==Ve||t.origin!==Ve.location.origin)return;const r=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.message;if(r&&r.target===ne.PAGE&&(yield this.isChannelOpenMessage(r))){const n=Rn.from(r.payload,"hex");if(n.length>=40)try{const r=JSON.parse(yield Oe(n,this.keyPair.publicKey,this.keyPair.secretKey));e(Object.assign(Object.assign({},r),{senderId:yield tt(r.publicKey),extensionId:null===(i=null==t?void 0:t.data)||void 0===i?void 0:i.sender.id}))}catch(e){}}}))))}))}sendPairingRequest(e){return xn(this,void 0,void 0,(function*(){const t={target:ne.EXTENSION,payload:yield(new Mt).serialize(yield this.getPairingRequestInfo()),targetId:e};Ve.postMessage(t,Ve.location.origin)}))}isChannelOpenMessage(e){return xn(this,void 0,void 0,(function*(){return"object"==typeof e&&e.hasOwnProperty("payload")}))}subscribeToMessages(){return xn(this,void 0,void 0,(function*(){Ve.addEventListener("message",(e=>{if(e.source===Ve&&e.origin===Ve.location.origin&&"object"==typeof e&&e){const t=e.data;t.message&&t.message.target===ne.PAGE&&this.activeListeners.forEach((e=>{e(t.message,{origin:te.EXTENSION,id:t.sender.id||""})}))}}))}))}}var Tn=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))};const kn=new ot("PostMessageTransport");let On,Un,Cn=!1;class Pn extends St{constructor(e,t,n,i){super(e,new Mn(e,t),new Ct(n,i)),this.type=oe.POST_MESSAGE}static isAvailable(){return Tn(this,void 0,void 0,(function*(){return new Promise((e=>{const t=n=>{const i=n.data;i&&"pong"===i.payload&&(e(!0),Ve.removeEventListener("message",t))};Ve.addEventListener("message",t);const n={target:ne.EXTENSION,payload:"ping"};Ve.postMessage(n,Ve.location.origin)}))}))}static getAvailableExtensions(){return Tn(this,void 0,void 0,(function*(){return On||(Un||(Un=[],On=new Promise((e=>{Pn.listenForExtensions(),setTimeout((()=>{e(null!=Un?Un:[])}),1e3)})).finally((()=>{On=void 0})),On))}))}static listenForExtensions(){if(Cn)return;Ve.addEventListener("message",(e=>{if(e.source!==Ve||e.origin!==Ve.location.origin)return;const t=e.data,n=t.sender;var i;t&&"pong"===t.payload&&n&&(kn.log("getAvailableExtensions",`extension "${n.name}" is available`,n),i=n,Un||(Un=[]),Un.some((e=>e.id===i.id))||(Un.push(i),Ve.postMessage("extensionsUpdated",Ve.location.origin)))}));const e={target:ne.EXTENSION,payload:"ping"};Ve.postMessage(e,Ve.location.origin),Cn=!0}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return Tn(this,void 0,void 0,(function*(){if(kn.log("connect"),this._isConnected!==re.NOT_CONNECTED)return;this._isConnected=re.CONNECTING;const t=yield this.getPeers();if(t.length>0){kn.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>Tn(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>kn.error("connect",e)))}yield this.startOpenChannelListener(),yield e.connect.call(this)}))}startOpenChannelListener(){return Tn(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return Tn(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return Tn(this,void 0,void 0,(function*(){kn.log("listen",e),yield this.client.listenForEncryptedMessage(e,((e,t)=>{const n={origin:te.EXTENSION,id:t.id};this.notifyListeners(e,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}Pn.getAvailableExtensions();const Nn={context:void 0,registry:void 0};function Kn(e){Nn.context=e}const Ln=(e,t)=>e===t,qn=(Symbol("solid-proxy"),Symbol("solid-track")),zn=(Symbol("solid-dev-component"),{equals:Ln});let Vn=null,Fn=wi;const jn=1,Dn=2,Bn={owned:null,cleanups:null,context:null,owner:null};var Wn=null;let Jn=null,Zn=null,Qn=null,Hn=null,Gn=null,Yn=null,Xn=0;const[_n,$n]=ti(!1);function ei(e,t){const n=Hn,i=Wn,r=0===e.length,o=void 0===t?i:t,s=r?Bn:{owned:null,cleanups:null,context:o?o.context:null,owner:o},a=r?e:()=>e((()=>oi((()=>Ai(s)))));Wn=s,Hn=null;try{return vi(a,!0)}finally{Hn=n,Wn=i}}function ti(e,t){const n={value:e,observers:null,observerSlots:null,comparator:(t=t?Object.assign({},zn,t):zn).equals||void 0};return[fi.bind(n),e=>("function"==typeof e&&(e=Jn&&Jn.running&&Jn.sources.has(n)?e(n.tValue):e(n.value)),pi(n,e))]}function ni(e,t,n){const i=bi(e,t,!1,jn);Zn&&Jn&&Jn.running?Gn.push(i):gi(i)}function ii(e,t,n){Fn=Ei;const i=bi(e,t,!1,jn),r=di&&ui(di);r&&(i.suspense=r),n&&n.render||(i.user=!0),Yn?Yn.push(i):gi(i)}function ri(e,t,n){n=n?Object.assign({},zn,n):zn;const i=bi(e,t,!0,0);return i.observers=null,i.observerSlots=null,i.comparator=n.equals||void 0,Zn&&Jn&&Jn.running?(i.tState=jn,Gn.push(i)):gi(i),fi.bind(i)}function oi(e){if(null===Hn)return e();const t=Hn;Hn=null;try{return e()}finally{Hn=t}}function si(e){ii((()=>oi(e)))}function ai(e){return null===Wn||(null===Wn.cleanups?Wn.cleanups=[e]:Wn.cleanups.push(e)),e}function ci(e){if(Jn&&Jn.running)return e(),Jn.done;const t=Hn,n=Wn;return Promise.resolve().then((()=>{let i;return Hn=t,Wn=n,(Zn||di)&&(i=Jn||(Jn={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),i.done||(i.done=new Promise((e=>i.resolve=e))),i.running=!0),vi(e,!1),Hn=Wn=null,i?i.done:void 0}))}function li(e,t){const n=Symbol("context");return{id:n,Provider:Oi(n),defaultValue:e}}function ui(e){return Wn&&Wn.context&&void 0!==Wn.context[e.id]?Wn.context[e.id]:e.defaultValue}function hi(e){const t=ri(e),n=ri((()=>ki(t())));return n.toArray=()=>{const e=n();return Array.isArray(e)?e:null!=e?[e]:[]},n}let di;function fi(){const e=Jn&&Jn.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===jn)gi(this);else{const e=Gn;Gn=null,vi((()=>Si(this)),!1),Gn=e}if(Hn){const e=this.observers?this.observers.length:0;Hn.sources?(Hn.sources.push(this),Hn.sourceSlots.push(e)):(Hn.sources=[this],Hn.sourceSlots=[e]),this.observers?(this.observers.push(Hn),this.observerSlots.push(Hn.sources.length-1)):(this.observers=[Hn],this.observerSlots=[Hn.sources.length-1])}return e&&Jn.sources.has(this)?this.tValue:this.value}function pi(e,t,n){let i=Jn&&Jn.running&&Jn.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(i,t)){if(Jn){const i=Jn.running;(i||!n&&Jn.sources.has(e))&&(Jn.sources.add(e),e.tValue=t),i||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&vi((()=>{for(let t=0;t1e6)throw Gn=[],new Error}),!1)}return t}function gi(e){if(!e.fn)return;Ai(e);const t=Wn,n=Hn,i=Xn;Hn=Wn=e,yi(e,Jn&&Jn.running&&Jn.sources.has(e)?e.tValue:e.value,i),Jn&&!Jn.running&&Jn.sources.has(e)&&queueMicrotask((()=>{vi((()=>{Jn&&(Jn.running=!0),Hn=Wn=e,yi(e,e.tValue,i),Hn=Wn=null}),!1)})),Hn=n,Wn=t}function yi(e,t,n){let i;try{i=e.fn(t)}catch(t){return e.pure&&(Jn&&Jn.running?(e.tState=jn,e.tOwned&&e.tOwned.forEach(Ai),e.tOwned=void 0):(e.state=jn,e.owned&&e.owned.forEach(Ai),e.owned=null)),e.updatedAt=n+1,Ti(t)}(!e.updatedAt||e.updatedAt<=n)&&(null!=e.updatedAt&&"observers"in e?pi(e,i,!0):Jn&&Jn.running&&e.pure?(Jn.sources.add(e),e.tValue=i):e.value=i,e.updatedAt=n)}function bi(e,t,n,i=jn,r){const o={fn:e,state:i,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Wn,context:Wn?Wn.context:null,pure:n};if(Jn&&Jn.running&&(o.state=0,o.tState=i),null===Wn||Wn!==Bn&&(Jn&&Jn.running&&Wn.pure?Wn.tOwned?Wn.tOwned.push(o):Wn.tOwned=[o]:Wn.owned?Wn.owned.push(o):Wn.owned=[o]),Qn){const[e,t]=ti(void 0,{equals:!1}),n=Qn(o.fn,t);ai((()=>n.dispose()));const i=()=>ci(t).then((()=>r.dispose())),r=Qn(o.fn,i);o.fn=t=>(e(),Jn&&Jn.running?r.track(t):n.track(t))}return o}function mi(e){const t=Jn&&Jn.running;if(0===(t?e.tState:e.state))return;if((t?e.tState:e.state)===Dn)return Si(e);if(e.suspense&&oi(e.suspense.inFallback))return e.suspense.effects.push(e);const n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;i--){if(e=n[i],t){let t=e,r=n[i+1];for(;(t=t.owner)&&t!==r;)if(Jn.disposed.has(t))return}if((t?e.tState:e.state)===jn)gi(e);else if((t?e.tState:e.state)===Dn){const t=Gn;Gn=null,vi((()=>Si(e,n[0])),!1),Gn=t}}}function vi(e,t){if(Gn)return e();let n=!1;t||(Gn=[]),Yn?n=!0:Yn=[],Xn++;try{const t=e();return function(e){Gn&&(Zn&&Jn&&Jn.running?function(e){for(let t=0;t{i.delete(n),vi((()=>{Jn.running=!0,mi(n)}),!1),Jn&&(Jn.running=!1)})))}}(Gn):wi(Gn),Gn=null);if(e)return;let t;if(Jn)if(Jn.promises.size||Jn.queue.size){if(Jn.running)return Jn.running=!1,Jn.effects.push.apply(Jn.effects,Yn),Yn=null,void $n(!0)}else{const e=Jn.sources,n=Jn.disposed;Yn.push.apply(Yn,Jn.effects),t=Jn.resolve;for(const e of Yn)"tState"in e&&(e.state=e.tState),delete e.tState;Jn=null,vi((()=>{for(const e of n)Ai(e);for(const t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;eFn(n)),!1);t&&t()}(n),t}catch(e){n||(Yn=null),Gn=null,Ti(e)}}function wi(e){for(let t=0;t=0;t--)Ai(e.tOwned[t]);delete e.tOwned}Ri(e,!0)}else if(e.owned){for(t=e.owned.length-1;t>=0;t--)Ai(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}Jn&&Jn.running?e.tState=0:e.state=0}function Ri(e,t){if(t||(e.tState=0,Jn.disposed.add(e)),e.owned)for(let t=0;tn=oi((()=>(Wn.context={...Wn.context,[e]:t.value},hi((()=>t.children)))))),void 0),n}}const Ui=Symbol("fallback");function Ci(e){for(let t=0;te(t||{})));return Kn(n),i}return oi((()=>e(t||{})))}function Ki(e){const t="fallback"in e&&{fallback:()=>e.fallback};return ri(function(e,t,n={}){let i=[],r=[],o=[],s=0,a=t.length>1?[]:null;return ai((()=>Ci(o))),()=>{let c,l,u=e()||[];return u[qn],oi((()=>{let e,t,d,f,p,g,y,b,m,v=u.length;if(0===v)0!==s&&(Ci(o),o=[],i=[],r=[],s=0,a&&(a=[])),n.fallback&&(i=[Ui],r[0]=ei((e=>(o[0]=e,n.fallback()))),s=1);else if(0===s){for(r=new Array(v),l=0;l=g&&b>=g&&i[y]===u[b];y--,b--)d[b]=r[y],f[b]=o[y],a&&(p[b]=a[y]);for(e=new Map,t=new Array(b+1),l=b;l>=g;l--)m=u[l],c=e.get(m),t[l]=void 0===c?-1:c,e.set(m,l);for(c=g;c<=y;c++)m=i[c],l=e.get(m),void 0!==l&&-1!==l?(d[l]=r[c],f[l]=o[c],a&&(p[l]=a[c]),l=t[l],e.set(m,l)):o[c]();for(l=g;le.each),e.children,t||void 0))}li();n(5108);Object.create(null),Object.create(null);const Li="_$DX_DELEGATE";function qi(e,t,n,i={}){let r;return ei((i=>{r=i,t===document?e():Wi(t,e(),t.firstChild?null:void 0,n)}),i.owner),()=>{r(),t.textContent=""}}function zi(e,t,n){let i;const r=()=>{const t=document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:t.content.firstChild},o=t?()=>oi((()=>document.importNode(i||(i=r()),!0))):()=>(i||(i=r())).cloneNode(!0);return o.cloneNode=o,o}function Vi(e,t=window.document){const n=t[Li]||(t[Li]=new Set);for(let i=0,r=e.length;ii.call(e,n[1],t))}else e.addEventListener(t,n)}function Bi(e,t,n){if(!t)return n?Fi(e,"style"):t;const i=e.style;if("string"==typeof t)return i.cssText=t;let r,o;for(o in"string"==typeof n&&(i.cssText=n=void 0),n||(n={}),t||(t={}),n)null==t[o]&&i.removeProperty(o),delete n[o];for(o in t)r=t[o],r!==n[o]&&(i.setProperty(o,r),n[o]=r);return n}function Wi(e,t,n,i){if(void 0===n||i||(i=[]),"function"!=typeof t)return Zi(e,t,i,n);ni((i=>Zi(e,t(),i,n)),i)}function Ji(e){const t=`$$${e.type}`;let n=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==n&&Object.defineProperty(e,"target",{configurable:!0,value:n}),Object.defineProperty(e,"currentTarget",{configurable:!0,get:()=>n||document}),Nn.registry&&!Nn.done&&(Nn.done=_$HY.done=!0);n;){const i=n[t];if(i&&!n.disabled){const r=n[`${t}Data`];if(void 0!==r?i.call(n,r,e):i.call(n,e),e.cancelBubble)return}n=n._$host||n.parentNode||n.host}}function Zi(e,t,n,i,r){if(Nn.context){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e{let r=t();for(;"function"==typeof r;)r=r();n=Zi(e,r,n,i)})),()=>n;if(Array.isArray(t)){const o=[],a=n&&Array.isArray(n);if(Qi(o,t,n,r))return ni((()=>n=Zi(e,o,n,i,!0))),()=>n;if(Nn.context){if(!o.length)return n;if(void 0===i)return[...e.childNodes];let t=o[0],r=[t];for(;(t=t.nextSibling)!==i;)r.push(t);return n=r}if(0===o.length){if(n=Gi(e,n,i),s)return n}else a?0===n.length?Hi(e,o,i):function(e,t,n){let i=n.length,r=t.length,o=i,s=0,a=0,c=t[r-1].nextSibling,l=null;for(;si-a){const r=t[s];for(;a=0;o--){const s=t[o];if(r!==s){const t=s.parentNode===e;i||o?t&&s.remove():t?e.replaceChild(r,s):e.insertBefore(r,n)}else i=!0}}else e.insertBefore(r,n);return[r]}var Yi=n(7304),Xi=n.n(Yi),_i=n(5108);function $i(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const er=[{key:"spire_chrome",id:"gpfndedineagiepkpinficbcbbgjoenn",name:"Spire",shortName:"Spire",color:"",logo:"data:image/png;base64,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",link:"https://spirewallet.com/"},{key:"temple_chrome",id:"ookjlbkiijinhpmnjffcofjonbfbgaoc",name:"Temple Wallet Chrome",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"},{key:"temple_firefox",id:"{34ac229e-1cf5-4e4c-8a77-988155c4360f}",name:"Temple Wallet Firefox",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"}],tr=[{key:"infinity_wallet",name:"Infinity Wallet",shortName:"Infinity Wallet",color:"rgb(52, 147, 218)",logo:"data:image/png;base64,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",deepLink:"infinity://",downloadLink:"https://infinitywallet.io/download"},{key:"umami_desktop",name:"Umami",shortName:"Umami",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",downloadLink:"https://umamiwallet.com/#download"},{key:"atomex_desktop",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,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",deepLink:"atomex://",downloadLink:"https://atomex.me/"}],nr=[{key:"metamask_tezos_web",name:"MetaMask",shortName:"MetaMask",color:"",logo:"data:image/png;base64,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",links:{mainnet:"https://metamask.tezos.com/",ghostnet:"https://metamask.tezos.com/",mondaynet:"https://metamask.tezos.com/",dailynet:"https://metamask.tezos.com/",delphinet:"https://metamask.tezos.com/",edonet:"https://metamask.tezos.com/",florencenet:"https://metamask.tezos.com/",granadanet:"https://metamask.tezos.com/",hangzhounet:"https://metamask.tezos.com/",ithacanet:"https://metamask.tezos.com/",jakartanet:"https://metamask.tezos.com/",kathmandunet:"https://metamask.tezos.com/",limanet:"https://metamask.tezos.com/",mumbainet:"https://metamask.tezos.com/",nairobinet:"https://metamask.tezos.com/",oxfordnet:"https://metamask.tezos.com/"}},{key:"kukai_web",name:"Kukai Wallet",shortName:"Kukai",color:"",logo:"data:image/png;base64,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",links:{mainnet:"https://wallet.kukai.app",ghostnet:"https://ghostnet.kukai.app",mondaynet:"https://mondaynet.kukai.app",dailynet:"https://dailynet.kukai.app",delphinet:"https://testnet.kukai.app",edonet:"https://edonet.kukai.app",florencenet:"https://florencenet.kukai.app",granadanet:"https://granadanet.kukai.app",hangzhounet:"https://hangzhounet.kukai.app",ithacanet:"https://ithacanet.kukai.app",jakartanet:"https://jakartanet.kukai.app",kathmandunet:"https://kathmandunet.kukai.app",limanet:"https://limanet.kukai.app",mumbainet:"https://mumbainet.kukai.app",nairobinet:"https://nairobinet.kukai.app",oxfordnet:"https://oxfordnet.kukai.app"}}],ir=[{key:"airgap_ios",name:"AirGap Wallet",shortName:"AirGap",color:"rgb(4, 235, 204)",logo:"data:image/png;base64,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",universalLink:"https://wallet.airgap.it",deepLink:"airgap-wallet://"},{key:"plenty_wallet_ios",name:"Plenty Wallet - your portal to web3 ",shortName:"Plenty Wallet",color:"",logo:"data:image/png;base64,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",universalLink:"https://www.naan.app/",deepLink:"naan://"},{key:"altme_wallet",name:"Altme Wallet",shortName:"Altme",color:"",logo:"data:image/png;base64,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",universalLink:"https://app.altme.io/app/download"},{key:"autonomy-app",name:"Autonomy: Digital Art Wallet",shortName:"Autonomy",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAMcklEQVR4Ae3BAYzW9X3A4U+/vBcvF8jd6BlPc5MjXCxE6q4F3XWIYY4FNBjE4qYprpjWhsa12lnnNnVIaTe7NhO1DrZq1Kitm0zPeGmOhFEcrbspl16vNOByhqO5IMQrOQK9vOa9wy3tsmRtLdzd7/8ex+/zPB/gvWfeQ1KWAknZCiRlK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2Sqh9Da9BANDKKHm34LNa1FaJZReRw/0HkIJtc2BzWtRWoGkbAWSshVIylYgKVuBpGwFkrIVSMpWIClbgaRsBZKyFUjKViApW4GkbAWSshVIylYgKVuBpGwFkrIVSMpWIClbgdIbHUOaDgKld/JdlNjQCZReoPQGj6HEhk7A6CmUVqC0BoZgdAwlVq7AwDsorUBp9RxEBfnhT1BagdLauQ8VZOc+lFagtLr6UEG6+lBagdJ5dT8MDKGCDAzB7gMonUDpbNmBCvbEbpROoDR6D0FHDyrY893QfxSlESiNTS+hKhgdg7u/jdIINHnPd0NHD6qSjh7o7EWTF2hyBo/BF55FVfbZJ2HwGJqcQBNXrsAt2+DIcVRlg8fglm1QrqCJCzQxo6fg5sdg9340RXbvh5sfg9FTaGICjV+5Ajc+Ah09aIp19MCNj0C5gsYv0PgMHoNrvgYdPegs0dED13wNBo+h8Ql05jp74WObYPd+dJbZvR8u/2v452505kro9PqPwt3fho4edBY7chxuegye74aNa6BtDvrNSuj97T4AT+yG57thdAxNEx090NED1y+CO1bAsgXo1yuhXxg9BQPvwA9/Ajv3QVcfDAyhaayjBzp6oKURVl4GyxfCornQ0oh+ocR0cf926OylEEMnYOgElCtMudIMaLsY2lthYTO0nA/1dVBbw7RSrsDxEeg/CgcOQ3c/7D3IlBgYgm27YNsufq40A5pnw8zzoDSD5K5fBBvXMB2UmC4Gj0HvIc5ZV14C66+C1R+FxlmcM1Z8mP8zPAIv98C2XdDdz5QZHYOBdyhM2xymixKaWssWwMY1sGwB57yGOvjkUvjkUuj9CWx6ETp60NQpoanRPBu23gqr2shS28Xw0p3Q2QufexoGhlD1lVD1rb0CvvkpaKgje6vaYPmlcMs22P46qq5A1bXxBnjhc9BQh/5XbQ288DnYuAZVV6DqeWgdPLAGvY8HboCH1qHqCVQdG2+AO1eg07hzBWxei6ojUPHWXgEPrEFn6L7VsPYKVLxAxWo5H57ZgMbpm5+C5tmoWIGK9eifQG0NGqeGOth6KypWoOJcvwhWtaEJWtUGyxag4gQqzsYb0CRtXIOKE6gY7a3QdjGapGUL4MpLUDECFWPD1SiR9VehYgQqxupFKJHVH4XSDJReoPQWz4WGOpRI4yxouxilFyi99laUWHsrSi9QevMvRIktbEbpBUqvtQkl1nI+Si9Qeg11KLH6OpReoPRqa1BitTUovUDpjY6hxEbHUHqB0hs6iRI7PoLSC5Te4E9RYgNDKL1A6R14GyV24DBKL1B6ew+ixPYeROkFSu97/wUn30WJnCxDdz9KL1B6o2Pwb/tQIjt+BOUKSi9QMR5/FSXy1L+jYgQqRlcf9B9Fk3TgMHT2omIEKsboGHzlZTRJX+1ExQlUnGdfg32DaIJ6D8Gzr6HiBCrO6Bjc9gSMnkLjVK7Ard+E0TFUnEDF6u6HTS+icdr0IvQeQsUKVLwvvwzb30BnqPMH8GAnKl6g6rhlK3T1odPo6oMbH0XVEag6yhVYswW6+tD76PwBrNkC5QqqjkDVU67AdX8PX3kZ/ZKvvAxrHoZyBVVPCVXX6Bjctx12/hie/Ay0NJK1/qNw2xOwez+qvhKaGrv3w4I/hw1Xwz3XQVM9WRkegYd3wIOvQLmCpkYJTZ1yBbbsgG27YMPV8Mcfg/Z5nNP2HoR/3AXbX4fhETS1SmjqlSuwZQds2QEtjbB8IbTPg0t/G5pnQ+NMqK1hWilXYHgE+o/Cm4eh+y3o6oPBY+js8QHee+Y9cjd0Eo4Mw5tvw96D8L03ofstGB1D54DSDGi7GFZeBm1z4EMXQvNsaKgjdyUEjTOhcSYsbIaPX87PDZ2Ap/fAU3tg3yCahlovgA1XwyeXQuMs9KtK6NdrnAV3XQt3XQsdPfCX/wIHDqNpoPUCuHc1rFsCpUDvr4RO7/pFsPIy+GonPPgKlCvoLFSaAfethntXQynQ6ZXQmamtgY1rYMVlcPM3YGAInUWaZ8MLn4f2eejMBRqf9nmw535om4POEm1z4D82Qvs8ND6Bxq95Nuy5H9pb0RRrb4U990PzbDR+gSZm5nnw0p3Q0oimSMv58NKdMPM8NDGBJq6pHl65C2prUJXV1sArfwZN9WjiAk3Owmb48lpUZQ+tg4XNaHICTd4dK6G9FVVJ2xzYcDWavECTVwr42z9CVfLQOpRGoDSWLYBlC1DBli2AZfNRGoHS+dM/RAW7YwVKJ1A6qxdBQx0qSEMdrLwMpRMonVLAqo+ggly/CGprUDqB0lp+KSrIlR9CaQVKa9FcVJDfnYfSCpTW/IugNAMlVpoB8y9CaQVKqxTQOBMl1lQPpUBpBUqvcRZKrKEOpRcovdIMlFhpBkovUHrlCkpsdAylFyi94Z+hxI4cR+kFSutkGY4cR4kNnYByBaUVKK0330YF6T2E0gqUVvdbqCA9B1FagdLq6kMF6foRSitQOsMjsHMfKsjOfTA8gtIJlM5z34dyBRWkXIF/fR2lEyidx19FBXuwE0ZPoTQCpbH9Deg9hArWfxSe+z5KI9DklStw97dQlXz5ZShX0OQFmrwvPAsDQ6hK+o/C/dvR5AWanK4+2LYLVdnXvwOdP0CTE2jiDrwNNz6KpsjN/wAH3kYTF2hiBobgmr+Dk2U0RU6W4ZqvwcAQmphA47f3IHzsARgYQlNs4B1Yuhm6+9H4BRqfp/fA0s1w5Dg6Swweg9//G3h6DxqfEjozg8fgs09CZy86C5UrsP6foKsPHloHTfXo9EroNxsegYd3wNe/AyfL6Cz3fDd09MCGq+Ge66CpHr2/EvpVo6dg5z547jXY/jqUK2gaKVdgyw7Ytgtuaod1S2DJJVBbg/6/EtPFwBAMj1CIn56AI8fhwGHYexC6+2F4hLNC4yxoqofSDKaVcgWGfwZHjjNlyhV4ag88tQca6qC9FRbPhfkXQVM9fHAWhWicCc2zmQ5KTBebXoSn9nBOq62B5ZfCyt+BRS3QNgdqa5jWTr4LBw7Df74FXT+EnT+GcoWqGx6Brj7o6qNw66+CJ29jOiihqdd6AfzFdfDxy6GhjnPKzPNg8VxYPBduXw7DI/Dca/D4bug9hKZWCU2d1gvg3tWwbgmUgiw01MHty+H25bD9Dbj7WzAwhKZGCU2NL14Lm9dCbQ3ZWns5rGqDLzwL23ah6iuh6ppZC9++HVa1of9RWwNbb4XVi+HGR+BkGVVPoOppOR/e+BKsakO/ZOWH4Y0vQUsjqp5A1dE8G777VzD/QvQ+5l8I370XmupRdQQqXm0NvPB5aGlEp9HSCK/cBbU1qHiBirf1Vmifh87Q4rmw9VZUvEDFuqkd1i9F47R+Kaz6CCpWoOLU1sBD69AEbV0PM2tRcQIVZ8MfQFM9mqDm2fDFa1FxAhWjtgbuWYUm6Y4VUFuDihGoGDe1Q1M9mqSGOlh7BSpGoGJ8YglK5BO/h4oRKL2GOrjyEpTI8oXQUIfSC5ReeyvU1qBESgHtrSi9QOktnosSWzwXpRcovfkXocTmX4TSC5ReUz1KrKkepRcovcZZKLEPzkLpBZKyFUjKViApW4GkbAWSshVIylYgKVuBpGwFkrIVSMpWIClbgaRsBZKyFUjKViApW4GkbAWSshVIylYgKVuBpGwFkrJVYrpYcgnTxgdnosQa6mD9UqaFJZcwXZSYLj69DD69DGWqpRGe/AxKK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2QokZSuQlK1AUrYCSdkKJGUrkJStQFK2AknZCiRlK5CUrUBStgJJ2QokZSuQlK3/Bh1IvYNsMCDJAAAAAElFTkSuQmCC",universalLink:"https://autonomy.io/apps/tezos",deepLink:"autonomy-tezos://"},{key:"temple_ios",name:"Temple Wallet",shortName:"Temple",color:"",logo:"data:image/png;base64,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",universalLink:"https://templewallet.com",deepLink:"temple://"},{key:"atomex_ios",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,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",universalLink:"https://atomex.me",deepLink:"atomex://"},{key:"umami_ios",name:"Umami Mobile",shortName:"Umami Mobile",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",universalLink:"https://umamiwallet.com/"},{key:"trust_ios",name:"Trust Wallet",shortName:"Trust Wallet",color:"",supportedInteractionStandards:["wallet_connect"],logo:"data:image/png;base64,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",universalLink:"https://trustwallet.com",deepLink:"trust://"},{key:"exodus_mobile",name:"Exodus Mobile",shortName:"Exodus",color:"",logo:"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIHdpZHRoPSIzMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNTYuODc1IiB4Mj0iMTcxLjMiIHkxPSIzMjAuNjI1IiB5Mj0iLTMyLjk0NTkiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzBiNDZmOSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2JiZmJlMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjIyLjUwMDIiIHgyPSIxNzAuNjI1IiB5MT0iNjcuNSIgeTI9IjE3OC4xMjUiPjxzdG9wIG9mZnNldD0iLjExOTc5MiIgc3RvcC1jb2xvcj0iIzg5NTJmZiIgc3RvcC1vcGFjaXR5PSIuODciLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNkYWJkZmYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PG1hc2sgaWQ9ImMiIGhlaWdodD0iMzAwIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB3aWR0aD0iMjk2IiB4PSIzIiB5PSIwIj48cGF0aCBkPSJtMjk4LjIwNCA4My43NjQ1LTEyNy43NTQtODMuNzY0NXY0Ni44MzMybDgxLjk1NSA1My4yNTU4LTkuNjQyIDMwLjUwOWgtNzIuMzEzdjM4LjgwNGg3Mi4zMTNsOS42NDIgMzAuNTA5LTgxLjk1NSA1My4yNTZ2NDYuODMzbDEyNy43NTQtODMuNDk3LTIwLjg5MS02Ni4zNjl6IiBmaWxsPSJ1cmwoI2EpIi8+PHBhdGggZD0ibTU5LjMwMSAxNjkuNDAyaDcyLjA0NnYtMzguODA0aC03Mi4zMTM4bC05LjM3NC0zMC41MDkgODEuNjg3OC01My4yNTU4di00Ni44MzMybC0xMjcuNzU0MjMgODMuNzY0NSAyMC44OTA2MyA2Ni4zNjk1LTIwLjg5MDYzIDY2LjM2OSAxMjguMDIyMjMgODMuNDk3di00Ni44MzNsLTgxLjk1NTgtNTMuMjU2eiIgZmlsbD0idXJsKCNhKSIvPjwvbWFzaz48cGF0aCBkPSJtMjk4LjIwMyA4My43NjQ1LTEyNy43NTQtODMuNzY0NXY0Ni44MzMybDgxLjk1NiA1My4yNTU4LTkuNjQyIDMwLjUwOWgtNzIuMzE0djM4LjgwNGg3Mi4zMTRsOS42NDIgMzAuNTA5LTgxLjk1NiA1My4yNTZ2NDYuODMzbDEyNy43NTQtODMuNDk3LTIwLjg5LTY2LjM2OXoiIGZpbGw9InVybCgjYSkiLz48cGF0aCBkPSJtNTkuMzAwNyAxNjkuNDAyaDcyLjA0NTN2LTM4LjgwNGgtNzIuMzEzMWwtOS4zNzQtMzAuNTA5IDgxLjY4NzEtNTMuMjU1OHYtNDYuODMzMmwtMTI3Ljc1MzQ3IDgzLjc2NDUgMjAuODkwNTcgNjYuMzY5NS0yMC44OTA1NyA2Ni4zNjkgMTI4LjAyMTQ3IDgzLjQ5N3YtNDYuODMzbC04MS45NTUxLTUzLjI1NnoiIGZpbGw9InVybCgjYSkiLz48ZyBtYXNrPSJ1cmwoI2MpIj48cGF0aCBkPSJtMy43NTAyNCAwaDI5Mi41djMwMGgtMjkyLjV6IiBmaWxsPSJ1cmwoI2IpIi8+PC9nPjwvc3ZnPg==",supportedInteractionStandards:["beacon"],deepLink:"exodus://wc",universalLink:"https://www.exodus.com/"}],rr=zi(''),or=zi(''),sr=zi('');function ar(e){return(()=>{const t=rr();return ni((n=>Bi(t,e.style?Object.assign({overflow:"visible","font-size":"22px"},e.style):{overflow:"visible","font-size":"22px"},n))),t})()}function cr(e){return(()=>{const t=or();return ni((n=>Bi(t,e.style?Object.assign({overflow:"visible"},e.style):{overflow:"visible"},n))),t})()}function lr(e){return(()=>{const t=sr();return ni((n=>Bi(t,e.style?Object.assign({},e.style):{},n))),t})()}var ur=".loader {\n height: 3px;\n position: relative;\n background-color: #ddd;\n position: absolute;\n width: 100%;\n left: 0px;\n bottom: 0px;\n overflow: hidden;\n}\n\n.loader:before {\n content: '';\n position: absolute;\n left: -50%;\n height: 3px;\n width: 40%;\n background-color: #3880ff;\n -webkit-animation: lineAnim 1s linear infinite;\n -moz-animation: lineAnim 1s linear infinite;\n animation: lineAnim 1s linear infinite;\n}\n\n@keyframes lineAnim {\n 0% {\n left: -40%;\n }\n 50% {\n left: 20%;\n width: 80%;\n }\n 100% {\n left: 100%;\n width: 100%;\n }\n}\n";const hr=zi('
'),dr=e=>hr(),fr=zi('
'),pr=zi('
'),gr=zi('
'),yr=zi("
"),br=zi('
'),mr=zi('