@wormhole-foundation/wormhole-connect 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/main.js +3 -3
  2. package/dist/src/components/TokensModal.d.ts.map +1 -1
  3. package/dist/src/hooks/useGetTokenBalances.d.ts +9 -0
  4. package/dist/src/hooks/useGetTokenBalances.d.ts.map +1 -0
  5. package/dist/src/store/transferInput.d.ts +10 -9
  6. package/dist/src/store/transferInput.d.ts.map +1 -1
  7. package/dist/src/views/Bridge/Inputs/From.d.ts.map +1 -1
  8. package/dist/src/views/Bridge/Inputs/To.d.ts.map +1 -1
  9. package/lib/{aptos-CTDzzihS.js → aptos-4ljP1ifq.js} +1 -1
  10. package/lib/{aptos-EUdJRZiw.mjs → aptos-MPxUorM6.mjs} +1 -1
  11. package/lib/{ccip-FI907swj.js → ccip-rUhDw7gM.js} +1 -1
  12. package/lib/{ccip-tcf9MQLi.mjs → ccip-teuN_8EJ.mjs} +3 -3
  13. package/lib/{cosmos-3mda59mp.mjs → cosmos-JI228Nd5.mjs} +3 -3
  14. package/lib/{cosmos-HVWmDTj2.js → cosmos-KAbwO0B8.js} +1 -1
  15. package/lib/{evm-FWO1e8uu.js → evm-6b3eYq12.js} +3 -3
  16. package/lib/{evm-zh2dwh5o.mjs → evm-uVCzadYm.mjs} +4 -4
  17. package/lib/{index-5PGhl0aX.mjs → index-3ezZ5RnU.mjs} +1 -1
  18. package/lib/{index-PK3O0pcz.js → index-J8yUfjz6.js} +1 -1
  19. package/lib/{index-mH2mbTTD.js → index-JRh9X0_K.js} +105 -105
  20. package/lib/{index-9v45iZpO.mjs → index-LLW1EXxz.mjs} +2 -2
  21. package/lib/{index-gyCzyo_g.mjs → index-P6TAkzP2.mjs} +3 -3
  22. package/lib/{index-iPqvS1Y5.mjs → index-X4Rc8L59.mjs} +10021 -10012
  23. package/lib/{index-RDkyxLn0.js → index-jYWsYy63.js} +1 -1
  24. package/lib/{index-vPM2262G.mjs → index-kyinTgx_.mjs} +1 -1
  25. package/lib/{index-I3mWr6h2.js → index-rfDfW_jX.js} +1 -1
  26. package/lib/{index-7K6wkvte.js → index-wPBRjnY5.js} +1 -1
  27. package/lib/{index.es-nD05PTSe.js → index.es--Y6ulFjB.js} +1 -1
  28. package/lib/{index.es-Bck4Je3r.mjs → index.es-A6ydgKe5.mjs} +2 -2
  29. package/lib/{index.es-RdzljbEU.js → index.es-M3zYx9bs.js} +2 -2
  30. package/lib/{index.es-ixp6niYs.mjs → index.es-Sw9pVp3m.mjs} +4 -4
  31. package/lib/{index.es-XoM1oLQM.js → index.es-oecoRjYo.js} +1 -1
  32. package/lib/{index.es-JVedrbvU.mjs → index.es-riQhAD8z.mjs} +1 -1
  33. package/lib/index.js +1 -1
  34. package/lib/index.mjs +1 -1
  35. package/lib/{libsodium-wrappers-fYsEa1K3.js → libsodium-wrappers-fUgzuniQ.js} +1 -1
  36. package/lib/{libsodium-wrappers-FvR9sCKG.mjs → libsodium-wrappers-gW-aZ0Gi.mjs} +1 -1
  37. package/lib/{sei-CRMXaELO.mjs → sei-Ju_f85SE.mjs} +2 -2
  38. package/lib/{sei-KvRZfkVZ.js → sei-_dpDCnM5.js} +1 -1
  39. package/lib/{solana-a_vIQ98-.mjs → solana-GIQij4c0.mjs} +3 -3
  40. package/lib/{solana-iWzkxklK.js → solana-Mu4_Hr3F.js} +1 -1
  41. package/lib/{solanaEmbed.esm-uJswfekm.js → solanaEmbed.esm-8a9kiH_G.js} +1 -1
  42. package/lib/{solanaEmbed.esm-FucIIZIi.mjs → solanaEmbed.esm-Y9E3mfRw.mjs} +2 -2
  43. package/lib/src/components/TokensModal.d.ts.map +1 -1
  44. package/lib/src/hooks/useGetTokenBalances.d.ts +9 -0
  45. package/lib/src/hooks/useGetTokenBalances.d.ts.map +1 -0
  46. package/lib/src/store/transferInput.d.ts +10 -9
  47. package/lib/src/store/transferInput.d.ts.map +1 -1
  48. package/lib/src/views/Bridge/Inputs/From.d.ts.map +1 -1
  49. package/lib/src/views/Bridge/Inputs/To.d.ts.map +1 -1
  50. package/lib/{sui-6W1dNyeE.js → sui-NogNckVD.js} +1 -1
  51. package/lib/{sui-vJTf8Juu.mjs → sui-Qdb1JnrN.mjs} +1 -1
  52. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -325,9 +325,9 @@ Proven: ${(0,encoding_1$i.toHex)(dt.key)}`);return ics23_1.ics23.CommitmentProof
325
325
  ${Wn}`)}if(er){const Wn=getTokenDecimals(config$2.wh.toChainId(Un.toChain),"native");Gn=toDecimals(er,Wn,MAX_DECIMALS)}}if(!Gn){const er=getTokenDecimals(config$2.wh.toChainId(Un.toChain),Un.tokenId),Wn=await this.nativeTokenAmount(Un.toChain,Un.tokenId,fromNormalizedDecimals(BigNumber$2.from(Un.toNativeTokenAmount),er),Un.to),jn=getTokenDecimals(config$2.wh.toChainId(Un.toChain),"native");Gn=toDecimals(Wn.toString(),jn,MAX_DECIMALS)}const Qn=BigNumber$2.from(Un.amount).sub(BigNumber$2.from(Un.relayerFee)).sub(BigNumber$2.from(Un.toNativeTokenAmount||0)),qn=toNormalizedDecimals(Qn,Un.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${qn} ${getDisplayName(Fn)}`,valueUSD:calculateUSDPrice(qn,Cn,Fn)},{title:"Native gas token",value:Gn?`${Gn} ${getDisplayName(config$2.tokens[Hn])}`:NO_INPUT,valueUSD:calculateUSDPrice(Gn,Cn,config$2.tokens[Hn])}]}}async nativeTokenAmount(Dt,Cn,$n,Un){const Hn=config$2.wh.getContext(Dt).contracts.mustGetWormholeCircleRelayer(Dt),Gn=getForeignUSDCAddress(Dt);return Hn.calculateNativeSwapAmountOut(Gn,$n)}async maxSwapAmount(Dt,Cn,$n){const Fn=config$2.wh.getContext(Dt).contracts.mustGetWormholeCircleRelayer(Dt),Hn=getForeignUSDCAddress(Dt);return Fn.calculateMaxSwapAmountIn(Hn)}async tryFetchRedeemTx(Dt){let Cn;try{Cn=await fetchRedeemedEvent$1(Dt)}catch($n){console.error($n)}return Cn}}async function fetchRedeemedEvent$1(dt){var qn;const ht=config$2.wh.mustGetProvider(dt.toChain),Dt=config$2.wh.getContext(dt.toChain),Cn=config$2.wh.toChainName(dt.toChain),$n=config$2.chains[Cn],Un=(qn=Dt.contracts.mustGetContracts(dt.toChain).cctpContracts)==null?void 0:qn.cctpMessageTransmitter,Fn=MessageTransmitter__factory.connect(Un,ht),Hn=Fn.filters.MessageReceived(void 0,void 0,getNonce(dt.message)),Gn=await ht.getBlockNumber(),Qn=await Fn.queryFilter(Hn,Gn-$n.maxBlockSearch);return Qn?Qn[0].transactionHash:void 0}async function fetchSwapEvent$1(dt){var Zn,Xn;const{recipient:ht,amount:Dt,tokenDecimals:Cn}=dt,$n=config$2.wh.mustGetProvider(dt.toChain),Un=config$2.wh.getContext(dt.toChain),Fn=config$2.wh.toChainName(dt.toChain),Hn=config$2.chains[Fn],Gn=Un.contracts.mustGetWormholeCircleRelayer(dt.toChain),Qn=getForeignUSDCAddress(dt.toChain),qn=Gn.filters.SwapExecuted(ht,void 0,Qn),er=await $n.getBlockNumber(),jn=(await Gn.queryFilter(qn,er-Hn.maxBlockSearch)).filter(ar=>fromNormalizedDecimals(BigNumber$2.from(Dt),Cn).eq(ar.args[3]));return jn?(Xn=(Zn=jn[0])==null?void 0:Zn.args)==null?void 0:Xn[4]:null}const CLIENT_MAP={};async function getQueryClient(dt){const ht=await getTmClient(dt);return build$9.QueryClient.withExtensions(ht,build$9.setupIbcExtension)}async function getTmClient(dt){const ht=config$2.wh.toChainName(dt);if(CLIENT_MAP[ht])return CLIENT_MAP[ht];const Dt=config$2.rpcs[config$2.wh.toChainName(dt)];if(!Dt)throw new Error(`${dt} RPC not configured`);let Cn;const $n=await build$2.Tendermint37Client.connect(Dt);return(await $n.status()).nodeInfo.version.startsWith("0.37.")?Cn=$n:($n.disconnect(),Cn=await build$2.Tendermint34Client.connect(Dt)),CLIENT_MAP[ht]=Cn,Cn}async function getCosmWasmClient(dt){const ht=await getTmClient(dt);return build$c.CosmWasmClient.create(ht)}const IBC_MSG_TYPE="/ibc.applications.transfer.v1.MsgTransfer",IBC_PORT="transfer",IBC_TIMEOUT_MILLIS=24*60*60*1e3,millisToNano=dt=>dt*1e6;function getTranslatorAddress(){var ht;const dt=(ht=config$2.chains.wormchain)==null?void 0:ht.contracts.ibcShimContract;if(!dt)throw new Error("IBC Shim contract not configured");return dt}async function getIbcDestinationChannel(dt){var Un,Fn;const ht=await getIbcSourceChannel(dt),$n=(Fn=(Un=(await(await getQueryClient(CHAIN_ID_WORMCHAIN$1)).ibc.channel.channel(IBC_PORT,ht)).channel)==null?void 0:Un.counterparty)==null?void 0:Fn.channelId;if(!$n)throw new Error(`No destination channel found on chain ${dt}`);return $n}async function getIbcSourceChannel(dt){const ht=config$2.wh.toChainId(dt);if(!isGatewayChain(ht))throw new Error(`Chain ${dt} is not a gateway chain`);const Dt=await getCosmWasmClient(CHAIN_ID_WORMCHAIN$1),{channel:Cn}=await Dt.queryContractSmart(getTranslatorAddress(),{ibc_channel:{chain_id:ht}});return Cn}function getTransactionIBCTransferInfo(dt,ht){return getIBCTransferInfoFromEvents(dt.events,ht)}function getIBCTransferInfoFromEvents(dt,ht){const Dt=searchCosmosEvents(`${ht}.packet_sequence`,dt),Cn=searchCosmosEvents(`${ht}.packet_timeout_timestamp`,dt),$n=searchCosmosEvents(`${ht}.packet_src_channel`,dt),Un=searchCosmosEvents(`${ht}.packet_dst_channel`,dt),Fn=searchCosmosEvents(`${ht}.packet_data`,dt);if(!Dt||!Cn||!$n||!Un)throw new Error("Missing packet information in transaction events");return{sequence:Dt,timeout:Cn,srcChannel:$n,dstChannel:Un,data:Fn}}async function findDestinationIBCTransferTx(dt,ht){const Cn=await(await getCosmWasmClient(dt)).searchTx([{key:"write_acknowledgement.packet_sequence",value:ht.sequence},{key:"write_acknowledgement.packet_timeout_timestamp",value:ht.timeout},{key:"write_acknowledgement.packet_src_channel",value:ht.srcChannel},{key:"write_acknowledgement.packet_dst_channel",value:ht.dstChannel}]);if(Cn.length!==0){if(Cn.length>1)throw new Error(`Multiple transactions found for the same packet on chain ${dt}`);return Cn[0]}}async function fetchRedeemedEventNonCosmosSource(dt){const ht=await getCosmWasmClient(CHAIN_ID_WORMCHAIN$1);if(!dt.payload)throw new Error("Missing payload from transfer");const Dt=await ht.searchTx([{key:"wasm.action",value:"complete_transfer_with_payload"},{key:"wasm.recipient",value:getTranslatorAddress()},{key:"wasm.transfer_payload",value:dist$8.Buffer.from(arrayify(dt.payload)).toString("base64")}]);if(Dt.length===0)return null;if(Dt.length>1)throw new Error("Multiple transactions found");const Cn=getTransactionIBCTransferInfo(Dt[0],"send_packet"),$n=await findDestinationIBCTransferTx(dt.toChain,Cn);if(!$n)throw new Error(`No redeem transaction found on chain ${dt.toChain}`);return $n.hash}async function fetchRedeemedEventCosmosSource(dt){if(!isGatewayChain(dt.toChain))return await new BridgeRoute().tryFetchRedeemTx(dt)||null;const Dt=await(await getCosmWasmClient(dt.fromChain)).getTx(dt.sendTx);if(!Dt)return null;const Cn=getTransactionIBCTransferInfo(Dt,"send_packet"),$n=await findDestinationIBCTransferTx(CHAIN_ID_WORMCHAIN$1,Cn);if(!$n)return null;const Un=getTransactionIBCTransferInfo($n,"acknowledge_packet"),Fn=await findDestinationIBCTransferTx(dt.toChain,Un);return Fn?Fn.hash:null}var tx={},client={},upgrade={},timestamp={};Object.defineProperty(timestamp,"__esModule",{value:!0});timestamp.Timestamp=timestamp.protobufPackage=void 0;const binary_1=binary,helpers_1=helpers;timestamp.protobufPackage="google.protobuf";function createBaseTimestamp(){return{seconds:BigInt(0),nanos:0}}timestamp.Timestamp={typeUrl:"/google.protobuf.Timestamp",encode(dt,ht=binary_1.BinaryWriter.create()){return dt.seconds!==BigInt(0)&&ht.uint32(8).int64(dt.seconds),dt.nanos!==0&&ht.uint32(16).int32(dt.nanos),ht},decode(dt,ht){const Dt=dt instanceof binary_1.BinaryReader?dt:new binary_1.BinaryReader(dt);let Cn=ht===void 0?Dt.len:Dt.pos+ht;const $n=createBaseTimestamp();for(;Dt.pos<Cn;){const Un=Dt.uint32();switch(Un>>>3){case 1:$n.seconds=Dt.int64();break;case 2:$n.nanos=Dt.int32();break;default:Dt.skipType(Un&7);break}}return $n},fromJSON(dt){const ht=createBaseTimestamp();return(0,helpers_1.isSet)(dt.seconds)&&(ht.seconds=BigInt(dt.seconds.toString())),(0,helpers_1.isSet)(dt.nanos)&&(ht.nanos=Number(dt.nanos)),ht},toJSON(dt){const ht={};return dt.seconds!==void 0&&(ht.seconds=(dt.seconds||BigInt(0)).toString()),dt.nanos!==void 0&&(ht.nanos=Math.round(dt.nanos)),ht},fromPartial(dt){const ht=createBaseTimestamp();return dt.seconds!==void 0&&dt.seconds!==null&&(ht.seconds=BigInt(dt.seconds.toString())),ht.nanos=dt.nanos??0,ht}};(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.ModuleVersion=dt.CancelSoftwareUpgradeProposal=dt.SoftwareUpgradeProposal=dt.Plan=dt.protobufPackage=void 0;const ht=timestamp,Dt=any$1,Cn=binary,$n=helpers;dt.protobufPackage="cosmos.upgrade.v1beta1";function Un(){return{name:"",time:ht.Timestamp.fromPartial({}),height:BigInt(0),info:"",upgradedClientState:void 0}}dt.Plan={typeUrl:"/cosmos.upgrade.v1beta1.Plan",encode(Qn,qn=Cn.BinaryWriter.create()){return Qn.name!==""&&qn.uint32(10).string(Qn.name),Qn.time!==void 0&&ht.Timestamp.encode(Qn.time,qn.uint32(18).fork()).ldelim(),Qn.height!==BigInt(0)&&qn.uint32(24).int64(Qn.height),Qn.info!==""&&qn.uint32(34).string(Qn.info),Qn.upgradedClientState!==void 0&&Dt.Any.encode(Qn.upgradedClientState,qn.uint32(42).fork()).ldelim(),qn},decode(Qn,qn){const er=Qn instanceof Cn.BinaryReader?Qn:new Cn.BinaryReader(Qn);let Wn=qn===void 0?er.len:er.pos+qn;const jn=Un();for(;er.pos<Wn;){const Zn=er.uint32();switch(Zn>>>3){case 1:jn.name=er.string();break;case 2:jn.time=ht.Timestamp.decode(er,er.uint32());break;case 3:jn.height=er.int64();break;case 4:jn.info=er.string();break;case 5:jn.upgradedClientState=Dt.Any.decode(er,er.uint32());break;default:er.skipType(Zn&7);break}}return jn},fromJSON(Qn){const qn=Un();return(0,$n.isSet)(Qn.name)&&(qn.name=String(Qn.name)),(0,$n.isSet)(Qn.time)&&(qn.time=(0,$n.fromJsonTimestamp)(Qn.time)),(0,$n.isSet)(Qn.height)&&(qn.height=BigInt(Qn.height.toString())),(0,$n.isSet)(Qn.info)&&(qn.info=String(Qn.info)),(0,$n.isSet)(Qn.upgradedClientState)&&(qn.upgradedClientState=Dt.Any.fromJSON(Qn.upgradedClientState)),qn},toJSON(Qn){const qn={};return Qn.name!==void 0&&(qn.name=Qn.name),Qn.time!==void 0&&(qn.time=(0,$n.fromTimestamp)(Qn.time).toISOString()),Qn.height!==void 0&&(qn.height=(Qn.height||BigInt(0)).toString()),Qn.info!==void 0&&(qn.info=Qn.info),Qn.upgradedClientState!==void 0&&(qn.upgradedClientState=Qn.upgradedClientState?Dt.Any.toJSON(Qn.upgradedClientState):void 0),qn},fromPartial(Qn){const qn=Un();return qn.name=Qn.name??"",Qn.time!==void 0&&Qn.time!==null&&(qn.time=ht.Timestamp.fromPartial(Qn.time)),Qn.height!==void 0&&Qn.height!==null&&(qn.height=BigInt(Qn.height.toString())),qn.info=Qn.info??"",Qn.upgradedClientState!==void 0&&Qn.upgradedClientState!==null&&(qn.upgradedClientState=Dt.Any.fromPartial(Qn.upgradedClientState)),qn}};function Fn(){return{title:"",description:"",plan:dt.Plan.fromPartial({})}}dt.SoftwareUpgradeProposal={typeUrl:"/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal",encode(Qn,qn=Cn.BinaryWriter.create()){return Qn.title!==""&&qn.uint32(10).string(Qn.title),Qn.description!==""&&qn.uint32(18).string(Qn.description),Qn.plan!==void 0&&dt.Plan.encode(Qn.plan,qn.uint32(26).fork()).ldelim(),qn},decode(Qn,qn){const er=Qn instanceof Cn.BinaryReader?Qn:new Cn.BinaryReader(Qn);let Wn=qn===void 0?er.len:er.pos+qn;const jn=Fn();for(;er.pos<Wn;){const Zn=er.uint32();switch(Zn>>>3){case 1:jn.title=er.string();break;case 2:jn.description=er.string();break;case 3:jn.plan=dt.Plan.decode(er,er.uint32());break;default:er.skipType(Zn&7);break}}return jn},fromJSON(Qn){const qn=Fn();return(0,$n.isSet)(Qn.title)&&(qn.title=String(Qn.title)),(0,$n.isSet)(Qn.description)&&(qn.description=String(Qn.description)),(0,$n.isSet)(Qn.plan)&&(qn.plan=dt.Plan.fromJSON(Qn.plan)),qn},toJSON(Qn){const qn={};return Qn.title!==void 0&&(qn.title=Qn.title),Qn.description!==void 0&&(qn.description=Qn.description),Qn.plan!==void 0&&(qn.plan=Qn.plan?dt.Plan.toJSON(Qn.plan):void 0),qn},fromPartial(Qn){const qn=Fn();return qn.title=Qn.title??"",qn.description=Qn.description??"",Qn.plan!==void 0&&Qn.plan!==null&&(qn.plan=dt.Plan.fromPartial(Qn.plan)),qn}};function Hn(){return{title:"",description:""}}dt.CancelSoftwareUpgradeProposal={typeUrl:"/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal",encode(Qn,qn=Cn.BinaryWriter.create()){return Qn.title!==""&&qn.uint32(10).string(Qn.title),Qn.description!==""&&qn.uint32(18).string(Qn.description),qn},decode(Qn,qn){const er=Qn instanceof Cn.BinaryReader?Qn:new Cn.BinaryReader(Qn);let Wn=qn===void 0?er.len:er.pos+qn;const jn=Hn();for(;er.pos<Wn;){const Zn=er.uint32();switch(Zn>>>3){case 1:jn.title=er.string();break;case 2:jn.description=er.string();break;default:er.skipType(Zn&7);break}}return jn},fromJSON(Qn){const qn=Hn();return(0,$n.isSet)(Qn.title)&&(qn.title=String(Qn.title)),(0,$n.isSet)(Qn.description)&&(qn.description=String(Qn.description)),qn},toJSON(Qn){const qn={};return Qn.title!==void 0&&(qn.title=Qn.title),Qn.description!==void 0&&(qn.description=Qn.description),qn},fromPartial(Qn){const qn=Hn();return qn.title=Qn.title??"",qn.description=Qn.description??"",qn}};function Gn(){return{name:"",version:BigInt(0)}}dt.ModuleVersion={typeUrl:"/cosmos.upgrade.v1beta1.ModuleVersion",encode(Qn,qn=Cn.BinaryWriter.create()){return Qn.name!==""&&qn.uint32(10).string(Qn.name),Qn.version!==BigInt(0)&&qn.uint32(16).uint64(Qn.version),qn},decode(Qn,qn){const er=Qn instanceof Cn.BinaryReader?Qn:new Cn.BinaryReader(Qn);let Wn=qn===void 0?er.len:er.pos+qn;const jn=Gn();for(;er.pos<Wn;){const Zn=er.uint32();switch(Zn>>>3){case 1:jn.name=er.string();break;case 2:jn.version=er.uint64();break;default:er.skipType(Zn&7);break}}return jn},fromJSON(Qn){const qn=Gn();return(0,$n.isSet)(Qn.name)&&(qn.name=String(Qn.name)),(0,$n.isSet)(Qn.version)&&(qn.version=BigInt(Qn.version.toString())),qn},toJSON(Qn){const qn={};return Qn.name!==void 0&&(qn.name=Qn.name),Qn.version!==void 0&&(qn.version=(Qn.version||BigInt(0)).toString()),qn},fromPartial(Qn){const qn=Gn();return qn.name=Qn.name??"",Qn.version!==void 0&&Qn.version!==null&&(qn.version=BigInt(Qn.version.toString())),qn}}})(upgrade);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.Params=dt.Height=dt.UpgradeProposal=dt.ClientUpdateProposal=dt.ClientConsensusStates=dt.ConsensusStateWithHeight=dt.IdentifiedClientState=dt.protobufPackage=void 0;const ht=any$1,Dt=upgrade,Cn=binary,$n=helpers;dt.protobufPackage="ibc.core.client.v1";function Un(){return{clientId:"",clientState:void 0}}dt.IdentifiedClientState={typeUrl:"/ibc.core.client.v1.IdentifiedClientState",encode(Wn,jn=Cn.BinaryWriter.create()){return Wn.clientId!==""&&jn.uint32(10).string(Wn.clientId),Wn.clientState!==void 0&&ht.Any.encode(Wn.clientState,jn.uint32(18).fork()).ldelim(),jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=Un();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.clientId=Zn.string();break;case 2:ar.clientState=ht.Any.decode(Zn,Zn.uint32());break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=Un();return(0,$n.isSet)(Wn.clientId)&&(jn.clientId=String(Wn.clientId)),(0,$n.isSet)(Wn.clientState)&&(jn.clientState=ht.Any.fromJSON(Wn.clientState)),jn},toJSON(Wn){const jn={};return Wn.clientId!==void 0&&(jn.clientId=Wn.clientId),Wn.clientState!==void 0&&(jn.clientState=Wn.clientState?ht.Any.toJSON(Wn.clientState):void 0),jn},fromPartial(Wn){const jn=Un();return jn.clientId=Wn.clientId??"",Wn.clientState!==void 0&&Wn.clientState!==null&&(jn.clientState=ht.Any.fromPartial(Wn.clientState)),jn}};function Fn(){return{height:dt.Height.fromPartial({}),consensusState:void 0}}dt.ConsensusStateWithHeight={typeUrl:"/ibc.core.client.v1.ConsensusStateWithHeight",encode(Wn,jn=Cn.BinaryWriter.create()){return Wn.height!==void 0&&dt.Height.encode(Wn.height,jn.uint32(10).fork()).ldelim(),Wn.consensusState!==void 0&&ht.Any.encode(Wn.consensusState,jn.uint32(18).fork()).ldelim(),jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=Fn();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.height=dt.Height.decode(Zn,Zn.uint32());break;case 2:ar.consensusState=ht.Any.decode(Zn,Zn.uint32());break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=Fn();return(0,$n.isSet)(Wn.height)&&(jn.height=dt.Height.fromJSON(Wn.height)),(0,$n.isSet)(Wn.consensusState)&&(jn.consensusState=ht.Any.fromJSON(Wn.consensusState)),jn},toJSON(Wn){const jn={};return Wn.height!==void 0&&(jn.height=Wn.height?dt.Height.toJSON(Wn.height):void 0),Wn.consensusState!==void 0&&(jn.consensusState=Wn.consensusState?ht.Any.toJSON(Wn.consensusState):void 0),jn},fromPartial(Wn){const jn=Fn();return Wn.height!==void 0&&Wn.height!==null&&(jn.height=dt.Height.fromPartial(Wn.height)),Wn.consensusState!==void 0&&Wn.consensusState!==null&&(jn.consensusState=ht.Any.fromPartial(Wn.consensusState)),jn}};function Hn(){return{clientId:"",consensusStates:[]}}dt.ClientConsensusStates={typeUrl:"/ibc.core.client.v1.ClientConsensusStates",encode(Wn,jn=Cn.BinaryWriter.create()){Wn.clientId!==""&&jn.uint32(10).string(Wn.clientId);for(const Zn of Wn.consensusStates)dt.ConsensusStateWithHeight.encode(Zn,jn.uint32(18).fork()).ldelim();return jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=Hn();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.clientId=Zn.string();break;case 2:ar.consensusStates.push(dt.ConsensusStateWithHeight.decode(Zn,Zn.uint32()));break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=Hn();return(0,$n.isSet)(Wn.clientId)&&(jn.clientId=String(Wn.clientId)),Array.isArray(Wn==null?void 0:Wn.consensusStates)&&(jn.consensusStates=Wn.consensusStates.map(Zn=>dt.ConsensusStateWithHeight.fromJSON(Zn))),jn},toJSON(Wn){const jn={};return Wn.clientId!==void 0&&(jn.clientId=Wn.clientId),Wn.consensusStates?jn.consensusStates=Wn.consensusStates.map(Zn=>Zn?dt.ConsensusStateWithHeight.toJSON(Zn):void 0):jn.consensusStates=[],jn},fromPartial(Wn){var Zn;const jn=Hn();return jn.clientId=Wn.clientId??"",jn.consensusStates=((Zn=Wn.consensusStates)==null?void 0:Zn.map(Xn=>dt.ConsensusStateWithHeight.fromPartial(Xn)))||[],jn}};function Gn(){return{title:"",description:"",subjectClientId:"",substituteClientId:""}}dt.ClientUpdateProposal={typeUrl:"/ibc.core.client.v1.ClientUpdateProposal",encode(Wn,jn=Cn.BinaryWriter.create()){return Wn.title!==""&&jn.uint32(10).string(Wn.title),Wn.description!==""&&jn.uint32(18).string(Wn.description),Wn.subjectClientId!==""&&jn.uint32(26).string(Wn.subjectClientId),Wn.substituteClientId!==""&&jn.uint32(34).string(Wn.substituteClientId),jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=Gn();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.title=Zn.string();break;case 2:ar.description=Zn.string();break;case 3:ar.subjectClientId=Zn.string();break;case 4:ar.substituteClientId=Zn.string();break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=Gn();return(0,$n.isSet)(Wn.title)&&(jn.title=String(Wn.title)),(0,$n.isSet)(Wn.description)&&(jn.description=String(Wn.description)),(0,$n.isSet)(Wn.subjectClientId)&&(jn.subjectClientId=String(Wn.subjectClientId)),(0,$n.isSet)(Wn.substituteClientId)&&(jn.substituteClientId=String(Wn.substituteClientId)),jn},toJSON(Wn){const jn={};return Wn.title!==void 0&&(jn.title=Wn.title),Wn.description!==void 0&&(jn.description=Wn.description),Wn.subjectClientId!==void 0&&(jn.subjectClientId=Wn.subjectClientId),Wn.substituteClientId!==void 0&&(jn.substituteClientId=Wn.substituteClientId),jn},fromPartial(Wn){const jn=Gn();return jn.title=Wn.title??"",jn.description=Wn.description??"",jn.subjectClientId=Wn.subjectClientId??"",jn.substituteClientId=Wn.substituteClientId??"",jn}};function Qn(){return{title:"",description:"",plan:Dt.Plan.fromPartial({}),upgradedClientState:void 0}}dt.UpgradeProposal={typeUrl:"/ibc.core.client.v1.UpgradeProposal",encode(Wn,jn=Cn.BinaryWriter.create()){return Wn.title!==""&&jn.uint32(10).string(Wn.title),Wn.description!==""&&jn.uint32(18).string(Wn.description),Wn.plan!==void 0&&Dt.Plan.encode(Wn.plan,jn.uint32(26).fork()).ldelim(),Wn.upgradedClientState!==void 0&&ht.Any.encode(Wn.upgradedClientState,jn.uint32(34).fork()).ldelim(),jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=Qn();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.title=Zn.string();break;case 2:ar.description=Zn.string();break;case 3:ar.plan=Dt.Plan.decode(Zn,Zn.uint32());break;case 4:ar.upgradedClientState=ht.Any.decode(Zn,Zn.uint32());break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=Qn();return(0,$n.isSet)(Wn.title)&&(jn.title=String(Wn.title)),(0,$n.isSet)(Wn.description)&&(jn.description=String(Wn.description)),(0,$n.isSet)(Wn.plan)&&(jn.plan=Dt.Plan.fromJSON(Wn.plan)),(0,$n.isSet)(Wn.upgradedClientState)&&(jn.upgradedClientState=ht.Any.fromJSON(Wn.upgradedClientState)),jn},toJSON(Wn){const jn={};return Wn.title!==void 0&&(jn.title=Wn.title),Wn.description!==void 0&&(jn.description=Wn.description),Wn.plan!==void 0&&(jn.plan=Wn.plan?Dt.Plan.toJSON(Wn.plan):void 0),Wn.upgradedClientState!==void 0&&(jn.upgradedClientState=Wn.upgradedClientState?ht.Any.toJSON(Wn.upgradedClientState):void 0),jn},fromPartial(Wn){const jn=Qn();return jn.title=Wn.title??"",jn.description=Wn.description??"",Wn.plan!==void 0&&Wn.plan!==null&&(jn.plan=Dt.Plan.fromPartial(Wn.plan)),Wn.upgradedClientState!==void 0&&Wn.upgradedClientState!==null&&(jn.upgradedClientState=ht.Any.fromPartial(Wn.upgradedClientState)),jn}};function qn(){return{revisionNumber:BigInt(0),revisionHeight:BigInt(0)}}dt.Height={typeUrl:"/ibc.core.client.v1.Height",encode(Wn,jn=Cn.BinaryWriter.create()){return Wn.revisionNumber!==BigInt(0)&&jn.uint32(8).uint64(Wn.revisionNumber),Wn.revisionHeight!==BigInt(0)&&jn.uint32(16).uint64(Wn.revisionHeight),jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=qn();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.revisionNumber=Zn.uint64();break;case 2:ar.revisionHeight=Zn.uint64();break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=qn();return(0,$n.isSet)(Wn.revisionNumber)&&(jn.revisionNumber=BigInt(Wn.revisionNumber.toString())),(0,$n.isSet)(Wn.revisionHeight)&&(jn.revisionHeight=BigInt(Wn.revisionHeight.toString())),jn},toJSON(Wn){const jn={};return Wn.revisionNumber!==void 0&&(jn.revisionNumber=(Wn.revisionNumber||BigInt(0)).toString()),Wn.revisionHeight!==void 0&&(jn.revisionHeight=(Wn.revisionHeight||BigInt(0)).toString()),jn},fromPartial(Wn){const jn=qn();return Wn.revisionNumber!==void 0&&Wn.revisionNumber!==null&&(jn.revisionNumber=BigInt(Wn.revisionNumber.toString())),Wn.revisionHeight!==void 0&&Wn.revisionHeight!==null&&(jn.revisionHeight=BigInt(Wn.revisionHeight.toString())),jn}};function er(){return{allowedClients:[]}}dt.Params={typeUrl:"/ibc.core.client.v1.Params",encode(Wn,jn=Cn.BinaryWriter.create()){for(const Zn of Wn.allowedClients)jn.uint32(10).string(Zn);return jn},decode(Wn,jn){const Zn=Wn instanceof Cn.BinaryReader?Wn:new Cn.BinaryReader(Wn);let Xn=jn===void 0?Zn.len:Zn.pos+jn;const ar=er();for(;Zn.pos<Xn;){const dr=Zn.uint32();switch(dr>>>3){case 1:ar.allowedClients.push(Zn.string());break;default:Zn.skipType(dr&7);break}}return ar},fromJSON(Wn){const jn=er();return Array.isArray(Wn==null?void 0:Wn.allowedClients)&&(jn.allowedClients=Wn.allowedClients.map(Zn=>String(Zn))),jn},toJSON(Wn){const jn={};return Wn.allowedClients?jn.allowedClients=Wn.allowedClients.map(Zn=>Zn):jn.allowedClients=[],jn},fromPartial(Wn){var Zn;const jn=er();return jn.allowedClients=((Zn=Wn.allowedClients)==null?void 0:Zn.map(Xn=>Xn))||[],jn}}})(client);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.MsgClientImpl=dt.MsgTransferResponse=dt.MsgTransfer=dt.protobufPackage=void 0;const ht=coin,Dt=client,Cn=binary,$n=helpers;dt.protobufPackage="ibc.applications.transfer.v1";function Un(){return{sourcePort:"",sourceChannel:"",token:ht.Coin.fromPartial({}),sender:"",receiver:"",timeoutHeight:Dt.Height.fromPartial({}),timeoutTimestamp:BigInt(0),memo:""}}dt.MsgTransfer={typeUrl:"/ibc.applications.transfer.v1.MsgTransfer",encode(Gn,Qn=Cn.BinaryWriter.create()){return Gn.sourcePort!==""&&Qn.uint32(10).string(Gn.sourcePort),Gn.sourceChannel!==""&&Qn.uint32(18).string(Gn.sourceChannel),Gn.token!==void 0&&ht.Coin.encode(Gn.token,Qn.uint32(26).fork()).ldelim(),Gn.sender!==""&&Qn.uint32(34).string(Gn.sender),Gn.receiver!==""&&Qn.uint32(42).string(Gn.receiver),Gn.timeoutHeight!==void 0&&Dt.Height.encode(Gn.timeoutHeight,Qn.uint32(50).fork()).ldelim(),Gn.timeoutTimestamp!==BigInt(0)&&Qn.uint32(56).uint64(Gn.timeoutTimestamp),Gn.memo!==""&&Qn.uint32(66).string(Gn.memo),Qn},decode(Gn,Qn){const qn=Gn instanceof Cn.BinaryReader?Gn:new Cn.BinaryReader(Gn);let er=Qn===void 0?qn.len:qn.pos+Qn;const Wn=Un();for(;qn.pos<er;){const jn=qn.uint32();switch(jn>>>3){case 1:Wn.sourcePort=qn.string();break;case 2:Wn.sourceChannel=qn.string();break;case 3:Wn.token=ht.Coin.decode(qn,qn.uint32());break;case 4:Wn.sender=qn.string();break;case 5:Wn.receiver=qn.string();break;case 6:Wn.timeoutHeight=Dt.Height.decode(qn,qn.uint32());break;case 7:Wn.timeoutTimestamp=qn.uint64();break;case 8:Wn.memo=qn.string();break;default:qn.skipType(jn&7);break}}return Wn},fromJSON(Gn){const Qn=Un();return(0,$n.isSet)(Gn.sourcePort)&&(Qn.sourcePort=String(Gn.sourcePort)),(0,$n.isSet)(Gn.sourceChannel)&&(Qn.sourceChannel=String(Gn.sourceChannel)),(0,$n.isSet)(Gn.token)&&(Qn.token=ht.Coin.fromJSON(Gn.token)),(0,$n.isSet)(Gn.sender)&&(Qn.sender=String(Gn.sender)),(0,$n.isSet)(Gn.receiver)&&(Qn.receiver=String(Gn.receiver)),(0,$n.isSet)(Gn.timeoutHeight)&&(Qn.timeoutHeight=Dt.Height.fromJSON(Gn.timeoutHeight)),(0,$n.isSet)(Gn.timeoutTimestamp)&&(Qn.timeoutTimestamp=BigInt(Gn.timeoutTimestamp.toString())),(0,$n.isSet)(Gn.memo)&&(Qn.memo=String(Gn.memo)),Qn},toJSON(Gn){const Qn={};return Gn.sourcePort!==void 0&&(Qn.sourcePort=Gn.sourcePort),Gn.sourceChannel!==void 0&&(Qn.sourceChannel=Gn.sourceChannel),Gn.token!==void 0&&(Qn.token=Gn.token?ht.Coin.toJSON(Gn.token):void 0),Gn.sender!==void 0&&(Qn.sender=Gn.sender),Gn.receiver!==void 0&&(Qn.receiver=Gn.receiver),Gn.timeoutHeight!==void 0&&(Qn.timeoutHeight=Gn.timeoutHeight?Dt.Height.toJSON(Gn.timeoutHeight):void 0),Gn.timeoutTimestamp!==void 0&&(Qn.timeoutTimestamp=(Gn.timeoutTimestamp||BigInt(0)).toString()),Gn.memo!==void 0&&(Qn.memo=Gn.memo),Qn},fromPartial(Gn){const Qn=Un();return Qn.sourcePort=Gn.sourcePort??"",Qn.sourceChannel=Gn.sourceChannel??"",Gn.token!==void 0&&Gn.token!==null&&(Qn.token=ht.Coin.fromPartial(Gn.token)),Qn.sender=Gn.sender??"",Qn.receiver=Gn.receiver??"",Gn.timeoutHeight!==void 0&&Gn.timeoutHeight!==null&&(Qn.timeoutHeight=Dt.Height.fromPartial(Gn.timeoutHeight)),Gn.timeoutTimestamp!==void 0&&Gn.timeoutTimestamp!==null&&(Qn.timeoutTimestamp=BigInt(Gn.timeoutTimestamp.toString())),Qn.memo=Gn.memo??"",Qn}};function Fn(){return{sequence:BigInt(0)}}dt.MsgTransferResponse={typeUrl:"/ibc.applications.transfer.v1.MsgTransferResponse",encode(Gn,Qn=Cn.BinaryWriter.create()){return Gn.sequence!==BigInt(0)&&Qn.uint32(8).uint64(Gn.sequence),Qn},decode(Gn,Qn){const qn=Gn instanceof Cn.BinaryReader?Gn:new Cn.BinaryReader(Gn);let er=Qn===void 0?qn.len:qn.pos+Qn;const Wn=Fn();for(;qn.pos<er;){const jn=qn.uint32();switch(jn>>>3){case 1:Wn.sequence=qn.uint64();break;default:qn.skipType(jn&7);break}}return Wn},fromJSON(Gn){const Qn=Fn();return(0,$n.isSet)(Gn.sequence)&&(Qn.sequence=BigInt(Gn.sequence.toString())),Qn},toJSON(Gn){const Qn={};return Gn.sequence!==void 0&&(Qn.sequence=(Gn.sequence||BigInt(0)).toString()),Qn},fromPartial(Gn){const Qn=Fn();return Gn.sequence!==void 0&&Gn.sequence!==null&&(Qn.sequence=BigInt(Gn.sequence.toString())),Qn}};class Hn{constructor(Qn){this.rpc=Qn,this.Transfer=this.Transfer.bind(this)}Transfer(Qn){const qn=dt.MsgTransfer.encode(Qn).finish();return this.rpc.request("ibc.applications.transfer.v1.Msg","Transfer",qn).then(Wn=>dt.MsgTransferResponse.decode(new Cn.BinaryReader(Wn)))}}dt.MsgClientImpl=Hn})(tx);function buildFromCosmosPayloadMemo(dt,ht){const Dt=Math.round(Math.random()*1e4),Cn=config$2.wh.getContext(dt),$n=dist$8.Buffer.from(isGatewayChain(dt)?ht:Cn.formatAddress(ht)).toString("base64");return JSON.stringify({gateway_ibc_token_bridge_payload:{gateway_transfer:{chain:dt,nonce:Dt,recipient:$n,fee:"0"}}})}async function fromCosmos(dt,ht,Dt,Cn,$n,Un,Fn){if(dt==="native")throw new Error("Native token not supported");let Hn=Un;$n===CHAIN_ID_SOLANA$1&&(Hn=(await config$2.wh.getContext(CHAIN_ID_SOLANA$1).getAssociatedTokenAddress(dt,Un)).toString());const Gn=buildFromCosmosPayloadMemo($n,Hn),Qn=await config$2.wh.getForeignAsset(dt,Dt);if(!Qn)throw new Error("Could not derive IBC asset denom");const qn={denom:Qn,amount:ht},er=await getIbcDestinationChannel(Dt),Wn=tx.MsgTransfer.fromPartial({sourcePort:IBC_PORT,sourceChannel:er,sender:Cn,receiver:getTranslatorAddress(),token:qn,timeoutTimestamp:BigInt(millisToNano(Date.now()+IBC_TIMEOUT_MILLIS)),memo:Gn}),jn={typeUrl:IBC_MSG_TYPE,value:{...Wn,timeoutHeight:Wn.timeoutHeight?{revisionHeight:Long$S.fromNumber(Number(Wn.timeoutHeight.revisionHeight)),revisionNumber:Long$S.fromNumber(Number(Wn.timeoutHeight.revisionNumber))}:void 0,timeoutTimestamp:Long$S.fromNumber(Number(Wn.timeoutTimestamp))}},Zn=config$2.wh.toChainName(Dt),Xn=getNativeDenom(Zn),ar={fee:build$9.calculateFee(1e6,`1.0${Xn}`),msgs:[jn],memo:""};return signAndSendTransaction(config$2.wh.toChainName(Dt),ar,TransferWallet.SENDING)}function buildToCosmosPayload(dt,ht){const Dt=Math.round(Math.random()*1e4),Cn=dist$8.Buffer.from(ht).toString("base64"),$n={gateway_transfer:{chain:dt,nonce:Dt,recipient:Cn,fee:"0"}};return dist$8.Buffer.from(JSON.stringify($n))}async function toCosmos(dt,ht,Dt,Cn,$n,Un,Fn){const Hn=buildToCosmosPayload($n,Un),Gn=await config$2.wh.send(dt,ht,Dt,Cn,CHAIN_ID_WORMCHAIN$1,getTranslatorAddress(),void 0,Hn);return signAndSendTransaction(config$2.wh.toChainName(Dt),Gn,TransferWallet.SENDING)}async function getUnsignedMessageFromCosmos(dt,ht){const Cn=await(await getCosmWasmClient(ht)).getTx(dt);if(!Cn)throw new Error(`Transaction ${dt} not found on chain ${ht}`);const $n=searchCosmosEvents("transfer.sender",Cn.events);if(!$n)throw new Error("Missing sender in transaction events");const Un=getTransactionIBCTransferInfo(Cn,"send_packet");if(!Un.data)throw new Error("Missing packet data");const Fn=JSON.parse(Un.data),Hn=JSON.parse(Fn.memo),Gn=config$2.wh.toChainName(Hn.gateway_ibc_token_bridge_payload.gateway_transfer.chain),Qn=config$2.wh.getContext(Gn),qn=Hn.gateway_ibc_token_bridge_payload.gateway_transfer.recipient,er=isGatewayChain(Gn)?dist$8.Buffer.from(qn,"base64").toString():Qn.parseAddress("0x"+dist$8.Buffer.from(qn,"base64").toString("hex")),{tokenAddress:Wn,tokenChain:jn}=await getOriginalIbcDenomInfo(Fn.denom);return{...await adaptParsedMessage({fromChain:ht,sendTx:Cn.hash,toChain:Gn,amount:BigNumber$2.from(Fn.amount),recipient:er,block:Cn.height,sender:Fn.sender,gasFee:BigNumber$2.from(Cn.gasUsed.toString()),payloadID:1,tokenChain:jn,tokenAddress:Wn,tokenId:{address:Wn,chain:jn}}),fromChain:ht,sender:$n}}async function getOriginalIbcDenomInfo(dt){const ht=dt.split("/");if(ht.length!==5)throw new Error(`Unexpected transfer denom ${dt}`);const Dt=ht.slice(2).join("/"),Cn=factoryToCW20(Dt),$n=config$2.wh.getContext(CHAIN_ID_WORMCHAIN$1),{chainId:Un,assetAddress:Fn}=await $n.getOriginalAsset(CHAIN_ID_WORMCHAIN$1,Cn),Hn=config$2.wh.toChainName(Un);return{tokenAddress:await config$2.wh.getContext(Hn).parseAssetAddress(hexlify(Fn)),tokenChain:Hn}}async function getUnsignedMessageFromNonCosmos(dt,ht){const Dt=await config$2.wh.getMessage(dt,ht,!1);if(!Dt.payload)throw new Error(`Missing payload from message ${dt} on chain ${ht}`);const Cn=JSON.parse(dist$8.Buffer.from(utils$P.arrayify(Dt.payload,{allowMissingPrefix:!0})).toString());return{...await adaptParsedMessage({...Dt,recipient:dist$8.Buffer.from(Cn.gateway_transfer.recipient,"base64").toString(),toChain:config$2.wh.toChainName(Cn.gateway_transfer.chain)}),relayerFee:"0",toNativeTokenAmount:"0"}}function factoryToCW20(dt){if(!dt.startsWith("factory/"))return"";const ht=dt.split("/")[2];return ht?humanAddress("wormhole",utils$P.base58.decode(ht)):""}async function getMessageFromWormchain(dt,ht){const Cn=await(await getCosmWasmClient(ht)).getTx(dt);if(!Cn)throw new Error(`Transaction ${dt} not found on chain ${ht}`);const $n=searchCosmosEvents("transfer.sender",Cn.events);if(!$n)throw new Error("Missing sender in transaction events");const Un=getTransactionIBCTransferInfo(Cn,"send_packet"),Fn=await findDestinationIBCTransferTx(CHAIN_ID_WORMCHAIN$1,Un);if(!Fn)throw new Error(`No wormchain transaction found for packet on chain ${ht}`);const Hn=await getWormchainEmittedMessage(Fn.hash,Un);return{...await adaptParsedMessage(Hn),fromChain:config$2.wh.toChainName(ht),sendTx:dt,sender:$n}}async function getWormchainEmittedMessage(dt,ht){const Cn=await(await getCosmWasmClient(CHAIN_ID_WORMCHAIN$1)).getTx(dt);if(!Cn)throw new Error("tx not found");const $n=getWasmEventForTransfer(Cn.events,ht),Un=searchCosmosEvents("wasm.message.message",[$n]);if(!Un)throw new Error("message/transfer payload not found");const Fn=searchCosmosEvents("wasm.message.sequence",[$n]);if(!Fn)throw new Error("sequence not found");const Hn=searchCosmosEvents("wasm.message.sender",[$n]);if(!Hn)throw new Error("emitter not found");const Gn=parseTokenTransferPayload$1(dist$8.Buffer.from(Un,"hex")),Qn=build$8.decodeTxRaw(Cn.tx),{sender:qn}=tx$1.MsgExecuteContract.decode(Qn.body.messages[0].value),er=config$2.wh.getContext(Gn.toChain),jn=await config$2.wh.getContext(Gn.tokenChain).parseAssetAddress(utils$P.hexlify(Gn.tokenAddress)),Zn=config$2.wh.toChainName(Gn.tokenChain);return{sendTx:Cn.hash,sender:qn,amount:BigNumber$2.from(Gn.amount),payloadID:Gn.payloadType,recipient:er.parseAddress(utils$P.hexlify(Gn.to)),toChain:config$2.wh.toChainName(Gn.toChain),fromChain:"wormchain",tokenAddress:jn,tokenChain:Zn,tokenId:{address:jn,chain:Zn},sequence:BigNumber$2.from(Fn),emitterAddress:Hn,block:Cn.height,gasFee:BigNumber$2.from(Cn.gasUsed),payload:Gn.tokenTransferPayload.length?utils$P.hexlify(Gn.tokenTransferPayload):void 0}}function getWasmEventForTransfer(dt,ht){let Dt=null;for(const Cn of dt){if(Cn.type==="wasm"&&(Dt=Cn),Cn.type!=="write_acknowledgement")continue;const $n=getIBCTransferInfoFromEvents([Cn],"write_acknowledgement");if($n.sequence!==ht.sequence||$n.srcChannel!==ht.srcChannel||$n.dstChannel!==ht.dstChannel)break;if(Dt)return Dt}throw new Error(`No log found for IBC transfer sequence ${ht.sequence}`)}class CosmosGatewayRoute extends BaseRoute{constructor(){super(...arguments);Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!1);Ll(this,"AUTOMATIC_DEPOSIT",!1);Ll(this,"TYPE",Route.CosmosGateway)}isSupportedChain(Dt){return isGatewayChain(Dt)}async isRouteSupported(Dt,Cn,$n,Un,Fn){return config$2.routes.includes(Route.CosmosGateway)?isGatewayChain(config$2.wh.toChainId(Un))||isGatewayChain(config$2.wh.toChainId(Fn)):!1}async computeReceiveAmount(Dt,Cn,$n,Un,Fn,Hn){return Dt||0}async computeSendAmount(Dt,Cn){return Dt||0}async validate(Dt,Cn,$n,Un,Fn,Hn,Gn){throw new Error("not implemented")}async estimateSendGas(Dt,Cn,$n,Un,Fn,Hn,Gn){const Qn=await config$2.wh.estimateSendGas(Dt,Cn,$n,Un,CHAIN_ID_WORMCHAIN$1,getTranslatorAddress());if(!Qn)throw new Error("could not estimate gas fee");return Qn}async estimateClaimGas(Dt,Cn){throw Cn?new Error("not implemented"):new Error("Cannot estimate gas without a signed message")}getForeignAsset(Dt,Cn,$n){return config$2.wh.getForeignAsset(Dt,Cn)}getMinSendAmount(Dt,Cn,$n){return 0}async send(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn){const qn=config$2.wh.toChainId($n),er=config$2.wh.toChainId(Fn),Wn=getTokenDecimals(qn,Dt),jn=parseUnits(Cn,Wn);return isGatewayChain(qn)?fromCosmos(Dt,jn.toString(),qn,Un,er,Hn):toCosmos(Dt,jn.toString(),qn,Un,er,Hn)}async manualRedeem(Dt,Cn,$n){if(!isSignedWormholeMessage(Cn))throw new Error("Signed message is not for gateway");const Un=dist$8.Buffer.from(Cn.vaa).toString("base64"),Fn={typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:tx$1.MsgExecuteContract.fromPartial({contract:getTranslatorAddress(),msg:dist$8.Buffer.from(JSON.stringify({complete_transfer_and_convert:{vaa:Un}}))})},Hn=config$2.wh.toChainName(Dt),Gn=getNativeDenom(Hn,config$2.networkLegacy),Qn={fee:build$9.calculateFee(1e6,`1.0${Gn}`),msgs:[Fn],memo:""};return signAndSendTransaction(Hn,Qn,TransferWallet.RECEIVING)}async redeem(Dt,Cn,$n){const Un=config$2.wh.toChainId(Dt);return isGatewayChain(Un)?this.manualRedeem(CHAIN_ID_WORMCHAIN$1,Cn,$n):new BridgeRoute().redeem(Dt,Cn,$n)}async getPreview(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){var ar;const Wn=config$2.wh.toChainName(Un),jn=(ar=config$2.chains[Wn])==null?void 0:ar.gasToken,Zn=jn?getDisplayName(config$2.tokens[jn]):"",Xn=calculateUSDPrice(Hn,qn,config$2.tokens[jn||""]);return[{title:"Amount",value:`${toFixedDecimals(`${$n}`,6)} ${getDisplayName(Cn)}`,valueUSD:calculateUSDPrice($n,qn,Cn)},{title:"Total fee estimates",value:`${Hn} ${Zn}`,valueUSD:Xn,rows:[{title:"Source chain gas estimate",value:Hn?`~ ${Hn} ${Zn}`:"—",valueUSD:Xn}]}]}async getRelayerFee(Dt,Cn,$n,Un){return null}async isTransferCompleted(Dt,Cn){if(!isSignedWormholeMessage(Cn))throw new Error("Signed message is not for gateway");return isGatewayChain(Dt)?!!await this.fetchRedeemTx(Cn):new BridgeRoute().isTransferCompleted(Dt,Cn)}async getMessage(Dt,Cn){const $n=config$2.wh.toChainName(Cn);return isGatewayChain($n)?getUnsignedMessageFromCosmos(Dt,$n):getUnsignedMessageFromNonCosmos(Dt,$n)}async getSignedMessage(Dt){if(isGatewayChain(Dt.fromChain)&&isGatewayChain(Dt.toChain))return{...Dt,vaa:""};const Cn=isGatewayChain(Dt.fromChain)?await getMessageFromWormchain(Dt.sendTx,Dt.fromChain):Dt,$n=await fetchVaa({...Cn,fromChain:isGatewayChain(Cn.fromChain)?"wormchain":Cn.fromChain});if(!$n)throw new Error("VAA not found");return{...Cn,vaa:hexlify($n.bytes)}}async fetchRedeemTx(Dt){if(!isSignedWormholeMessage(Dt))throw new Error("Signed message is not for gateway");return isGatewayChain(Dt.fromChain)?await fetchRedeemedEventCosmosSource(Dt):await fetchRedeemedEventNonCosmosSource(Dt)}async getTransferSourceInfo({txData:Dt,tokenPrices:Cn}){const $n=toNormalizedDecimals(Dt.amount,Dt.tokenDecimals,MAX_DECIMALS),{gasToken:Un}=config$2.chains[Dt.fromChain],Fn=config$2.tokens[Un],Hn=getTokenDecimals(toChainId$1(Fn.nativeChain),"native"),Gn=Dt.gasFee&&toDecimals(Dt.gasFee,Hn,MAX_DECIMALS),Qn=config$2.tokens[Dt.tokenKey];return[{title:"Amount",value:`${$n} ${getDisplayName(Qn)}`,valueUSD:calculateUSDPrice($n,Cn,Qn)},{title:"Gas fee",value:Gn?`${Gn} ${getDisplayName(Fn)}`:"—",valueUSD:calculateUSDPrice(Gn,Cn,Fn)}]}async getTransferDestInfo({txData:Dt,tokenPrices:Cn,receiveTx:$n,gasEstimate:Un}){const Fn=config$2.tokens[Dt.tokenKey],{gasToken:Hn}=config$2.chains[Dt.toChain];let Gn=Un;if($n){const qn=await config$2.wh.getTxGasFee(Dt.toChain,$n);qn&&(Gn=formatGasFee(Dt.toChain,qn))}const Qn=toNormalizedDecimals(Dt.amount,Dt.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${Qn} ${getDisplayName(Fn)}`,valueUSD:calculateUSDPrice(Qn,Cn,Fn)},{title:$n?"Gas fee":"Gas estimate",value:Gn?`${Gn} ${getDisplayName(config$2.tokens[Hn])}`:"—",valueUSD:calculateUSDPrice(Gn,Cn,config$2.tokens[Hn])}]}}nativeTokenAmount(Dt,Cn,$n,Un){throw new Error("Native gas drop-off not supported by this route")}maxSwapAmount(Dt,Cn,$n){throw new Error("Native gas drop-off not supported by this route")}async tryFetchRedeemTx(Dt){return await this.fetchRedeemTx(Dt)||void 0}}const ThresholdL2WormholeGateway=[{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"gateway",type:"bytes32"}],name:"GatewayAddressUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"mintingLimit",type:"uint256"}],name:"MintingLimitUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WormholeTbtcDeposited",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WormholeTbtcReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint16",name:"recipientChain",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"gateway",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"arbiterFee",type:"uint256"},{indexed:!1,internalType:"uint32",name:"nonce",type:"uint32"}],name:"WormholeTbtcSent",type:"event"},{inputs:[],name:"bridge",outputs:[{internalType:"contract IWormholeTokenBridge",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"bridgeToken",outputs:[{internalType:"contract IERC20Upgradeable",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositWormholeTbtc",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_address",type:"bytes32"}],name:"fromWormholeAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"gateways",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IWormholeTokenBridge",name:"_bridge",type:"address"},{internalType:"contract IERC20Upgradeable",name:"_bridgeToken",type:"address"},{internalType:"contract L2TBTC",name:"_tbtc",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mintedAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"mintingLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"receiveTbtc",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"arbiterFee",type:"uint256"},{internalType:"uint32",name:"nonce",type:"uint32"}],name:"sendTbtc",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"tbtc",outputs:[{internalType:"contract L2TBTC",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_address",type:"address"}],name:"toWormholeAddress",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"gateway",type:"bytes32"}],name:"updateGatewayAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_mintingLimit",type:"uint256"}],name:"updateMintingLimit",outputs:[],stateMutability:"nonpayable",type:"function"}],WormholeGatewayIdl={version:"0.1.0",name:"wormhole_gateway",instructions:[{name:"initialize",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!1,isSigner:!1,docs:["TBTC Program's mint PDA address bump is saved in this program's config. Ordinarily, we would","not have to deserialize this account. But we do in this case to make sure the TBTC program","has been initialized before this program."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"mintingLimit",type:"u64"}]},{name:"changeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1}],args:[]},{name:"cancelAuthorityChange",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[]},{name:"takeAuthority",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"pendingAuthority",isMut:!1,isSigner:!0}],args:[]},{name:"updateGatewayAddress",accounts:[{name:"custodian",isMut:!1,isSigner:!1},{name:"gatewayInfo",isMut:!0,isSigner:!1},{name:"authority",isMut:!0,isSigner:!0},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateGatewayAddressArgs"}}]},{name:"updateMintingLimit",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"authority",isMut:!1,isSigner:!0}],args:[{name:"newLimit",type:"u64"}]},{name:"receiveTbtc",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"custodian",isMut:!0,isSigner:!1},{name:"postedVaa",isMut:!1,isSigner:!1},{name:"tokenBridgeClaim",isMut:!0,isSigner:!1,docs:["transfer. By checking whether this account exists is a short-circuit way of bailing out","early if this transfer has already been redeemed (as opposed to letting the Token Bridge","instruction fail)."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1,docs:["Token account for minted tBTC.","","NOTE: Because the recipient is encoded in the transfer message payload, we can check the","authority from the deserialized VAA. But we should still check whether the authority is the","zero address in access control."]},{name:"recipient",isMut:!1,isSigner:!1,docs:["be created for him."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1,docs:["The gateway will create an associated token account for the recipient if it doesn't exist.","","NOTE: When the minting limit increases, the recipient can use this token account to mint","tBTC using the deposit_wormhole_tbtc instruction."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeRegisteredEmitter",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeMintAuthority",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"messageHash",type:{array:["u8",32]}}]},{name:"sendTbtcGateway",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"gatewayInfo",isMut:!1,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"tokenBridgeSender",isMut:!1,isSigner:!1,docs:["sign for transferring via Token Bridge program with a message."]},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcGatewayArgs"}}]},{name:"sendTbtcWrapped",accounts:[{name:"custodian",isMut:!0,isSigner:!1},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["Custody account."]},{name:"wrappedTbtcMint",isMut:!0,isSigner:!1},{name:"tbtcMint",isMut:!0,isSigner:!1},{name:"senderToken",isMut:!0,isSigner:!1},{name:"sender",isMut:!0,isSigner:!0},{name:"tokenBridgeConfig",isMut:!1,isSigner:!1},{name:"tokenBridgeWrappedAsset",isMut:!1,isSigner:!1},{name:"tokenBridgeTransferAuthority",isMut:!1,isSigner:!1},{name:"coreBridgeData",isMut:!0,isSigner:!1},{name:"coreMessage",isMut:!0,isSigner:!1},{name:"tokenBridgeCoreEmitter",isMut:!1,isSigner:!1},{name:"coreEmitterSequence",isMut:!0,isSigner:!1},{name:"coreFeeCollector",isMut:!0,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenBridgeProgram",isMut:!1,isSigner:!1},{name:"coreBridgeProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SendTbtcWrappedArgs"}}]},{name:"depositWormholeTbtc",accounts:[{name:"custodian",isMut:!0,isSigner:!1,docs:["NOTE: This account also acts as a minter for the TBTC program."]},{name:"wrappedTbtcToken",isMut:!0,isSigner:!1,docs:["This token account is owned by this program, whose mint is the wrapped TBTC mint. This PDA","address is stored in the custodian account."]},{name:"wrappedTbtcMint",isMut:!1,isSigner:!1,docs:["This mint is owned by the Wormhole Token Bridge program. This PDA address is stored in the","custodian account."]},{name:"tbtcMint",isMut:!0,isSigner:!1,docs:["This mint is owned by the TBTC program. This PDA address is stored in the custodian account."]},{name:"recipientWrappedToken",isMut:!0,isSigner:!1},{name:"recipientToken",isMut:!0,isSigner:!1},{name:"recipient",isMut:!1,isSigner:!0,docs:["This program requires that the owner of the TBTC token account sign for TBTC being minted","into his account."]},{name:"tbtcConfig",isMut:!1,isSigner:!1},{name:"tbtcMinterInfo",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"tbtcProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]}],accounts:[{name:"Custodian",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"authority",type:"publicKey"},{name:"pendingAuthority",type:{option:"publicKey"}},{name:"tbtcMint",type:"publicKey"},{name:"wrappedTbtcMint",type:"publicKey"},{name:"wrappedTbtcToken",type:"publicKey"},{name:"tokenBridgeSender",type:"publicKey"},{name:"tokenBridgeSenderBump",type:"u8"},{name:"mintingLimit",type:"u64"},{name:"mintedAmount",type:"u64"}]}},{name:"GatewayInfo",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}}],types:[{name:"UpdateGatewayAddressArgs",type:{kind:"struct",fields:[{name:"chain",type:"u16"},{name:"address",type:{array:["u8",32]}}]}},{name:"SendTbtcGatewayArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"nonce",type:"u32"}]}},{name:"SendTbtcWrappedArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:"u16"},{name:"recipient",type:{array:["u8",32]}},{name:"arbiterFee",type:"u64"},{name:"nonce",type:"u32"}]}}],events:[{name:"WormholeTbtcReceived",fields:[{name:"receiver",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"WormholeTbtcSent",fields:[{name:"amount",type:"u64",index:!1},{name:"recipientChain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1},{name:"recipient",type:{array:["u8",32]},index:!1},{name:"arbiterFee",type:"u64",index:!1},{name:"nonce",type:"u32",index:!1}]},{name:"WormholeTbtcDeposited",fields:[{name:"depositor",type:"publicKey",index:!1},{name:"amount",type:"u64",index:!1}]},{name:"GatewayAddressUpdated",fields:[{name:"chain",type:"u16",index:!1},{name:"gateway",type:{array:["u8",32]},index:!1}]},{name:"MintingLimitUpdated",fields:[{name:"mintingLimit",type:"u64",index:!1}]}],errors:[{code:6016,name:"MintingLimitExceeded",msg:"Cannot mint more than the minting limit"},{code:6032,name:"IsNotAuthority",msg:"Only custodian authority is permitted for this action"},{code:6034,name:"IsNotPendingAuthority",msg:"Not valid pending authority to take authority"},{code:6036,name:"NoPendingAuthorityChange",msg:"No pending authority"},{code:6048,name:"ZeroRecipient",msg:"0x0 recipient not allowed"},{code:6064,name:"NotEnoughWrappedTbtc",msg:"Not enough wormhole tBTC in the gateway to bridge"},{code:6080,name:"ZeroAmount",msg:"Amount must not be 0"},{code:6112,name:"TransferAlreadyRedeemed",msg:"Token Bridge transfer already redeemed"},{code:6128,name:"InvalidEthereumTbtc",msg:"Token chain and address do not match Ethereum's tBTC"},{code:6144,name:"NoTbtcTransferred",msg:"No tBTC transferred"},{code:6160,name:"RecipientZeroAddress",msg:"0x0 receiver not allowed"},{code:6176,name:"MintedAmountUnderflow",msg:"Not enough minted by the gateway to satisfy sending tBTC"},{code:6178,name:"MintedAmountOverflow",msg:"Minted amount after deposit exceeds u64"}]},TBTC_PROGRAM_ID=new PublicKey$4("Gj93RRt6QB7FjmyokAD5rcMAku7pq3Fk2Aa8y6nNbwsV");function getCustodianPDA(dt){return PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("redeemer")],new PublicKey$4(dt))[0]}function getConfigPDA(){return PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("config")],TBTC_PROGRAM_ID)[0]}function getMinterInfoPDA(dt){return PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("minter-info"),dt.toBuffer()],TBTC_PROGRAM_ID)[0]}function getCoreMessagePDA(dt,ht){const Dt=dist$8.Buffer.alloc(8);return Dt.writeBigUInt64LE(dt),PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("msg"),Dt],new PublicKey$4(ht))[0]}function getGatewayInfoPDA(dt,ht){const Dt=dist$8.Buffer.alloc(2);return Dt.writeUInt16LE(dt),PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("gateway-info"),Dt],new PublicKey$4(ht))[0]}function getTokenBridgeCoreEmitter(dt){const[ht]=PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("emitter")],new PublicKey$4(dt));return ht}async function getTokenBridgeSequence(dt,ht,Dt){const Cn=getTokenBridgeCoreEmitter(Dt);return getSequenceTracker(dt,Cn,ht).then($n=>$n.sequence)}async function sendTbtc(dt,ht,Dt,Cn,$n,Un,Fn,Hn,Gn){const Qn=new Vn(WormholeGatewayIdl,Fn,{connection:Un}),qn=getCustodianPDA(Fn),er=await Qn.account.custodian.fetch(qn),Wn=new PublicKey$4(er.tbtcMint),jn=new PublicKey$4(er.wrappedTbtcToken),Zn=new PublicKey$4(er.wrappedTbtcMint),Xn=deriveWrappedMetaKey$1(Hn,Zn),ar=deriveTokenBridgeConfigKey$1(Hn),dr=deriveAuthoritySignerKey$1(Hn),or=deriveFeeCollectorKey$1(Gn),sr=await getTokenBridgeSequence(Un,Gn,Hn),vr=getCoreMessagePDA(sr,Fn),hr=deriveWormholeBridgeDataKey$1(Gn),gr=getTokenBridgeCoreEmitter(Hn),ur=deriveEmitterSequenceKey$1(gr,Gn),_r=getGatewayInfoPDA(ht,Fn),nr=deriveSenderAccountKey$1(Fn),Sr={amount:new BN$3(dt),recipientChain:ht,recipient:Dt,nonce:0},Ar=await getAssociatedTokenAddress(Wn,new PublicKey$4(Cn));if($n){const tr={custodian:qn,gatewayInfo:_r,wrappedTbtcToken:jn,wrappedTbtcMint:Zn,tbtcMint:Wn,senderToken:Ar,sender:new PublicKey$4(Cn),tokenBridgeConfig:ar,tokenBridgeWrappedAsset:Xn,tokenBridgeTransferAuthority:dr,coreBridgeData:hr,coreMessage:vr,tokenBridgeCoreEmitter:gr,coreEmitterSequence:ur,coreFeeCollector:or,clock:SYSVAR_CLOCK_PUBKEY,tokenBridgeSender:nr,rent:SYSVAR_RENT_PUBKEY,tokenBridgeProgram:Hn,coreBridgeProgram:Gn};return Qn.methods.sendTbtcGateway({...Sr,arbiterFee:new BN$3(0)}).accounts(tr).transaction()}else{const tr={custodian:qn,wrappedTbtcToken:jn,wrappedTbtcMint:Zn,tbtcMint:Wn,senderToken:Ar,sender:new PublicKey$4(Cn),tokenBridgeConfig:ar,tokenBridgeWrappedAsset:Xn,tokenBridgeTransferAuthority:dr,coreBridgeData:hr,coreMessage:vr,tokenBridgeCoreEmitter:gr,coreEmitterSequence:ur,coreFeeCollector:or,clock:SYSVAR_CLOCK_PUBKEY,rent:SYSVAR_RENT_PUBKEY,tokenBridgeProgram:Hn,coreBridgeProgram:Gn};return Qn.methods.sendTbtcWrapped({...Sr,arbiterFee:new BN$3(0)}).accounts(tr).transaction()}}async function receiveTbtc(dt,ht,Dt,Cn,$n,Un){const{hash:Fn,emitterAddress:Hn,emitterChain:Gn,sequence:Qn}=parseTokenTransferVaa(dt),qn=new PublicKey$4(ht),er=getCustodianPDA(Cn),Wn=new Vn(WormholeGatewayIdl,Cn,{connection:Dt}),jn=await Wn.account.custodian.fetch(er),Zn=new PublicKey$4(jn.tbtcMint),Xn=new PublicKey$4(jn.wrappedTbtcToken),ar=new PublicKey$4(jn.wrappedTbtcMint),dr=await getAssociatedTokenAddress(Zn,qn),or=new Transaction;if(!await Dt.getAccountInfo(dr)){const _r=createAssociatedTokenAccountInstruction(qn,dr,qn,Zn);or.add(_r)}const vr=deriveWrappedMetaKey$1($n,ar),hr=await getAssociatedTokenAddress(ar,qn),gr={payer:qn,custodian:er,postedVaa:derivePostedVaaKey$1(Un,Fn),tokenBridgeClaim:deriveClaimKey$1($n,Hn,Gn,Qn),wrappedTbtcToken:Xn,wrappedTbtcMint:ar,tbtcMint:Zn,recipientToken:dr,recipient:qn,recipientWrappedToken:hr,tbtcConfig:getConfigPDA(),tbtcMinterInfo:getMinterInfoPDA(er),tokenBridgeConfig:deriveTokenBridgeConfigKey$1($n),tokenBridgeRegisteredEmitter:deriveEndpointKey$1($n,Gn,Hn),tokenBridgeWrappedAsset:vr,tokenBridgeMintAuthority:deriveMintAuthorityKey$1($n),rent:SYSVAR_RENT_PUBKEY,tbtcProgram:TBTC_PROGRAM_ID,tokenBridgeProgram:$n,coreBridgeProgram:Un},ur=await Wn.methods.receiveTbtc(Fn).accounts(gr).instruction();return or.add(ur)}const THRESHOLD_ARBITER_FEE=0,THRESHOLD_NONCE=0,TBTC_TOKEN_SYMBOL="tBTC";class TBTCRoute extends BaseRoute{constructor(){super(...arguments);Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!1);Ll(this,"AUTOMATIC_DEPOSIT",!1);Ll(this,"TYPE",Route.TBTC)}isSupportedChain(Dt){var Cn;return!!((Cn=config$2.wh.getContracts(Dt))!=null&&Cn.token_bridge)}async isSupportedSourceToken(Dt,Cn,$n,Un){return!$n||!Dt||Dt.symbol!==TBTC_TOKEN_SYMBOL||Cn&&Cn.symbol!==TBTC_TOKEN_SYMBOL?!1:isTBTCCanonicalChain($n)?Dt.nativeChain===config$2.wh.toChainName($n):config$2.wh.toChainId(Dt.nativeChain)===CHAIN_ID_ETH$1}async isSupportedDestToken(Dt,Cn,$n,Un){return!Un||!Dt||Dt.symbol!==TBTC_TOKEN_SYMBOL||Cn&&Cn.symbol!==TBTC_TOKEN_SYMBOL?!1:isTBTCCanonicalChain(Un)?Dt.nativeChain===config$2.wh.toChainName(Un):config$2.wh.toChainId(Dt.nativeChain)===CHAIN_ID_ETH$1}async isRouteSupported(Dt,Cn,$n,Un,Fn){return!(!config$2.routes.includes(Route.TBTC)||!Un||!Fn||!await this.isSupportedSourceToken(config$2.tokens[Dt],config$2.tokens[Cn],Un,Fn)||!await this.isSupportedDestToken(config$2.tokens[Cn],config$2.tokens[Dt],Un,Fn)||isGatewayChain(Un)||isGatewayChain(Fn))}async computeReceiveAmount(Dt,Cn,$n,Un,Fn,Hn){return Dt||0}async computeSendAmount(Dt,Cn){return Dt||0}async validate(Dt,Cn,$n,Un,Fn,Hn,Gn){throw new Error("not implemented")}async estimateSendGas(Dt,Cn,$n,Un,Fn,Hn,Gn){throw new Error("not implemented")}async estimateClaimGas(Dt,Cn){throw new Error("not implemented")}getMinSendAmount(Dt,Cn,$n){return 0}async send(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn){var sr,vr,hr;if(Dt==="native")throw new Error("Native not supported");const qn=getTokenById(Dt);if(!qn||qn.symbol!==TBTC_TOKEN_SYMBOL)throw new Error(`Token ${Dt} not supported`);const er=config$2.wh.toChainId($n),Wn=config$2.wh.toChainName($n),jn=config$2.wh.toChainId(Fn),Zn=config$2.wh.formatAddress(Hn,Fn),Xn=getTokenDecimals(er,Dt),ar=utils$P.parseUnits(Cn,Xn),dr=utils$P.parseUnits("0",Xn),or=ar.add(dr);if(isEvmChain($n)){const gr=config$2.wh.mustGetSigner($n),ur=(sr=config$2.wh.getContracts(er))==null?void 0:sr.tbtcGateway;if(ur){const _r=config$2.wh.getContext($n),nr=new Contract(ur,ThresholdL2WormholeGateway,gr),Sr=deNormalizeAmount(normalizeAmount(or,Xn),Xn);await _r.approve($n,ur,Dt.address,Sr);const tr=(await nr.estimateGas.sendTbtc(Sr,config$2.wh.toChainId(Fn),Zn,THRESHOLD_ARBITER_FEE,THRESHOLD_NONCE)).mul(1100).div(1e3),Yn=this.getOverrides(er,tr),Cr=await(await nr.sendTbtc(Sr,jn,Zn,THRESHOLD_ARBITER_FEE,THRESHOLD_NONCE,Yn)).wait();return await signAndSendTransaction(Wn,Cr,TransferWallet.SENDING)}else{const _r=(vr=config$2.wh.getContracts(jn))==null?void 0:vr.tbtcGateway;let nr;return _r?nr=await config$2.wh.send(Dt,or.toString(),$n,Un,Fn,_r,void 0,Zn):nr=await config$2.wh.send(Dt,or.toString(),$n,Un,Fn,Hn),await signAndSendTransaction(Wn,nr,TransferWallet.SENDING)}}else if(er===CHAIN_ID_SOLANA$1){const{core:gr,token_bridge:ur,tbtcGateway:_r}=config$2.wh.mustGetContracts(er);if(!gr||!ur||!_r)throw new Error("Core, token bridge, or gateway not found");const Sr=config$2.wh.getContext(er).connection;if(!Sr)throw new Error("Connection not found");const Ar=await sendTbtc(or.toString(),jn,Zn,Un,isTBTCCanonicalChain(jn),Sr,_r,ur,gr);return await signAndSendTransaction(Wn,Ar,TransferWallet.SENDING)}else{const gr=(hr=config$2.wh.getContracts(jn))==null?void 0:hr.tbtcGateway;let ur;return gr?ur=await config$2.wh.send(Dt,or.toString(),$n,Un,Fn,gr,void 0,Zn):ur=await config$2.wh.send(Dt,or.toString(),$n,Un,Fn,Hn),await signAndSendTransaction(Wn,ur,TransferWallet.SENDING)}}async redeem(Dt,Cn,$n){var Gn;const Un=config$2.wh.toChainId(Dt),Fn=config$2.wh.toChainName(Dt),Hn=(Gn=config$2.wh.getContracts(Dt))==null?void 0:Gn.tbtcGateway;if(isEvmChain(Dt)&&Hn){const Qn=config$2.wh.mustGetSigner(Dt),qn=new Contract(Hn,ThresholdL2WormholeGateway,Qn),Wn=(await qn.estimateGas.receiveTbtc(Cn.vaa)).mul(1100).div(1e3),jn=this.getOverrides(Un,Wn),Xn=await(await qn.receiveTbtc(Cn.vaa,jn)).wait();return await signAndSendTransaction(Fn,Xn,TransferWallet.RECEIVING)}else if(Un===CHAIN_ID_SOLANA$1){const Qn=dist$8.Buffer.from(utils$P.arrayify(Cn.vaa,{allowMissingPrefix:!0})),er=config$2.wh.getContext(Dt).connection;if(!er)throw new Error("Connection not found");const{core:Wn,token_bridge:jn,tbtcGateway:Zn}=config$2.wh.mustGetContracts(Dt);if(!Wn||!jn||!Zn)throw new Error("Core, token bridge, or gateway not found");await postVaa(er,Wn,Qn);const Xn=await receiveTbtc(Qn,$n,er,Zn,jn,Wn);return await signAndSendTransaction(Fn,Xn,TransferWallet.RECEIVING)}else{const qn=await config$2.wh.getContext(Un).redeem(Dt,utils$P.arrayify(Cn.vaa),void 0,$n);return await signAndSendTransaction(Fn,qn,TransferWallet.RECEIVING)}}async getRelayerFee(Dt,Cn,$n,Un){return null}async getForeignAsset(Dt,Cn,$n){var Fn,Hn;const Un=config$2.wh.toChainId(Cn);if(isTBTCCanonicalChain(Un)){const Gn=(Hn=(Fn=config$2.tokensArr.find(Qn=>{var qn;return Qn.symbol===TBTC_TOKEN_SYMBOL&&Qn.nativeChain===Cn&&((qn=Qn.tokenId)==null?void 0:qn.chain)===Cn}))==null?void 0:Fn.tokenId)==null?void 0:Hn.address;if(!Gn)throw new Error(`${TBTC_TOKEN_SYMBOL} not found for ${Cn}`);return Gn}else{const Gn=config$2.tokens[TBTC_TOKEN_SYMBOL];if(!(Gn!=null&&Gn.tokenId))throw new Error(`${TBTC_TOKEN_SYMBOL} tokenId not found`);return await config$2.wh.getForeignAsset(Gn.tokenId,Cn)}}async getMessage(Dt,Cn){const $n=await config$2.wh.getMessage(Dt,Cn,!1),Un=await adaptParsedMessage($n),Hn={address:await this.getForeignAsset(Un.tokenId,Un.toChain)||"",chain:isTBTCCanonicalChain(Un.toChain)?Un.toChain:Un.tokenChain},Gn=getTokenById(Hn),Qn=config$2.wh.getContext($n.toChain),qn=$n.payload&&$n.payload.length>0?Qn.parseAddress($n.payload):$n.recipient;return{...Un,to:$n.recipient,recipient:qn,receivedTokenKey:Gn?Gn.key:TBTC_TOKEN_SYMBOL}}async getSignedMessage(Dt){const Cn=await fetchVaa(Dt);if(!Cn)throw new Error("VAA not found");return{...Dt,vaa:utils$P.hexlify(Cn.bytes)}}async nativeTokenAmount(Dt,Cn,$n,Un){throw new Error("Not supported")}async maxSwapAmount(Dt,Cn,$n){throw new Error("Not supported")}async tryFetchRedeemTx(Dt){}getOverrides(Dt,Cn){return{gasLimit:Cn,...Dt===CHAIN_ID_POLYGON$1&&{type:0}}}}async function getQuote(dt,ht,Dt,Cn,$n){if(ht===Dt)return{amountOut:Cn};const Un=config$2.wh.mustGetContracts(dt).uniswapQuoterV2;if(!Un)throw new Error("Uniswap quoter address not found");const Fn=config$2.wh.mustGetProvider(dt);return{amountOut:(await new Contract(Un,uniswapQuoterV2Abi,Fn).functions.quoteExactInputSingle([ht,Dt,Cn,$n,0]))[0]}}const CREATE_ORDER_API_URL="https://thermae.fly.dev/api/order/create",FEE_TIER=100,SLIPPAGE_BPS=15,BPS_PER_HUNDRED_PERCENT=1e4,RELAYER_FEE_API_URL="https://gfx.relayers.xlabs.xyz/api/v1/swap/quote",OKU_TRADE_BASE_URL="https://oku.trade/app",SWAP_ERROR="This transaction will not succeed due to price movement.",getGasFallback=(dt,ht,Dt)=>{var Hn;const Cn=config$2.wh.toChainName(dt),$n=(Hn=config$2.gasEstimates[Cn])==null?void 0:Hn[ht];if(!$n||!$n[Dt])return BigNumber$2.from(0);const Un=BigNumber$2.from($n[Dt]);return config$2.chains[Cn].context===Context.ETH?parseUnits(Un.toString(),"gwei"):Un},estimateSendGas=async(dt,ht,Dt,Cn,$n,Un,Fn,Hn)=>{let Gn;try{Gn=await RouteOperator.getRoute(dt).estimateSendGas(ht,Dt,Cn,$n,Un,Fn,Hn)}catch{ht===NATIVE?Gn=getGasFallback(Cn,dt,"sendNative"):Gn=getGasFallback(Cn,dt,"sendToken")}if(!Gn)throw new Error("could not estimate send gas");return formatGasFee(Cn,Gn)},estimateClaimGas=async(dt,ht,Dt)=>{let Cn;try{Cn=await RouteOperator.getRoute(dt).estimateClaimGas(ht,Dt)}catch{Cn=getGasFallback(ht,dt,"claim")}if(!Cn)throw new Error("could not estimate send gas");return formatGasFee(ht,Cn)},estimateAverageGasFee=async(dt,ht)=>(await config$2.wh.mustGetProvider(dt).getGasPrice()).mul(ht).mul(130).div(100);class PorticoBridge extends BaseRoute{constructor(Dt,Cn){super();Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!1);Ll(this,"AUTOMATIC_DEPOSIT",!1);this.supportedTokenSymbols=Dt,this.maxAmount=Cn}isSupportedChain(Dt){const{portico:Cn,uniswapQuoterV2:$n}=config$2.wh.getContracts(Dt)||{};return!!(Cn&&$n)}async isSupportedSourceToken(Dt,Cn,$n,Un){return!(!Dt||!$n||!this.isSupportedToken(Dt,$n)||Un&&Cn&&!this.isSupportedToken(Cn,Un))}async isSupportedDestToken(Dt,Cn,$n,Un){return!(!Dt||!Un||!this.isSupportedToken(Dt,Un)||$n&&Cn&&!this.isSupportedToken(Cn,$n))}isSupportedToken(Dt,Cn){return this.isSupportedChain(Dt.nativeChain)&&this.supportedTokenSymbols.includes(Dt.symbol)&&toChainName(Cn)===Dt.nativeChain}async isRouteSupported(Dt,Cn,$n,Un,Fn){if(!config$2.isMainnet||!config$2.routes.includes(this.TYPE))return!1;const Hn=config$2.tokens[Dt];if(!Hn||!this.isSupportedToken(Hn,Un))return!1;const Gn=config$2.tokens[Cn];return!(!Gn||!this.isSupportedToken(Gn,Fn))}async computeSwapAmounts(Dt,Cn,$n,Un,Fn){if(!Dt||!$n||!Un||!Fn)throw new Error("Invalid params");const Hn=getWrappedToken(config$2.tokens[Cn]);if(!Hn.tokenId)throw new Error("Unable to get start token");const Gn=getWrappedToken(config$2.tokens[$n]);if(!Gn.tokenId)throw new Error("Unable to get finish token");const[Qn,qn]=await Promise.all([getCanonicalTokenAddress(Hn),getCanonicalTokenAddress(Gn)]),er=getTokenDecimals(toChainId$1(Un),Hn.tokenId),Wn=utils$P.parseUnits(Dt.toString(),er),jn=await getQuote(Un,Hn.tokenId.address,Qn,Wn,FEE_TIER),Zn=jn.amountOut.mul(SLIPPAGE_BPS).div(BPS_PER_HUNDRED_PERCENT);if(Zn.gte(jn.amountOut))throw new Error("Start slippage too high");const Xn=jn.amountOut.sub(Zn),ar=await getQuote(Fn,qn,Gn.tokenId.address,Xn,FEE_TIER),dr=ar.amountOut.mul(SLIPPAGE_BPS).div(BPS_PER_HUNDRED_PERCENT);if(dr.gte(ar.amountOut))throw new Error("Finish slippage too high");const or=ar.amountOut.sub(dr),sr=await getQuote(Fn,qn,Gn.tokenId.address,jn.amountOut,FEE_TIER),vr=sr.amountOut.mul(5).div(BPS_PER_HUNDRED_PERCENT);if(vr.gte(sr.amountOut))throw new Error("Amount finish slippage too high");const hr=sr.amountOut.sub(vr);if(hr.lte(or))throw new Error("Amount finish too low");return{minAmountStart:Xn.toString(),minAmountFinish:or.toString(),amountFinish:hr.toString()}}async computeReceiveAmount(Dt,Cn,$n,Un,Fn,Hn){return this.computeReceiveAmountInternal(Dt,Cn,$n,Un,Fn,Hn,!1)}async computeReceiveAmountInternal(Dt,Cn,$n,Un,Fn,Hn,Gn=!1){if(!Dt||!$n||!Un||!Fn||!Hn.relayerFee.data||!Hn.swapAmounts.data||!await this.isRouteSupported(Cn,$n,Dt.toString(),Un,Fn))throw new Error("Error computing receive amount");const Qn=config$2.tokens[$n],qn=BigNumber$2.from(Hn.swapAmounts.data.minAmountFinish),er=BigNumber$2.from(Hn.relayerFee.data);if(qn.lte(er))throw new Error("Min amount too low, try increasing the send amount");const Wn=getTokenDecimals(toChainId$1(Fn),Qn.tokenId);let jn=BigNumber$2.from(Hn.swapAmounts.data.amountFinish);return Gn&&(jn=jn.sub(er)),Number(toDecimals(jn,Wn,MAX_DECIMALS))}async computeReceiveAmountWithFees(Dt,Cn,$n,Un,Fn,Hn){return this.computeReceiveAmountInternal(Dt,Cn,$n,Un,Fn,Hn,!0)}async computeSendAmount(Dt,Cn){return Dt||0}async validate(Dt,Cn,$n,Un,Fn,Hn,Gn){throw new Error("not implemented")}async estimateSendGas(Dt,Cn,$n,Un,Fn,Hn,Gn){return await estimateAverageGasFee($n,15e4)}async estimateClaimGas(Dt,Cn){return BigNumber$2.from(0)}getMinSendAmount(Dt,Cn,$n){return 0}getMaxSendAmount(){return this.maxAmount}async send(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn){var Pr,Br;if(!isEvmChain($n)||!isEvmChain(Fn))throw new Error("Only EVM chains are supported");const{swapAmounts:qn,relayerFee:er}=Qn;if(!qn.data||qn.error)throw new Error("swapAmounts is required");if(!er.data||er.error)throw new Error("relayerFee is required");const{minAmountStart:Wn,minAmountFinish:jn}=qn.data;if(!Wn||!jn)throw new Error("Invalid min swap amount");if(BigNumber$2.from(Wn).eq(0))throw new Error("Invalid min swap amount");if(BigNumber$2.from(jn).eq(0))throw new Error("Invalid min swap amount");const Zn=getChainConfig($n),Xn=getChainConfig(Fn),ar=getGasToken($n),dr=Dt==="native"||((Pr=getTokenById(Dt))==null?void 0:Pr.key)===ar.key,or=dr?getWrappedToken(ar):getTokenById(Dt);if(!(or!=null&&or.tokenId))throw new Error("Unsupported start token");const sr=getGasToken(Fn),vr=Gn==="native"||Gn===sr.key,hr=vr?getWrappedToken(sr):config$2.tokens[Gn];if(!(hr!=null&&hr.tokenId))throw new Error("Unsupported dest token");const gr=config$2.wh.mustGetContracts($n).portico;if(!gr)throw new Error("Portico address not found");const ur=config$2.wh.mustGetContracts(Fn).portico;if(!ur)throw new Error("Destination portico address not found");const _r=getTokenDecimals(toChainId$1($n),Dt),nr=utils$P.parseUnits(Cn,_r),Sr=nr.mul(50).div(BPS_PER_HUNDRED_PERCENT);if(BigNumber$2.from(jn).lt(nr.sub(Sr)))throw new Error("Output amount too low, please try again later.");const Yn=await config$2.wh.getContext($n).contracts.mustGetCore($n).messageFee(),fr={startingChainId:Number(Zn.chainId),startingToken:or.tokenId.address,startingTokenAmount:nr.toString(),destinationToken:hr.tokenId.address,destinationAddress:Hn,destinationChainId:Number(Xn.chainId),relayerFee:er.data,feeTierStart:FEE_TIER,feeTierEnd:FEE_TIER,minAmountStart:Wn,minAmountEnd:jn,bridgeNonce:new Date().valueOf(),shouldWrapNative:dr,shouldUnwrapNative:vr,porticoAddress:gr,destinationPorticoAddress:ur},Cr=await axios$1.post(CREATE_ORDER_API_URL,fr);if(Cr.status!==200)throw new Error(`Error creating order: ${Cr.statusText}`);await validateCreateOrderResponse(Cr.data,fr,or),dr||await config$2.wh.getContext($n).approve($n,gr,or.tokenId.address,nr);const yr=config$2.wh.mustGetSigner($n),Ir={to:gr,data:Cr.data.transactionData,value:Yn.add(dr?nr:0)};try{const pr=await(await yr.sendTransaction(Ir)).wait();return await signAndSendTransaction(toChainName($n),pr,TransferWallet.SENDING)}catch(rr){let pr="";throw(Br=rr.reason)!=null&&Br.startsWith("execution reverted: ")&&(pr=pr.substr(20)),["UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT","UniswapV2Router: EXCESSIVE_INPUT_AMOUNT","Too little received","Too much requested","STF"].includes(pr)?new Error(SWAP_ERROR):rr}}async redeem(Dt,Cn,$n){const Un=config$2.wh.mustGetSigner(Dt),{portico:Fn}=config$2.wh.mustGetContracts(Dt);if(!Fn)throw new Error("Portico address not found");const Gn=await new Contract(Fn,["function receiveMessageAndSwap(bytes)"],Un).populateTransaction.receiveMessageAndSwap(Cn.vaa),qn=await(await Un.sendTransaction(Gn)).wait();return await signAndSendTransaction(toChainName(Dt),qn,TransferWallet.RECEIVING)}async getRelayerFee(Dt,Cn,$n,Un){if(!Un)throw new Error("destToken is required");if(!getWrappedToken(config$2.tokens[$n]).tokenId)throw new Error("Unable to get start token");const Hn=getWrappedToken(config$2.tokens[Un]);if(!Hn.tokenId)throw new Error("Unable to get final token");const Gn=await getCanonicalTokenAddress(Hn),Qn={targetChain:toChainId$1(Cn),sourceToken:utils$P.hexZeroPad(Gn,32).slice(2),targetToken:utils$P.hexZeroPad(Hn.tokenId.address,32).slice(2)},qn=await axios$1.post(RELAYER_FEE_API_URL,Qn);if(qn.status!==200)throw new Error(`Error getting relayer fee: ${qn.statusText}`);return{fee:BigNumber$2.from(qn.data.fee),feeToken:Hn.tokenId}}async getForeignAsset(Dt,Cn,$n){return await config$2.wh.getForeignAsset(Dt,Cn)}async getMessage(Dt,Cn){const $n=await config$2.wh.getMessage(Dt,Cn,!1),Un=await adaptParsedMessage($n);if(Un.payloadID!==PayloadType.Automatic)throw new Error("Invalid payload type");const Fn=dist$8.Buffer.from(Un.payload.slice(2),"hex"),{recipientAddress:Hn}=parsePorticoPayload(Fn);Un.recipient=Hn;const Gn=config$2.wh.mustGetProvider(Cn),{data:Qn}=await Gn.getTransaction(Dt);return Un.inputData=Qn,Un}async getSignedMessage(Dt){const Cn=await fetchVaa(Dt);if(!Cn)throw new Error("VAA not found");return{...Dt,vaa:utils$P.hexlify(Cn.bytes)}}async nativeTokenAmount(Dt,Cn,$n,Un){throw new Error("Not supported")}async maxSwapAmount(Dt,Cn,$n){throw new Error("Not supported")}async tryFetchRedeemTx(Dt){const Cn=await fetchGlobalTx(Dt);if(Cn)return Cn;const{emitterChain:$n,emitterAddress:Un,sequence:Fn}=getEmitterAndSequence(Dt),Hn=config$2.wh.getContext(Dt.toChain),Gn=Hn.contracts.mustGetBridge(Dt.toChain),{maxBlockSearch:Qn}=config$2.chains[Dt.toChain],qn=Gn.filters.TransferRedeemed($n,`0x${Un}`,Fn);try{const er=await Hn.getCurrentBlock(Dt.toChain),Wn=await Gn.queryFilter(qn,er-Qn);if(Wn.length>0)return Wn[0].transactionHash}catch(er){console.error(er)}}async getTransferSourceInfo({txData:Dt,tokenPrices:Cn}){const $n=dist$8.Buffer.from(Dt.inputData.slice(10),"hex"),{amountSpecified:Un,startTokenAddress:Fn}=parseTradeParameters($n),Hn=dist$8.Buffer.from(Dt.payload.slice(2),"hex"),{flagSet:{shouldWrapNative:Gn,shouldUnwrapNative:Qn},relayerFee:qn,finalTokenAddress:er,minAmountFinish:Wn}=parsePorticoPayload(Hn),jn=getTokenById({chain:Dt.fromChain,address:Fn});if(!jn)throw new Error("Unable to find start token");const Zn=getGasToken(Dt.fromChain),Xn=getTokenDecimals(toChainId$1(Zn.nativeChain),"native"),ar=Gn?Zn:jn,dr=Qn?getGasToken(Dt.toChain):getTokenById({chain:Dt.toChain,address:er});if(!dr)throw new Error("Unable to find dest token");const or=getTokenDecimals(toChainId$1(Dt.fromChain),jn.tokenId),sr=toDecimals(Un,or,MAX_DECIMALS),vr=getTokenDecimals(toChainId$1(Dt.toChain),dr.tokenId),hr=Wn.sub(qn),gr=toDecimals(hr,vr,MAX_DECIMALS),ur=Dt.gasFee&&toDecimals(Dt.gasFee,Xn,MAX_DECIMALS);return[{title:"Amount",value:`${sr} ${getDisplayName(ar)}`,valueUSD:calculateUSDPrice(sr,Cn,ar)},{title:"Gas fee",value:ur?`${ur} ${getDisplayName(Zn)}`:NO_INPUT,valueUSD:calculateUSDPrice(ur,Cn,Zn)},{title:"Min receive amount",value:`${gr} ${getDisplayName(dr)}`,valueUSD:calculateUSDPrice(gr,Cn,dr)}]}async getTransferDestInfo({txData:Dt,tokenPrices:Cn,receiveTx:$n,transferComplete:Un}){if(!$n)return{route:this.TYPE,displayData:[],destTxInfo:{receivedTokenKey:""}};const Hn=await config$2.wh.mustGetProvider(Dt.toChain).getTransactionReceipt($n),Gn=dist$8.Buffer.from(Dt.payload.slice(2),"hex"),{finalTokenAddress:Qn,flagSet:{shouldUnwrapNative:qn}}=parsePorticoPayload(Gn),er=Hn.logs.find(hr=>hr.topics[0]===porticoSwapFinishedEvent);if(!er)throw new Error("Swap finished log not found");if(!er.data.slice(0,66).endsWith("1")&&!isEqualCaseInsensitive(Qn,Dt.tokenAddress)){const hr=getTokenDecimals(toChainId$1(Dt.toChain),Dt.tokenId),gr=toNormalizedDecimals(Dt.amount,hr,MAX_DECIMALS),ur=getDisplayName(config$2.tokens[Dt.receivedTokenKey]),_r=await config$2.wh.getForeignAsset(Dt.tokenId,Dt.toChain);if(!_r)throw new Error("Canonical token address not found");const nr={receivedTokenKey:Dt.receivedTokenKey,swapFailed:{canonicalTokenAddress:_r,finalTokenAddress:Qn}};return{route:this.TYPE,displayData:[{title:"Amount",value:`${gr} ${ur}`,valueUSD:calculateUSDPrice(gr,Cn,config$2.tokens[Dt.receivedTokenKey])},{title:"Relayer fee",value:NO_INPUT}],destTxInfo:nr}}const jn=BigNumber$2.from(`0x${er.data.slice(66,130)}`),Zn=BigNumber$2.from(`0x${er.data.slice(130,194)}`),Xn=qn?getGasToken(Dt.toChain):getTokenById({chain:Dt.toChain,address:Qn}),ar=getTokenDecimals(toChainId$1(Dt.toChain),qn?"native":Xn.tokenId),dr=toDecimals(jn,ar,MAX_DECIMALS),or=toDecimals(Zn,ar,MAX_DECIMALS),sr=getDisplayName(Xn),vr={receivedTokenKey:Xn.key};return{route:this.TYPE,displayData:[{title:"Amount received",value:`${dr} ${sr}`,valueUSD:calculateUSDPrice(dr,Cn,Xn)},{title:"Relayer fee",value:`${or} ${sr}`,valueUSD:calculateUSDPrice(or,Cn,Xn)}],destTxInfo:vr}}async getPreview(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){const{relayerFee:Wn,swapAmounts:jn}=er,Zn=toChainName(Un),Xn=getGasToken(Zn),ar=getDisplayName(Xn),dr=getDisplayName(Cn),or=getChainConfig(Fn),sr=Cn.key===or.gasToken?or.nativeTokenDecimals:getTokenDecimals(toChainId$1(Fn),Cn.tokenId);let vr="",hr="",gr="";Hn&&Wn.data&&(gr=toDecimals(Wn.data,sr,MAX_DECIMALS),vr=`${Hn} ${ar} & ${gr} ${dr}`,hr=`${calculateUSDPrice(Hn,qn,Xn)||NO_INPUT} & ${calculateUSDPrice(gr,qn,Cn)||NO_INPUT}`);const ur=calculateUSDPrice(gr,qn,Cn),_r=calculateUSDPrice(Hn,qn,Xn);let nr="",Sr="";return Wn.data&&jn.data&&(nr=toDecimals(BigNumber$2.from(jn.data.amountFinish).sub(Wn.data),sr,MAX_DECIMALS),Sr=toDecimals(BigNumber$2.from(jn.data.minAmountFinish).sub(Wn.data),sr,MAX_DECIMALS)),[{title:"Expected to receive",value:`${nr} ${dr}`,valueUSD:calculateUSDPrice(nr,qn,Cn)},{title:"Minimum to receive",value:`${Sr} ${dr}`,valueUSD:calculateUSDPrice(Sr,qn,Cn)},{title:"Total fee estimates",value:vr,valueUSD:hr,rows:[{title:"Source chain gas estimate",value:Hn?`~ ${Hn} ${ar}`:NO_INPUT,valueUSD:_r},{title:"Relayer fee",value:gr?`${gr} ${dr}`:NO_INPUT,valueUSD:ur}]}]}}const D6=class D6 extends PorticoBridge{constructor(){super(D6.SUPPORTED_TOKENS,config$2.ethBridgeMaxAmount);Ll(this,"TYPE",Route.ETHBridge)}};Ll(D6,"SUPPORTED_TOKENS",["ETH","WETH"]);let ETHBridge=D6;const U6=class U6 extends PorticoBridge{constructor(){super(U6.SUPPORTED_TOKENS,config$2.wstETHBridgeMaxAmount);Ll(this,"TYPE",Route.wstETHBridge)}};Ll(U6,"SUPPORTED_TOKENS",["wstETH"]);let wstETHBridge=U6;const F6=class F6 extends Error{constructor(){super(F6.MESSAGE)}};Ll(F6,"MESSAGE","Inbound queued transfer not found");let InboundQueuedTransferNotFoundError=F6;const L6=class L6 extends Error{constructor(){super(L6.MESSAGE)}};Ll(L6,"MESSAGE","Inbound queued transfer still queued");let InboundQueuedTransferStillQueuedError=L6;const H6=class H6 extends Error{constructor(){super(H6.MESSAGE)}};Ll(H6,"MESSAGE","Not enough capacity");let NotEnoughCapacityError=H6;const Q6=class Q6 extends Error{constructor(){super(Q6.MESSAGE)}};Ll(Q6,"MESSAGE","Contract is paused");let ContractIsPausedError=Q6;const G6=class G6 extends Error{constructor(){super(G6.MESSAGE)}};Ll(G6,"MESSAGE","Destination contract is paused");let DestinationContractIsPausedError=G6;const J6=class J6 extends Error{constructor(){super(J6.MESSAGE)}};Ll(J6,"MESSAGE","Unsupported contract ABI version");let UnsupportedContractAbiVersion=J6;const encodeWormholeTransceiverInstruction=dt=>{const ht=dist$8.Buffer.alloc(1);return ht.writeUInt8(dt.shouldSkipRelayerSend?1:0),ht},encodeTransceiverInstruction=dt=>{if(dt.payload.length>255)throw new Error(`PayloadTooLong: ${dt.payload.length}`);const ht=dist$8.Buffer.from([dt.payload.length]),Dt=dist$8.Buffer.from([dt.index]);return dist$8.Buffer.concat([Dt,ht,dt.payload])},encodeTransceiverInstructions=dt=>{if(dt.length>255)throw new Error(`PayloadTooLong: ${dt.length}`);const ht=dist$8.Buffer.from([dt.length]);let Dt=dist$8.Buffer.alloc(0);for(let Cn=0;Cn<dt.length;Cn++){const $n=encodeTransceiverInstruction(dt[Cn]);Dt=dist$8.Buffer.concat([Dt,$n])}return dist$8.Buffer.concat([ht,Dt])},_abi$3=[{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"enum IManagerBase.Mode",name:"_mode",type:"uint8"},{internalType:"uint16",name:"_chainId",type:"uint16"},{internalType:"uint64",name:"_rateLimitDuration",type:"uint64"},{internalType:"bool",name:"_skipRateLimiting",type:"bool"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"burnAmount",type:"uint256"},{internalType:"uint256",name:"balanceDiff",type:"uint256"}],name:"BurnAmountDifferentThanBalanceDiff",type:"error"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotTransceiver",type:"error"},{inputs:[{internalType:"address",name:"canceller",type:"address"},{internalType:"address",name:"sender",type:"address"}],name:"CancellerNotSender",type:"error"},{inputs:[{internalType:"TrimmedAmount",name:"newCurrentCapacity",type:"uint72"},{internalType:"TrimmedAmount",name:"newLimit",type:"uint72"}],name:"CapacityCannotExceedLimit",type:"error"},{inputs:[{internalType:"uint256",name:"requiredPayment",type:"uint256"},{internalType:"uint256",name:"providedPayment",type:"uint256"}],name:"DeliveryPaymentTooLow",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"DisabledTransceiver",type:"error"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"InboundQueuedTransferNotFound",type:"error"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"},{internalType:"uint256",name:"transferTimestamp",type:"uint256"}],name:"InboundQueuedTransferStillQueued",type:"error"},{inputs:[{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint256",name:"blockChainId",type:"uint256"}],name:"InvalidFork",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[{internalType:"uint8",name:"mode",type:"uint8"}],name:"InvalidMode",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"InvalidPauser",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"InvalidPeer",type:"error"},{inputs:[],name:"InvalidPeerChainIdZero",type:"error"},{inputs:[],name:"InvalidPeerDecimals",type:"error"},{inputs:[],name:"InvalidPeerZeroAddress",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"InvalidRefundAddress",type:"error"},{inputs:[{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"uint16",name:"thisChain",type:"uint16"}],name:"InvalidTargetChain",type:"error"},{inputs:[],name:"InvalidTransceiverZeroAddress",type:"error"},{inputs:[{internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"MessageNotApproved",type:"error"},{inputs:[],name:"NoEnabledTransceivers",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"NonRegisteredTransceiver",type:"error"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"NotAnEvmAddress",type:"error"},{inputs:[{internalType:"uint256",name:"currentCapacity",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NotEnoughCapacity",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotMigrating",type:"error"},{inputs:[{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint8",name:"decimalsOther",type:"uint8"}],name:"NumberOfDecimalsNotEqual",type:"error"},{inputs:[],name:"OnlyDelegateCall",type:"error"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"OutboundQueuedTransferNotFound",type:"error"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"},{internalType:"uint256",name:"transferTimestamp",type:"uint256"}],name:"OutboundQueuedTransferStillQueued",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"PeerNotRegistered",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{internalType:"uint256",name:"refundAmount",type:"uint256"}],name:"RefundFailed",type:"error"},{inputs:[],name:"RequireContractIsNotPaused",type:"error"},{inputs:[],name:"RequireContractIsPaused",type:"error"},{inputs:[{internalType:"uint256",name:"retrieved",type:"uint256"},{internalType:"uint256",name:"registered",type:"uint256"}],name:"RetrievedIncorrectRegisteredTransceivers",type:"error"},{inputs:[{internalType:"uint256",name:"threshold",type:"uint256"},{internalType:"uint256",name:"transceivers",type:"uint256"}],name:"ThresholdTooHigh",type:"error"},{inputs:[],name:"TooManyTransceivers",type:"error"},{inputs:[{internalType:"bytes32",name:"nttManagerMessageHash",type:"bytes32"}],name:"TransceiverAlreadyAttestedToMessage",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"TransceiverAlreadyEnabled",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"dust",type:"uint256"}],name:"TransferAmountHasDust",type:"error"},{inputs:[],name:"UndefinedRateLimiting",type:"error"},{inputs:[{internalType:"address",name:"expectedOwner",type:"address"},{internalType:"address",name:"owner",type:"address"}],name:"UnexpectedDeployer",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroThreshold",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"}],name:"InboundTransferQueued",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"sourceNttManager",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"MessageAlreadyExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint8",name:"index",type:"uint8"}],name:"MessageAttestedTo",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"notPaused",type:"bool"}],name:"NotPaused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"sequence",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OutboundTransferCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"OutboundTransferQueued",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"currentCapacity",type:"uint256"}],name:"OutboundTransferRateLimited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"paused",type:"bool"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"chainId_",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"oldPeerContract",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"oldPeerDecimals",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"peerContract",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"peerDecimals",type:"uint8"}],name:"PeerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"oldThreshold",type:"uint8"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"ThresholdChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint256",name:"transceiversNum",type:"uint256"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"TransceiverAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"TransceiverRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"digest",type:"bytes32"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!1,internalType:"uint16",name:"recipientChain",type:"uint16"},{indexed:!1,internalType:"uint64",name:"msgSequence",type:"uint64"}],name:"TransferSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"NTT_MANAGER_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{components:[{internalType:"bytes32",name:"id",type:"bytes32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.NttManagerMessage",name:"payload",type:"tuple"}],name:"attestationReceived",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],name:"cancelOutboundQueuedTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"completeInboundQueuedTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],name:"completeOutboundQueuedTransfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{components:[{internalType:"bytes32",name:"id",type:"bytes32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.NttManagerMessage",name:"message",type:"tuple"}],name:"executeMsg",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getCurrentInboundCapacity",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentOutboundCapacity",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getInboundLimitParams",outputs:[{components:[{internalType:"TrimmedAmount",name:"limit",type:"uint72"},{internalType:"TrimmedAmount",name:"currentCapacity",type:"uint72"},{internalType:"uint64",name:"lastTxTimestamp",type:"uint64"}],internalType:"struct IRateLimiter.RateLimitParams",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"getInboundQueuedTransfer",outputs:[{components:[{internalType:"TrimmedAmount",name:"amount",type:"uint72"},{internalType:"uint64",name:"txTimestamp",type:"uint64"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IRateLimiter.InboundQueuedTransfer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMigratesImmutables",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMode",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOutboundLimitParams",outputs:[{components:[{internalType:"TrimmedAmount",name:"limit",type:"uint72"},{internalType:"TrimmedAmount",name:"currentCapacity",type:"uint72"},{internalType:"uint64",name:"lastTxTimestamp",type:"uint64"}],internalType:"struct IRateLimiter.RateLimitParams",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"getOutboundQueuedTransfer",outputs:[{components:[{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"},{internalType:"TrimmedAmount",name:"amount",type:"uint72"},{internalType:"uint64",name:"txTimestamp",type:"uint64"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],internalType:"struct IRateLimiter.OutboundQueuedTransfer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getPeer",outputs:[{components:[{internalType:"bytes32",name:"peerAddress",type:"bytes32"},{internalType:"uint8",name:"tokenDecimals",type:"uint8"}],internalType:"struct INttManager.NttManagerPeer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getThreshold",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTransceivers",outputs:[{internalType:"address[]",name:"result",type:"address[]"}],stateMutability:"pure",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"isMessageApproved",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"isMessageExecuted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"messageAttestations",outputs:[{internalType:"uint8",name:"count",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"migrate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mode",outputs:[{internalType:"enum IManagerBase.Mode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextMessageSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],name:"quoteDeliveryPrice",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateLimitDuration",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"removeTransceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"limit",type:"uint256"},{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"setInboundLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"limit",type:"uint256"}],name:"setOutboundLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"peerChainId",type:"uint16"},{internalType:"bytes32",name:"peerContract",type:"bytes32"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint256",name:"inboundLimit",type:"uint256"}],name:"setPeer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"threshold",type:"uint8"}],name:"setThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"setTransceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenDecimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"},{internalType:"uint8",name:"index",type:"uint8"}],name:"transceiverAttestedToMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],name:"transfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"},{internalType:"bool",name:"shouldQueue",type:"bool"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],name:"transfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserCapability",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}],_bytecode$3="0x6101606040523480156200001257600080fd5b5060405162006d9338038062006d938339810160408190526200003591620005a6565b84848484846001600160401b03821615801562000050575080155b806200006d57506001600160401b038216158015906200006d5750805b156200008c5760405163e543ef0560e01b815260040160405180910390fd5b506001600160401b0316608052620000a36200010d565b620000ad62000279565b3060a0526001600160a01b03831660c052816001811115620000d357620000d362000640565b610100816001811115620000eb57620000eb62000640565b90525061ffff16610120525050466101405250503360e05250620006e0915050565b6000620001196200032d565b905060006200012762000363565b82548154919250610100900460ff1690811462000148576200014862000656565b60005b818110156200019d57620001888382815481106200016d576200016d6200066c565b6000918252602090912001546001600160a01b031662000392565b80620001948162000698565b9150506200014b565b5060005b8181101562000259576000620001b9826001620006b4565b90505b828110156200024357838181548110620001da57620001da6200066c565b60009182526020909120015484546001600160a01b03909116908590849081106200020957620002096200066c565b6000918252602090912001546001600160a01b0316036200022e576200022e62000656565b806200023a8162000698565b915050620001bc565b5080620002508162000698565b915050620001a1565b508254604060ff909116111562000274576200027462000656565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620002ca5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200032a5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000806200035d60017f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8a620006ca565b92915050565b6000806200035d60017e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e2620006ca565b60006200039e62000530565b90506000620003ac62000560565b90506000620003ba6200032d565b90506000620003c862000363565b6001600160a01b038616600090815260208681526040918290208251606081018452905460ff80821615158084526101008304821615159484019490945262010000909104169281019290925291925090806200043857508060200151158015620004385750604081015160ff16155b62000447576200044762000656565b604081015184546020830151600160ff9093169290921b166001600160401b03161515906000805b8654610100900460ff16811015620004da57896001600160a01b0316868281548110620004a057620004a06200066c565b6000918252602090912001546001600160a01b031603620004c55760019150620004da565b80620004d18162000698565b9150506200046f565b5081151583151514620004f157620004f162000656565b8115158115151462000507576200050762000656565b8554604085015160ff91821691161062000525576200052562000656565b505050505050505050565b6000806200035d60017f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a80620006ca565b6000806200035d60017ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb120620006ca565b80518015158114620005a157600080fd5b919050565b600080600080600060a08688031215620005bf57600080fd5b85516001600160a01b0381168114620005d757600080fd5b602087015190955060028110620005ed57600080fd5b604087015190945061ffff811681146200060657600080fd5b60608701519093506001600160401b03811681146200062457600080fd5b9150620006346080870162000590565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620006ad57620006ad62000682565b5060010190565b808201808211156200035d576200035d62000682565b818103818111156200035d576200035d62000682565b60805160a05160c05160e05161010051610120516101405161657f620008146000396000611acb01526000818161067c01528181611b9001528181611be001526150900152600081816103f301528181610d7801528181612a2701528181612a9901528181612b5701528181612fa90152614fde01526000818161421d01526142590152600081816108a801528181610cd701528181612a6901528181612af401528181612f0f01528181612f4301528181612f7201528181612ff40152818161305f0152818161322d0152614f3c015260006128c70152600081816104ba015281816110b10152818161168a015281816120ff0152818161216001528181613a4f01528181613b7501528181613bdb01528181613eb50152818161456e0152818161478001526147d0015261657f6000f3fe60806040526004361061027d5760003560e01c80638e3ba8c91161014f578063b4d591bb116100c1578063e75235b81161007a578063e75235b81461082c578063f2fde38b14610841578063f5cfec1814610861578063f7514fbc14610876578063fc0c546a14610896578063fd96063c146108ca57600080fd5b8063b4d591bb1461072e578063c0b07bde14610750578063c128d1701461078e578063d788c147146107cc578063da4856a1146107ec578063e5a986031461080c57600080fd5b80639a8a0592116101135780639a8a05921461066a5780639d782454146106b15780639f86029c146106d15780639fd0506d146106f1578063b187bd2614610706578063b293f97f1461071b57600080fd5b80638e3ba8c9146105e15780638fd3ab80146106015780639057412d14610616578063961b94d01461064457806397c351461461065757600080fd5b80633b97e856116101f35780638129fc1c116101ac5780638129fc1c146104fc5780638413bcba146105115780638456cb591461053157806386e11ffa1461054657806389c619dd146105945780638da5cb5b146105b457600080fd5b80633b97e856146104425780633f4ba83a146104695780634b4fd03b1461047e578063689f90c31461049357806374aa7bfc146104a85780637c918634146104dc57600080fd5b8063190171751161024557806319017175146103475780631f97c9a814610367578063203e4a9b1461039457806323d75e31146103b4578063295a5212146103e1578063396c16b71461042257600080fd5b80630271725014610282578063036de8af146102b55780630677df54146102d75780630900f01014610307578063186ce61214610327575b600080fd5b34801561028e57600080fd5b506102a261029d36600461577e565b610927565b6040519081526020015b60405180910390f35b3480156102c157600080fd5b506102d56102d03660046157b0565b610964565b005b3480156102e357600080fd5b506102f76102f23660046157cd565b6109d0565b60405190151581526020016102ac565b34801561031357600080fd5b506102d56103223660046157b0565b610a05565b34801561033357600080fd5b506102d56103423660046157e6565b610a19565b34801561035357600080fd5b506102d56103623660046157cd565b610a46565b34801561037357600080fd5b5061038761038236600461582b565b610a71565b6040516102ac9190615898565b3480156103a057600080fd5b506102d56103af3660046157b0565b610bcd565b3480156103c057600080fd5b506103c9610c67565b6040516001600160401b0390911681526020016102ac565b3480156103ed57600080fd5b506104157f000000000000000000000000000000000000000000000000000000000000000081565b6040516102ac9190615924565b34801561042e57600080fd5b506102f761043d3660046157cd565b610c80565b34801561044e57600080fd5b50610457610c9e565b60405160ff90911681526020016102ac565b34801561047557600080fd5b506102d5610d5f565b34801561048a57600080fd5b50610457610d74565b34801561049f57600080fd5b506102f7610dad565b3480156104b457600080fd5b506103c97f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e857600080fd5b506102d56104f736600461595b565b610dc0565b34801561050857600080fd5b506102d5610f3c565b34801561051d57600080fd5b506102d561052c3660046157cd565b61103e565b34801561053d57600080fd5b506102d561118a565b34801561055257600080fd5b5061055b61119d565b6040805182516001600160481b03908116825260208085015190911690820152918101516001600160401b0316908201526060016102ac565b3480156105a057600080fd5b506104576105af3660046157cd565b611201565b3480156105c057600080fd5b506105c961121a565b6040516001600160a01b0390911681526020016102ac565b3480156105ed57600080fd5b506102f76105fc3660046159a3565b611248565b34801561060d57600080fd5b506102d5611282565b34801561062257600080fd5b50610636610631366004615ab3565b611384565b6040516102ac929190615b02565b6103c9610652366004615b4a565b611487565b6103c961066536600461582b565b611501565b34801561067657600080fd5b5061069e7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016102ac565b3480156106bd57600080fd5b506102d56106cc366004615b82565b6117a8565b3480156106dd57600080fd5b506102d56106ec3660046157b0565b611845565b3480156106fd57600080fd5b506105c96118de565b34801561071257600080fd5b506102f76118f7565b6103c9610729366004615c46565b61190c565b34801561073a57600080fd5b5061074361196d565b6040516102ac9190615cc3565b34801561075c57600080fd5b50610781604051806040016040528060058152602001640302e312e360dc1b81525081565b6040516102ac9190615d10565b34801561079a57600080fd5b506107ae6107a936600461577e565b6119d5565b604080518251815260209283015160ff1692810192909252016102ac565b3480156107d857600080fd5b5061055b6107e736600461577e565b611a25565b3480156107f857600080fd5b506102d5610807366004615b82565b611aa0565b34801561081857600080fd5b506102d5610827366004615d23565b611cb3565b34801561083857600080fd5b50610457611d3e565b34801561084d57600080fd5b506102d561085c3660046157b0565b611d48565b34801561086d57600080fd5b506102a2611e06565b34801561088257600080fd5b506102d561089136600461582b565b611e3c565b3480156108a257600080fd5b506105c97f000000000000000000000000000000000000000000000000000000000000000081565b3480156108d657600080fd5b506108ea6108e53660046157cd565b612081565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b0316908201526060016102ac565b60008061093b61093684611a25565b6120fb565b90506000610947610c9e565b905061095c6001600160481b03831682612209565b949350505050565b61097461096f61121a565b612229565b600061097e612272565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef690600090a3505050565b6000806109db611d3e565b90508060ff166109ea84611201565b60ff16101580156109fe575060008160ff16115b9392505050565b610a0d6122a0565b610a16816122d2565b50565b610a216122a0565b6000610a2b610c9e565b9050610a41610a3b8483806123e0565b8361242d565b505050565b610a4e6122a0565b6000610a58610c9e565b9050610a6d610a688383806123e0565b612452565b5050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810191909152610ab4612463565b6001600160401b0383811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c084019190610b4490615d40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7090615d40565b8015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b5050505050815250509050919050565b610bd56122a0565b610bde81612491565b506000610be9612743565b805490915060ff16600003610c0457805460ff191660011781555b7ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda582610c2e612771565b548354604080516001600160a01b03909416845261010090920460ff908116602085015216908201526060015b60405180910390a15050565b6000610c7161279f565b546001600160401b0316919050565b6000610c8a6127cd565b600092835260205250604090205460ff1690565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691610d0191615d7a565b600060405180830381855afa9150503d8060008114610d3c576040519150601f19603f3d011682016040523d82523d6000602084013e610d41565b606091505b5091505080806020019051810190610d599190615d96565b91505090565b610d6a61096f61121a565b610d726127fb565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001811115610da857610da861590e565b905090565b6000610db7612861565b5460ff16919050565b610dc86122a0565b8361ffff16600003610ded5760405163100b0f2760e11b815260040160405180910390fd5b82610e0b5760405163f839a0cb60e01b815260040160405180910390fd5b8160ff16600003610e2f5760405163ade64f0b60e01b815260040160405180910390fd5b6000610e3961288f565b61ffff8616600090815260209182526040908190208151808301909252805482526001015460ff1691810191909152905083610e7361288f565b61ffff87166000908152602091909152604090205582610e9161288f565b61ffff8716600090815260209190915260408120600101805460ff191660ff9390931692909217909155610ec3610c9e565b9050610ed9610ed38483806123e0565b8761242d565b81516020808401516040805193845260ff918216928401929092529082018790528516606082015261ffff8716907f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9060800160405180910390a2505050505050565b610f446128bd565b60008051602061652a8339815191528054600160401b810460ff1615906001600160401b0316600081158015610f775750825b90506000826001600160401b03166001148015610f935750303b155b905081158015610fa1575080155b15610fbf5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610fe957845460ff60401b1916600160401b1785555b610ff1612906565b831561103757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b61104661291e565b61104e6118f7565b1561106c576040516309e3d0f360e11b815260040160405180910390fd5b600061107782612081565b905080602001516001600160401b03166000036110af57604051630301bcaf60e61b8152600481018390526024015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681602001516001600160401b0316426110f29190615dc9565b10156111295760208101516040516301cb739d60e71b8152600481018490526001600160401b0390911660248201526044016110a6565b611131612956565b6000838152602091909152604080822080546001600160881b031916815560010180546001600160a01b031916905582015182516111729285929190612984565b50610a16600160008051602061650a83398151915255565b61119561096f61121a565b610d72612bba565b60408051606081018252600080825260208201819052918101919091526111c2612c1b565b6040805160608101825291546001600160481b038082168452600160481b8204166020840152600160901b90046001600160401b031690820152919050565b600061121461120f83612c49565b612c85565b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b600080600160ff84161b61125a6127cd565b600086815260209190915260409020546101009004166001600160401b031611905092915050565b61128a6128bd565b611292612cb8565b61129d906001615ddc565b60008051602061652a8339815191528054600160401b900460ff16806112d0575080546001600160401b03808416911610155b156112ee5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155611317612cce565b5460ff1661133857604051632866815360e11b815260040160405180910390fd5b61134061290e565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610c5b565b6060600080611391612cfc565b8054806020026020016040519081016040528092919081815260200182805480156113e557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113c7575b50505050509050600073__$93083e246e55d56d98f3df2872cd16bfd0$__63b620e8728684516040518363ffffffff1660e01b8152600401611428929190615e03565b600060405180830381865af4158015611445573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261146d9190810190615e6a565b905061147a868284612d29565b9350935050509250929050565b600061149161291e565b6114996118f7565b156114b7576040516309e3d0f360e11b815260040160405180910390fd5b6040805160018082528183019092526114e89186918691869182916000919060208201818036833701905050612ea9565b90506109fe600160008051602061650a83398151915255565b600061150b61291e565b6115136118f7565b15611531576040516309e3d0f360e11b815260040160405180910390fd5b600061153b612463565b6001600160401b0384811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c0840191906115cb90615d40565b80601f01602080910402602001604051908101604052809291908181526020018280546115f790615d40565b80156116445780601f1061161957610100808354040283529160200191611644565b820191906000526020600020905b81548152906001019060200180831161162757829003601f168201915b505050505081525050905080606001516001600160401b031660000361168857604051635feafa3160e11b81526001600160401b03841660048201526024016110a6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681606001516001600160401b0316426116cb9190615dc9565b101561170357606081015160405163c06cf05f60e01b81526001600160401b03808616600483015290911660248201526044016110a6565b61170b612463565b6001600160401b038416600090815260209190915260408120818155600181018290556002810180546001600160981b03191690556003810180546001600160a01b0319169055906117606004830182615724565b50506117898382604001518360800151846000015185602001518660a001518760c001516131ed565b9150506117a3600160008051602061650a83398151915255565b919050565b6117b0613483565b3360009081526020919091526040902054610100900460ff166117e85760405163a0ae911d60e01b81523360048201526024016110a6565b6117f06118f7565b1561180e576040516309e3d0f360e11b815260040160405180910390fd5b61181883836134b1565b600061182484836134fa565b905061182f816109d0565b1561183f5761183f848484611aa0565b50505050565b61184d6122a0565b611856816135cf565b6000611860612743565b9050600061186c612771565b54825460ff610100909204821692501681101561189157815460ff191660ff82161782555b8154604080516001600160a01b038616815260ff90921660208301527f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f91015b60405180910390a1505050565b60006118e8612272565b546001600160a01b0316919050565b600080611902613897565b5460021492915050565b600061191661291e565b61191e6118f7565b1561193c576040516309e3d0f360e11b815260040160405180910390fd5b61194a878787878787612ea9565b9050611963600160008051602061650a83398151915255565b9695505050505050565b6060611977612cfc565b8054806020026020016040519081016040528092919081815260200182805480156119cb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119ad575b5050505050905090565b60408051808201909152600080825260208201526119f161288f565b61ffff909216600090815260209283526040908190208151808301909252805482526001015460ff16928101929092525090565b6040805160608101825260008082526020820181905291810191909152611a4a6138c5565b61ffff9290921660009081526020928352604090819020815160608101835290546001600160481b038082168352600160481b82041694820194909452600160901b9093046001600160401b0316908301525090565b611aa86118f7565b15611ac6576040516309e3d0f360e11b815260040160405180910390fd5b611aef7f00000000000000000000000000000000000000000000000000000000000000006138f3565b600080611afd85858561391c565b915091508015611b0e575050505050565b6040808401519051635399ded560e11b815260009173__$93083e246e55d56d98f3df2872cd16bfd0$__9163a733bdaa91611b4b91600401615d10565b608060405180830381865af4158015611b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8c9190615f73565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816060015161ffff1614611c0f576060810151604051631ee5902560e11b815261ffff91821660048201527f000000000000000000000000000000000000000000000000000000000000000090911660248201526044016110a6565b6000611c19610c9e565b90506000611c498283611c428587600001516001600160481b031661220990919063ffffffff16565b91906123e0565b90506000611c5a8460400151613a1f565b90506000611c68838b613a4b565b90508015611c8757611c7b878484613a9a565b50505050505050505050565b50611c92828a613b73565b611c9b82613bd9565b611ca88682846000612984565b505050505050505050565b611cbb6122a0565b8060ff16600003611cdf5760405163831761d760e01b815260040160405180910390fd5b6000611ce9612743565b805460ff84811660ff19831617835591925016611d04613c29565b6040805160ff8084168252851660208201527f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a991016118d1565b6000610db7612743565b611d506122a0565b611d5981613cca565b6000611d63613d05565b9050611d6d613d33565b60005b8154811015610a4157818181548110611d8b57611d8b615ff3565b600091825260209091200154604051632c7b84dd60e11b81526001600160a01b038581166004830152909116906358f709ba90602401600060405180830381600087803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b505050508080611dfe90616009565b915050611d70565b600080611e1461093661119d565b90506000611e20610c9e565b9050611e356001600160481b03831682612209565b9250505090565b611e4461291e565b611e4c6118f7565b15611e6a576040516309e3d0f360e11b815260040160405180910390fd5b6000611e74612463565b6001600160401b0383811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c084019190611f0490615d40565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3090615d40565b8015611f7d5780601f10611f5257610100808354040283529160200191611f7d565b820191906000526020600020905b815481529060010190602001808311611f6057829003601f168201915b505050505081525050905080606001516001600160401b0316600003611fc157604051635feafa3160e11b81526001600160401b03831660048201526024016110a6565b60a08101516001600160a01b031633146120055760a081015160405163ceb40a8560e01b81523360048201526001600160a01b0390911660248201526044016110a6565b61200d612463565b6001600160401b038316600090815260209190915260408120818155600181018290556002810180546001600160981b03191690556003810180546001600160a01b0319169055906120626004830182615724565b5050611172826001600160401b031660001b3383604001516001612984565b60408051606081018252600080825260208201819052918101919091526120a6612956565b60009283526020908152604092839020835160608101855281546001600160481b0381168252600160481b90046001600160401b031692810192909252600101546001600160a01b0316928101929092525090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b031660000361214657602082015160ff1668ffffffffffffffff0017611214565b604082015182516001600160401b039182164203916000917f0000000000000000000000000000000000000000000000000000000000000000821691849160081c166001600160401b0316028161219f5761219f616022565b602086015186516001600160401b03600892831c8116949093049390930193506000926121d29285929190911c16613d84565b90506122006121e082613d9a565b602087015160ff1660ff1660089190911b68ffffffffffffffff00161790565b95945050505050565b60006001600160401b03600884901c1660ff841682611963838387613e02565b336122326118de565b6001600160a01b03161415801561225257506001600160a01b0381163314155b15610a165760405163e2a08e5d60e01b81523360048201526024016110a6565b60008061121460017fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124a615dc9565b336122a961121a565b6001600160a01b031614610d725760405163118cdaa760e01b81523360048201526024016110a6565b6122da6128bd565b6122e381613e6b565b60006122ed612cce565b805490915060ff161561230257612302616038565b805460ff191660011781556040805163011fa75760e71b815290513091638fd3ab8091600480830192600092919082900301818387803b15801561234557600080fd5b505af1158015612359573d6000803e3d6000fd5b50505050306001600160a01b031663689f90c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561239b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bf919061604e565b6123cb576123cb613eab565b6123d56000613f55565b805460ff1916905550565b6000806123f76123f1600886613f70565b84613f70565b90506000612406868684613e02565b905061196361241482613d9a565b8360ff1660089190911b68ffffffffffffffff00161790565b610a6d826124396138c5565b61ffff8416600090815260209190915260409020613f85565b610a168161245e612c1b565b613f85565b60008061121460017f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ee615dc9565b60008061249c613483565b905060006124a861408e565b905060006124b4612cfc565b905060006124c0612771565b90506001600160a01b0386166124e957604051632f44bd7760e01b815260040160405180910390fd5b6001600160a01b03861660009081526020859052604090205460ff1615612534576001600160a01b0386166000908152602085905260409020805461ff001916610100179055612631565b8054604060ff9091161061255b5760405163891684c360e01b815260040160405180910390fd5b6040805160608101825260018082526020808301918252845460ff9081168486019081526001600160a01b038c166000908152928a905294822093518454935195518216620100000262ff0000199615156101000261ff00199215159290921661ffff199095169490941717949094169190911790915582549091169082906125e38361606b565b91906101000a81548160ff021916908360ff16021790555050612604613d05565b8054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b81546001808201845560008481526020902090910180546001600160a01b0319166001600160a01b0389161790558154610100900460ff169082906126758361606b565b82546101009290920a60ff8181021990931691831602179091556001600160a01b03881660009081526020879052604090205485546001620100009092049092161b6001600160401b03918216818117935091168117036126f457604051638d68f84d60e01b81526001600160a01b03881660048201526024016110a6565b835467ffffffffffffffff19166001600160401b0382161784556127166140bc565b505050506001600160a01b0392909216600090815260209290925250604090205462010000900460ff1690565b60008061121460017f47028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b80615dc9565b60008061121460017f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8a615dc9565b60008061121460017fad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a77615dc9565b60008061121460017f68dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abddb615dc9565b6128036118f7565b61282057604051637e38d1d360e11b815260040160405180910390fd5b61282a60016141fd565b604051600081527fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b0906020015b60405180910390a1565b60008061121460017f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cc615dc9565b60008061121460017febcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef1615dc9565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d7257604051633c64f99360e21b815260040160405180910390fd5b61290e61420a565b612916613c29565b610d726140bc565b60008051602061650a83398151915280546001190161295057604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60008061121460017f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b9615dc9565b60006129a1612991610c9e565b6001600160481b03851690612209565b905081156129f757604080518681526001600160a01b03861660208201529081018290527ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd079060600160405180910390a1612a23565b60405185907f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a9190600090a25b60007f00000000000000000000000000000000000000000000000000000000000000006001811115612a5757612a5761590e565b03612a9557612a906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685836142b1565b611037565b60017f00000000000000000000000000000000000000000000000000000000000000006001811115612ac957612ac961590e565b03612b55576040516340c10f1960e01b81526001600160a01b038581166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015612b3857600080fd5b505af1158015612b4c573d6000803e3d6000fd5b50505050611037565b7f00000000000000000000000000000000000000000000000000000000000000006001811115612b8757612b8761590e565b6040516366001a8960e01b815260ff90911660048201526024016110a6565b600160008051602061650a83398151915255565b612bc26118f7565b15612be0576040516309e3d0f360e11b815260040160405180910390fd5b612bea60026141fd565b604051600181527f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd290602001612857565b60008061121460017f7c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea9220421615dc9565b600080612c54614314565b905080612c5f6127cd565b60009485526020526040909320546101009004929092166001600160401b031692915050565b60005b6001600160401b038216156117a357612ca260018361608a565b9091169080612cb08161606b565b915050612c88565b600060008051602061652a833981519152610c71565b60008061121460017f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4f615dc9565b60008061121460017e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e2615dc9565b805160609060009081612d3a613483565b90506000826001600160401b03811115612d5657612d566159c8565b604051908082528060200260200182016040528015612d7f578160200160208202803683370190505b5090506000805b84811015612e98576000888281518110612da257612da2615ff3565b6020908102919091018101516001600160a01b03811660008181529288905260408320548d5192945062010000900460ff16929163b5634c73908f908f9086908110612df057612df0615ff3565b60200260200101516040518363ffffffff1660e01b8152600401612e159291906160cc565b602060405180830381865afa158015612e32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5691906160e9565b905080868581518110612e6b57612e6b615ff3565b6020908102919091010152612e808186616102565b94505050508080612e9090616009565b915050612d86565b50909450925050505b935093915050565b600086600003612ecc57604051631f2a200560e01b815260040160405180910390fd5b84612eea57604051634e46966960e11b815260040160405180910390fd5b83612f085760405163717f139360e11b815260040160405180910390fd5b6000612f347f00000000000000000000000000000000000000000000000000000000000000003061431e565b9050612f6b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b6143ce565b6000612f977f00000000000000000000000000000000000000000000000000000000000000003061431e565b9050612fa38282615dc9565b985060017f00000000000000000000000000000000000000000000000000000000000000006001811115612fd957612fd961590e565b036130b257604051630852cd8d60e31b8152600481018a90527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b15801561304057600080fd5b505af1158015613054573d6000803e3d6000fd5b5050505060006130847f00000000000000000000000000000000000000000000000000000000000000003061431e565b90508083146130b0576040516302156a8f60e01b815260048101849052602481018290526044016110a6565b505b505060006130c08888614406565b905060006130df6130cf610c9e565b6001600160481b038416906144be565b905060006130eb61450d565b905060006130f88361456a565b9050861580156131055750805b1561313657613112611e06565b6040516326fb55dd60e01b81526004810191909152602481018c90526044016110a6565b8680156131405750805b156131bc57337ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a838d613171611e06565b604080516001600160401b03909416845260208401929092529082015260600160405180910390a26131a882858c8c8c338c6145b8565b6131b134614712565b509250611963915050565b506131c68261477e565b6131d0828a6147ce565b6131df81848b8b8b338b6131ed565b9a9950505050505050505050565b60008060008060006131ff8a87614834565b935093509350935060008c9050600060405180608001604052808e6001600160481b031681526020016132587f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690565b81526020018c81526020018d61ffff168152509050600073__$93083e246e55d56d98f3df2872cd16bfd0$__638b4979b86040518060600160405280866001600160401b031660001b81526020016132b68e6001600160a01b031690565b8152604080516315cfa3cb60e11b815287516001600160481b031660048201526020888101516024830152918801516044820152606088015161ffff16606482015291019073__$93083e246e55d56d98f3df2872cd16bfd0$__90632b9f479690608401600060405180830381865af4158015613337573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261335f9190810190616115565b8152506040518263ffffffff1660e01b815260040161337e9190616172565b600060405180830381865af415801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190616115565b90508c6133f1818d6133d361288f565b61ffff851660009081526020919091526040902054898b8d886149bf565b8e7fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a359828e8e613430613420610c9e565b6001600160481b03861690612209565b604080519384526020840192909252908201526060810188905261ffff841660808201526001600160401b03871660a082015260c00160405180910390a150929f9e505050505050505050505050505050565b60008061121460017f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a80615dc9565b806134ba61288f565b61ffff84166000908152602091909152604090205414610a6d57604051635788c0fd60e11b815261ffff83166004820152602481018290526044016110a6565b60008073__$93083e246e55d56d98f3df2872cd16bfd0$__63b3f07bbd85856040518363ffffffff1660e01b8152600401613536929190616185565b602060405180830381865af4158015613553573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061357791906160e9565b90506135a481613585613483565b336000908152602091909152604090205462010000900460ff16611248565b156135c557604051631089c4a160e11b8152600481018290526024016110a6565b6109fe8133614b0c565b60006135d9613483565b905060006135e561408e565b905060006135f1612cfc565b90506001600160a01b03841661361a57604051632f44bd7760e01b815260040160405180910390fd5b6001600160a01b03841660009081526020849052604090205460ff1661365e57604051630d583f4760e41b81526001600160a01b03851660048201526024016110a6565b6001600160a01b038416600090815260208490526040902054610100900460ff166136a7576040516307d86e9160e21b81526001600160a01b03851660048201526024016110a6565b6001600160a01b0384166000908152602084905260409020805461ff00191690556136d0612771565b8054610100900460ff169060016136e6836161a2565b82546101009290920a60ff8181021990931691831602179091556001600160a01b03861660009081526020869052604090205484546001600160401b036001620100009093049093169190911b1981168216925016811061374957613749616038565b825467ffffffffffffffff19166001600160401b0382161783558154600090815b8181101561386f57876001600160a01b031685828154811061378e5761378e615ff3565b6000918252602090912001546001600160a01b03160361385d57846137b4600184615dc9565b815481106137c4576137c4615ff3565b9060005260206000200160009054906101000a90046001600160a01b03168582815481106137f4576137f4615ff3565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084805480613832576138326161bf565b600082815260209020810160001990810180546001600160a01b03191690550190556001925061386f565b8061386781616009565b91505061376a565b508161387d5761387d616038565b6138856140bc565b61388e87614bad565b50505050505050565b60008061121460017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258023615dc9565b60008061121460017fefb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da16615dc9565b468114610a16576040516377d879fb60e01b8152600481018290524660248201526044016110a6565b600080600073__$93083e246e55d56d98f3df2872cd16bfd0$__63b3f07bbd87866040518363ffffffff1660e01b815260040161395a929190616185565b602060405180830381865af4158015613977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399b91906160e9565b90506139a6816109d0565b6139c657604051630451c4fb60e41b8152600481018290526024016110a6565b60006139d182614d21565b90508015613a1357604051829087907f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef290600090a3600093509150612ea19050565b90969095509350505050565b600060a082901c15613a475760405163033b960d60e41b8152600481018390526024016110a6565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613a855760006109fe565b6109fe613a9461093684611a25565b84614d62565b6040518060600160405280836001600160481b03168152602001426001600160401b03168152602001826001600160a01b0316815250613ad8612956565b6000858152602091825260409081902083518154858501516001600160481b039092166001600160881b031990911617600160481b6001600160401b039092169190910217815592810151600190930180546001600160a01b0319166001600160a01b039094169390931790925590518481527f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f316291016118d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613ba8575050565b610a6d82613bb861093684611a25565b613bc06138c5565b61ffff8516600090815260209190915260409020614d6e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613c0d5750565b610a1681613c1c61093661119d565b613c24612c1b565b614dc7565b6000613c33612743565b5460ff1690506000613c43612771565b60408051808201909152905460ff808216835261010090910481166020830181905291925083161115613c9c5760208101516040516313c3d1b160e01b815260ff808516600483015290911660248201526044016110a6565b805160ff1615610a6d578160ff16600003610a6d5760405163831761d760e01b815260040160405180910390fd5b613cd26122a0565b6001600160a01b038116613cfc57604051631e4fbdf760e01b8152600060048201526024016110a6565b610a1681614e1b565b60008061121460017f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed979615dc9565b613d3b612771565b5460ff16613d47613d05565b5414610d7257613d55613d05565b54613d5e612771565b5460405163d2a13a2960e01b8152600481019290925260ff1660248201526044016110a6565b6000818310613d9357816109fe565b5090919050565b60006001600160401b03821115613a475760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016110a6565b60008160ff168360ff1603613e185750826109fe565b8160ff168360ff161115613e4c57613e3082846161d5565b613e3b90600a6162d2565b613e4590856162e1565b90506109fe565b613e5683836161d5565b613e6190600a6162d2565b613e459085616303565b613e7481614e8c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b613eb3614f3a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316306001600160a01b03166374aa7bfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3f919061631a565b6001600160401b031614610d7257610d72616038565b80613f5e612861565b805460ff191691151591909117905550565b60008160ff168360ff1610613d9357816109fe565b80546001600160481b0316613f9981615126565b15613fc757815468ffffffffffffffffff60481b1916600160481b6001600160481b03851602178255614047565b6040805160608101825283546001600160481b038082168352600160481b8204166020830152600160901b90046001600160401b031691810191909152600090614010906120fb565b905061401d848383615146565b83546001600160481b0391909116600160481b0268ffffffffffffffffff60481b19909116178355505b5080546001600160481b039290921679ffffffffffffffff000000000000000000ffffffffffffffffff1990921691909117600160901b426001600160401b031602179055565b60008061121460017ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb120615dc9565b60006140c6612771565b905060006140d2612cfc565b82548154919250610100900460ff169081146140f0576140f0616038565b60005b8181101561413c5761412a83828154811061411057614110615ff3565b6000918252602090912001546001600160a01b0316614bad565b8061413481616009565b9150506140f3565b5060005b818110156141e5576000614155826001616102565b90505b828110156141d25783818154811061417257614172615ff3565b60009182526020909120015484546001600160a01b039091169085908490811061419e5761419e615ff3565b6000918252602090912001546001600160a01b0316036141c0576141c0616038565b806141ca81616009565b915050614158565b50806141dd81616009565b915050614140565b508254604060ff9091161115610a4157610a41616038565b80614206613897565b5550565b6142126151e8565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461428c57604051636345072160e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201523360248201526044016110a6565b614296333361521f565b61429e615239565b610d72610a686142ac610c9e565b615249565b6040516001600160a01b038316602482015260448101829052610a4190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261526d565b6000610c7161408e565b604080516001600160a01b0383811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b17905291516000928392908616916143769190615d7a565b600060405180830381855afa9150503d80600081146143b1576040519150601f19603f3d011682016040523d82523d6000602084013e6143b6565b606091505b509150508080602001905181019061095c91906160e9565b6040516001600160a01b038085166024830152831660448201526064810182905261183f9085906323b872dd60e01b906084016142dd565b60008061441161288f565b61ffff84166000908152602091909152604081206001015460ff16915081900361444e5760405163ade64f0b60e01b815260040160405180910390fd5b600080614459610c9e565b90506144668682856123e0565b9150600061447d6001600160481b03841683612209565b90508087146144b357866144918282615dc9565b6040516338f831a560e11b8152600481019290925260248201526044016110a6565b509095945050505050565b6000806144cc600884613f70565b905061095c6144f46144ef6001600160401b03600888901c1660ff881685613e02565b613d9a565b8260ff1660089190911b68ffffffffffffffff00161790565b600061451761279f565b546001600160401b0316905061452b61279f565b80546001600160401b031690600061454283616337565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b03166000036145a4576000611214565b6112146145b261093661119d565b83614d62565b6040518060e00160405280858152602001848152602001876001600160481b03168152602001426001600160401b031681526020018661ffff168152602001836001600160a01b0316815260200182815250614612612463565b6001600160401b03808a1660009081526020928352604090819020845181559284015160018401558301516002830180546060860151608087015161ffff16600160881b0261ffff60881b1991909516600160481b026001600160881b03199092166001600160481b0390941693909317179190911691909117905560a08201516003820180546001600160a01b039092166001600160a01b031990921691909117905560c082015160048201906146ca90826163ab565b50506040516001600160401b03891681527f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f915060200160405180910390a150505050505050565b604051600090339083908381818185875af1925050503d8060008114614754576040519150601f19603f3d011682016040523d82523d6000602084013e614759565b606091505b5050905080610a6d57604051630b288dc560e21b8152600481018390526024016110a6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b03166000036147b25750565b610a16816147c161093661119d565b6147c9612c1b565b614d6e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003614803575050565b610a6d8261481361093684611a25565b61481b6138c5565b61ffff8516600090815260209190915260409020614dc7565b6060806060600080614844612cfc565b80548060200260200160405190810160405280929190818152602001828054801561489857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161487a575b50505050509050606060006148ab613d05565b54835190915060008190036148d3576040516334e7b19560e11b815260040160405180910390fd5b604051635b10743960e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__9063b620e8729061490c908c908690600401615e03565b600060405180830381865af4158015614929573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526149519190810190615e6a565b925050506000806149638a8486612d29565b9150915080341015614991576040516306a91e3760e51b8152600481018290523460248201526044016110a6565b600061499d8234615dc9565b905080156149ae576149ae81614712565b509299919850965090945092505050565b815160006149cb613483565b9050866149f157604051630ebc95af60e21b815261ffff8a1660048201526024016110a6565b8760005b83811015614aff576000868281518110614a1157614a11615ff3565b60200260200101519050806001600160a01b0316634b5b05058a8481518110614a3c57614a3c615ff3565b60200260200101518e8b886000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160029054906101000a900460ff1660ff1681518110614a8e57614a8e615ff3565b60200260200101518a8f896040518763ffffffff1660e01b8152600401614ab995949392919061646a565b6000604051808303818588803b158015614ad257600080fd5b505af1158015614ae6573d6000803e3d6000fd5b5050505050508080614af790616009565b9150506149f5565b5050505050505050505050565b614b4082614b18613483565b6001600160a01b0384166000908152602091909152604090205462010000900460ff1661533f565b7f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e58282614b6b613483565b6001600160a01b038581166000908152602092835260409081902054815195865293909116918401919091526201000090910460ff1690820152606001610c5b565b6000614bb7613483565b90506000614bc361408e565b90506000614bcf612771565b90506000614bdb612cfc565b6001600160a01b038616600090815260208681526040918290208251606081018452905460ff8082161515808452610100830482161515948401949094526201000090910416928101929092529192509080614c4957508060200151158015614c495750604081015160ff16155b614c5557614c55616038565b604081015184546020830151600160ff9093169290921b166001600160401b03161515906000805b8654610100900460ff16811015614cdf57896001600160a01b0316868281548110614caa57614caa615ff3565b6000918252602090912001546001600160a01b031603614ccd5760019150614cdf565b80614cd781616009565b915050614c7d565b5081151583151514614cf357614cf3616038565b81151581151514614d0657614d06616038565b8554604085015160ff918216911610611ca857611ca8616038565b6000614d2c82610c80565b15614d3957506001919050565b6001614d436127cd565b600093845260205260408320805460ff19169115159190911790555090565b60006109fe838361538d565b805467ffffffffffffffff60901b1916600160901b426001600160401b031602178155614d9b82846153b2565b81546001600160481b0391909116600160481b0268ffffffffffffffffff60481b199091161790555050565b80546001600160401b034216600160901b0267ffffffffffffffff60901b19821681178355614d9b916001600160481b039182169082161790614e0c908516866153f7565b6001600160481b03169061545a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b0381163b614ef95760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016110a6565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fc691906164ae565b6001600160a01b031614614fdc57614fdc616038565b7f0000000000000000000000000000000000000000000000000000000000000000600181111561500e5761500e61590e565b306001600160a01b031663295a52126040518163ffffffff1660e01b8152600401602060405180830381865afa15801561504c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061507091906164cb565b60018111156150815761508161590e565b1461508e5761508e616038565b7f000000000000000000000000000000000000000000000000000000000000000061ffff16306001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156150f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061511591906164ec565b61ffff1614610d7257610d72616038565b60006001600160401b03600883901c1615801561121457505060ff161590565b6000806151538486615486565b1561518c5761516284866153b2565b905061516e8382615486565b61517b5760ff8316615185565b61518583826153b2565b91506151a5565b61519685856153b2565b90506151a283826154ab565b91505b6151af8286615486565b156151e057604051631e74e8fb60e31b81526001600160481b038084166004830152861660248201526044016110a6565b509392505050565b60008051602061652a83398151915254600160401b900460ff16610d7257604051631afcd79f60e31b815260040160405180910390fd5b6152276151e8565b615230826154f0565b610a6d81615501565b6152416151e8565b610d72615512565b600080615257600884613f70565b905068ffffffffffffffff0060ff8216176109fe565b60006152c2826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661551a9092919063ffffffff16565b805190915015610a4157808060200190518101906152e0919061604e565b610a415760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016110a6565b600160ff82161b61534e6127cd565b60009384526020526040909220805468ffffffffffffffff00198116610100918290046001600160401b03908116951694909417029290921790915550565b60006153998383615529565b506001600160401b03600891821c81169290911c161090565b60006153be8383615529565b6109fe6153de6001600160401b03600885811c8216919087901c1661608a565b68ffffffffffffffff0060089190911b1660ff85161790565b60006154038383615529565b600883811c6001600160401b039081169184901c81168281019291831161542a5782615433565b6001600160401b035b925061196361544184613d9a565b68ffffffffffffffff0060089190911b1660ff88161790565b60006154668383615529565b600882811c6001600160401b039081169185901c1610613d9357816109fe565b60006154928383615529565b506001600160401b03600891821c81169290911c161190565b60006154b78383615529565b6109fe6154d76001600160401b03600885811c8216919087901c16615ddc565b68ffffffffffffffff0060089190911b1660ff84161790565b6154f86151e8565b610a168161555e565b6155096151e8565b610a16816155a3565b612ba66151e8565b606061095c84846000856155ab565b60ff82811690821680821461183f57604051635ce6db6160e11b815260ff8084166004830152821660248201526044016110a6565b6155666151e8565b6000615570613897565b6001815590506000615580612272565b80546001600160a01b0319166001600160a01b0394909416939093179092555050565b613cd26151e8565b60608247101561560c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016110a6565b600080866001600160a01b031685876040516156289190615d7a565b60006040518083038185875af1925050503d8060008114615665576040519150601f19603f3d011682016040523d82523d6000602084013e61566a565b606091505b509150915061567b87838387615686565b979650505050505050565b606083156156f55782516000036156ee576001600160a01b0385163b6156ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016110a6565b508161095c565b61095c838381511561570a5781518083602001fd5b8060405162461bcd60e51b81526004016110a69190615d10565b50805461573090615d40565b6000825580601f10615740575050565b601f016020900490600052602060002090810190610a1691905b80821115613a47576000815560010161575a565b61ffff81168114610a1657600080fd5b60006020828403121561579057600080fd5b81356109fe8161576e565b6001600160a01b0381168114610a1657600080fd5b6000602082840312156157c257600080fd5b81356109fe8161579b565b6000602082840312156157df57600080fd5b5035919050565b600080604083850312156157f957600080fd5b82359150602083013561580b8161576e565b809150509250929050565b6001600160401b0381168114610a1657600080fd5b60006020828403121561583d57600080fd5b81356109fe81615816565b60005b8381101561586357818101518382015260200161584b565b50506000910152565b60008151808452615884816020860160208601615848565b601f01601f19169290920160200192915050565b6020815281516020820152602082015160408201526001600160481b0360408301511660608201526001600160401b03606083015116608082015261ffff60808301511660a082015260018060a01b0360a08301511660c0820152600060c083015160e08084015261095c61010084018261586c565b634e487b7160e01b600052602160045260246000fd5b602081016002831061594657634e487b7160e01b600052602160045260246000fd5b91905290565b60ff81168114610a1657600080fd5b6000806000806080858703121561597157600080fd5b843561597c8161576e565b93506020850135925060408501356159938161594c565b9396929550929360600135925050565b600080604083850312156159b657600080fd5b82359150602083013561580b8161594c565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715615a0057615a006159c8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615a2e57615a2e6159c8565b604052919050565b60006001600160401b03821115615a4f57615a4f6159c8565b50601f01601f191660200190565b600082601f830112615a6e57600080fd5b8135615a81615a7c82615a36565b615a06565b818152846020838601011115615a9657600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215615ac657600080fd5b8235615ad18161576e565b915060208301356001600160401b03811115615aec57600080fd5b615af885828601615a5d565b9150509250929050565b604080825283519082018190526000906020906060840190828701845b82811015615b3b57815184529284019290840190600101615b1f565b50505092019290925292915050565b600080600060608486031215615b5f57600080fd5b833592506020840135615b718161576e565b929592945050506040919091013590565b600080600060608486031215615b9757600080fd5b8335615ba28161576e565b92506020840135915060408401356001600160401b0380821115615bc557600080fd5b9085019060608288031215615bd957600080fd5b604051606081018181108382111715615bf457615bf46159c8565b80604052508235815260208301356020820152604083013582811115615c1957600080fd5b615c2589828601615a5d565b6040830152508093505050509250925092565b8015158114610a1657600080fd5b60008060008060008060c08789031215615c5f57600080fd5b863595506020870135615c718161576e565b945060408701359350606087013592506080870135615c8f81615c38565b915060a08701356001600160401b03811115615caa57600080fd5b615cb689828a01615a5d565b9150509295509295509295565b6020808252825182820181905260009190848201906040850190845b81811015615d045783516001600160a01b031683529284019291840191600101615cdf565b50909695505050505050565b6020815260006109fe602083018461586c565b600060208284031215615d3557600080fd5b81356109fe8161594c565b600181811c90821680615d5457607f821691505b602082108103615d7457634e487b7160e01b600052602260045260246000fd5b50919050565b60008251615d8c818460208701615848565b9190910192915050565b600060208284031215615da857600080fd5b81516109fe8161594c565b634e487b7160e01b600052601160045260246000fd5b8181038181111561121457611214615db3565b6001600160401b03818116838216019080821115615dfc57615dfc615db3565b5092915050565b604081526000615e16604083018561586c565b90508260208301529392505050565b600082601f830112615e3657600080fd5b8151615e44615a7c82615a36565b818152846020838601011115615e5957600080fd5b61095c826020830160208701615848565b60006020808385031215615e7d57600080fd5b82516001600160401b0380821115615e9457600080fd5b818501915085601f830112615ea857600080fd5b815181811115615eba57615eba6159c8565b8060051b615ec9858201615a06565b9182528381018501918581019089841115615ee357600080fd5b86860192505b83831015615f6657825185811115615f015760008081fd5b86016040818c03601f1901811315615f195760008081fd5b615f216159de565b89830151615f2e8161594c565b8152908201519087821115615f435760008081fd5b615f518d8b84860101615e25565b818b0152845250509186019190860190615ee9565b9998505050505050505050565b600060808284031215615f8557600080fd5b604051608081018181106001600160401b0382111715615fa757615fa76159c8565b60405282516001600160481b0381168114615fc157600080fd5b8082525060208301516020820152604083015160408201526060830151615fe78161576e565b60608201529392505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161601b5761601b615db3565b5060010190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60006020828403121561606057600080fd5b81516109fe81615c38565b600060ff821660ff810361608157616081615db3565b60010192915050565b6001600160401b03828116828216039080821115615dfc57615dfc615db3565b60ff8151168252600060208201516040602085015261095c604085018261586c565b61ffff8316815260406020820152600061095c60408301846160aa565b6000602082840312156160fb57600080fd5b5051919050565b8082018082111561121457611214615db3565b60006020828403121561612757600080fd5b81516001600160401b0381111561613d57600080fd5b61095c84828501615e25565b8051825260208101516020830152600060408201516060604085015261095c606085018261586c565b6020815260006109fe6020830184616149565b61ffff8316815260406020820152600061095c6040830184616149565b600060ff8216806161b5576161b5615db3565b6000190192915050565b634e487b7160e01b600052603160045260246000fd5b60ff828116828216039081111561121457611214615db3565b600181815b8085111561622957816000190482111561620f5761620f615db3565b8085161561621c57918102915b93841c93908002906161f3565b509250929050565b60008261624057506001611214565b8161624d57506000611214565b8160018114616263576002811461626d57616289565b6001915050611214565b60ff84111561627e5761627e615db3565b50506001821b611214565b5060208310610133831016604e8410600b84101617156162ac575081810a611214565b6162b683836161ee565b80600019048211156162ca576162ca615db3565b029392505050565b60006109fe60ff841683616231565b6000826162fe57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761121457611214615db3565b60006020828403121561632c57600080fd5b81516109fe81615816565b60006001600160401b0380831681810361635357616353615db3565b6001019392505050565b601f821115610a4157600081815260208120601f850160051c810160208610156163845750805b601f850160051c820191505b818110156163a357828155600101616390565b505050505050565b81516001600160401b038111156163c4576163c46159c8565b6163d8816163d28454615d40565b8461635d565b602080601f83116001811461640d57600084156163f55750858301515b600019600386901b1c1916600185901b1785556163a3565b600085815260208120601f198616915b8281101561643c5788860151825594840194600190910190840161641d565b508582101561645a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61ffff8616815260a06020820152600061648760a08301876160aa565b8281036040840152616499818761586c565b60608401959095525050608001529392505050565b6000602082840312156164c057600080fd5b81516109fe8161579b565b6000602082840312156164dd57600080fd5b8151600281106109fe57600080fd5b6000602082840312156164fe57600080fd5b81516109fe8161576e56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202816781291593866e4755341ea70627066ba55fdf891a5240ced7b47be62ab0864736f6c63430008130033",isSuperArgs$3=dt=>typeof dt[0]=="string"||Array.isArray(dt[0])||"_isInterface"in dt[0];var Q2;let NttManager__factory$1=(Q2=class extends ContractFactory{constructor(...ht){if(isSuperArgs$3(ht))super(...ht);else{const[Dt,Cn]=ht;super(_abi$3,Q2.linkBytecode(Dt),Cn)}}static linkBytecode(ht){let Dt=_bytecode$3;return Dt=Dt.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),ht["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),Dt}deploy(ht,Dt,Cn,$n,Un,Fn){return super.deploy(ht,Dt,Cn,$n,Un,Fn||{})}getDeployTransaction(ht,Dt,Cn,$n,Un,Fn){return super.getDeployTransaction(ht,Dt,Cn,$n,Un,Fn||{})}attach(ht){return super.attach(ht)}connect(ht){return super.connect(ht)}static createInterface(){return new Interface(_abi$3)}static connect(ht,Dt){return new Contract(ht,_abi$3,Dt)}},Ll(Q2,"bytecode",_bytecode$3),Ll(Q2,"abi",_abi$3),Q2);const _abi$2=[{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"enum IManagerBase.Mode",name:"_mode",type:"uint8"},{internalType:"uint16",name:"_chainId",type:"uint16"},{internalType:"uint64",name:"_rateLimitDuration",type:"uint64"},{internalType:"bool",name:"_skipRateLimiting",type:"bool"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"burnAmount",type:"uint256"},{internalType:"uint256",name:"balanceDiff",type:"uint256"}],name:"BurnAmountDifferentThanBalanceDiff",type:"error"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotTransceiver",type:"error"},{inputs:[{internalType:"address",name:"canceller",type:"address"},{internalType:"address",name:"sender",type:"address"}],name:"CancellerNotSender",type:"error"},{inputs:[{internalType:"TrimmedAmount",name:"newCurrentCapacity",type:"uint72"},{internalType:"TrimmedAmount",name:"newLimit",type:"uint72"}],name:"CapacityCannotExceedLimit",type:"error"},{inputs:[{internalType:"uint256",name:"requiredPayment",type:"uint256"},{internalType:"uint256",name:"providedPayment",type:"uint256"}],name:"DeliveryPaymentTooLow",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"DisabledTransceiver",type:"error"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"InboundQueuedTransferNotFound",type:"error"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"},{internalType:"uint256",name:"transferTimestamp",type:"uint256"}],name:"InboundQueuedTransferStillQueued",type:"error"},{inputs:[{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint256",name:"blockChainId",type:"uint256"}],name:"InvalidFork",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[{internalType:"uint8",name:"mode",type:"uint8"}],name:"InvalidMode",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"InvalidPauser",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"InvalidPeer",type:"error"},{inputs:[],name:"InvalidPeerChainIdZero",type:"error"},{inputs:[],name:"InvalidPeerDecimals",type:"error"},{inputs:[],name:"InvalidPeerSameChainId",type:"error"},{inputs:[],name:"InvalidPeerZeroAddress",type:"error"},{inputs:[],name:"InvalidRecipient",type:"error"},{inputs:[],name:"InvalidRefundAddress",type:"error"},{inputs:[{internalType:"uint16",name:"targetChain",type:"uint16"},{internalType:"uint16",name:"thisChain",type:"uint16"}],name:"InvalidTargetChain",type:"error"},{inputs:[],name:"InvalidTransceiverZeroAddress",type:"error"},{inputs:[{internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"MessageNotApproved",type:"error"},{inputs:[],name:"NoEnabledTransceivers",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"NonRegisteredTransceiver",type:"error"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"NotAnEvmAddress",type:"error"},{inputs:[{internalType:"uint256",name:"currentCapacity",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NotEnoughCapacity",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotMigrating",type:"error"},{inputs:[{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint8",name:"decimalsOther",type:"uint8"}],name:"NumberOfDecimalsNotEqual",type:"error"},{inputs:[],name:"OnlyDelegateCall",type:"error"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"OutboundQueuedTransferNotFound",type:"error"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"},{internalType:"uint256",name:"transferTimestamp",type:"uint256"}],name:"OutboundQueuedTransferStillQueued",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"PeerNotRegistered",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{internalType:"uint256",name:"refundAmount",type:"uint256"}],name:"RefundFailed",type:"error"},{inputs:[],name:"RequireContractIsNotPaused",type:"error"},{inputs:[],name:"RequireContractIsPaused",type:"error"},{inputs:[{internalType:"uint256",name:"retrieved",type:"uint256"},{internalType:"uint256",name:"registered",type:"uint256"}],name:"RetrievedIncorrectRegisteredTransceivers",type:"error"},{inputs:[],name:"StaticcallFailed",type:"error"},{inputs:[{internalType:"uint256",name:"threshold",type:"uint256"},{internalType:"uint256",name:"transceivers",type:"uint256"}],name:"ThresholdTooHigh",type:"error"},{inputs:[],name:"TooManyTransceivers",type:"error"},{inputs:[{internalType:"bytes32",name:"nttManagerMessageHash",type:"bytes32"}],name:"TransceiverAlreadyAttestedToMessage",type:"error"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"TransceiverAlreadyEnabled",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"dust",type:"uint256"}],name:"TransferAmountHasDust",type:"error"},{inputs:[],name:"UndefinedRateLimiting",type:"error"},{inputs:[{internalType:"address",name:"expectedOwner",type:"address"},{internalType:"address",name:"owner",type:"address"}],name:"UnexpectedDeployer",type:"error"},{inputs:[],name:"UnexpectedMsgValue",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroThreshold",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"}],name:"InboundTransferQueued",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"sourceNttManager",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"MessageAlreadyExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint8",name:"index",type:"uint8"}],name:"MessageAttestedTo",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"notPaused",type:"bool"}],name:"NotPaused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"sequence",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OutboundTransferCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"OutboundTransferQueued",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"currentCapacity",type:"uint256"}],name:"OutboundTransferRateLimited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"paused",type:"bool"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"chainId_",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"oldPeerContract",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"oldPeerDecimals",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"peerContract",type:"bytes32"},{indexed:!1,internalType:"uint8",name:"peerDecimals",type:"uint8"}],name:"PeerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"oldThreshold",type:"uint8"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"ThresholdChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint256",name:"transceiversNum",type:"uint256"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"TransceiverAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"transceiver",type:"address"},{indexed:!1,internalType:"uint8",name:"threshold",type:"uint8"}],name:"TransceiverRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"digest",type:"bytes32"}],name:"TransferRedeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!1,internalType:"uint16",name:"recipientChain",type:"uint16"},{indexed:!1,internalType:"uint64",name:"msgSequence",type:"uint64"}],name:"TransferSent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"NTT_MANAGER_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{components:[{internalType:"bytes32",name:"id",type:"bytes32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.NttManagerMessage",name:"payload",type:"tuple"}],name:"attestationReceived",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],name:"cancelOutboundQueuedTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"completeInboundQueuedTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"messageSequence",type:"uint64"}],name:"completeOutboundQueuedTransfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{components:[{internalType:"bytes32",name:"id",type:"bytes32"},{internalType:"bytes32",name:"sender",type:"bytes32"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.NttManagerMessage",name:"message",type:"tuple"}],name:"executeMsg",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getCurrentInboundCapacity",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentOutboundCapacity",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getInboundLimitParams",outputs:[{components:[{internalType:"TrimmedAmount",name:"limit",type:"uint72"},{internalType:"TrimmedAmount",name:"currentCapacity",type:"uint72"},{internalType:"uint64",name:"lastTxTimestamp",type:"uint64"}],internalType:"struct IRateLimiter.RateLimitParams",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"getInboundQueuedTransfer",outputs:[{components:[{internalType:"TrimmedAmount",name:"amount",type:"uint72"},{internalType:"uint64",name:"txTimestamp",type:"uint64"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IRateLimiter.InboundQueuedTransfer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMigratesImmutables",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMode",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOutboundLimitParams",outputs:[{components:[{internalType:"TrimmedAmount",name:"limit",type:"uint72"},{internalType:"TrimmedAmount",name:"currentCapacity",type:"uint72"},{internalType:"uint64",name:"lastTxTimestamp",type:"uint64"}],internalType:"struct IRateLimiter.RateLimitParams",name:"",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint64",name:"queueSequence",type:"uint64"}],name:"getOutboundQueuedTransfer",outputs:[{components:[{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"},{internalType:"TrimmedAmount",name:"amount",type:"uint72"},{internalType:"uint64",name:"txTimestamp",type:"uint64"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"address",name:"sender",type:"address"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],internalType:"struct IRateLimiter.OutboundQueuedTransfer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"getPeer",outputs:[{components:[{internalType:"bytes32",name:"peerAddress",type:"bytes32"},{internalType:"uint8",name:"tokenDecimals",type:"uint8"}],internalType:"struct INttManager.NttManagerPeer",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getThreshold",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTransceiverInfo",outputs:[{components:[{internalType:"bool",name:"registered",type:"bool"},{internalType:"bool",name:"enabled",type:"bool"},{internalType:"uint8",name:"index",type:"uint8"}],internalType:"struct TransceiverRegistry.TransceiverInfo[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTransceivers",outputs:[{internalType:"address[]",name:"result",type:"address[]"}],stateMutability:"pure",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"isMessageApproved",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"isMessageExecuted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"}],name:"messageAttestations",outputs:[{internalType:"uint8",name:"count",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"migrate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mode",outputs:[{internalType:"enum IManagerBase.Mode",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextMessageSequence",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],name:"quoteDeliveryPrice",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"rateLimitDuration",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"removeTransceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"limit",type:"uint256"},{internalType:"uint16",name:"chainId_",type:"uint16"}],name:"setInboundLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"limit",type:"uint256"}],name:"setOutboundLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"peerChainId",type:"uint16"},{internalType:"bytes32",name:"peerContract",type:"bytes32"},{internalType:"uint8",name:"decimals",type:"uint8"},{internalType:"uint256",name:"inboundLimit",type:"uint256"}],name:"setPeer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"threshold",type:"uint8"}],name:"setThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"transceiver",type:"address"}],name:"setTransceiver",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenDecimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"digest",type:"bytes32"},{internalType:"uint8",name:"index",type:"uint8"}],name:"transceiverAttestedToMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],name:"transfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint16",name:"recipientChain",type:"uint16"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"},{internalType:"bool",name:"shouldQueue",type:"bool"},{internalType:"bytes",name:"transceiverInstructions",type:"bytes"}],name:"transfer",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserCapability",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"}],_bytecode$2="0x6101606040523480156200001257600080fd5b50604051620070b6380380620070b68339810160408190526200003591620005a6565b84848484846001600160401b03821615801562000050575080155b806200006d57506001600160401b038216158015906200006d5750805b156200008c5760405163e543ef0560e01b815260040160405180910390fd5b506001600160401b0316608052620000a36200010d565b620000ad62000279565b3060a0526001600160a01b03831660c052816001811115620000d357620000d362000640565b610100816001811115620000eb57620000eb62000640565b90525061ffff16610120525050466101405250503360e05250620006e0915050565b6000620001196200032d565b905060006200012762000363565b82548154919250610100900460ff1690811462000148576200014862000656565b60005b818110156200019d57620001888382815481106200016d576200016d6200066c565b6000918252602090912001546001600160a01b031662000392565b80620001948162000698565b9150506200014b565b5060005b8181101562000259576000620001b9826001620006b4565b90505b828110156200024357838181548110620001da57620001da6200066c565b60009182526020909120015484546001600160a01b03909116908590849081106200020957620002096200066c565b6000918252602090912001546001600160a01b0316036200022e576200022e62000656565b806200023a8162000698565b915050620001bc565b5080620002508162000698565b915050620001a1565b508254604060ff909116111562000274576200027462000656565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620002ca5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146200032a5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000806200035d60017f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8a620006ca565b92915050565b6000806200035d60017e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e2620006ca565b60006200039e62000530565b90506000620003ac62000560565b90506000620003ba6200032d565b90506000620003c862000363565b6001600160a01b038616600090815260208681526040918290208251606081018452905460ff80821615158084526101008304821615159484019490945262010000909104169281019290925291925090806200043857508060200151158015620004385750604081015160ff16155b62000447576200044762000656565b604081015184546020830151600160ff9093169290921b166001600160401b03161515906000805b8654610100900460ff16811015620004da57896001600160a01b0316868281548110620004a057620004a06200066c565b6000918252602090912001546001600160a01b031603620004c55760019150620004da565b80620004d18162000698565b9150506200046f565b5081151583151514620004f157620004f162000656565b8115158115151462000507576200050762000656565b8554604085015160ff91821691161062000525576200052562000656565b505050505050505050565b6000806200035d60017f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a80620006ca565b6000806200035d60017ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb120620006ca565b80518015158114620005a157600080fd5b919050565b600080600080600060a08688031215620005bf57600080fd5b85516001600160a01b0381168114620005d757600080fd5b602087015190955060028110620005ed57600080fd5b604087015190945061ffff811681146200060657600080fd5b60608701519093506001600160401b03811681146200062457600080fd5b9150620006346080870162000590565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201620006ad57620006ad62000682565b5060010190565b808201808211156200035d576200035d62000682565b818103818111156200035d576200035d62000682565b60805160a05160c05160e05161010051610120516101405161688d6200082960003960008181612c250152818161340f01526134e201526000818161067a01528181610e7701528181611d8901528181611dd901526153460152600081816103fe01528181610dbe01528181612cec01528181612d5e01528181612e1c0152818161326e015261529401526000818161446a01526144a60152600081816108c801528181610cfc01528181612d2e01528181612db9015281816131d40152818161320801528181613237015281816132b9015281816133240152818161354401526151f201526000612b630152600081816104c50152818161113f01528181611720015281816122fa0152818161235b01528181613d3d01528181613e6301528181613ec9015281816141020152818161482401528181614a360152614a86015261688d6000f3fe6080604052600436106102885760003560e01c80638e3ba8c91161015a578063b4d591bb116100c1578063e75235b81161007a578063e75235b81461084c578063f2fde38b14610861578063f5cfec1814610881578063f7514fbc14610896578063fc0c546a146108b6578063fd96063c146108ea57600080fd5b8063b4d591bb1461074e578063c0b07bde14610770578063c128d170146107ae578063d788c147146107ec578063da4856a11461080c578063e5a986031461082c57600080fd5b80639d782454116101135780639d782454146106af5780639f86029c146106cf5780639fd0506d146106ef578063b150fc5514610704578063b187bd2614610726578063b293f97f1461073b57600080fd5b80638e3ba8c9146105df5780638fd3ab80146105ff5780639057412d14610614578063961b94d01461064257806397c35146146106555780639a8a05921461066857600080fd5b80633b97e856116101fe5780638129fc1c116101b75780638129fc1c146105075780638413bcba1461050f5780638456cb591461052f57806386e11ffa1461054457806389c619dd146105925780638da5cb5b146105b257600080fd5b80633b97e8561461044d5780633f4ba83a146104745780634b4fd03b14610489578063689f90c31461049e57806374aa7bfc146104b35780637c918634146104e757600080fd5b8063190171751161025057806319017175146103525780631f97c9a814610372578063203e4a9b1461039f57806323d75e31146103bf578063295a5212146103ec578063396c16b71461042d57600080fd5b8063027172501461028d578063036de8af146102c05780630677df54146102e25780630900f01014610312578063186ce61214610332575b600080fd5b34801561029957600080fd5b506102ad6102a8366004615a2c565b610947565b6040519081526020015b60405180910390f35b3480156102cc57600080fd5b506102e06102db366004615a5e565b610984565b005b3480156102ee57600080fd5b506103026102fd366004615a7b565b6109f0565b60405190151581526020016102b7565b34801561031e57600080fd5b506102e061032d366004615a5e565b610a25565b34801561033e57600080fd5b506102e061034d366004615a94565b610a39565b34801561035e57600080fd5b506102e061036d366004615a7b565b610a66565b34801561037e57600080fd5b5061039261038d366004615ad9565b610a91565b6040516102b79190615b46565b3480156103ab57600080fd5b506102e06103ba366004615a5e565b610bed565b3480156103cb57600080fd5b506103d4610c8a565b6040516001600160401b0390911681526020016102b7565b3480156103f857600080fd5b506104207f000000000000000000000000000000000000000000000000000000000000000081565b6040516102b79190615bd2565b34801561043957600080fd5b50610302610448366004615a7b565b610ca3565b34801561045957600080fd5b50610462610cc1565b60405160ff90911681526020016102b7565b34801561048057600080fd5b506102e0610da5565b34801561049557600080fd5b50610462610dba565b3480156104aa57600080fd5b50610302610df3565b3480156104bf57600080fd5b506103d47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f357600080fd5b506102e0610502366004615c09565b610e06565b6102e0610fca565b34801561051b57600080fd5b506102e061052a366004615a7b565b6110cc565b34801561053b57600080fd5b506102e0611218565b34801561055057600080fd5b5061055961122b565b6040805182516001600160481b03908116825260208085015190911690820152918101516001600160401b0316908201526060016102b7565b34801561059e57600080fd5b506104626105ad366004615a7b565b61128f565b3480156105be57600080fd5b506105c76112a8565b6040516001600160a01b0390911681526020016102b7565b3480156105eb57600080fd5b506103026105fa366004615c51565b6112d6565b34801561060b57600080fd5b506102e0611310565b34801561062057600080fd5b5061063461062f366004615d61565b61141a565b6040516102b7929190615db0565b6103d4610650366004615df8565b61151d565b6103d4610663366004615ad9565b611597565b34801561067457600080fd5b5061069c7f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff90911681526020016102b7565b3480156106bb57600080fd5b506102e06106ca366004615e30565b61183e565b3480156106db57600080fd5b506102e06106ea366004615a5e565b6118db565b3480156106fb57600080fd5b506105c7611976565b34801561071057600080fd5b5061071961198f565b6040516102b79190615ee6565b34801561073257600080fd5b50610302611b19565b6103d4610749366004615f54565b611b2e565b34801561075a57600080fd5b50610763611b8f565b6040516102b79190615fd1565b34801561077c57600080fd5b506107a1604051806040016040528060058152602001640302e312e360dc1b81525081565b6040516102b7919061601e565b3480156107ba57600080fd5b506107ce6107c9366004615a2c565b611bf7565b604080518251815260209283015160ff1692810192909252016102b7565b3480156107f857600080fd5b50610559610807366004615a2c565b611c47565b34801561081857600080fd5b506102e0610827366004615e30565b611cc2565b34801561083857600080fd5b506102e0610847366004616031565b611eac565b34801561085857600080fd5b50610462611f40565b34801561086d57600080fd5b506102e061087c366004615a5e565b611f4a565b34801561088d57600080fd5b506102ad612008565b3480156108a257600080fd5b506102e06108b1366004615ad9565b612037565b3480156108c257600080fd5b506105c77f000000000000000000000000000000000000000000000000000000000000000081565b3480156108f657600080fd5b5061090a610905366004615a7b565b61227c565b6040805182516001600160481b031681526020808401516001600160401b031690820152918101516001600160a01b0316908201526060016102b7565b60008061095b61095684611c47565b6122f6565b90506000610967610cc1565b905061097c6001600160481b03831682612404565b949350505050565b61099461098f6112a8565b612424565b600061099e61246d565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef690600090a3505050565b6000806109fb611f40565b90508060ff16610a0a8461128f565b60ff1610158015610a1e575060008160ff16115b9392505050565b610a2d61249b565b610a36816124cd565b50565b610a4161249b565b6000610a4b610cc1565b9050610a61610a5b8483806125db565b83612628565b505050565b610a6e61249b565b6000610a78610cc1565b9050610a8d610a888383806125db565b61264d565b5050565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810191909152610ad461265e565b6001600160401b0383811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c084019190610b649061604e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b909061604e565b8015610bdd5780601f10610bb257610100808354040283529160200191610bdd565b820191906000526020600020905b815481529060010190602001808311610bc057829003601f168201915b5050505050815250509050919050565b610bf561249b565b610bfe8161268c565b506000610c0961293e565b805490915060ff16600003610c2457805460ff191660011781555b7ff05962b5774c658e85ed80c91a75af9d66d2af2253dda480f90bce78aff5eda582610c4e61296c565b548354604080516001600160a01b03909416845261010090920460ff9081166020850152169082015260600160405180910390a1610a8d61299a565b6000610c94612a3b565b546001600160401b0316919050565b6000610cad612a69565b600092835260205250604090205460ff1690565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b1790529051600091829182916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691610d279190616088565b600060405180830381855afa9150503d8060008114610d62576040519150601f19603f3d011682016040523d82523d6000602084013e610d67565b606091505b509150915081610d8a57604051631222cd8360e01b815260040160405180910390fd5b80806020019051810190610d9e91906160a4565b9250505090565b610db061098f6112a8565b610db8612a97565b565b60007f00000000000000000000000000000000000000000000000000000000000000006001811115610dee57610dee615bbc565b905090565b6000610dfd612afd565b5460ff16919050565b610e0e61249b565b8361ffff16600003610e335760405163100b0f2760e11b815260040160405180910390fd5b82610e515760405163f839a0cb60e01b815260040160405180910390fd5b8160ff16600003610e755760405163ade64f0b60e01b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000061ffff168461ffff1603610ebd5760405163101b8f9560e11b815260040160405180910390fd5b6000610ec7612b2b565b61ffff8616600090815260209182526040908190208151808301909252805482526001015460ff1691810191909152905083610f01612b2b565b61ffff87166000908152602091909152604090205582610f1f612b2b565b61ffff8716600090815260209190915260408120600101805460ff191660ff9390931692909217909155610f51610cc1565b9050610f67610f618483806125db565b87612628565b81516020808401516040805193845260ff918216928401929092529082018790528516606082015261ffff8716907f1456404e7f41f35c3daac941bb50bad417a66275c3040061b4287d787719599d9060800160405180910390a2505050505050565b610fd2612b59565b6000805160206168388339815191528054600160401b810460ff1615906001600160401b03166000811580156110055750825b90506000826001600160401b031660011480156110215750303b155b90508115801561102f575080155b1561104d5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561107757845460ff60401b1916600160401b1785555b61107f612ba2565b83156110c557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6110d4612bba565b6110dc611b19565b156110fa576040516309e3d0f360e11b815260040160405180910390fd5b60006111058261227c565b905080602001516001600160401b031660000361113d57604051630301bcaf60e61b8152600481018390526024015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681602001516001600160401b03164261118091906160d7565b10156111b75760208101516040516301cb739d60e71b8152600481018490526001600160401b039091166024820152604401611134565b6111bf612bf2565b6000838152602091909152604080822080546001600160881b031916815560010180546001600160a01b031916905582015182516112009285929190612c20565b50610a36600160008051602061681883398151915255565b61122361098f6112a8565b610db8612e7f565b6040805160608101825260008082526020820181905291810191909152611250612ee0565b6040805160608101825291546001600160481b038082168452600160481b8204166020840152600160901b90046001600160401b031690820152919050565b60006112a261129d83612f0e565b612f4a565b92915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b600080600160ff84161b6112e8612a69565b600086815260209190915260409020546101009004166001600160401b031611905092915050565b611318612b59565b611320612f7d565b61132b9060016160ea565b6000805160206168388339815191528054600160401b900460ff168061135e575080546001600160401b03808416911610155b1561137c5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556113a5612f93565b5460ff166113c657604051632866815360e11b815260040160405180910390fd5b6113ce612baa565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050565b6060600080611427612fc1565b80548060200260200160405190810160405280929190818152602001828054801561147b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161145d575b50505050509050600073__$93083e246e55d56d98f3df2872cd16bfd0$__63b620e8728684516040518363ffffffff1660e01b81526004016114be929190616111565b600060405180830381865af41580156114db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115039190810190616178565b9050611510868284612fee565b9350935050509250929050565b6000611527612bba565b61152f611b19565b1561154d576040516309e3d0f360e11b815260040160405180910390fd5b60408051600180825281830190925261157e918691869186918291600091906020820181803683370190505061316e565b9050610a1e600160008051602061681883398151915255565b60006115a1612bba565b6115a9611b19565b156115c7576040516309e3d0f360e11b815260040160405180910390fd5b60006115d161265e565b6001600160401b0384811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c0840191906116619061604e565b80601f016020809104026020016040519081016040528092919081815260200182805461168d9061604e565b80156116da5780601f106116af576101008083540402835291602001916116da565b820191906000526020600020905b8154815290600101906020018083116116bd57829003601f168201915b505050505081525050905080606001516001600160401b031660000361171e57604051635feafa3160e11b81526001600160401b0384166004820152602401611134565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b031681606001516001600160401b03164261176191906160d7565b101561179957606081015160405163c06cf05f60e01b81526001600160401b0380861660048301529091166024820152604401611134565b6117a161265e565b6001600160401b038416600090815260209190915260408120818155600181018290556002810180546001600160981b03191690556003810180546001600160a01b0319169055906117f660048301826159d2565b505061181f8382604001518360800151846000015185602001518660a001518760c001516134db565b915050611839600160008051602061681883398151915255565b919050565b61184661379a565b3360009081526020919091526040902054610100900460ff1661187e5760405163a0ae911d60e01b8152336004820152602401611134565b611886611b19565b156118a4576040516309e3d0f360e11b815260040160405180910390fd5b6118ae83836137c8565b60006118ba8483613811565b90506118c5816109f0565b156118d5576118d5848484611cc2565b50505050565b6118e361249b565b6118ec816138e6565b60006118f661293e565b9050600061190261296c565b54825460ff610100909204821692501681101561192757815460ff191660ff82161782555b8154604080516001600160a01b038616815260ff90921660208301527f697a3853515b88013ad432f29f53d406debc9509ed6d9313dcfe115250fcd18f910160405180910390a1610a6161299a565b600061198061246d565b546001600160a01b0316919050565b6060600061199b612fc1565b8054806020026020016040519081016040528092919081815260200182805480156119ef57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119d1575b505050505090506000815190506000816001600160401b03811115611a1657611a16615c76565b604051908082528060200260200182016040528015611a6157816020015b6040805160608101825260008082526020808301829052928201528252600019909201910181611a345790505b50905060005b82811015611b1157611a7761379a565b6000858381518110611a8b57611a8b616281565b6020908102919091018101516001600160a01b031682528181019290925260409081016000208151606081018352905460ff8082161515835261010082048116151594830194909452620100009004909216908201528251839083908110611af557611af5616281565b602002602001018190525080611b0a90616297565b9050611a67565b509392505050565b600080611b24613bae565b5460021492915050565b6000611b38612bba565b611b40611b19565b15611b5e576040516309e3d0f360e11b815260040160405180910390fd5b611b6c87878787878761316e565b9050611b85600160008051602061681883398151915255565b9695505050505050565b6060611b99612fc1565b805480602002602001604051908101604052809291908181526020018280548015611bed57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611bcf575b5050505050905090565b6040805180820190915260008082526020820152611c13612b2b565b61ffff909216600090815260209283526040908190208151808301909252805482526001015460ff16928101929092525090565b6040805160608101825260008082526020820181905291810191909152611c6c613bdc565b61ffff9290921660009081526020928352604090819020815160608101835290546001600160481b038082168352600160481b82041694820194909452600160901b9093046001600160401b0316908301525090565b611cca611b19565b15611ce8576040516309e3d0f360e11b815260040160405180910390fd5b600080611cf6858585613c0a565b915091508015611d07575050505050565b6040808401519051635399ded560e11b815260009173__$93083e246e55d56d98f3df2872cd16bfd0$__9163a733bdaa91611d449160040161601e565b608060405180830381865af4158015611d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8591906162b0565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816060015161ffff1614611e08576060810151604051631ee5902560e11b815261ffff91821660048201527f00000000000000000000000000000000000000000000000000000000000000009091166024820152604401611134565b6000611e12610cc1565b90506000611e428283611e3b8587600001516001600160481b031661240490919063ffffffff16565b91906125db565b90506000611e538460400151613d0d565b90506000611e61838b613d39565b90508015611e8057611e74878484613d88565b50505050505050505050565b50611e8b828a613e61565b611e9482613ec7565b611ea18682846000612c20565b505050505050505050565b611eb461249b565b8060ff16600003611ed85760405163831761d760e01b815260040160405180910390fd5b6000611ee261293e565b805460ff84811660ff19831617835591925016611efd61299a565b6040805160ff8084168252851660208201527f2a855b929b9a53c6fb5b5ed248b27e502b709c088e036a5aa17620c8fc5085a991015b60405180910390a1505050565b6000610dfd61293e565b611f5261249b565b611f5b81613f17565b6000611f65613f52565b9050611f6f613f80565b60005b8154811015610a6157818181548110611f8d57611f8d616281565b600091825260209091200154604051632c7b84dd60e11b81526001600160a01b038581166004830152909116906358f709ba90602401600060405180830381600087803b158015611fdd57600080fd5b505af1158015611ff1573d6000803e3d6000fd5b50505050808061200090616297565b915050611f72565b60008061201661095661122b565b90506000612022610cc1565b9050610d9e6001600160481b03831682612404565b61203f612bba565b612047611b19565b15612065576040516309e3d0f360e11b815260040160405180910390fd5b600061206f61265e565b6001600160401b0383811660009081526020928352604090819020815160e0810183528154815260018201549481019490945260028101546001600160481b03811692850192909252600160481b82049092166060840152600160881b900461ffff16608083015260038101546001600160a01b031660a083015260048101805460c0840191906120ff9061604e565b80601f016020809104026020016040519081016040528092919081815260200182805461212b9061604e565b80156121785780601f1061214d57610100808354040283529160200191612178565b820191906000526020600020905b81548152906001019060200180831161215b57829003601f168201915b505050505081525050905080606001516001600160401b03166000036121bc57604051635feafa3160e11b81526001600160401b0383166004820152602401611134565b60a08101516001600160a01b031633146122005760a081015160405163ceb40a8560e01b81523360048201526001600160a01b039091166024820152604401611134565b61220861265e565b6001600160401b038316600090815260209190915260408120818155600181018290556002810180546001600160981b03191690556003810180546001600160a01b03191690559061225d60048301826159d2565b5050611200826001600160401b031660001b3383604001516001612c20565b60408051606081018252600080825260208201819052918101919091526122a1612bf2565b60009283526020908152604092839020835160608101855281546001600160481b0381168252600160481b90046001600160401b031692810192909252600101546001600160a01b0316928101929092525090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b031660000361234157602082015160ff1668ffffffffffffffff00176112a2565b604082015182516001600160401b039182164203916000917f0000000000000000000000000000000000000000000000000000000000000000821691849160081c166001600160401b0316028161239a5761239a616330565b602086015186516001600160401b03600892831c8116949093049390930193506000926123cd9285929190911c16613fd1565b90506123fb6123db82613fe7565b602087015160ff1660ff1660089190911b68ffffffffffffffff00161790565b95945050505050565b60006001600160401b03600884901c1660ff841682611b8583838761404f565b3361242d611976565b6001600160a01b03161415801561244d57506001600160a01b0381163314155b15610a365760405163e2a08e5d60e01b8152336004820152602401611134565b6000806112a260017fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124a6160d7565b336124a46112a8565b6001600160a01b031614610db85760405163118cdaa760e01b8152336004820152602401611134565b6124d5612b59565b6124de816140b8565b60006124e8612f93565b805490915060ff16156124fd576124fd616346565b805460ff191660011781556040805163011fa75760e71b815290513091638fd3ab8091600480830192600092919082900301818387803b15801561254057600080fd5b505af1158015612554573d6000803e3d6000fd5b50505050306001600160a01b031663689f90c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba919061635c565b6125c6576125c66140f8565b6125d060006141a2565b805460ff1916905550565b6000806125f26125ec6008866141bd565b846141bd565b9050600061260186868461404f565b9050611b8561260f82613fe7565b8360ff1660089190911b68ffffffffffffffff00161790565b610a8d82612634613bdc565b61ffff84166000908152602091909152604090206141d2565b610a3681612659612ee0565b6141d2565b6000806112a260017f852fa0677fef8612c6c15b518c9fa56761e9ed15cfd5c6e5399e5467985ac7ee6160d7565b60008061269761379a565b905060006126a36142db565b905060006126af612fc1565b905060006126bb61296c565b90506001600160a01b0386166126e457604051632f44bd7760e01b815260040160405180910390fd5b6001600160a01b03861660009081526020859052604090205460ff161561272f576001600160a01b0386166000908152602085905260409020805461ff00191661010017905561282c565b8054604060ff909116106127565760405163891684c360e01b815260040160405180910390fd5b6040805160608101825260018082526020808301918252845460ff9081168486019081526001600160a01b038c166000908152928a905294822093518454935195518216620100000262ff0000199615156101000261ff00199215159290921661ffff199095169490941717949094169190911790915582549091169082906127de83616379565b91906101000a81548160ff021916908360ff160217905550506127ff613f52565b8054600181018255600091825260209091200180546001600160a01b0319166001600160a01b0388161790555b81546001808201845560008481526020902090910180546001600160a01b0319166001600160a01b0389161790558154610100900460ff1690829061287083616379565b82546101009290920a60ff8181021990931691831602179091556001600160a01b03881660009081526020879052604090205485546001620100009092049092161b6001600160401b03918216818117935091168117036128ef57604051638d68f84d60e01b81526001600160a01b0388166004820152602401611134565b835467ffffffffffffffff19166001600160401b038216178455612911614309565b505050506001600160a01b0392909216600090815260209290925250604090205462010000900460ff1690565b6000806112a260017f47028352a8b3feae1a85fba43bc13f990568bb1637dce33d3dbfd791a0808b806160d7565b6000806112a260017f8561949d1c6242cee5c5a5aeb6b9c190ee611d7742fcec65d9e5b1341ea04d8a6160d7565b60006129a461293e565b5460ff16905060006129b461296c565b60408051808201909152905460ff808216835261010090910481166020830181905291925083161115612a0d5760208101516040516313c3d1b160e01b815260ff80851660048301529091166024820152604401611134565b805160ff1615610a8d578160ff16600003610a8d5760405163831761d760e01b815260040160405180910390fd5b6000806112a260017fad78307a8b51804c575f26039dcb87c58925afb3b7c08732f3b21b942aed7a776160d7565b6000806112a260017f68dfeeddfa5e4e9adceec01a3aba274bdcbab3f6ac9956417a4332f2b08abddb6160d7565b612a9f611b19565b612abc57604051637e38d1d360e11b815260040160405180910390fd5b612ac6600161444a565b604051600081527fe11c2112add17fb763d3bd59f63b10429c3e11373da4fb8ef6725107a2fdc4b0906020015b60405180910390a1565b6000806112a260017f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cc6160d7565b6000806112a260017febcc9f646b0f459ff8f387587d536b0af3484cf442e1577400f322334e7d1ef16160d7565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610db857604051633c64f99360e21b815260040160405180910390fd5b612baa614457565b612bb261299a565b610db8614309565b600080516020616818833981519152805460011901612bec57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000806112a260017f4e8909a01183a67951f5a6147d6e76ed02ea890c72afea01a9edee91edc609b96160d7565b612c497f000000000000000000000000000000000000000000000000000000000000000061451d565b6000612c66612c56610cc1565b6001600160481b03851690612404565b90508115612cbc57604080518681526001600160a01b03861660208201529081018290527ff80e572ae1b63e2449629b6c7d783add85c36473926f216077f17ee002bcfd079060600160405180910390a1612ce8565b60405185907f504e6efe18ab9eed10dc6501a417f5b12a2f7f2b1593aed9b89f9bce3cf29a9190600090a25b60007f00000000000000000000000000000000000000000000000000000000000000006001811115612d1c57612d1c615bbc565b03612d5a57612d556001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168583614546565b6110c5565b60017f00000000000000000000000000000000000000000000000000000000000000006001811115612d8e57612d8e615bbc565b03612e1a576040516340c10f1960e01b81526001600160a01b038581166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401600060405180830381600087803b158015612dfd57600080fd5b505af1158015612e11573d6000803e3d6000fd5b505050506110c5565b7f00000000000000000000000000000000000000000000000000000000000000006001811115612e4c57612e4c615bbc565b6040516366001a8960e01b815260ff9091166004820152602401611134565b600160008051602061681883398151915255565b612e87611b19565b15612ea5576040516309e3d0f360e11b815260040160405180910390fd5b612eaf600261444a565b604051600181527f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd290602001612af3565b6000806112a260017f7c25289a27ec8c9be54d4a154cf80490d69bda989cdb8328232e08fea92204216160d7565b600080612f196145a9565b905080612f24612a69565b60009485526020526040909320546101009004929092166001600160401b031692915050565b60005b6001600160401b0382161561183957612f67600183616398565b9091169080612f7581616379565b915050612f4d565b6000600080516020616838833981519152610c94565b6000806112a260017f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4f6160d7565b6000806112a260017e758a264b9bdbe3295fe36bd6ff7abaa122f48bf70e90af04a1b8a32d21e4e26160d7565b805160609060009081612fff61379a565b90506000826001600160401b0381111561301b5761301b615c76565b604051908082528060200260200182016040528015613044578160200160208202803683370190505b5090506000805b8481101561315d57600088828151811061306757613067616281565b6020908102919091018101516001600160a01b03811660008181529288905260408320548d5192945062010000900460ff16929163b5634c73908f908f90869081106130b5576130b5616281565b60200260200101516040518363ffffffff1660e01b81526004016130da9291906163da565b602060405180830381865afa1580156130f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311b91906163f7565b90508086858151811061313057613130616281565b60209081029190910101526131458186616410565b9450505050808061315590616297565b91505061304b565b50909450925050505b935093915050565b60008660000361319157604051631f2a200560e01b815260040160405180910390fd5b846131af57604051634e46966960e11b815260040160405180910390fd5b836131cd5760405163717f139360e11b815260040160405180910390fd5b60006131f97f0000000000000000000000000000000000000000000000000000000000000000306145b3565b90506132306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b614684565b600061325c7f0000000000000000000000000000000000000000000000000000000000000000306145b3565b905061326882826160d7565b985060017f0000000000000000000000000000000000000000000000000000000000000000600181111561329e5761329e615bbc565b0361337757604051630852cd8d60e31b8152600481018a90527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b15801561330557600080fd5b505af1158015613319573d6000803e3d6000fd5b5050505060006133497f0000000000000000000000000000000000000000000000000000000000000000306145b3565b9050808314613375576040516302156a8f60e01b81526004810184905260248101829052604401611134565b505b5050600061338588886146bc565b905060006133a4613394610cc1565b6001600160481b03841690614774565b905060006133b06147c3565b905060006133bd83614820565b9050861580156133ca5750805b156133fb576133d7612008565b6040516326fb55dd60e01b81526004810191909152602481018c9052604401611134565b8680156134055750805b156134aa576134337f000000000000000000000000000000000000000000000000000000000000000061451d565b337ff33512b84e24a49905c26c6991942fc5a9652411769fc1e448f967cdb049f08a838d61345f612008565b604080516001600160401b03909416845260208401929092529082015260600160405180910390a261349682858c8c8c338c61486e565b61349f346149c8565b509250611b85915050565b506134b482614a34565b6134be828a614a84565b6134cd81848b8b8b338b6134db565b9a9950505050505050505050565b60006135067f000000000000000000000000000000000000000000000000000000000000000061451d565b6000806000806135168a87614aea565b935093509350935060008c9050600060405180608001604052808e6001600160481b0316815260200161356f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690565b81526020018c81526020018d61ffff168152509050600073__$93083e246e55d56d98f3df2872cd16bfd0$__638b4979b86040518060600160405280866001600160401b031660001b81526020016135cd8e6001600160a01b031690565b8152604080516315cfa3cb60e11b815287516001600160481b031660048201526020888101516024830152918801516044820152606088015161ffff16606482015291019073__$93083e246e55d56d98f3df2872cd16bfd0$__90632b9f479690608401600060405180830381865af415801561364e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136769190810190616423565b8152506040518263ffffffff1660e01b81526004016136959190616480565b600060405180830381865af41580156136b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136da9190810190616423565b90508c613708818d6136ea612b2b565b61ffff851660009081526020919091526040902054898b8d88614c75565b8e7fe54e51e42099622516fa3b48e9733581c9dbdcb771cafb093f745a0532a359828e8e613747613737610cc1565b6001600160481b03861690612404565b604080519384526020840192909252908201526060810188905261ffff841660808201526001600160401b03871660a082015260c00160405180910390a150929f9e505050505050505050505050505050565b6000806112a260017f49bca747e973430e858f2f5de357b8dba36ea6d375b81bdb5d53dfaabf0b3a806160d7565b806137d1612b2b565b61ffff84166000908152602091909152604090205414610a8d57604051635788c0fd60e11b815261ffff8316600482015260248101829052604401611134565b60008073__$93083e246e55d56d98f3df2872cd16bfd0$__63b3f07bbd85856040518363ffffffff1660e01b815260040161384d929190616493565b602060405180830381865af415801561386a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388e91906163f7565b90506138bb8161389c61379a565b336000908152602091909152604090205462010000900460ff166112d6565b156138dc57604051631089c4a160e11b815260048101829052602401611134565b610a1e8133614dc2565b60006138f061379a565b905060006138fc6142db565b90506000613908612fc1565b90506001600160a01b03841661393157604051632f44bd7760e01b815260040160405180910390fd5b6001600160a01b03841660009081526020849052604090205460ff1661397557604051630d583f4760e41b81526001600160a01b0385166004820152602401611134565b6001600160a01b038416600090815260208490526040902054610100900460ff166139be576040516307d86e9160e21b81526001600160a01b0385166004820152602401611134565b6001600160a01b0384166000908152602084905260409020805461ff00191690556139e761296c565b8054610100900460ff169060016139fd836164b0565b82546101009290920a60ff8181021990931691831602179091556001600160a01b03861660009081526020869052604090205484546001600160401b036001620100009093049093169190911b19811682169250168110613a6057613a60616346565b825467ffffffffffffffff19166001600160401b0382161783558154600090815b81811015613b8657876001600160a01b0316858281548110613aa557613aa5616281565b6000918252602090912001546001600160a01b031603613b745784613acb6001846160d7565b81548110613adb57613adb616281565b9060005260206000200160009054906101000a90046001600160a01b0316858281548110613b0b57613b0b616281565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084805480613b4957613b496164cd565b600082815260209020810160001990810180546001600160a01b031916905501905560019250613b86565b80613b7e81616297565b915050613a81565b5081613b9457613b94616346565b613b9c614309565b613ba587614e63565b50505050505050565b6000806112a260017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b82580236160d7565b6000806112a260017fefb21dcaedea63b55c44882f329622e13a8d0f5b947b3a372826208a9003da166160d7565b600080600073__$93083e246e55d56d98f3df2872cd16bfd0$__63b3f07bbd87866040518363ffffffff1660e01b8152600401613c48929190616493565b602060405180830381865af4158015613c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8991906163f7565b9050613c94816109f0565b613cb457604051630451c4fb60e41b815260048101829052602401611134565b6000613cbf82614fd7565b90508015613d0157604051829087907f4069dff8c9df7e38d2867c0910bd96fd61787695e5380281148c04932d02bef290600090a36000935091506131669050565b90969095509350505050565b600060a082901c15613d355760405163033b960d60e41b815260048101839052602401611134565b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613d73576000610a1e565b610a1e613d8261095684611c47565b84615018565b6040518060600160405280836001600160481b03168152602001426001600160401b03168152602001826001600160a01b0316815250613dc6612bf2565b6000858152602091825260409081902083518154858501516001600160481b039092166001600160881b031990911617600160481b6001600160401b039092169190910217815592810151600190930180546001600160a01b0319166001600160a01b039094169390931790925590518481527f7f63c9251d82a933210c2b6d0b0f116252c3c116788120e64e8e8215df6f31629101611f33565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613e96575050565b610a8d82613ea661095684611c47565b613eae613bdc565b61ffff8516600090815260209190915260409020615024565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003613efb5750565b610a3681613f0a61095661122b565b613f12612ee0565b61507d565b613f1f61249b565b6001600160a01b038116613f4957604051631e4fbdf760e01b815260006004820152602401611134565b610a36816150d1565b6000806112a260017f3031d39df71efbb605646fc51d7571499445af538fa6dd17ce8c07e8118ed9796160d7565b613f8861296c565b5460ff16613f94613f52565b5414610db857613fa2613f52565b54613fab61296c565b5460405163d2a13a2960e01b8152600481019290925260ff166024820152604401611134565b6000818310613fe05781610a1e565b5090919050565b60006001600160401b03821115613d355760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401611134565b60008160ff168360ff1603614065575082610a1e565b8160ff168360ff1611156140995761407d82846164e3565b61408890600a6165e0565b61409290856165ef565b9050610a1e565b6140a383836164e3565b6140ae90600a6165e0565b6140929085616611565b6140c181615142565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6141006151f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316306001600160a01b03166374aa7bfc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061418c9190616628565b6001600160401b031614610db857610db8616346565b806141ab612afd565b805460ff191691151591909117905550565b60008160ff168360ff1610613fe05781610a1e565b80546001600160481b03166141e6816153dc565b1561421457815468ffffffffffffffffff60481b1916600160481b6001600160481b03851602178255614294565b6040805160608101825283546001600160481b038082168352600160481b8204166020830152600160901b90046001600160401b03169181019190915260009061425d906122f6565b905061426a8483836153fc565b83546001600160481b0391909116600160481b0268ffffffffffffffffff60481b19909116178355505b5080546001600160481b039290921679ffffffffffffffff000000000000000000ffffffffffffffffff1990921691909117600160901b426001600160401b031602179055565b6000806112a260017ffd6568c039679b3b7cc93c26c41d9379b7b1bec1677120493b467688302cb1206160d7565b600061431361296c565b9050600061431f612fc1565b82548154919250610100900460ff1690811461433d5761433d616346565b60005b818110156143895761437783828154811061435d5761435d616281565b6000918252602090912001546001600160a01b0316614e63565b8061438181616297565b915050614340565b5060005b818110156144325760006143a2826001616410565b90505b8281101561441f578381815481106143bf576143bf616281565b60009182526020909120015484546001600160a01b03909116908590849081106143eb576143eb616281565b6000918252602090912001546001600160a01b03160361440d5761440d616346565b8061441781616297565b9150506143a5565b508061442a81616297565b91505061438d565b508254604060ff9091161115610a6157610a61616346565b80614453613bae565b5550565b61445f615496565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146144d957604051636345072160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401611134565b34156144f85760405163bd28e88960e01b815260040160405180910390fd5b61450233336154cd565b61450a6154e7565b610db8610a88614518610cc1565b6154f7565b468114610a36576040516377d879fb60e01b815260048101829052466024820152604401611134565b6040516001600160a01b038316602482015260448101829052610a6190849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261551b565b6000610c946142db565b604080516001600160a01b0383811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166370a0823160e01b1790529151600092839283929187169161460d9190616088565b600060405180830381855afa9150503d8060008114614648576040519150601f19603f3d011682016040523d82523d6000602084013e61464d565b606091505b50915091508161467057604051631222cd8360e01b815260040160405180910390fd5b808060200190518101906123fb91906163f7565b6040516001600160a01b03808516602483015283166044820152606481018290526118d59085906323b872dd60e01b90608401614572565b6000806146c7612b2b565b61ffff84166000908152602091909152604081206001015460ff1691508190036147045760405163ade64f0b60e01b815260040160405180910390fd5b60008061470f610cc1565b905061471c8682856125db565b915060006147336001600160481b03841683612404565b9050808714614769578661474782826160d7565b6040516338f831a560e11b815260048101929092526024820152604401611134565b509095945050505050565b6000806147826008846141bd565b905061097c6147aa6147a56001600160401b03600888901c1660ff88168561404f565b613fe7565b8260ff1660089190911b68ffffffffffffffff00161790565b60006147cd612a3b565b546001600160401b031690506147e1612a3b565b80546001600160401b03169060006147f883616645565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b031660000361485a5760006112a2565b6112a261486861095661122b565b83615018565b6040518060e00160405280858152602001848152602001876001600160481b03168152602001426001600160401b031681526020018661ffff168152602001836001600160a01b03168152602001828152506148c861265e565b6001600160401b03808a1660009081526020928352604090819020845181559284015160018401558301516002830180546060860151608087015161ffff16600160881b0261ffff60881b1991909516600160481b026001600160881b03199092166001600160481b0390941693909317179190911691909117905560a08201516003820180546001600160a01b039092166001600160a01b031990921691909117905560c0820151600482019061498090826166b9565b50506040516001600160401b03891681527f69add1952a6a6b9cb86f04d05f0cb605cbb469a50ae916139d34495a9991481f915060200160405180910390a150505050505050565b604051600090339083908381818185875af1925050503d8060008114614a0a576040519150601f19603f3d011682016040523d82523d6000602084013e614a0f565b606091505b5050905080610a8d57604051630b288dc560e21b815260048101839052602401611134565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003614a685750565b610a3681614a7761095661122b565b614a7f612ee0565b615024565b7f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316600003614ab9575050565b610a8d82614ac961095684611c47565b614ad1613bdc565b61ffff851660009081526020919091526040902061507d565b6060806060600080614afa612fc1565b805480602002602001604051908101604052809291908181526020018280548015614b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614b30575b5050505050905060606000614b61613f52565b5483519091506000819003614b89576040516334e7b19560e11b815260040160405180910390fd5b604051635b10743960e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__9063b620e87290614bc2908c908690600401616111565b600060405180830381865af4158015614bdf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614c079190810190616178565b92505050600080614c198a8486612fee565b9150915080341015614c47576040516306a91e3760e51b815260048101829052346024820152604401611134565b6000614c5382346160d7565b90508015614c6457614c64816149c8565b509299919850965090945092505050565b81516000614c8161379a565b905086614ca757604051630ebc95af60e21b815261ffff8a166004820152602401611134565b8760005b83811015614db5576000868281518110614cc757614cc7616281565b60200260200101519050806001600160a01b0316634b5b05058a8481518110614cf257614cf2616281565b60200260200101518e8b886000876001600160a01b03166001600160a01b0316815260200190815260200160002060000160029054906101000a900460ff1660ff1681518110614d4457614d44616281565b60200260200101518a8f896040518763ffffffff1660e01b8152600401614d6f959493929190616778565b6000604051808303818588803b158015614d8857600080fd5b505af1158015614d9c573d6000803e3d6000fd5b5050505050508080614dad90616297565b915050614cab565b5050505050505050505050565b614df682614dce61379a565b6001600160a01b0384166000908152602091909152604090205462010000900460ff166155ed565b7f35a2101eaac94b493e0dfca061f9a7f087913fde8678e7cde0aca9897edba0e58282614e2161379a565b6001600160a01b038581166000908152602092835260409081902054815195865293909116918401919091526201000090910460ff169082015260600161140e565b6000614e6d61379a565b90506000614e796142db565b90506000614e8561296c565b90506000614e91612fc1565b6001600160a01b038616600090815260208681526040918290208251606081018452905460ff8082161515808452610100830482161515948401949094526201000090910416928101929092529192509080614eff57508060200151158015614eff5750604081015160ff16155b614f0b57614f0b616346565b604081015184546020830151600160ff9093169290921b166001600160401b03161515906000805b8654610100900460ff16811015614f9557896001600160a01b0316868281548110614f6057614f60616281565b6000918252602090912001546001600160a01b031603614f835760019150614f95565b80614f8d81616297565b915050614f33565b5081151583151514614fa957614fa9616346565b81151581151514614fbc57614fbc616346565b8554604085015160ff918216911610611ea157611ea1616346565b6000614fe282610ca3565b15614fef57506001919050565b6001614ff9612a69565b600093845260205260408320805460ff19169115159190911790555090565b6000610a1e838361563b565b805467ffffffffffffffff60901b1916600160901b426001600160401b0316021781556150518284615660565b81546001600160481b0391909116600160481b0268ffffffffffffffffff60481b199091161790555050565b80546001600160401b034216600160901b0267ffffffffffffffff60901b19821681178355615051916001600160481b0391821690821617906150c2908516866156a5565b6001600160481b031690615708565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b0381163b6151af5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401611134565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015615258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061527c91906167bc565b6001600160a01b03161461529257615292616346565b7f000000000000000000000000000000000000000000000000000000000000000060018111156152c4576152c4615bbc565b306001600160a01b031663295a52126040518163ffffffff1660e01b8152600401602060405180830381865afa158015615302573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061532691906167d9565b600181111561533757615337615bbc565b1461534457615344616346565b7f000000000000000000000000000000000000000000000000000000000000000061ffff16306001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156153a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153cb91906167fa565b61ffff1614610db857610db8616346565b60006001600160401b03600883901c161580156112a257505060ff161590565b6000806154098486615734565b15615442576154188486615660565b90506154248382615734565b6154315760ff831661543b565b61543b8382615660565b915061545b565b61544c8585615660565b90506154588382615759565b91505b6154658286615734565b15611b1157604051631e74e8fb60e31b81526001600160481b03808416600483015286166024820152604401611134565b60008051602061683883398151915254600160401b900460ff16610db857604051631afcd79f60e31b815260040160405180910390fd5b6154d5615496565b6154de8261579e565b610a8d816157af565b6154ef615496565b610db86157c0565b6000806155056008846141bd565b905068ffffffffffffffff0060ff821617610a1e565b6000615570826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166157c89092919063ffffffff16565b805190915015610a61578080602001905181019061558e919061635c565b610a615760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611134565b600160ff82161b6155fc612a69565b60009384526020526040909220805468ffffffffffffffff00198116610100918290046001600160401b03908116951694909417029290921790915550565b600061564783836157d7565b506001600160401b03600891821c81169290911c161090565b600061566c83836157d7565b610a1e61568c6001600160401b03600885811c8216919087901c16616398565b68ffffffffffffffff0060089190911b1660ff85161790565b60006156b183836157d7565b600883811c6001600160401b039081169184901c8116828101929183116156d857826156e1565b6001600160401b035b9250611b856156ef84613fe7565b68ffffffffffffffff0060089190911b1660ff88161790565b600061571483836157d7565b600882811c6001600160401b039081169185901c1610613fe05781610a1e565b600061574083836157d7565b506001600160401b03600891821c81169290911c161190565b600061576583836157d7565b610a1e6157856001600160401b03600885811c8216919087901c166160ea565b68ffffffffffffffff0060089190911b1660ff84161790565b6157a6615496565b610a368161580c565b6157b7615496565b610a3681615851565b612e6b615496565b606061097c8484600085615859565b60ff8281169082168082146118d557604051635ce6db6160e11b815260ff808416600483015282166024820152604401611134565b615814615496565b600061581e613bae565b600181559050600061582e61246d565b80546001600160a01b0319166001600160a01b0394909416939093179092555050565b613f1f615496565b6060824710156158ba5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611134565b600080866001600160a01b031685876040516158d69190616088565b60006040518083038185875af1925050503d8060008114615913576040519150601f19603f3d011682016040523d82523d6000602084013e615918565b606091505b509150915061592987838387615934565b979650505050505050565b606083156159a357825160000361599c576001600160a01b0385163b61599c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611134565b508161097c565b61097c83838151156159b85781518083602001fd5b8060405162461bcd60e51b8152600401611134919061601e565b5080546159de9061604e565b6000825580601f106159ee575050565b601f016020900490600052602060002090810190610a3691905b80821115613d355760008155600101615a08565b61ffff81168114610a3657600080fd5b600060208284031215615a3e57600080fd5b8135610a1e81615a1c565b6001600160a01b0381168114610a3657600080fd5b600060208284031215615a7057600080fd5b8135610a1e81615a49565b600060208284031215615a8d57600080fd5b5035919050565b60008060408385031215615aa757600080fd5b823591506020830135615ab981615a1c565b809150509250929050565b6001600160401b0381168114610a3657600080fd5b600060208284031215615aeb57600080fd5b8135610a1e81615ac4565b60005b83811015615b11578181015183820152602001615af9565b50506000910152565b60008151808452615b32816020860160208601615af6565b601f01601f19169290920160200192915050565b6020815281516020820152602082015160408201526001600160481b0360408301511660608201526001600160401b03606083015116608082015261ffff60808301511660a082015260018060a01b0360a08301511660c0820152600060c083015160e08084015261097c610100840182615b1a565b634e487b7160e01b600052602160045260246000fd5b6020810160028310615bf457634e487b7160e01b600052602160045260246000fd5b91905290565b60ff81168114610a3657600080fd5b60008060008060808587031215615c1f57600080fd5b8435615c2a81615a1c565b9350602085013592506040850135615c4181615bfa565b9396929550929360600135925050565b60008060408385031215615c6457600080fd5b823591506020830135615ab981615bfa565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715615cae57615cae615c76565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615cdc57615cdc615c76565b604052919050565b60006001600160401b03821115615cfd57615cfd615c76565b50601f01601f191660200190565b600082601f830112615d1c57600080fd5b8135615d2f615d2a82615ce4565b615cb4565b818152846020838601011115615d4457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215615d7457600080fd5b8235615d7f81615a1c565b915060208301356001600160401b03811115615d9a57600080fd5b615da685828601615d0b565b9150509250929050565b604080825283519082018190526000906020906060840190828701845b82811015615de957815184529284019290840190600101615dcd565b50505092019290925292915050565b600080600060608486031215615e0d57600080fd5b833592506020840135615e1f81615a1c565b929592945050506040919091013590565b600080600060608486031215615e4557600080fd5b8335615e5081615a1c565b92506020840135915060408401356001600160401b0380821115615e7357600080fd5b9085019060608288031215615e8757600080fd5b604051606081018181108382111715615ea257615ea2615c76565b80604052508235815260208301356020820152604083013582811115615ec757600080fd5b615ed389828601615d0b565b6040830152508093505050509250925092565b602080825282518282018190526000919060409081850190868401855b82811015615f395781518051151585528681015115158786015285015160ff168585015260609093019290850190600101615f03565b5091979650505050505050565b8015158114610a3657600080fd5b60008060008060008060c08789031215615f6d57600080fd5b863595506020870135615f7f81615a1c565b945060408701359350606087013592506080870135615f9d81615f46565b915060a08701356001600160401b03811115615fb857600080fd5b615fc489828a01615d0b565b9150509295509295509295565b6020808252825182820181905260009190848201906040850190845b818110156160125783516001600160a01b031683529284019291840191600101615fed565b50909695505050505050565b602081526000610a1e6020830184615b1a565b60006020828403121561604357600080fd5b8135610a1e81615bfa565b600181811c9082168061606257607f821691505b60208210810361608257634e487b7160e01b600052602260045260246000fd5b50919050565b6000825161609a818460208701615af6565b9190910192915050565b6000602082840312156160b657600080fd5b8151610a1e81615bfa565b634e487b7160e01b600052601160045260246000fd5b818103818111156112a2576112a26160c1565b6001600160401b0381811683821601908082111561610a5761610a6160c1565b5092915050565b6040815260006161246040830185615b1a565b90508260208301529392505050565b600082601f83011261614457600080fd5b8151616152615d2a82615ce4565b81815284602083860101111561616757600080fd5b61097c826020830160208701615af6565b6000602080838503121561618b57600080fd5b82516001600160401b03808211156161a257600080fd5b818501915085601f8301126161b657600080fd5b8151818111156161c8576161c8615c76565b8060051b6161d7858201615cb4565b91825283810185019185810190898411156161f157600080fd5b86860192505b838310156162745782518581111561620f5760008081fd5b86016040818c03601f19018113156162275760008081fd5b61622f615c8c565b8983015161623c81615bfa565b81529082015190878211156162515760008081fd5b61625f8d8b84860101616133565b818b01528452505091860191908601906161f7565b9998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016162a9576162a96160c1565b5060010190565b6000608082840312156162c257600080fd5b604051608081018181106001600160401b03821117156162e4576162e4615c76565b60405282516001600160481b03811681146162fe57600080fd5b808252506020830151602082015260408301516040820152606083015161632481615a1c565b60608201529392505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60006020828403121561636e57600080fd5b8151610a1e81615f46565b600060ff821660ff810361638f5761638f6160c1565b60010192915050565b6001600160401b0382811682821603908082111561610a5761610a6160c1565b60ff8151168252600060208201516040602085015261097c6040850182615b1a565b61ffff8316815260406020820152600061097c60408301846163b8565b60006020828403121561640957600080fd5b5051919050565b808201808211156112a2576112a26160c1565b60006020828403121561643557600080fd5b81516001600160401b0381111561644b57600080fd5b61097c84828501616133565b8051825260208101516020830152600060408201516060604085015261097c6060850182615b1a565b602081526000610a1e6020830184616457565b61ffff8316815260406020820152600061097c6040830184616457565b600060ff8216806164c3576164c36160c1565b6000190192915050565b634e487b7160e01b600052603160045260246000fd5b60ff82811682821603908111156112a2576112a26160c1565b600181815b8085111561653757816000190482111561651d5761651d6160c1565b8085161561652a57918102915b93841c9390800290616501565b509250929050565b60008261654e575060016112a2565b8161655b575060006112a2565b8160018114616571576002811461657b57616597565b60019150506112a2565b60ff84111561658c5761658c6160c1565b50506001821b6112a2565b5060208310610133831016604e8410600b84101617156165ba575081810a6112a2565b6165c483836164fc565b80600019048211156165d8576165d86160c1565b029392505050565b6000610a1e60ff84168361653f565b60008261660c57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112a2576112a26160c1565b60006020828403121561663a57600080fd5b8151610a1e81615ac4565b60006001600160401b03808316818103616661576166616160c1565b6001019392505050565b601f821115610a6157600081815260208120601f850160051c810160208610156166925750805b601f850160051c820191505b818110156166b15782815560010161669e565b505050505050565b81516001600160401b038111156166d2576166d2615c76565b6166e6816166e0845461604e565b8461666b565b602080601f83116001811461671b57600084156167035750858301515b600019600386901b1c1916600185901b1785556166b1565b600085815260208120601f198616915b8281101561674a5788860151825594840194600190910190840161672b565b50858210156167685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61ffff8616815260a06020820152600061679560a08301876163b8565b82810360408401526167a78187615b1a565b60608401959095525050608001529392505050565b6000602082840312156167ce57600080fd5b8151610a1e81615a49565b6000602082840312156167eb57600080fd5b815160028110610a1e57600080fd5b60006020828403121561680c57600080fd5b8151610a1e81615a1c56fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220531813c3cd4e95228dd83c8b0cf417478f7a435494b0e8af9e08adb7f92ddffd64736f6c63430008130033",isSuperArgs$2=dt=>typeof dt[0]=="string"||Array.isArray(dt[0])||"_isInterface"in dt[0],zm=class zm extends ContractFactory{constructor(...ht){if(isSuperArgs$2(ht))super(...ht);else{const[Dt,Cn]=ht;super(_abi$2,zm.linkBytecode(Dt),Cn)}}static linkBytecode(ht){let Dt=_bytecode$2;return Dt=Dt.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),ht["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),Dt}deploy(ht,Dt,Cn,$n,Un,Fn){return super.deploy(ht,Dt,Cn,$n,Un,Fn||{})}getDeployTransaction(ht,Dt,Cn,$n,Un,Fn){return super.getDeployTransaction(ht,Dt,Cn,$n,Un,Fn||{})}attach(ht){return super.attach(ht)}connect(ht){return super.connect(ht)}static createInterface(){return new Interface(_abi$2)}static connect(ht,Dt){return new Contract(ht,_abi$2,Dt)}};Ll(zm,"bytecode",_bytecode$2),Ll(zm,"abi",_abi$2);let NttManager__factory=zm;const ABI_VERSION_0_1_0$1="0.1.0",ABI_VERSION_1_0_0$1="1.0.0",Km=class Km{constructor(ht,Dt){this.chain=ht,this.address=Dt}async signAndSendTransaction(ht,Dt){const Un=await(await(await config$2.wh.mustGetSigner(this.chain)).sendTransaction(ht)).wait();return await signAndSendTransaction(toChainName(this.chain),Un,Dt)}async quoteDeliveryPrice(ht,Dt){const{abi:Cn}=await this.getAbi(),$n=encodeTransceiverInstructions([{index:0,payload:encodeWormholeTransceiverInstruction({shouldSkipRelayerSend:Dt})}]),[,Un]=await Cn.quoteDeliveryPrice(toChainId$1(ht),$n);return Un}async send(ht,Dt,Cn,$n,Un,Fn){if(!getTokenById(ht))throw new Error("token not found");const{abi:Gn}=await this.getAbi(),Qn=await this.quoteDeliveryPrice(Un,Fn),qn=encodeTransceiverInstructions([{index:0,payload:encodeWormholeTransceiverInstruction({shouldSkipRelayerSend:Fn})}]),er=config$2.wh.formatAddress(Cn,Un),Wn=await Gn.populateTransaction["transfer(uint256,uint16,bytes32,bytes32,bool,bytes)"]($n,toChainId$1(Un),er,er,!1,qn,{value:Qn});await config$2.wh.getContext(this.chain).approve(this.chain,this.address,ht.address,$n);try{return await this.signAndSendTransaction(Wn,TransferWallet.SENDING)}catch(Zn){this.throwParsedError(Gn.interface,Zn)}}async getCurrentOutboundCapacity(){const{abi:ht}=await this.getAbi();return(await ht.getCurrentOutboundCapacity()).toString()}async getCurrentInboundCapacity(ht){const{abi:Dt}=await this.getAbi();return(await Dt.getCurrentInboundCapacity(toChainId$1(ht))).toString()}async getRateLimitDuration(){const{abi:ht}=await this.getAbi();return(await ht.rateLimitDuration()).toNumber()}async getInboundQueuedTransfer(ht){const{abi:Dt}=await this.getAbi(),Cn=await Dt.getInboundQueuedTransfer(ht);if(Cn.txTimestamp.gt(0)){const{recipient:$n,amount:Un,txTimestamp:Fn}=Cn,Hn=await this.getRateLimitDuration();return{recipient:config$2.wh.parseAddress($n,this.chain),amount:Un.toString(),rateLimitExpiryTimestamp:Fn.add(Hn).toNumber()}}}async completeInboundQueuedTransfer(ht,Dt,Cn){const{abi:$n}=await this.getAbi();try{const Un=await $n.populateTransaction.completeInboundQueuedTransfer(ht);return await this.signAndSendTransaction(Un,TransferWallet.RECEIVING)}catch(Un){this.throwParsedError($n.interface,Un)}}async isTransferCompleted(ht){const{abi:Dt}=await this.getAbi();return await Dt.isMessageExecuted(ht)?!await this.getInboundQueuedTransfer(ht):!1}async isPaused(){const{abi:ht}=await this.getAbi();return await ht.isPaused()}async fetchRedeemTx(ht){var Qn;const{abi:Dt}=await this.getAbi(),Cn=Dt.filters.TransferRedeemed(ht),Un=await config$2.wh.mustGetProvider(this.chain).getBlockNumber(),Fn=toChainName(this.chain),Hn=config$2.chains[Fn],Gn=await Dt.queryFilter(Cn,Un-Hn.maxBlockSearch);return((Qn=Gn==null?void 0:Gn[0])==null?void 0:Qn.transactionHash)||void 0}throwParsedError(ht,Dt){const Cn=tryParseErrorMessage(ht,Dt);throw Cn==="InboundQueuedTransferNotFound"?new InboundQueuedTransferNotFoundError:Cn==="InboundQueuedTransferStillQueued"?new InboundQueuedTransferStillQueuedError:Cn==="RequireContractIsNotPaused"?new ContractIsPausedError:Cn==="NotEnoughCapacity"?new NotEnoughCapacityError:Dt}async getAbi(){const ht=config$2.wh.mustGetProvider(this.chain),Dt=`${this.address}-${toChainName(this.chain)}`;let Cn=Km.abiVersionCache.get(Dt);if(!Cn){const $n=new Contract(this.address,["function NTT_MANAGER_VERSION() public view returns (string)"],ht);try{Cn=await $n.NTT_MANAGER_VERSION()}catch(Un){throw console.error(`Failed to get NTT_MANAGER_VERSION from contract ${this.address} on chain ${toChainName(this.chain)}`),Un}if(!Cn)throw new Error("NTT_MANAGER_VERSION not found");Km.abiVersionCache.set(Dt,Cn)}if(Cn===ABI_VERSION_0_1_0$1)return{abi:NttManager__factory$1.connect(this.address,ht),version:Cn};if(Cn===ABI_VERSION_1_0_0$1)return{abi:NttManager__factory.connect(this.address,ht),version:Cn};throw console.error(`Unsupported NttManager version ${Cn} for chain ${toChainName(this.chain)}`),new UnsupportedContractAbiVersion}};Ll(Km,"abiVersionCache",new Map);let NttManagerEvm=Km;const isNttToken=dt=>dt?Object.values(config$2.nttGroups).some(ht=>ht.nttManagers.some(Dt=>Dt.tokenKey===dt.key&&Dt.chainName===dt.nativeChain)):!1,isNttTokenPair=(dt,ht)=>!dt||!ht?!1:Object.values(config$2.nttGroups).filter(Cn=>Cn.nttManagers.some($n=>$n.tokenKey===dt.key&&$n.chainName===dt.nativeChain)).some(Cn=>Cn.nttManagers.some($n=>$n.tokenKey===ht.key&&$n.chainName===ht.nativeChain)),getNttManagerConfig=(dt,ht)=>{if(!dt)return;const Dt=config$2.nttGroups[ht];if(Dt)return Dt.nttManagers.find(Cn=>Cn.tokenKey===dt.key&&Cn.chainName===dt.nativeChain)},getNttManagerAddress=(dt,ht)=>{var Dt;return(Dt=getNttManagerConfig(dt,ht))==null?void 0:Dt.address},getNttGroupKey=(dt,ht)=>{if(!dt||!ht)return;const[Dt]=Object.entries(config$2.nttGroups).find(([,Cn])=>Cn.nttManagers.some($n=>$n.tokenKey===dt.key&&$n.chainName===dt.nativeChain)&&Cn.nttManagers.some($n=>$n.tokenKey===ht.key&&$n.chainName===ht.nativeChain))||[];return Dt},getNttGroupKeyByAddress=(dt,ht)=>{var Dt;return(Dt=Object.entries(config$2.nttGroups).find(([,Cn])=>Cn.nttManagers.some($n=>isEqualCaseInsensitive($n.address,dt)&&$n.chainName===ht)))==null?void 0:Dt[0]},getNttManagerConfigByAddress=(dt,ht)=>{var Dt;return(Dt=Object.values(config$2.nttGroups).flatMap(Cn=>Cn.nttManagers.filter($n=>isEqualCaseInsensitive($n.address,dt)&&$n.chainName===ht)))==null?void 0:Dt[0]},getNttManagerConfigByGroupKey=(dt,ht)=>{var Dt;return(Dt=config$2.nttGroups[dt])==null?void 0:Dt.nttManagers.find(Cn=>Cn.chainName===ht)},getNttTokenByGroupKey=(dt,ht)=>{const Dt=getNttManagerConfigByGroupKey(dt,ht);if(Dt)return config$2.tokens[Dt.tokenKey]},RELAYING_INFO_IFACE=new Interface(["event RelayingInfo(uint8 relayingType, bytes32 refundAddress, uint256 deliveryPayment)"]),RELAYING_INFO_EVENT_TOPIC=RELAYING_INFO_IFACE.getEventTopic("RelayingInfo"),TRANSFER_SENT_IFACE=new Interface(["event TransferSent(bytes32 recipient, bytes32 refundAddress, uint256 amount, uint256 fee, uint16 recipientChain, uint64 msgSequence)"]),TRANSFER_SENT_EVENT_TOPIC=TRANSFER_SENT_IFACE.getEventTopic("TransferSent"),getMessageEvm=async(dt,ht,Dt)=>{const Cn=config$2.wh.mustGetProvider(ht);if(!Dt&&(Dt=await Cn.getTransactionReceipt(dt),!Dt))throw new Error(`No receipt for tx ${dt} on ${ht}`);const $n=Dt.logs.find(_r=>_r.topics[0]===TRANSFER_SENT_EVENT_TOPIC);if(!$n)throw new Error("TransferSent event not found");const Un=$n.address,Hn=await new Contract(Un,["function token() public view returns (address)"],Cn).token();if(!Hn)throw new Error("No token address");const Gn=toChainName(ht),Qn={chain:Gn,address:Hn},qn=getTokenById(Qn);if(!qn||!isNttToken(qn))throw new Error(`Token ${Qn} is not an NTT token`);const er=await getWormholeLogEvm(Gn,Dt),Wn=Implementation__factory.createInterface().parseLog(er),jn=Dt.logs.find(_r=>_r.topics[0]===RELAYING_INFO_EVENT_TOPIC);if(!jn)throw new Error("RelayingInfo event not found");const Zn=RELAYING_INFO_IFACE.parseLog(jn),{relayingType:Xn,deliveryPayment:ar}=Zn.args;let dr;if(Xn===NttRelayingType.Standard){const{type:_r,parsed:nr}=parseWormholeLog(er);if(_r!==RelayerPayloadId.Delivery)throw new Error(`Unexpected standard relayer payload type ${_r}`);dr=nr.payload}else if(Xn===NttRelayingType.Manual||Xn===NttRelayingType.Special)dr=dist$8.Buffer.from(Wn.args.payload.slice(2),"hex");else throw new Error(`Unexpected relaying type ${Xn}`);const or=deserializePayload("Ntt:WormholeTransfer",dr),sr=or.nttManagerPayload,vr=toChainName(toChainId(sr.payload.recipientChain)),hr=getNttGroupKeyByAddress(Un,Gn);if(!hr)throw new Error(`No NTT group key for ${Dt.to}`);const gr=getNttManagerConfigByGroupKey(hr,vr);if(!gr)throw new Error("Recipient NTT manager not found");const ur=gr.tokenKey;if(!ur)throw new Error(`Received token key not found for ${Qn}`);return{sendTx:Dt.transactionHash,sender:Dt.from,amount:sr.payload.trimmedAmount.amount.toString(),payloadID:0,recipient:config$2.wh.parseAddress(sr.payload.recipientAddress.toString(),vr),toChain:vr,fromChain:Gn,tokenAddress:Hn,tokenChain:qn.nativeChain,tokenId:Qn,tokenKey:qn.key,tokenDecimals:sr.payload.trimmedAmount.decimals,receivedTokenKey:ur,emitterAddress:utils$P.hexlify(config$2.wh.formatAddress(Wn.args.sender,Gn)),sequence:Wn.args.sequence.toString(),block:Dt.blockNumber,gasFee:Dt.gasUsed.mul(Dt.effectiveGasPrice).toString(),recipientNttManager:config$2.wh.parseAddress(utils$P.hexlify(or.recipientNttManager.toString()),vr),messageDigest:utils$P.hexlify(Ntt.messageDigest(toChain(config$2.wh.toChainId(Gn)),sr)),relayerFee:ar.toString(),relayingType:Xn}},_abi$1=[{inputs:[{internalType:"address",name:"nttManager",type:"address"},{internalType:"address",name:"wormholeCoreBridge",type:"address"},{internalType:"address",name:"wormholeRelayerAddr",type:"address"},{internalType:"address",name:"specialRelayerAddr",type:"address"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"},{internalType:"uint256",name:"_gasLimit",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotNttManager",type:"error"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotRelayer",type:"error"},{inputs:[{internalType:"address",name:"currentOwner",type:"address"}],name:"CannotRenounceTransceiverOwnership",type:"error"},{inputs:[{internalType:"address",name:"currentOwner",type:"address"},{internalType:"address",name:"newOwner",type:"address"}],name:"CannotTransferTransceiverOwnership",type:"error"},{inputs:[{internalType:"uint8",name:"val",type:"uint8"}],name:"InvalidBoolVal",type:"error"},{inputs:[{internalType:"BooleanFlag",name:"value",type:"uint256"}],name:"InvalidBoolValue",type:"error"},{inputs:[{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint256",name:"blockChainId",type:"uint256"}],name:"InvalidFork",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"InvalidPauser",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"InvalidRelayingConfig",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidVaa",type:"error"},{inputs:[],name:"InvalidWormholeChainIdZero",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"InvalidWormholePeer",type:"error"},{inputs:[],name:"InvalidWormholePeerZeroAddress",type:"error"},{inputs:[{internalType:"uint256",name:"encodedLength",type:"uint256"},{internalType:"uint256",name:"expectedLength",type:"uint256"}],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"NotAnEvmAddress",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotMigrating",type:"error"},{inputs:[],name:"OnlyDelegateCall",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"PeerAlreadySet",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"RequireContractIsNotPaused",type:"error"},{inputs:[],name:"RequireContractIsPaused",type:"error"},{inputs:[{internalType:"bytes32",name:"vaaHash",type:"bytes32"}],name:"TransferAlreadyCompleted",type:"error"},{inputs:[],name:"UnexpectedAdditionalMessages",type:"error"},{inputs:[{internalType:"address",name:"deployer",type:"address"},{internalType:"address",name:"caller",type:"address"}],name:"UnexpectedDeployer",type:"error"},{inputs:[{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"expectedRecipientNttManagerAddress",type:"bytes32"}],name:"UnexpectedRecipientNttManagerAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"notPaused",type:"bool"}],name:"NotPaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"paused",type:"bool"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"ReceivedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],name:"ReceivedRelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"relayingType",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"deliveryPayment",type:"uint256"}],name:"RelayingInfo",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"recipientChain",type:"uint16"},{components:[{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes",name:"nttManagerPayload",type:"bytes"},{internalType:"bytes",name:"transceiverPayload",type:"bytes"}],indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",name:"message",type:"tuple"}],name:"SendTransceiverMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isRelayingEnabled",type:"bool"}],name:"SetIsSpecialRelayingEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isEvm",type:"bool"}],name:"SetIsWormholeEvmChain",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isRelayingEnabled",type:"bool"}],name:"SetIsWormholeRelayingEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"peerContract",type:"bytes32"}],name:"SetWormholePeer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WORMHOLE_TRANSCEIVER_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"shouldSkipRelayerSend",type:"bool"}],internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",name:"instruction",type:"tuple"}],name:"encodeWormholeTransceiverInstruction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"gasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMigratesImmutables",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNttManagerOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNttManagerToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getWormholePeer",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isSpecialRelayingEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isVAAConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isWormholeEvmChain",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isWormholeRelayingEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"migrate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"nttManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nttManagerToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseWormholeTransceiverInstruction",outputs:[{components:[{internalType:"bool",name:"shouldSkipRelayerSend",type:"bool"}],internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",name:"instruction",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"targetChain",type:"uint16"},{components:[{internalType:"uint8",name:"index",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.TransceiverInstruction",name:"instruction",type:"tuple"}],name:"quoteDeliveryPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedMessage",type:"bytes"}],name:"receiveMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"bytes[]",name:"additionalMessages",type:"bytes[]"},{internalType:"bytes32",name:"sourceAddress",type:"bytes32"},{internalType:"uint16",name:"sourceChain",type:"uint16"},{internalType:"bytes32",name:"deliveryHash",type:"bytes32"}],name:"receiveWormholeMessages",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{components:[{internalType:"uint8",name:"index",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.TransceiverInstruction",name:"instruction",type:"tuple"},{internalType:"bytes",name:"nttManagerMessage",type:"bytes"},{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEnabled",type:"bool"}],name:"setIsSpecialRelayingEnabled",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEvm",type:"bool"}],name:"setIsWormholeEvmChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEnabled",type:"bool"}],name:"setIsWormholeRelayingEnabled",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"peerChainId",type:"uint16"},{internalType:"bytes32",name:"peerContract",type:"bytes32"}],name:"setWormholePeer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"specialRelayer",outputs:[{internalType:"contract ISpecialRelayer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserCapability",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferTransceiverOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wormholeRelayer",outputs:[{internalType:"contract IWormholeRelayer",name:"",type:"address"}],stateMutability:"view",type:"function"}],_bytecode$1="0x6101c06040523480156200001257600080fd5b5060405162004018380380620040188339810160408190526200003591620001d3565b858585858585856200004662000102565b306080526001600160a01b03811660a081905260408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801562000095573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bb919062000254565b6001600160a01b0390811660c0523360e052958616610120525092841661014052921661016052466101805260ff909116610100526101a052506200027995505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620001535760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b0381168114620001ce57600080fd5b919050565b60008060008060008060c08789031215620001ed57600080fd5b620001f887620001b6565b95506200020860208801620001b6565b94506200021860408801620001b6565b93506200022860608801620001b6565b9250608087015160ff811681146200023f57600080fd5b8092505060a087015190509295509295509295565b6000602082840312156200026757600080fd5b6200027282620001b6565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613c0b6200040d600039600081816106fc015281816117d901526120ea01526000612c0101526000818161054101528181611a13015281816121a801526126b7015260008181610642015281816109690152818161179c0152818161211101526126150152600081816104e301528181610d5d015281816118ce0152818161195401528181611b47015281816120050152818161226b015281816123000152818161236e015281816125730152612ac801526000818161067601528181610df20152818161198701528181611b7b015281816127590152612b5801526000818161285a015261289601526000818161025d0152818161042701528181611a44015281816121cf015281816129c10152612d900152600081816102ae0152818161084201528181610b670152818161121401528181611d1201528181611d4701528181611d9a015281816129080152818161292f015281816129e80152612cee01526000611f100152613c0b6000f3fe6080604052600436106102045760003560e01c806381e8ec7f11610118578063b5634c73116100a0578063e8dfd5081161006f578063e8dfd50814610664578063f2fde38b146106aa578063f48066a8146106ca578063f68016b7146106ea578063f953cec71461071e57600080fd5b8063b5634c73146105db578063bc7f6d37146105fb578063d8d284181461061b578063da25b7251461063057600080fd5b806390ea5428116100e757806390ea54281461052f578063935dec071461056357806396dddc63146105915780639fd0506d146105b1578063b187bd26146105c657600080fd5b806381e8ec7f146104a057806384acd1bb146104d15780638da5cb5b146105055780638fd3ab801461051a57600080fd5b8063529dca321161019b578063689f90c31161016a578063689f90c314610403578063694977d7146104185780637ab564031461044b57806380eb32391461046b5780638129fc1c1461048b57600080fd5b8063529dca321461036457806358f709ba14610377578063657b3b2f1461039757806366152efc146103b757600080fd5b8063320d0d8e116101d7578063320d0d8e146102d057806348b330d6146103005780634b5b0505146103315780634b795b211461034457600080fd5b8063036de8af146102095780630900f0101461022b5780630b4a1e891461024b57806324fb21db1461029c575b600080fd5b34801561021557600080fd5b50610229610224366004612f46565b61073e565b005b34801561023757600080fd5b50610229610246366004612f46565b6107aa565b34801561025757600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102a857600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102dc57600080fd5b506102f06102eb366004612f7e565b6107be565b6040519015158152602001610293565b34801561030c57600080fd5b5061032061031b3660046130a9565b6107eb565b604051905115158152602001610293565b61022961033f36600461316d565b61082f565b34801561035057600080fd5b5061022961035f366004613202565b6108c6565b61022961037236600461325e565b61095e565b34801561038357600080fd5b50610229610392366004612f46565b610b5c565b3480156103a357600080fd5b506102296103b2366004613202565b610bb0565b3480156103c357600080fd5b506103f66103d2366004613353565b516040805191151560f81b6020830152805160018184030181526021909201905290565b60405161029391906133ee565b34801561040f57600080fd5b506102f0610c40565b34801561042457600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061027f565b34801561045757600080fd5b50610229610466366004613401565b610c53565b34801561047757600080fd5b506102f061048636600461342d565b610eb6565b34801561049757600080fd5b50610229610ed4565b3480156104ac57600080fd5b506103f6604051806040016040528060058152602001640302e312e360dc1b81525081565b3480156104dd57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561051157600080fd5b5061027f610fd5565b34801561052657600080fd5b50610229611003565b34801561053b57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561056f57600080fd5b5061058361057e366004612f7e565b61110e565b604051908152602001610293565b34801561059d57600080fd5b506102296105ac366004613202565b611132565b3480156105bd57600080fd5b5061027f6111c2565b3480156105d257600080fd5b506102f06111db565b3480156105e757600080fd5b506105836105f6366004613446565b6111f0565b34801561060757600080fd5b506102f0610616366004612f7e565b611203565b34801561062757600080fd5b5061027f611210565b34801561063c57600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067057600080fd5b506106987f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610293565b3480156106b657600080fd5b506102296106c5366004612f46565b611299565b3480156106d657600080fd5b506102f06106e5366004612f7e565b6112cb565b3480156106f657600080fd5b506105837f000000000000000000000000000000000000000000000000000000000000000081565b34801561072a57600080fd5b506102296107393660046130a9565b6112d8565b61074e610749610fd5565b6113c8565b6000610758611411565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef690600090a3505050565b6107b261143f565b6107bb81611473565b50565b60006107e56107cb611581565b61ffff8416600090815260209190915260409020546115af565b92915050565b604080516020810190915260008152815160000361080c5760008152919050565b600061081883826115ed565b901515835290506108298382611642565b50919050565b610837611674565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108875760405163c5aa615360e01b81523360048201526024015b60405180910390fd5b610896853433858589896116be565b6108bf60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6108ce61143f565b8161ffff166000036108f357604051630f7662c960e21b815260040160405180910390fd5b6108fe811515611c95565b610906611cb2565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c91015b60405180910390a15050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a957604051631c26958960e01b815233600482015260240161087e565b826109b38361110e565b146109de57604051633cd8e72b60e11b815261ffff831660048201526024810184905260440161087e565b6109e781610eb6565b15610a0857604051632d30ec0360e21b81526004810182905260240161087e565b610a1181611ce0565b835115610a315760405163c504ea2960e01b815260040160405180910390fd5b6040805182815261ffff841660208201529081018490527ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f874759060600160405180910390a1604080516080810182526000808252602082015260609181018290528181019190915260408051606080820183526000808352602083015291810191909152604051630453806b60e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__906308a700d690610af4906309945ff160e41b908b90600401613495565b600060405180830381865af4158015610b11573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b39919081019061357e565b81516020830151929450909250610b539186919084611d08565b50505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ba75760405163c5aa615360e01b815233600482015260240161087e565b6107bb81611e0b565b610bb861143f565b8161ffff16600003610bdd57604051630f7662c960e21b815260040160405180910390fd5b610be8811515611c95565b610bf0611581565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c39101610952565b6000610c4a611e7c565b5460ff16919050565b610c5b61143f565b8161ffff16600003610c8057604051630f7662c960e21b815260040160405180910390fd5b80610c9e5760405163137063ef60e11b815260040160405180910390fd5b6000610ca8611eaa565b61ffff84166000908152602091909152604090205490508015610ceb5760405163b55eeae960e01b815261ffff841660048201526024810182905260440161087e565b81610cf4611eaa565b61ffff858116600081815260209384526040808220959095558451606081018652630c7e33e160e11b8152938401918252838501878152945163077650fb60e51b815284516001600160e01b0319166004820152915190921660248201529251604484015290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163b19a437e9173__$93083e246e55d56d98f3df2872cd16bfd0$__9063eeca1f6090606401600060405180830381865af4158015610dc8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610df0919081019061363d565b7f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401610e2f93929190613671565b6020604051808303816000875af1158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7291906136ba565b506040805161ffff86168152602081018590527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466910160405180910390a150505050565b6000610ec0611ed8565b600092835260205250604090205460ff1690565b610edc611f06565b600080516020613bb68339815191528054600160401b810460ff1615906001600160401b0316600081158015610f0f5750825b90506000826001600160401b03166001148015610f2b5750303b155b905081158015610f39575080155b15610f575760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f8157845460ff60401b1916600160401b1785555b610f89611f4f565b83156108bf57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b61100b611f06565b600080516020613bb6833981519152546001600160401b031661102f9060016136eb565b600080516020613bb68339815191528054600160401b900460ff1680611062575080546001600160401b03808416911610155b156110805760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b1781556110a9611f5f565b5460ff166110ca57604051632866815360e11b815260040160405180910390fd5b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610952565b6000611118611eaa565b61ffff909216600090815260209290925250604090205490565b61113a61143f565b8161ffff1660000361115f57604051630f7662c960e21b815260040160405180910390fd5b61116a811515611c95565b611172611f8d565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c9101610952565b60006111cc611411565b546001600160a01b0316919050565b6000806111e6611fbb565b5460021492915050565b60006111fc8383611fe9565b9392505050565b60006107e56107cb611cb2565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611294919061370b565b905090565b6112a161143f565b6001600160a01b038116610ba757604051631e4fbdf760e01b81526000600482015260240161087e565b60006107e56107cb611f8d565b600060606112e583612363565b6040805160808101825260008082526020820152606091810182905281810191909152919350915060408051606080820183526000808352602083015291810191909152604051630453806b60e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__906308a700d690611369906309945ff160e41b908790600401613495565b600060405180830381865af4158015611386573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113ae919081019061357e565b815160208301519294509092506108bf9186919084611d08565b336113d16111c2565b6001600160a01b0316141580156113f157506001600160a01b0381163314155b156107bb5760405163e2a08e5d60e01b815233600482015260240161087e565b6000806107e560017fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124a613728565b33611448610fd5565b6001600160a01b0316146114715760405163118cdaa760e01b815233600482015260240161087e565b565b61147b611f06565b61148481612529565b600061148e611f5f565b805490915060ff16156114a3576114a361373b565b805460ff191660011781556040805163011fa75760e71b815290513091638fd3ab8091600480830192600092919082900301818387803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b50505050306001600160a01b031663689f90c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561153c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611560919061375c565b61156c5761156c612569565b61157660006127ed565b805460ff1916905550565b6000806107e560017f16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4b0613728565b6000816000036115c157506000919050565b816001036115d157506001919050565b60405163b998bad560e01b81526004810183905260240161087e565b6000806000806116068686600191810182015192910190565b909250905060fe8216156116325760405163f7a37b0760e01b815260ff8316600482015260240161087e565b60ff909116925090509250929050565b808251146116705781516040516355c5b3e360e11b815260048101919091526024810182905260440161087e565b5050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008054600119016116b857604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60408051600080825260208201928390526304616c8f60e21b909252819073__$93083e246e55d56d98f3df2872cd16bfd0$__90631185b23c9061171d906309945ff160e41b906001600160a01b038c16908b90899060248101613779565b600060405180830381865af415801561173a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261176291908101906137c5565b91509150600061177585602001516107eb565b805190915015801561178b575061178b8a612808565b156118b257858a6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016634b5ca6f48c836117d46117cf8261110e565b612823565b8860007f0000000000000000000000000000000000000000000000000000000000000000886118028b612823565b6040518963ffffffff1660e01b8152600401611824979695949392919061381e565b60206040518083038185885af1158015611842573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061186791906136ba565b506040805160008152602081018a90529081018c90527fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e906060015b60405180910390a15050611c2a565b80511580156118c557506118c58a611203565b15611b305760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa15801561192a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194e9190613877565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b19a437e836000877f00000000000000000000000000000000000000000000000000000000000000006040518563ffffffff1660e01b81526004016119c493929190613671565b60206040518083038185885af11580156119e2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a0791906136ba565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166316ac49c2611a42848e613728565b7f00000000000000000000000000000000000000000000000000000000000000008f6000866040518663ffffffff1660e01b8152600401611ab494939291906001600160a01b0394909416845261ffff92909216602084015260408301526001600160401b0316606082015260800190565b6000604051808303818588803b158015611acd57600080fd5b505af1158015611ae1573d6000803e3d6000fd5b507fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e935060019250611b11915050565b6040805160ff90921682526000602083015281018d90526060016118a3565b6040516358cd21bf60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b19a437e908b90611ba39060009087907f000000000000000000000000000000000000000000000000000000000000000090600401613671565b60206040518083038185885af1158015611bc1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611be691906136ba565b506040805160028152600060208201529081018a90527fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e9060600160405180910390a15b7f79376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c7388a84604051611c5b929190613890565b60405180910390a150505050505050505050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60008115611ca557506001919050565b506000919050565b919050565b6000806107e560017fd4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1ca613728565b6001611cea611ed8565b60009283526020526040909120805460ff1916911515919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168214611d83576040516339dee99160e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201526024810183905260440161087e565b60405163275e091560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639d78245490611dd3908790879086906004016138f0565b600060405180830381600087803b158015611ded57600080fd5b505af1158015611e01573d6000803e3d6000fd5b5050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806107e560017f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cc613728565b6000806107e560017f48c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba284685613728565b6000806107e560017f5e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e3613728565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361147157604051633c64f99360e21b815260040160405180910390fd5b611f5761284f565b6114716128e2565b6000806107e560017f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4f613728565b6000806107e560017fe79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8d613728565b6000806107e560017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258023613728565b600080611ff983602001516107eb565b80519091501561208d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120859190613877565b9150506107e5565b61209684612bd8565b156120ba5760405163251268db60e21b815261ffff8516600482015260240161087e565b6120c384612808565b1561218e5760405163c23ee3c360e01b815261ffff851660048201526000602482018190527f00000000000000000000000000000000000000000000000000000000000000006044830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23ee3c3906064016040805180830381865afa15801561215f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121839190613930565b5092506107e5915050565b61219784611203565b156122fe5760006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166382745ce47f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b03909116600482015261ffff8816602482015260006044820152606401602060405180830381865afa158015612243573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122679190613877565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190613877565b6122f59082613954565b925050506107e5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612061573d6000803e3d6000fd5b5092915050565b6000606060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c0fd8bde876040518263ffffffff1660e01b81526004016123b891906133ee565b600060405180830381865afa1580156123d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123fd9190810190613a41565b925092509250816124235780604051634771719b60e11b815260040161087e91906133ee565b61242c83612bfa565b61245f5760608301516080840151604051633cd8e72b60e11b815261ffff9092166004830152602482015260440161087e565b61246d836101400151610eb6565b1561249457826101400151604051632d30ec0360e21b815260040161087e91815260200190565b6124a2836101400151611ce0565b7ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0836101400151846060015185608001518660a0015160405161250b949392919093845261ffff92909216602084015260408301526001600160401b0316606082015260800190565b60405180910390a182606001518360e0015194509450505050915091565b61253281612c3e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b612571612cec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166384acd1bb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fd919061370b565b6001600160a01b0316146126135761261361373b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031663da25b7256040518163ffffffff1660e01b8152600401602060405180830381865afa15801561267b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269f919061370b565b6001600160a01b0316146126b5576126b561373b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166390ea54286040518163ffffffff1660e01b8152600401602060405180830381865afa15801561271d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612741919061370b565b6001600160a01b0316146127575761275761373b565b7f000000000000000000000000000000000000000000000000000000000000000060ff16306001600160a01b031663e8dfd5086040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127dd9190613b98565b60ff16146114715761147161373b565b806127f6611e7c565b805460ff191691151591909117905550565b6000612813826107be565b80156107e557506107e5826112cb565b600060a082901c1561284b5760405163033b960d60e41b81526004810183905260240161087e565b5090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128c957604051636345072160e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015233602482015260440161087e565b6128d1612e30565b611471336128dd611210565b612e40565b6040805160a08101909152639c23bd3b60e01b8152600090602081016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b4fd03b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561298b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129af9190613b98565b60ff1681526020016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b97e8566040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a689190613b98565b60ff908116909152604080516301529f6160e21b815283516001600160e01b031916600482015260208401516024820152908301518216604482015260608301516064820152608083015190911660848201529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b19a437e9060009073__$93083e246e55d56d98f3df2872cd16bfd0$__9063054a7d849060a401600060405180830381865af4158015612b2e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b56919081019061363d565b7f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b8152600401612b9593929190613671565b6020604051808303816000875af1158015612bb4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167091906136ba565b6000612be3826107be565b80156107e55750612bf3826112cb565b1592915050565b6000612c257f0000000000000000000000000000000000000000000000000000000000000000612e5a565b8160800151612c37836060015161110e565b1492915050565b6001600160a01b0381163b612cab5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161087e565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166324fb21db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d78919061370b565b6001600160a01b031614612d8e57612d8e61373b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316630b4a1e896040518163ffffffff1660e01b8152600401602060405180830381865afa158015612df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1a919061370b565b6001600160a01b0316146114715761147161373b565b612e38612e83565b611471612eba565b612e48612e83565b612e5182612ec2565b61167081612ed3565b4681146107bb576040516377d879fb60e01b81526004810182905246602482015260440161087e565b600080516020613bb683398151915254600160401b900460ff1661147157604051631afcd79f60e31b815260040160405180910390fd5b611c6f612e83565b612eca612e83565b6107bb81612ee4565b612edb612e83565b6107bb81612f29565b612eec612e83565b6000612ef6611fbb565b6001815590506000612f06611411565b80546001600160a01b0319166001600160a01b0394909416939093179092555050565b6112a1612e83565b6001600160a01b03811681146107bb57600080fd5b600060208284031215612f5857600080fd5b81356111fc81612f31565b61ffff811681146107bb57600080fd5b8035611cad81612f63565b600060208284031215612f9057600080fd5b81356111fc81612f63565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715612fd357612fd3612f9b565b60405290565b60405161016081016001600160401b0381118282101715612fd357612fd3612f9b565b604051601f8201601f191681016001600160401b038111828210171561302457613024612f9b565b604052919050565b60006001600160401b0382111561304557613045612f9b565b50601f01601f191660200190565b600082601f83011261306457600080fd5b81356130776130728261302c565b612ffc565b81815284602083860101111561308c57600080fd5b816020850160208301376000918101602001919091529392505050565b6000602082840312156130bb57600080fd5b81356001600160401b038111156130d157600080fd5b6130dd84828501613053565b949350505050565b60ff811681146107bb57600080fd5b60006040828403121561310657600080fd5b604051604081016001600160401b03828210818311171561312957613129612f9b565b816040528293508435915061313d826130e5565b9082526020840135908082111561315357600080fd5b5061316085828601613053565b6020830152505092915050565b600080600080600060a0868803121561318557600080fd5b853561319081612f63565b945060208601356001600160401b03808211156131ac57600080fd5b6131b889838a016130f4565b955060408801359150808211156131ce57600080fd5b506131db88828901613053565b9598949750949560608101359550608001359392505050565b80151581146107bb57600080fd5b6000806040838503121561321557600080fd5b823561322081612f63565b91506020830135613230816131f4565b809150509250929050565b60006001600160401b0382111561325457613254612f9b565b5060051b60200190565b600080600080600060a0868803121561327657600080fd5b85356001600160401b038082111561328d57600080fd5b61329989838a01613053565b96506020915081880135818111156132b057600080fd5b8801601f81018a136132c157600080fd5b80356132cf6130728261323b565b81815260059190911b8201840190848101908c8311156132ee57600080fd5b8584015b838110156133265780358681111561330a5760008081fd5b6133188f8983890101613053565b8452509186019186016132f2565b5098505050506040880135945061334291505060608701612f73565b949793965091946080013592915050565b60006020828403121561336557600080fd5b604051602081018181106001600160401b038211171561338757613387612f9b565b6040528235613395816131f4565b81529392505050565b60005b838110156133b95781810151838201526020016133a1565b50506000910152565b600081518084526133da81602086016020860161339e565b601f01601f19169290920160200192915050565b6020815260006111fc60208301846133c2565b6000806040838503121561341457600080fd5b823561341f81612f63565b946020939093013593505050565b60006020828403121561343f57600080fd5b5035919050565b6000806040838503121561345957600080fd5b823561346481612f63565b915060208301356001600160401b0381111561347f57600080fd5b61348b858286016130f4565b9150509250929050565b63ffffffff60e01b831681526040602082015260006130dd60408301846133c2565b600082601f8301126134c857600080fd5b81516134d66130728261302c565b8181528460208386010111156134eb57600080fd5b6130dd82602083016020870161339e565b60006080828403121561350e57600080fd5b613516612fb1565b9050815181526020820151602082015260408201516001600160401b038082111561354057600080fd5b61354c858386016134b7565b6040840152606084015191508082111561356557600080fd5b50613572848285016134b7565b60608301525092915050565b6000806040838503121561359157600080fd5b82516001600160401b03808211156135a857600080fd5b6135b4868387016134fc565b935060208501519150808211156135ca57600080fd5b90840190606082870312156135de57600080fd5b6040516060810181811083821117156135f9576135f9612f9b565b8060405250825181526020830151602082015260408301518281111561361e57600080fd5b61362a888286016134b7565b6040830152508093505050509250929050565b60006020828403121561364f57600080fd5b81516001600160401b0381111561366557600080fd5b6130dd848285016134b7565b63ffffffff8416815260606020820152600061369060608301856133c2565b905060ff83166040830152949350505050565b80516001600160401b0381168114611cad57600080fd5b6000602082840312156136cc57600080fd5b6111fc826136a3565b634e487b7160e01b600052601160045260246000fd5b6001600160401b0381811683821601908082111561235c5761235c6136d5565b60006020828403121561371d57600080fd5b81516111fc81612f31565b818103818111156107e5576107e56136d5565b634e487b7160e01b600052600160045260246000fd5b8051611cad816131f4565b60006020828403121561376e57600080fd5b81516111fc816131f4565b63ffffffff60e01b8616815284602082015283604082015260a0606082015260006137a760a08301856133c2565b82810360808401526137b981856133c2565b98975050505050505050565b600080604083850312156137d857600080fd5b82516001600160401b03808211156137ef57600080fd5b6137fb868387016134fc565b9350602085015191508082111561381157600080fd5b5061348b858286016134b7565b600061ffff808a16835260018060a01b03808a16602085015260e0604085015261384b60e085018a6133c2565b925087606085015286608085015281861660a085015280851660c0850152505098975050505050505050565b60006020828403121561388957600080fd5b5051919050565b61ffff83168152604060208201528151604082015260208201516060820152600060408301516080808401526138c960c08401826133c2565b90506060840151603f198483030160a08501526138e682826133c2565b9695505050505050565b61ffff8416815282602082015260606040820152815160608201526020820151608082015260006040830151606060a08401526138e660c08401826133c2565b6000806040838503121561394357600080fd5b505080516020909101519092909150565b808201808211156107e5576107e56136d5565b8051611cad816130e5565b805163ffffffff81168114611cad57600080fd5b8051611cad81612f63565b600082601f8301126139a257600080fd5b815160206139b26130728361323b565b82815260079290921b840181019181810190868411156139d157600080fd5b8286015b84811015613a3657608081890312156139ee5760008081fd5b6139f6612fb1565b815181528482015185820152604080830151613a11816130e5565b90820152606082810151613a24816130e5565b908201528352918301916080016139d5565b509695505050505050565b600080600060608486031215613a5657600080fd5b83516001600160401b0380821115613a6d57600080fd5b908501906101608288031215613a8257600080fd5b613a8a612fd9565b613a9383613967565b8152613aa160208401613972565b6020820152613ab260408401613972565b6040820152613ac360608401613986565b606082015260808301516080820152613ade60a084016136a3565b60a0820152613aef60c08401613967565b60c082015260e083015182811115613b0657600080fd5b613b12898286016134b7565b60e083015250610100613b26818501613972565b908201526101208381015183811115613b3e57600080fd5b613b4a8a828701613991565b918301919091525061014083810151908201529450613b6b60208701613751565b93506040860151915080821115613b8157600080fd5b50613b8e868287016134b7565b9150509250925092565b600060208284031215613baa57600080fd5b81516111fc816130e556fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212206adc35ffd75f2ee0be1f33f47fcf181adacfa3d302fa7767704a2a41cc43bba164736f6c63430008130033",isSuperArgs$1=dt=>typeof dt[0]=="string"||Array.isArray(dt[0])||"_isInterface"in dt[0];var J2;let WormholeTransceiver__factory$1=(J2=class extends ContractFactory{constructor(...ht){if(isSuperArgs$1(ht))super(...ht);else{const[Dt,Cn]=ht;super(_abi$1,J2.linkBytecode(Dt),Cn)}}static linkBytecode(ht){let Dt=_bytecode$1;return Dt=Dt.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),ht["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),Dt}deploy(ht,Dt,Cn,$n,Un,Fn,Hn){return super.deploy(ht,Dt,Cn,$n,Un,Fn,Hn||{})}getDeployTransaction(ht,Dt,Cn,$n,Un,Fn,Hn){return super.getDeployTransaction(ht,Dt,Cn,$n,Un,Fn,Hn||{})}attach(ht){return super.attach(ht)}connect(ht){return super.connect(ht)}static createInterface(){return new Interface(_abi$1)}static connect(ht,Dt){return new Contract(ht,_abi$1,Dt)}},Ll(J2,"bytecode",_bytecode$1),Ll(J2,"abi",_abi$1),J2);const _abi=[{inputs:[{internalType:"address",name:"nttManager",type:"address"},{internalType:"address",name:"wormholeCoreBridge",type:"address"},{internalType:"address",name:"wormholeRelayerAddr",type:"address"},{internalType:"address",name:"specialRelayerAddr",type:"address"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"},{internalType:"uint256",name:"_gasLimit",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotNttManager",type:"error"},{inputs:[{internalType:"address",name:"caller",type:"address"}],name:"CallerNotRelayer",type:"error"},{inputs:[{internalType:"address",name:"currentOwner",type:"address"}],name:"CannotRenounceTransceiverOwnership",type:"error"},{inputs:[{internalType:"address",name:"currentOwner",type:"address"},{internalType:"address",name:"newOwner",type:"address"}],name:"CannotTransferTransceiverOwnership",type:"error"},{inputs:[{internalType:"uint8",name:"val",type:"uint8"}],name:"InvalidBoolVal",type:"error"},{inputs:[{internalType:"BooleanFlag",name:"value",type:"uint256"}],name:"InvalidBoolValue",type:"error"},{inputs:[{internalType:"uint256",name:"evmChainId",type:"uint256"},{internalType:"uint256",name:"blockChainId",type:"uint256"}],name:"InvalidFork",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"InvalidPauser",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"InvalidRelayingConfig",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidVaa",type:"error"},{inputs:[],name:"InvalidWormholeChainIdZero",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"InvalidWormholePeer",type:"error"},{inputs:[],name:"InvalidWormholePeerZeroAddress",type:"error"},{inputs:[{internalType:"uint256",name:"encodedLength",type:"uint256"},{internalType:"uint256",name:"expectedLength",type:"uint256"}],name:"LengthMismatch",type:"error"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"NotAnEvmAddress",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[],name:"NotMigrating",type:"error"},{inputs:[],name:"OnlyDelegateCall",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"peerAddress",type:"bytes32"}],name:"PeerAlreadySet",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"RequireContractIsNotPaused",type:"error"},{inputs:[],name:"RequireContractIsPaused",type:"error"},{inputs:[{internalType:"bytes32",name:"vaaHash",type:"bytes32"}],name:"TransferAlreadyCompleted",type:"error"},{inputs:[],name:"UnexpectedAdditionalMessages",type:"error"},{inputs:[{internalType:"address",name:"deployer",type:"address"},{internalType:"address",name:"caller",type:"address"}],name:"UnexpectedDeployer",type:"error"},{inputs:[{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"expectedRecipientNttManagerAddress",type:"bytes32"}],name:"UnexpectedRecipientNttManagerAddress",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"previousAdmin",type:"address"},{indexed:!1,internalType:"address",name:"newAdmin",type:"address"}],name:"AdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"beacon",type:"address"}],name:"BeaconUpgraded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"notPaused",type:"bool"}],name:"NotPaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"paused",type:"bool"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"ReceivedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"digest",type:"bytes32"},{indexed:!1,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"emitterAddress",type:"bytes32"}],name:"ReceivedRelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"relayingType",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"refundAddress",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"deliveryPayment",type:"uint256"}],name:"RelayingInfo",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"recipientChain",type:"uint16"},{components:[{internalType:"bytes32",name:"sourceNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes",name:"nttManagerPayload",type:"bytes"},{internalType:"bytes",name:"transceiverPayload",type:"bytes"}],indexed:!1,internalType:"struct TransceiverStructs.TransceiverMessage",name:"message",type:"tuple"}],name:"SendTransceiverMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isRelayingEnabled",type:"bool"}],name:"SetIsSpecialRelayingEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isEvm",type:"bool"}],name:"SetIsWormholeEvmChain",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bool",name:"isRelayingEnabled",type:"bool"}],name:"SetIsWormholeRelayingEnabled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"chainId",type:"uint16"},{indexed:!1,internalType:"bytes32",name:"peerContract",type:"bytes32"}],name:"SetWormholePeer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"}],name:"Upgraded",type:"event"},{inputs:[],name:"WORMHOLE_TRANSCEIVER_VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"shouldSkipRelayerSend",type:"bool"}],internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",name:"instruction",type:"tuple"}],name:"encodeWormholeTransceiverInstruction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"gasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMigratesImmutables",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNttManagerOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNttManagerToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getWormholePeer",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"initialize",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isSpecialRelayingEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"}],name:"isVAAConsumed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isWormholeEvmChain",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"isWormholeRelayingEnabled",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"migrate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"nttManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nttManagerToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseWormholeTransceiverInstruction",outputs:[{components:[{internalType:"bool",name:"shouldSkipRelayerSend",type:"bool"}],internalType:"struct IWormholeTransceiver.WormholeTransceiverInstruction",name:"instruction",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"targetChain",type:"uint16"},{components:[{internalType:"uint8",name:"index",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.TransceiverInstruction",name:"instruction",type:"tuple"}],name:"quoteDeliveryPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedMessage",type:"bytes"}],name:"receiveMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"bytes[]",name:"additionalMessages",type:"bytes[]"},{internalType:"bytes32",name:"sourceAddress",type:"bytes32"},{internalType:"uint16",name:"sourceChain",type:"uint16"},{internalType:"bytes32",name:"deliveryHash",type:"bytes32"}],name:"receiveWormholeMessages",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"recipientChain",type:"uint16"},{components:[{internalType:"uint8",name:"index",type:"uint8"},{internalType:"bytes",name:"payload",type:"bytes"}],internalType:"struct TransceiverStructs.TransceiverInstruction",name:"instruction",type:"tuple"},{internalType:"bytes",name:"nttManagerMessage",type:"bytes"},{internalType:"bytes32",name:"recipientNttManagerAddress",type:"bytes32"},{internalType:"bytes32",name:"refundAddress",type:"bytes32"}],name:"sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEnabled",type:"bool"}],name:"setIsSpecialRelayingEnabled",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEvm",type:"bool"}],name:"setIsWormholeEvmChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bool",name:"isEnabled",type:"bool"}],name:"setIsWormholeRelayingEnabled",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"peerChainId",type:"uint16"},{internalType:"bytes32",name:"peerContract",type:"bytes32"}],name:"setWormholePeer",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"specialRelayer",outputs:[{internalType:"contract ISpecialRelayer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserCapability",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferTransceiverOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newImplementation",type:"address"}],name:"upgrade",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"wormholeRelayer",outputs:[{internalType:"contract IWormholeRelayer",name:"",type:"address"}],stateMutability:"view",type:"function"}],_bytecode="0x6101c06040523480156200001257600080fd5b5060405162004185380380620041858339810160408190526200003591620001d3565b858585858585856200004662000102565b306080526001600160a01b03811660a081905260408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801562000095573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bb919062000254565b6001600160a01b0390811660c0523360e052958616610120525092841661014052921661016052466101805260ff909116610100526101a052506200027995505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620001535760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001b35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b0381168114620001ce57600080fd5b919050565b60008060008060008060c08789031215620001ed57600080fd5b620001f887620001b6565b95506200020860208801620001b6565b94506200021860408801620001b6565b93506200022860608801620001b6565b9250608087015160ff811681146200023f57600080fd5b8092505060a087015190509295509295509295565b6000602082840312156200026757600080fd5b6200027282620001b6565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613d786200040d600039600081816106e2015281816117e2015261225501526000612d6e01526000818161052701528181611add0152818161231301526128220152600081816106280152818161094f015281816117a50152818161227c01526127800152600081816104c901528181610d3f0152818161199801528181611a1e01528181611cb101528181612170015281816123d60152818161246b015281816124d9015281816126de0152612c3301526000818161065c01528181610dd701528181611a5101528181611ce5015281816128c40152612cc50152600081816129c50152612a0101526000818161025d0152818161042701528181611b0e0152818161233a01528181612b2c0152612efd0152600081816102ae0152818161082801528181610b49015281816111f901528181611e7d01528181611eb201528181611f0501528181612a7301528181612a9a01528181612b530152612e5b0152600061207b0152613d786000f3fe6080604052600436106102045760003560e01c806381e8ec7f11610118578063b5634c73116100a0578063e8dfd5081161006f578063e8dfd5081461064a578063f2fde38b14610690578063f48066a8146106b0578063f68016b7146106d0578063f953cec71461070457600080fd5b8063b5634c73146105c1578063bc7f6d37146105e1578063d8d2841814610601578063da25b7251461061657600080fd5b806390ea5428116100e757806390ea542814610515578063935dec071461054957806396dddc63146105775780639fd0506d14610597578063b187bd26146105ac57600080fd5b806381e8ec7f1461048657806384acd1bb146104b75780638da5cb5b146104eb5780638fd3ab801461050057600080fd5b8063529dca321161019b578063689f90c31161016a578063689f90c314610403578063694977d7146104185780637ab564031461044b57806380eb32391461045e5780638129fc1c1461047e57600080fd5b8063529dca321461036457806358f709ba14610377578063657b3b2f1461039757806366152efc146103b757600080fd5b8063320d0d8e116101d7578063320d0d8e146102d057806348b330d6146103005780634b5b0505146103315780634b795b211461034457600080fd5b8063036de8af146102095780630900f0101461022b5780630b4a1e891461024b57806324fb21db1461029c575b600080fd5b34801561021557600080fd5b506102296102243660046130b3565b610724565b005b34801561023757600080fd5b506102296102463660046130b3565b610790565b34801561025757600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102a857600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102dc57600080fd5b506102f06102eb3660046130eb565b6107a4565b6040519015158152602001610293565b34801561030c57600080fd5b5061032061031b366004613216565b6107d1565b604051905115158152602001610293565b61022961033f3660046132da565b610815565b34801561035057600080fd5b5061022961035f36600461336f565b6108ac565b6102296103723660046133cb565b610944565b34801561038357600080fd5b506102296103923660046130b3565b610b3e565b3480156103a357600080fd5b506102296103b236600461336f565b610b92565b3480156103c357600080fd5b506103f66103d23660046134c0565b516040805191151560f81b6020830152805160018184030181526021909201905290565b604051610293919061355b565b34801561040f57600080fd5b506102f0610c22565b34801561042457600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061027f565b61022961045936600461356e565b610c35565b34801561046a57600080fd5b506102f061047936600461359a565b610e9b565b610229610eb9565b34801561049257600080fd5b506103f6604051806040016040528060058152602001640302e312e360dc1b81525081565b3480156104c357600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f757600080fd5b5061027f610fba565b34801561050c57600080fd5b50610229610fe8565b34801561052157600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561055557600080fd5b506105696105643660046130eb565b6110f3565b604051908152602001610293565b34801561058357600080fd5b5061022961059236600461336f565b611117565b3480156105a357600080fd5b5061027f6111a7565b3480156105b857600080fd5b506102f06111c0565b3480156105cd57600080fd5b506105696105dc3660046135b3565b6111d5565b3480156105ed57600080fd5b506102f06105fc3660046130eb565b6111e8565b34801561060d57600080fd5b5061027f6111f5565b34801561062257600080fd5b5061027f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561065657600080fd5b5061067e7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610293565b34801561069c57600080fd5b506102296106ab3660046130b3565b61127e565b3480156106bc57600080fd5b506102f06106cb3660046130eb565b6112b0565b3480156106dc57600080fd5b506105697f000000000000000000000000000000000000000000000000000000000000000081565b34801561071057600080fd5b5061022961071f366004613216565b6112bd565b61073461072f610fba565b6113a9565b600061073e6113f2565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef690600090a3505050565b610798611420565b6107a181611454565b50565b60006107cb6107b1611562565b61ffff841660009081526020919091526040902054611590565b92915050565b60408051602081019091526000815281516000036107f25760008152919050565b60006107fe83826115ce565b9015158352905061080f8382611623565b50919050565b61081d611655565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461086d5760405163c5aa615360e01b81523360048201526024015b60405180910390fd5b61087c8534338585898961169f565b6108a560017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b6108b4611420565b8161ffff166000036108d957604051630f7662c960e21b815260040160405180910390fd5b6108e4811515611e00565b6108ec611e1d565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f0fe301480713b2c2072ee91b3bcfcbf2c0014f0447c89046f020f0f80727003c91015b60405180910390a15050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461098f57604051631c26958960e01b8152336004820152602401610864565b82610999836110f3565b146109c457604051633cd8e72b60e11b815261ffff8316600482015260248101849052604401610864565b6109cd81610e9b565b156109ee57604051632d30ec0360e21b815260048101829052602401610864565b6109f781611e4b565b835115610a175760405163c504ea2960e01b815260040160405180910390fd5b6040805182815261ffff841660208201529081018490527ff557dbbb087662f52c815f6c7ee350628a37a51eae9608ff840d996b65f874759060600160405180910390a16040805160808101825260008082526020820152606091810182905281810191909152604080516060808201835260008083526020830152818301529051630453806b60e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__906308a700d690610ad6906309945ff160e41b908b90600401613602565b600060405180830381865af4158015610af3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1b91908101906136eb565b81516020830151929450909250610b359186919084611e73565b50505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b895760405163c5aa615360e01b8152336004820152602401610864565b6107a181611f76565b610b9a611420565b8161ffff16600003610bbf57604051630f7662c960e21b815260040160405180910390fd5b610bca811515611e00565b610bd2611562565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f528b18a533e892b5401d1fb63597275df9d2bb45b13e7695c3147cd07b9746c39101610938565b6000610c2c611fe7565b5460ff16919050565b610c3d611420565b8161ffff16600003610c6257604051630f7662c960e21b815260040160405180910390fd5b80610c805760405163137063ef60e11b815260040160405180910390fd5b6000610c8a612015565b61ffff84166000908152602091909152604090205490508015610ccd5760405163b55eeae960e01b815261ffff8416600482015260248101829052604401610864565b81610cd6612015565b61ffff858116600081815260209384526040808220959095558451606081018652630c7e33e160e11b8152938401918252838501878152945163077650fb60e51b815284516001600160e01b0319166004820152915190921660248201529251604484015290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163b19a437e9134919073__$93083e246e55d56d98f3df2872cd16bfd0$__9063eeca1f6090606401600060405180830381865af4158015610dad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dd591908101906137aa565b7f00000000000000000000000000000000000000000000000000000000000000006040518563ffffffff1660e01b8152600401610e14939291906137de565b60206040518083038185885af1158015610e32573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e579190613827565b506040805161ffff86168152602081018590527fa559263ee060c7a2560843b3a064ff0376c9753ae3e2449b595a3b615d326466910160405180910390a150505050565b6000610ea5612043565b600092835260205250604090205460ff1690565b610ec1612071565b600080516020613d238339815191528054600160401b810460ff1615906001600160401b0316600081158015610ef45750825b90506000826001600160401b03166001148015610f105750303b155b905081158015610f1e575080155b15610f3c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f6657845460ff60401b1916600160401b1785555b610f6e6120ba565b83156108a557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b610ff0612071565b600080516020613d23833981519152546001600160401b0316611014906001613858565b600080516020613d238339815191528054600160401b900460ff1680611047575080546001600160401b03808416911610155b156110655760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b17815561108e6120ca565b5460ff166110af57604051632866815360e11b815260040160405180910390fd5b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602001610938565b60006110fd612015565b61ffff909216600090815260209290925250604090205490565b61111f611420565b8161ffff1660000361114457604051630f7662c960e21b815260040160405180910390fd5b61114f811515611e00565b6111576120f8565b61ffff841660008181526020928352604090819020939093558251908152831515918101919091527f4add57d97a7bf5035340ea1212aeeb3d4d3887eb1faf3821a8224c3a6956a10c9101610938565b60006111b16113f2565b546001600160a01b0316919050565b6000806111cb612126565b5460021492915050565b60006111e18383612154565b9392505050565b60006107cb6107b1611e1d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112799190613878565b905090565b611286611420565b6001600160a01b038116610b8957604051631e4fbdf760e01b815260006004820152602401610864565b60006107cb6107b16120f8565b600060606112ca836124ce565b60408051608081018252600080825260208201526060918101829052818101919091529193509150604080516060808201835260008083526020830152818301529051630453806b60e11b815273__$93083e246e55d56d98f3df2872cd16bfd0$__906308a700d69061134a906309945ff160e41b908790600401613602565b600060405180830381865af4158015611367573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261138f91908101906136eb565b815160208301519294509092506108a59186919084611e73565b336113b26111a7565b6001600160a01b0316141580156113d257506001600160a01b0381163314155b156107a15760405163e2a08e5d60e01b8152336004820152602401610864565b6000806107cb60017fbfa91572ce1e5fe8776a160d3b1f862e83f5ee2c080a7423b4761602a3ad124a613895565b33611429610fba565b6001600160a01b0316146114525760405163118cdaa760e01b8152336004820152602401610864565b565b61145c612071565b61146581612694565b600061146f6120ca565b805490915060ff1615611484576114846138a8565b805460ff191660011781556040805163011fa75760e71b815290513091638fd3ab8091600480830192600092919082900301818387803b1580156114c757600080fd5b505af11580156114db573d6000803e3d6000fd5b50505050306001600160a01b031663689f90c36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561151d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154191906138c9565b61154d5761154d6126d4565b6115576000612958565b805460ff1916905550565b6000806107cb60017f16ee6ac6bf7a8d7c37112a9426e00852b215ac4f5c50536beb6c95f1ba47b4b0613895565b6000816000036115a257506000919050565b816001036115b257506001919050565b60405163b998bad560e01b815260048101839052602401610864565b6000806000806115e78686600191810182015192910190565b909250905060fe8216156116135760405163f7a37b0760e01b815260ff83166004820152602401610864565b60ff909116925090509250929050565b808251146116515781516040516355c5b3e360e11b8152600481019190915260248101829052604401610864565b5050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080546001190161169957604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040805160808101825260008082526020820152606091810182905281810191909152606060006001600160a01b038816905060006116e186602001516107d1565b80519091501580156116f757506116f78b612973565b156118ba57604080516000815260208101918290526304616c8f60e21b90915273__$93083e246e55d56d98f3df2872cd16bfd0$__90631185b23c9061174f906309945ff160e41b9086908d908b90602481016138e6565b600060405180830381865af415801561176c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117949190810190613932565b9094509250868b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016634b5ca6f48d836117dd6117d8826110f3565b61298e565b8960007f00000000000000000000000000000000000000000000000000000000000000008861180b8b61298e565b6040518963ffffffff1660e01b815260040161182d979695949392919061398b565b60206040518083038185885af115801561184b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118709190613827565b506040805160008152602081018b90529081018d90527fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e9060600160405180910390a15050611d94565b80511580156118cd57506118cd8b6111e8565b15611bfd5760408051600160f81b6020820181905260218201528151600281830301815260228201928390526304616c8f60e21b90925273__$93083e246e55d56d98f3df2872cd16bfd0$__90631185b23c9061193d906309945ff160e41b9087908e908c9088906026016138e6565b600060405180830381865af415801561195a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119829190810190613932565b809550819650505060008b905060008d905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1891906139e4565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b19a437e8360008b7f00000000000000000000000000000000000000000000000000000000000000006040518563ffffffff1660e01b8152600401611a8e939291906137de565b60206040518083038185885af1158015611aac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ad19190613827565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166316ac49c2611b0c8487613895565b7f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e085901b1681526001600160a01b03909116600482015261ffff87166024820152600060448201526001600160401b03851660648201526084016000604051808303818588803b158015611b8d57600080fd5b505af1158015611ba1573d6000803e3d6000fd5b507fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e935060019250611bd1915050565b6040805160ff909216825260006020830152810186905260600160405180910390a15050505050611d94565b604080516000815260208101918290526304616c8f60e21b90915273__$93083e246e55d56d98f3df2872cd16bfd0$__90631185b23c90611c50906309945ff160e41b9086908d908b90602481016138e6565b600060405180830381865af4158015611c6d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c959190810190613932565b6040516358cd21bf60e11b815291955093506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b19a437e908c90611d0d9060009088907f0000000000000000000000000000000000000000000000000000000000000000906004016137de565b60206040518083038185885af1158015611d2b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d509190613827565b506040805160028152600060208201529081018b90527fc3192e083c87c556db539f071d8a298869f487e951327b5616a6f85ae3da958e9060600160405180910390a15b7f79376a0dc6cbfe6f6f8f89ad24c262a8c6233f8df181d3fe5abb2e2442e8c7388b85604051611dc59291906139fd565b60405180910390a15050505050505050505050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60008115611e1057506001919050565b506000919050565b919050565b6000806107cb60017fd4cbc7742a1e11dcc33209ac33862ef146cfcb6d7f860df12df42105dfedb1ca613895565b6001611e55612043565b60009283526020526040909120805460ff1916911515919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168214611eee576040516339dee99160e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600482015260248101839052604401610864565b60405163275e091560e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639d78245490611f3e90879087908690600401613a5d565b600060405180830381600087803b158015611f5857600080fd5b505af1158015611f6c573d6000803e3d6000fd5b5050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6000806107cb60017f5443fea4dc453d96b81ce55b62e11a4094cc4cbb8a360956a7253cfdb42506cc613895565b6000806107cb60017f48c66ef0992b4bcc14f2551075db9459fc23bf706abb76034f1c66c1ba284685613895565b6000806107cb60017f5e6aacb3f16e5b01c8b072a0ab4c38e919266014a45db863ee64a4580fb3e7e3613895565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361145257604051633c64f99360e21b815260040160405180910390fd5b6120c26129ba565b611452612a4d565b6000806107cb60017f7487ca88d037ca20519908b1ee7556206bef53bce0226a348750cb9d4f688e4f613895565b6000806107cb60017fe79d2e5e46f62be2ac831294e423b664f30320fb9ebaefd78a978cafe07c0f8d613895565b6000806107cb60017f64bacf405c5d7f563d3ba5252584a52c37e4fee380fd825b10666c27b8258023613895565b60008061216483602001516107d1565b8051909150156121f8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f091906139e4565b9150506107cb565b61220184612d45565b156122255760405163251268db60e21b815261ffff85166004820152602401610864565b61222e84612973565b156122f95760405163c23ee3c360e01b815261ffff851660048201526000602482018190527f00000000000000000000000000000000000000000000000000000000000000006044830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23ee3c3906064016040805180830381865afa1580156122ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ee9190613a9d565b5092506107cb915050565b612302846111e8565b156124695760006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166382745ce47f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b03909116600482015261ffff8816602482015260006044820152606401602060405180830381865afa1580156123ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d291906139e4565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa158015612432573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245691906139e4565b6124609082613ac1565b925050506107cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631a90a2196040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121cc573d6000803e3d6000fd5b5092915050565b6000606060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c0fd8bde876040518263ffffffff1660e01b8152600401612523919061355b565b600060405180830381865afa158015612540573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125689190810190613bae565b9250925092508161258e5780604051634771719b60e11b8152600401610864919061355b565b61259783612d67565b6125ca5760608301516080840151604051633cd8e72b60e11b815261ffff90921660048301526024820152604401610864565b6125d8836101400151610e9b565b156125ff57826101400151604051632d30ec0360e21b815260040161086491815260200190565b61260d836101400151611e4b565b7ff6fc529540981400dc64edf649eb5e2e0eb5812a27f8c81bac2c1d317e71a5f0836101400151846060015185608001518660a00151604051612676949392919093845261ffff92909216602084015260408301526001600160401b0316606082015260800190565b60405180910390a182606001518360e0015194509450505050915091565b61269d81612dab565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6126dc612e59565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166384acd1bb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127689190613878565b6001600160a01b03161461277e5761277e6138a8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b031663da25b7256040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a9190613878565b6001600160a01b031614612820576128206138a8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166390ea54286040518163ffffffff1660e01b8152600401602060405180830381865afa158015612888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ac9190613878565b6001600160a01b0316146128c2576128c26138a8565b7f000000000000000000000000000000000000000000000000000000000000000060ff16306001600160a01b031663e8dfd5086040518163ffffffff1660e01b8152600401602060405180830381865afa158015612924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129489190613d05565b60ff1614611452576114526138a8565b80612961611fe7565b805460ff191691151591909117905550565b600061297e826107a4565b80156107cb57506107cb826112b0565b600060a082901c156129b65760405163033b960d60e41b815260048101839052602401610864565b5090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612a3457604051636345072160e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820152336024820152604401610864565b612a3c612f9d565b61145233612a486111f5565b612fad565b6040805160a08101909152639c23bd3b60e01b8152600090602081016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634b4fd03b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612af6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1a9190613d05565b60ff1681526020016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b97e8566040518163ffffffff1660e01b8152600401602060405180830381865afa158015612baf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd39190613d05565b60ff908116909152604080516301529f6160e21b815283516001600160e01b031916600482015260208401516024820152908301518216604482015260608301516064820152608083015190911660848201529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b19a437e90349060009073__$93083e246e55d56d98f3df2872cd16bfd0$__9063054a7d849060a401600060405180830381865af4158015612c9b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612cc391908101906137aa565b7f00000000000000000000000000000000000000000000000000000000000000006040518563ffffffff1660e01b8152600401612d02939291906137de565b60206040518083038185885af1158015612d20573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116519190613827565b6000612d50826107a4565b80156107cb5750612d60826112b0565b1592915050565b6000612d927f0000000000000000000000000000000000000000000000000000000000000000612fc7565b8160800151612da483606001516110f3565b1492915050565b6001600160a01b0381163b612e185760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610864565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b03166324fb21db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ee59190613878565b6001600160a01b031614612efb57612efb6138a8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316630b4a1e896040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f879190613878565b6001600160a01b031614611452576114526138a8565b612fa5612ff0565b611452613027565b612fb5612ff0565b612fbe8261302f565b61165181613040565b4681146107a1576040516377d879fb60e01b815260048101829052466024820152604401610864565b600080516020613d2383398151915254600160401b900460ff1661145257604051631afcd79f60e31b815260040160405180910390fd5b611dda612ff0565b613037612ff0565b6107a181613051565b613048612ff0565b6107a181613096565b613059612ff0565b6000613063612126565b60018155905060006130736113f2565b80546001600160a01b0319166001600160a01b0394909416939093179092555050565b611286612ff0565b6001600160a01b03811681146107a157600080fd5b6000602082840312156130c557600080fd5b81356111e18161309e565b61ffff811681146107a157600080fd5b8035611e18816130d0565b6000602082840312156130fd57600080fd5b81356111e1816130d0565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171561314057613140613108565b60405290565b60405161016081016001600160401b038111828210171561314057613140613108565b604051601f8201601f191681016001600160401b038111828210171561319157613191613108565b604052919050565b60006001600160401b038211156131b2576131b2613108565b50601f01601f191660200190565b600082601f8301126131d157600080fd5b81356131e46131df82613199565b613169565b8181528460208386010111156131f957600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561322857600080fd5b81356001600160401b0381111561323e57600080fd5b61324a848285016131c0565b949350505050565b60ff811681146107a157600080fd5b60006040828403121561327357600080fd5b604051604081016001600160401b03828210818311171561329657613296613108565b81604052829350843591506132aa82613252565b908252602084013590808211156132c057600080fd5b506132cd858286016131c0565b6020830152505092915050565b600080600080600060a086880312156132f257600080fd5b85356132fd816130d0565b945060208601356001600160401b038082111561331957600080fd5b61332589838a01613261565b9550604088013591508082111561333b57600080fd5b50613348888289016131c0565b9598949750949560608101359550608001359392505050565b80151581146107a157600080fd5b6000806040838503121561338257600080fd5b823561338d816130d0565b9150602083013561339d81613361565b809150509250929050565b60006001600160401b038211156133c1576133c1613108565b5060051b60200190565b600080600080600060a086880312156133e357600080fd5b85356001600160401b03808211156133fa57600080fd5b61340689838a016131c0565b965060209150818801358181111561341d57600080fd5b8801601f81018a1361342e57600080fd5b803561343c6131df826133a8565b81815260059190911b8201840190848101908c83111561345b57600080fd5b8584015b83811015613493578035868111156134775760008081fd5b6134858f89838901016131c0565b84525091860191860161345f565b509850505050604088013594506134af915050606087016130e0565b949793965091946080013592915050565b6000602082840312156134d257600080fd5b604051602081018181106001600160401b03821117156134f4576134f4613108565b604052823561350281613361565b81529392505050565b60005b8381101561352657818101518382015260200161350e565b50506000910152565b6000815180845261354781602086016020860161350b565b601f01601f19169290920160200192915050565b6020815260006111e1602083018461352f565b6000806040838503121561358157600080fd5b823561358c816130d0565b946020939093013593505050565b6000602082840312156135ac57600080fd5b5035919050565b600080604083850312156135c657600080fd5b82356135d1816130d0565b915060208301356001600160401b038111156135ec57600080fd5b6135f885828601613261565b9150509250929050565b63ffffffff60e01b8316815260406020820152600061324a604083018461352f565b600082601f83011261363557600080fd5b81516136436131df82613199565b81815284602083860101111561365857600080fd5b61324a82602083016020870161350b565b60006080828403121561367b57600080fd5b61368361311e565b9050815181526020820151602082015260408201516001600160401b03808211156136ad57600080fd5b6136b985838601613624565b604084015260608401519150808211156136d257600080fd5b506136df84828501613624565b60608301525092915050565b600080604083850312156136fe57600080fd5b82516001600160401b038082111561371557600080fd5b61372186838701613669565b9350602085015191508082111561373757600080fd5b908401906060828703121561374b57600080fd5b60405160608101818110838211171561376657613766613108565b8060405250825181526020830151602082015260408301518281111561378b57600080fd5b61379788828601613624565b6040830152508093505050509250929050565b6000602082840312156137bc57600080fd5b81516001600160401b038111156137d257600080fd5b61324a84828501613624565b63ffffffff841681526060602082015260006137fd606083018561352f565b905060ff83166040830152949350505050565b80516001600160401b0381168114611e1857600080fd5b60006020828403121561383957600080fd5b6111e182613810565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156124c7576124c7613842565b60006020828403121561388a57600080fd5b81516111e18161309e565b818103818111156107cb576107cb613842565b634e487b7160e01b600052600160045260246000fd5b8051611e1881613361565b6000602082840312156138db57600080fd5b81516111e181613361565b63ffffffff60e01b8616815284602082015283604082015260a06060820152600061391460a083018561352f565b8281036080840152613926818561352f565b98975050505050505050565b6000806040838503121561394557600080fd5b82516001600160401b038082111561395c57600080fd5b61396886838701613669565b9350602085015191508082111561397e57600080fd5b506135f885828601613624565b600061ffff808a16835260018060a01b03808a16602085015260e060408501526139b860e085018a61352f565b925087606085015286608085015281861660a085015280851660c0850152505098975050505050505050565b6000602082840312156139f657600080fd5b5051919050565b61ffff8316815260406020820152815160408201526020820151606082015260006040830151608080840152613a3660c084018261352f565b90506060840151603f198483030160a0850152613a53828261352f565b9695505050505050565b61ffff8416815282602082015260606040820152815160608201526020820151608082015260006040830151606060a0840152613a5360c084018261352f565b60008060408385031215613ab057600080fd5b505080516020909101519092909150565b808201808211156107cb576107cb613842565b8051611e1881613252565b805163ffffffff81168114611e1857600080fd5b8051611e18816130d0565b600082601f830112613b0f57600080fd5b81516020613b1f6131df836133a8565b82815260079290921b84018101918181019086841115613b3e57600080fd5b8286015b84811015613ba35760808189031215613b5b5760008081fd5b613b6361311e565b815181528482015185820152604080830151613b7e81613252565b90820152606082810151613b9181613252565b90820152835291830191608001613b42565b509695505050505050565b600080600060608486031215613bc357600080fd5b83516001600160401b0380821115613bda57600080fd5b908501906101608288031215613bef57600080fd5b613bf7613146565b613c0083613ad4565b8152613c0e60208401613adf565b6020820152613c1f60408401613adf565b6040820152613c3060608401613af3565b606082015260808301516080820152613c4b60a08401613810565b60a0820152613c5c60c08401613ad4565b60c082015260e083015182811115613c7357600080fd5b613c7f89828601613624565b60e083015250610100613c93818501613adf565b908201526101208381015183811115613cab57600080fd5b613cb78a828701613afe565b918301919091525061014083810151908201529450613cd8602087016138be565b93506040860151915080821115613cee57600080fd5b50613cfb86828701613624565b9150509250925092565b600060208284031215613d1757600080fd5b81516111e18161325256fef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220fb50f91d9706570b37b4ffe1baafd0faad110eb531dbc726af6e4f03bb442b4b64736f6c63430008130033",isSuperArgs=dt=>typeof dt[0]=="string"||Array.isArray(dt[0])||"_isInterface"in dt[0],Zm=class Zm extends ContractFactory{constructor(...ht){if(isSuperArgs(ht))super(...ht);else{const[Dt,Cn]=ht;super(_abi,Zm.linkBytecode(Dt),Cn)}}static linkBytecode(ht){let Dt=_bytecode;return Dt=Dt.replace(new RegExp("__\\$93083e246e55d56d98f3df2872cd16bfd0\\$__","g"),ht["src/libraries/TransceiverStructs.sol:TransceiverStructs"].replace(/^0x/,"").toLowerCase()),Dt}deploy(ht,Dt,Cn,$n,Un,Fn,Hn){return super.deploy(ht,Dt,Cn,$n,Un,Fn,Hn||{})}getDeployTransaction(ht,Dt,Cn,$n,Un,Fn,Hn){return super.getDeployTransaction(ht,Dt,Cn,$n,Un,Fn,Hn||{})}attach(ht){return super.attach(ht)}connect(ht){return super.connect(ht)}static createInterface(){return new Interface(_abi)}static connect(ht,Dt){return new Contract(ht,_abi,Dt)}};Ll(Zm,"bytecode",_bytecode),Ll(Zm,"abi",_abi);let WormholeTransceiver__factory=Zm;const ABI_VERSION_0_1_0="0.1.0",ABI_VERSION_1_0_0="1.0.0",Ym=class Ym{constructor(ht,Dt){this.chain=ht,this.address=Dt}async isWormholeRelayingEnabled(ht){const{abi:Dt}=await this.getAbi();return await Dt.isWormholeRelayingEnabled(toChainId$1(ht))}async isSpecialRelayingEnabled(ht){const{abi:Dt}=await this.getAbi();return await Dt.isSpecialRelayingEnabled(toChainId$1(ht))}async receiveMessage(ht,Dt){const{abi:Cn}=await this.getAbi(),$n=await Cn.populateTransaction.receiveMessage(ht),Hn=await(await(await config$2.wh.mustGetSigner(this.chain)).sendTransaction($n)).wait();return await signAndSendTransaction(toChainName(this.chain),Hn,TransferWallet.RECEIVING)}async getAbi(){const ht=config$2.wh.mustGetProvider(this.chain),Dt=`${this.address}-${toChainName(this.chain)}`;let Cn=Ym.abiVersionCache.get(Dt);if(!Cn){const $n=new Contract(this.address,["function WORMHOLE_TRANSCEIVER_VERSION() public view returns (string)"],ht);try{Cn=await $n.WORMHOLE_TRANSCEIVER_VERSION()}catch(Un){throw console.error(`Failed to get WORMHOLE_TRANSCEIVER_VERSION from contract ${this.address} on chain ${toChainName(this.chain)}`),Un}if(!Cn)throw new Error("WORMHOLE_TRANSCEIVER_VERSION not found");Ym.abiVersionCache.set(Dt,Cn)}if(Cn===ABI_VERSION_0_1_0)return{abi:WormholeTransceiver__factory$1.connect(this.address,ht),version:Cn};if(Cn===ABI_VERSION_1_0_0)return{abi:WormholeTransceiver__factory.connect(this.address,ht),version:Cn};throw console.error(`Unsupported WormholeTransceiver version ${Cn} for chain ${toChainName(this.chain)}`),new UnsupportedContractAbiVersion}};Ll(Ym,"abiVersionCache",new Map);let WormholeTransceiver=Ym;var camelcase={exports:{}};const UPPERCASE=/[\p{Lu}]/u,LOWERCASE=/[\p{Ll}]/u,LEADING_CAPITAL=/^[\p{Lu}](?![\p{Lu}])/gu,IDENTIFIER=/([\p{Alpha}\p{N}_]|$)/u,SEPARATORS=/[_.\- ]+/,LEADING_SEPARATORS=new RegExp("^"+SEPARATORS.source),SEPARATORS_AND_IDENTIFIER=new RegExp(SEPARATORS.source+IDENTIFIER.source,"gu"),NUMBERS_AND_IDENTIFIER=new RegExp("\\d+"+IDENTIFIER.source,"gu"),preserveCamelCase=(dt,ht,Dt)=>{let Cn=!1,$n=!1,Un=!1;for(let Fn=0;Fn<dt.length;Fn++){const Hn=dt[Fn];Cn&&UPPERCASE.test(Hn)?(dt=dt.slice(0,Fn)+"-"+dt.slice(Fn),Cn=!1,Un=$n,$n=!0,Fn++):$n&&Un&&LOWERCASE.test(Hn)?(dt=dt.slice(0,Fn-1)+"-"+dt.slice(Fn-1),Un=$n,$n=!1,Cn=!0):(Cn=ht(Hn)===Hn&&Dt(Hn)!==Hn,Un=$n,$n=Dt(Hn)===Hn&&ht(Hn)!==Hn)}return dt},preserveConsecutiveUppercase=(dt,ht)=>(LEADING_CAPITAL.lastIndex=0,dt.replace(LEADING_CAPITAL,Dt=>ht(Dt))),postProcess=(dt,ht)=>(SEPARATORS_AND_IDENTIFIER.lastIndex=0,NUMBERS_AND_IDENTIFIER.lastIndex=0,dt.replace(SEPARATORS_AND_IDENTIFIER,(Dt,Cn)=>ht(Cn)).replace(NUMBERS_AND_IDENTIFIER,Dt=>ht(Dt))),camelCase=(dt,ht)=>{if(!(typeof dt=="string"||Array.isArray(dt)))throw new TypeError("Expected the input to be `string | string[]`");if(ht={pascalCase:!1,preserveConsecutiveUppercase:!1,...ht},Array.isArray(dt)?dt=dt.map(Un=>Un.trim()).filter(Un=>Un.length).join("-"):dt=dt.trim(),dt.length===0)return"";const Dt=ht.locale===!1?Un=>Un.toLowerCase():Un=>Un.toLocaleLowerCase(ht.locale),Cn=ht.locale===!1?Un=>Un.toUpperCase():Un=>Un.toLocaleUpperCase(ht.locale);return dt.length===1?ht.pascalCase?Cn(dt):Dt(dt):(dt!==Dt(dt)&&(dt=preserveCamelCase(dt,Dt,Cn)),dt=dt.replace(LEADING_SEPARATORS,""),ht.preserveConsecutiveUppercase?dt=preserveConsecutiveUppercase(dt,Dt):dt=Dt(dt),ht.pascalCase&&(dt=Cn(dt.charAt(0))+dt.slice(1)),postProcess(dt,Cn))};camelcase.exports=camelCase;camelcase.exports.default=camelCase;var camelcaseExports=camelcase.exports;const camelCase$1=getDefaultExportFromCjs$1(camelcaseExports);var dist={};(function(dt){var ht=commonjsGlobal$1&&commonjsGlobal$1.__importDefault||function(tr){return tr&&tr.__esModule?tr:{default:tr}};Object.defineProperty(dt,"__esModule",{value:!0}),dt.map=dt.array=dt.rustEnum=dt.str=dt.vecU8=dt.tagged=dt.vec=dt.bool=dt.option=dt.publicKey=dt.i256=dt.u256=dt.i128=dt.u128=dt.i64=dt.u64=dt.struct=dt.f64=dt.f32=dt.i32=dt.u32=dt.i16=dt.u16=dt.i8=dt.u8=void 0;const Dt=Layout$2,Cn=require$$5$1,$n=ht(bnExports$1);var Un=Layout$2;Object.defineProperty(dt,"u8",{enumerable:!0,get:function(){return Un.u8}}),Object.defineProperty(dt,"i8",{enumerable:!0,get:function(){return Un.s8}}),Object.defineProperty(dt,"u16",{enumerable:!0,get:function(){return Un.u16}}),Object.defineProperty(dt,"i16",{enumerable:!0,get:function(){return Un.s16}}),Object.defineProperty(dt,"u32",{enumerable:!0,get:function(){return Un.u32}}),Object.defineProperty(dt,"i32",{enumerable:!0,get:function(){return Un.s32}}),Object.defineProperty(dt,"f32",{enumerable:!0,get:function(){return Un.f32}}),Object.defineProperty(dt,"f64",{enumerable:!0,get:function(){return Un.f64}}),Object.defineProperty(dt,"struct",{enumerable:!0,get:function(){return Un.struct}});class Fn extends Dt.Layout{constructor(Yn,fr,Cr){super(Yn,Cr),this.blob=(0,Dt.blob)(Yn),this.signed=fr}decode(Yn,fr=0){const Cr=new $n.default(this.blob.decode(Yn,fr),10,"le");return this.signed?Cr.fromTwos(this.span*8).clone():Cr}encode(Yn,fr,Cr=0){return this.signed&&(Yn=Yn.toTwos(this.span*8)),this.blob.encode(Yn.toArrayLike(dist$8.Buffer,"le",this.span),fr,Cr)}}function Hn(tr){return new Fn(8,!1,tr)}dt.u64=Hn;function Gn(tr){return new Fn(8,!0,tr)}dt.i64=Gn;function Qn(tr){return new Fn(16,!1,tr)}dt.u128=Qn;function qn(tr){return new Fn(16,!0,tr)}dt.i128=qn;function er(tr){return new Fn(32,!1,tr)}dt.u256=er;function Wn(tr){return new Fn(32,!0,tr)}dt.i256=Wn;class jn extends Dt.Layout{constructor(Yn,fr,Cr,yr){super(Yn.span,yr),this.layout=Yn,this.decoder=fr,this.encoder=Cr}decode(Yn,fr){return this.decoder(this.layout.decode(Yn,fr))}encode(Yn,fr,Cr){return this.layout.encode(this.encoder(Yn),fr,Cr)}getSpan(Yn,fr){return this.layout.getSpan(Yn,fr)}}function Zn(tr){return new jn((0,Dt.blob)(32),Yn=>new Cn.PublicKey(Yn),Yn=>Yn.toBuffer(),tr)}dt.publicKey=Zn;class Xn extends Dt.Layout{constructor(Yn,fr){super(-1,fr),this.layout=Yn,this.discriminator=(0,Dt.u8)()}encode(Yn,fr,Cr=0){return Yn==null?this.discriminator.encode(0,fr,Cr):(this.discriminator.encode(1,fr,Cr),this.layout.encode(Yn,fr,Cr+1)+1)}decode(Yn,fr=0){const Cr=this.discriminator.decode(Yn,fr);if(Cr===0)return null;if(Cr===1)return this.layout.decode(Yn,fr+1);throw new Error("Invalid option "+this.property)}getSpan(Yn,fr=0){const Cr=this.discriminator.decode(Yn,fr);if(Cr===0)return 1;if(Cr===1)return this.layout.getSpan(Yn,fr+1)+1;throw new Error("Invalid option "+this.property)}}function ar(tr,Yn){return new Xn(tr,Yn)}dt.option=ar;function dr(tr){return new jn((0,Dt.u8)(),or,sr,tr)}dt.bool=dr;function or(tr){if(tr===0)return!1;if(tr===1)return!0;throw new Error("Invalid bool: "+tr)}function sr(tr){return tr?1:0}function vr(tr,Yn){const fr=(0,Dt.u32)("length"),Cr=(0,Dt.struct)([fr,(0,Dt.seq)(tr,(0,Dt.offset)(fr,-fr.span),"values")]);return new jn(Cr,({values:yr})=>yr,yr=>({values:yr}),Yn)}dt.vec=vr;function hr(tr,Yn,fr){const Cr=(0,Dt.struct)([Hn("tag"),Yn.replicate("data")]);function yr({tag:Ir,data:Pr}){if(!Ir.eq(tr))throw new Error("Invalid tag, expected: "+tr.toString("hex")+", got: "+Ir.toString("hex"));return Pr}return new jn(Cr,yr,Ir=>({tag:tr,data:Ir}),fr)}dt.tagged=hr;function gr(tr){const Yn=(0,Dt.u32)("length"),fr=(0,Dt.struct)([Yn,(0,Dt.blob)((0,Dt.offset)(Yn,-Yn.span),"data")]);return new jn(fr,({data:Cr})=>Cr,Cr=>({data:Cr}),tr)}dt.vecU8=gr;function ur(tr){return new jn(gr(),Yn=>Yn.toString("utf-8"),Yn=>dist$8.Buffer.from(Yn,"utf-8"),tr)}dt.str=ur;function _r(tr,Yn,fr){const Cr=(0,Dt.union)(fr??(0,Dt.u8)(),Yn);return tr.forEach((yr,Ir)=>Cr.addVariant(Ir,yr,yr.property)),Cr}dt.rustEnum=_r;function nr(tr,Yn,fr){const Cr=(0,Dt.struct)([(0,Dt.seq)(tr,Yn,"values")]);return new jn(Cr,({values:yr})=>yr,yr=>({values:yr}),fr)}dt.array=nr;class Sr extends Dt.Layout{constructor(Yn,fr,Cr){super(Yn.span+fr.span,Cr),this.keyLayout=Yn,this.valueLayout=fr}decode(Yn,fr){fr=fr||0;const Cr=this.keyLayout.decode(Yn,fr),yr=this.valueLayout.decode(Yn,fr+this.keyLayout.getSpan(Yn,fr));return[Cr,yr]}encode(Yn,fr,Cr){Cr=Cr||0;const yr=this.keyLayout.encode(Yn[0],fr,Cr),Ir=this.valueLayout.encode(Yn[1],fr,Cr+yr);return yr+Ir}getSpan(Yn,fr){return this.keyLayout.getSpan(Yn,fr)+this.valueLayout.getSpan(Yn,fr)}}function Ar(tr,Yn,fr){const Cr=(0,Dt.u32)("length"),yr=(0,Dt.struct)([Cr,(0,Dt.seq)(new Sr(tr,Yn),(0,Dt.offset)(Cr,-Cr.span),"values")]);return new jn(yr,({values:Ir})=>new Map(Ir),Ir=>({values:Array.from(Ir.entries())}),fr)}dt.map=Ar})(dist);var eventemitter3={exports:{}};(function(dt){var ht=Object.prototype.hasOwnProperty,Dt="~";function Cn(){}Object.create&&(Cn.prototype=Object.create(null),new Cn().__proto__||(Dt=!1));function $n(Gn,Qn,qn){this.fn=Gn,this.context=Qn,this.once=qn||!1}function Un(Gn,Qn,qn,er,Wn){if(typeof qn!="function")throw new TypeError("The listener must be a function");var jn=new $n(qn,er||Gn,Wn),Zn=Dt?Dt+Qn:Qn;return Gn._events[Zn]?Gn._events[Zn].fn?Gn._events[Zn]=[Gn._events[Zn],jn]:Gn._events[Zn].push(jn):(Gn._events[Zn]=jn,Gn._eventsCount++),Gn}function Fn(Gn,Qn){--Gn._eventsCount===0?Gn._events=new Cn:delete Gn._events[Qn]}function Hn(){this._events=new Cn,this._eventsCount=0}Hn.prototype.eventNames=function(){var Qn=[],qn,er;if(this._eventsCount===0)return Qn;for(er in qn=this._events)ht.call(qn,er)&&Qn.push(Dt?er.slice(1):er);return Object.getOwnPropertySymbols?Qn.concat(Object.getOwnPropertySymbols(qn)):Qn},Hn.prototype.listeners=function(Qn){var qn=Dt?Dt+Qn:Qn,er=this._events[qn];if(!er)return[];if(er.fn)return[er.fn];for(var Wn=0,jn=er.length,Zn=new Array(jn);Wn<jn;Wn++)Zn[Wn]=er[Wn].fn;return Zn},Hn.prototype.listenerCount=function(Qn){var qn=Dt?Dt+Qn:Qn,er=this._events[qn];return er?er.fn?1:er.length:0},Hn.prototype.emit=function(Qn,qn,er,Wn,jn,Zn){var Xn=Dt?Dt+Qn:Qn;if(!this._events[Xn])return!1;var ar=this._events[Xn],dr=arguments.length,or,sr;if(ar.fn){switch(ar.once&&this.removeListener(Qn,ar.fn,void 0,!0),dr){case 1:return ar.fn.call(ar.context),!0;case 2:return ar.fn.call(ar.context,qn),!0;case 3:return ar.fn.call(ar.context,qn,er),!0;case 4:return ar.fn.call(ar.context,qn,er,Wn),!0;case 5:return ar.fn.call(ar.context,qn,er,Wn,jn),!0;case 6:return ar.fn.call(ar.context,qn,er,Wn,jn,Zn),!0}for(sr=1,or=new Array(dr-1);sr<dr;sr++)or[sr-1]=arguments[sr];ar.fn.apply(ar.context,or)}else{var vr=ar.length,hr;for(sr=0;sr<vr;sr++)switch(ar[sr].once&&this.removeListener(Qn,ar[sr].fn,void 0,!0),dr){case 1:ar[sr].fn.call(ar[sr].context);break;case 2:ar[sr].fn.call(ar[sr].context,qn);break;case 3:ar[sr].fn.call(ar[sr].context,qn,er);break;case 4:ar[sr].fn.call(ar[sr].context,qn,er,Wn);break;default:if(!or)for(hr=1,or=new Array(dr-1);hr<dr;hr++)or[hr-1]=arguments[hr];ar[sr].fn.apply(ar[sr].context,or)}}return!0},Hn.prototype.on=function(Qn,qn,er){return Un(this,Qn,qn,er,!1)},Hn.prototype.once=function(Qn,qn,er){return Un(this,Qn,qn,er,!0)},Hn.prototype.removeListener=function(Qn,qn,er,Wn){var jn=Dt?Dt+Qn:Qn;if(!this._events[jn])return this;if(!qn)return Fn(this,jn),this;var Zn=this._events[jn];if(Zn.fn)Zn.fn===qn&&(!Wn||Zn.once)&&(!er||Zn.context===er)&&Fn(this,jn);else{for(var Xn=0,ar=[],dr=Zn.length;Xn<dr;Xn++)(Zn[Xn].fn!==qn||Wn&&!Zn[Xn].once||er&&Zn[Xn].context!==er)&&ar.push(Zn[Xn]);ar.length?this._events[jn]=ar.length===1?ar[0]:ar:Fn(this,jn)}return this},Hn.prototype.removeAllListeners=function(Qn){var qn;return Qn?(qn=Dt?Dt+Qn:Qn,this._events[qn]&&Fn(this,qn)):(this._events=new Cn,this._eventsCount=0),this},Hn.prototype.off=Hn.prototype.removeListener,Hn.prototype.addListener=Hn.prototype.on,Hn.prefixed=Dt,Hn.EventEmitter=Hn,dt.exports=Hn})(eventemitter3);var eventemitter3Exports=eventemitter3.exports;const EventEmitter=getDefaultExportFromCjs$1(eventemitter3Exports);function chunks(dt,ht){return Array.apply(0,new Array(Math.ceil(dt.length/ht))).map((Dt,Cn)=>dt.slice(Cn*ht,(Cn+1)*ht))}const isVersionedTransaction=dt=>"version"in dt;function decode$2(dt){return new TextDecoder("utf-8").decode(dt)}function encode$2(dt){return new TextEncoder().encode(dt)}function encode$1(dt){return bs58$3.encode(dt)}function encode(dt){return dt.toString("base64")}function decode(dt){return bufferPolyfill.Buffer.from(dt,"base64")}function parseIdlErrors(dt){const ht=new Map;return dt.errors&&dt.errors.forEach(Dt=>{var Cn;let $n=(Cn=Dt.msg)!==null&&Cn!==void 0?Cn:Dt.name;ht.set(Dt.code,$n)}),ht}function toInstruction(dt,...ht){if(dt.args.length!=ht.length)throw new Error("Invalid argument length");const Dt={};let Cn=0;return dt.args.forEach($n=>{Dt[$n.name]=ht[Cn],Cn+=1}),Dt}function validateAccounts(dt,ht={}){dt.forEach(Dt=>{if("accounts"in Dt)validateAccounts(Dt.accounts,ht[Dt.name]);else if(ht[Dt.name]===void 0)throw new Error(`Invalid arguments: ${Dt.name} not provided.`)})}function translateAddress(dt){return dt instanceof PublicKey$4?dt:new PublicKey$4(dt)}class StructError extends TypeError{constructor(ht,Dt){let Cn;const{message:$n,...Un}=ht,{path:Fn}=ht,Hn=Fn.length===0?$n:"At path: "+Fn.join(".")+" -- "+$n;super(Hn),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,Un),this.name=this.constructor.name,this.failures=()=>{var Gn;return(Gn=Cn)!=null?Gn:Cn=[ht,...Dt()]}}}function isIterable(dt){return isObject(dt)&&typeof dt[Symbol.iterator]=="function"}function isObject(dt){return typeof dt=="object"&&dt!=null}function print(dt){return typeof dt=="string"?JSON.stringify(dt):""+dt}function shiftIterator(dt){const{done:ht,value:Dt}=dt.next();return ht?void 0:Dt}function toFailure(dt,ht,Dt,Cn){if(dt===!0)return;dt===!1?dt={}:typeof dt=="string"&&(dt={message:dt});const{path:$n,branch:Un}=ht,{type:Fn}=Dt,{refinement:Hn,message:Gn="Expected a value of type `"+Fn+"`"+(Hn?" with refinement `"+Hn+"`":"")+", but received: `"+print(Cn)+"`"}=dt;return{value:Cn,type:Fn,refinement:Hn,key:$n[$n.length-1],path:$n,branch:Un,...dt,message:Gn}}function*toFailures(dt,ht,Dt,Cn){isIterable(dt)||(dt=[dt]);for(const $n of dt){const Un=toFailure($n,ht,Dt,Cn);Un&&(yield Un)}}function*run(dt,ht,Dt){Dt===void 0&&(Dt={});const{path:Cn=[],branch:$n=[dt],coerce:Un=!1,mask:Fn=!1}=Dt,Hn={path:Cn,branch:$n};if(Un&&(dt=ht.coercer(dt,Hn),Fn&&ht.type!=="type"&&isObject(ht.schema)&&isObject(dt)&&!Array.isArray(dt)))for(const Qn in dt)ht.schema[Qn]===void 0&&delete dt[Qn];let Gn=!0;for(const Qn of ht.validator(dt,Hn))Gn=!1,yield[Qn,void 0];for(let[Qn,qn,er]of ht.entries(dt,Hn)){const Wn=run(qn,er,{path:Qn===void 0?Cn:[...Cn,Qn],branch:Qn===void 0?$n:[...$n,qn],coerce:Un,mask:Fn});for(const jn of Wn)jn[0]?(Gn=!1,yield[jn[0],void 0]):Un&&(qn=jn[1],Qn===void 0?dt=qn:dt instanceof Map?dt.set(Qn,qn):dt instanceof Set?dt.add(qn):isObject(dt)&&(dt[Qn]=qn))}if(Gn)for(const Qn of ht.refiner(dt,Hn))Gn=!1,yield[Qn,void 0];Gn&&(yield[void 0,dt])}class Struct{constructor(ht){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:Dt,schema:Cn,validator:$n,refiner:Un,coercer:Fn=Gn=>Gn,entries:Hn=function*(){}}=ht;this.type=Dt,this.schema=Cn,this.entries=Hn,this.coercer=Fn,$n?this.validator=(Gn,Qn)=>{const qn=$n(Gn,Qn);return toFailures(qn,Qn,this,Gn)}:this.validator=()=>[],Un?this.refiner=(Gn,Qn)=>{const qn=Un(Gn,Qn);return toFailures(qn,Qn,this,Gn)}:this.refiner=()=>[]}assert(ht){return assert$1(ht,this)}create(ht){return create(ht,this)}is(ht){return is(ht,this)}mask(ht){return mask(ht,this)}validate(ht,Dt){return Dt===void 0&&(Dt={}),validate$1(ht,this,Dt)}}function assert$1(dt,ht){const Dt=validate$1(dt,ht);if(Dt[0])throw Dt[0]}function create(dt,ht){const Dt=validate$1(dt,ht,{coerce:!0});if(Dt[0])throw Dt[0];return Dt[1]}function mask(dt,ht){const Dt=validate$1(dt,ht,{coerce:!0,mask:!0});if(Dt[0])throw Dt[0];return Dt[1]}function is(dt,ht){return!validate$1(dt,ht)[0]}function validate$1(dt,ht,Dt){Dt===void 0&&(Dt={});const Cn=run(dt,ht,Dt),$n=shiftIterator(Cn);return $n[0]?[new StructError($n[0],function*(){for(const Fn of Cn)Fn[0]&&(yield Fn[0])}),void 0]:[void 0,$n[1]]}function define(dt,ht){return new Struct({type:dt,schema:null,validator:ht})}function any(){return define("any",()=>!0)}function array(dt){return new Struct({type:"array",schema:dt,*entries(ht){if(dt&&Array.isArray(ht))for(const[Dt,Cn]of ht.entries())yield[Dt,Cn,dt]},coercer(ht){return Array.isArray(ht)?ht.slice():ht},validator(ht){return Array.isArray(ht)||"Expected an array value, but received: "+print(ht)}})}function boolean(){return define("boolean",dt=>typeof dt=="boolean")}function literal(dt){const ht=print(dt),Dt=typeof dt;return new Struct({type:"literal",schema:Dt==="string"||Dt==="number"||Dt==="boolean"?dt:null,validator(Cn){return Cn===dt||"Expected the literal `"+ht+"`, but received: "+print(Cn)}})}function nullable(dt){return new Struct({...dt,validator:(ht,Dt)=>ht===null||dt.validator(ht,Dt),refiner:(ht,Dt)=>ht===null||dt.refiner(ht,Dt)})}function number(){return define("number",dt=>typeof dt=="number"&&!isNaN(dt)||"Expected a number, but received: "+print(dt))}function optional(dt){return new Struct({...dt,validator:(ht,Dt)=>ht===void 0||dt.validator(ht,Dt),refiner:(ht,Dt)=>ht===void 0||dt.refiner(ht,Dt)})}function string(){return define("string",dt=>typeof dt=="string"||"Expected a string, but received: "+print(dt))}function type(dt){const ht=Object.keys(dt);return new Struct({type:"type",schema:dt,*entries(Dt){if(isObject(Dt))for(const Cn of ht)yield[Cn,Dt[Cn],dt[Cn]]},validator(Dt){return isObject(Dt)||"Expected an object, but received: "+print(Dt)}})}function union$1(dt){const ht=dt.map(Dt=>Dt.type).join(" | ");return new Struct({type:"union",schema:null,coercer(Dt,Cn){return(dt.find(Un=>{const[Fn]=Un.validate(Dt,{coerce:!0});return!Fn})||unknown()).coercer(Dt,Cn)},validator(Dt,Cn){const $n=[];for(const Un of dt){const[...Fn]=run(Dt,Un,Cn),[Hn]=Fn;if(Hn[0])for(const[Gn]of Fn)Gn&&$n.push(Gn);else return[]}return["Expected the value to satisfy a union of `"+ht+"`, but received: "+print(Dt),...$n]}})}function unknown(){return define("unknown",()=>!0)}function coerce(dt,ht,Dt){return new Struct({...dt,coercer:(Cn,$n)=>is(Cn,ht)?dt.coercer(Dt(Cn,$n),$n):dt.coercer(Cn,$n)})}const GET_MULTIPLE_ACCOUNTS_LIMIT=99;async function getMultipleAccountsAndContext(dt,ht,Dt){if(ht.length<=GET_MULTIPLE_ACCOUNTS_LIMIT)return await getMultipleAccountsAndContextCore(dt,ht,Dt);{const Cn=chunks(ht,GET_MULTIPLE_ACCOUNTS_LIMIT);return(await Promise.all(Cn.map(Un=>getMultipleAccountsAndContextCore(dt,Un,Dt)))).flat()}}async function getMultipleAccountsAndContextCore(dt,ht,Dt){const Cn=Dt??dt.commitment,{value:$n,context:Un}=await dt.getMultipleAccountsInfoAndContext(ht,Cn);return $n.map((Hn,Gn)=>Hn===null?null:{publicKey:ht[Gn],account:Hn,context:Un})}async function simulateTransaction(dt,ht,Dt,Cn,$n){var Un;Dt&&Dt.length>0&&ht.sign(...Dt);const Fn=ht._compile(),Hn=Fn.serialize(),Qn=ht._serialize(Hn).toString("base64"),qn={encoding:"base64",commitment:Cn??dt.commitment};if($n){const Zn=(Array.isArray($n)?$n:Fn.nonProgramIds()).map(Xn=>Xn.toBase58());qn.accounts={encoding:"base64",addresses:Zn}}Dt&&(qn.sigVerify=!0);const er=[Qn,qn],Wn=await dt._rpcRequest("simulateTransaction",er),jn=create(Wn,SimulatedTransactionResponseStruct);if("error"in jn){let Zn;if("data"in jn.error&&(Zn=(Un=jn.error.data)===null||Un===void 0?void 0:Un.logs,Zn&&Array.isArray(Zn))){const Xn=`
326
326
  `,ar=Xn+Zn.join(Xn);console.error(jn.error.message,ar)}throw new SendTransactionError("failed to simulate transaction: "+jn.error.message,Zn)}return jn.result}function jsonRpcResult(dt){return coerce(createRpcResult(dt),UnknownRpcResult,ht=>"error"in ht?ht:{...ht,result:create(ht.result,dt)})}const UnknownRpcResult=createRpcResult(unknown());function createRpcResult(dt){return union$1([type({jsonrpc:literal("2.0"),id:string(),result:dt}),type({jsonrpc:literal("2.0"),id:string(),error:type({code:unknown(),message:string(),data:optional(any())})})])}function jsonRpcResultAndContext(dt){return jsonRpcResult(type({context:type({slot:number()}),value:dt}))}const SimulatedTransactionResponseStruct=jsonRpcResultAndContext(type({err:nullable(union$1([type({}),string()])),logs:nullable(array(string())),accounts:optional(nullable(array(nullable(type({executable:boolean(),owner:string(),lamports:number(),data:array(string()),rentEpoch:optional(number())}))))),unitsConsumed:optional(number())}));class AnchorProvider{constructor(ht,Dt,Cn){this.connection=ht,this.wallet=Dt,this.opts=Cn,this.publicKey=Dt==null?void 0:Dt.publicKey}static defaultOptions(){return{preflightCommitment:"processed",commitment:"processed"}}static local(ht,Dt){throw new Error("Provider local is not available on browser.")}static env(){throw new Error("Provider env is not available on browser.")}async sendAndConfirm(ht,Dt,Cn){var $n,Un,Fn,Hn;if(Cn===void 0&&(Cn=this.opts),isVersionedTransaction(ht))Dt&&ht.sign(Dt);else if(ht.feePayer=($n=ht.feePayer)!==null&&$n!==void 0?$n:this.wallet.publicKey,ht.recentBlockhash=(await this.connection.getLatestBlockhash(Cn.preflightCommitment)).blockhash,Dt)for(const Qn of Dt)ht.partialSign(Qn);ht=await this.wallet.signTransaction(ht);const Gn=ht.serialize();try{return await sendAndConfirmRawTransaction(this.connection,Gn,Cn)}catch(Qn){if(Qn instanceof ConfirmError){const qn=encode$1(isVersionedTransaction(ht)?((Un=ht.signatures)===null||Un===void 0?void 0:Un[0])||new Uint8Array:(Fn=ht.signature)!==null&&Fn!==void 0?Fn:new Uint8Array),er=await this.connection.getTransaction(qn,{commitment:"confirmed"});if(er){const Wn=(Hn=er.meta)===null||Hn===void 0?void 0:Hn.logMessages;throw Wn?new SendTransactionError(Qn.message,Wn):Qn}else throw Qn}else throw Qn}}async sendAll(ht,Dt){var Cn,$n,Un;Dt===void 0&&(Dt=this.opts);const Fn=(await this.connection.getLatestBlockhash(Dt.preflightCommitment)).blockhash;let Hn=ht.map(qn=>{var er,Wn;if(isVersionedTransaction(qn.tx)){let jn=qn.tx;return qn.signers&&jn.sign(qn.signers),jn}else{let jn=qn.tx,Zn=(er=qn.signers)!==null&&er!==void 0?er:[];return jn.feePayer=(Wn=jn.feePayer)!==null&&Wn!==void 0?Wn:this.wallet.publicKey,jn.recentBlockhash=Fn,Zn.forEach(Xn=>{jn.partialSign(Xn)}),jn}});const Gn=await this.wallet.signAllTransactions(Hn),Qn=[];for(let qn=0;qn<Hn.length;qn+=1){const er=Gn[qn],Wn=er.serialize();try{Qn.push(await sendAndConfirmRawTransaction(this.connection,Wn,Dt))}catch(jn){if(jn instanceof ConfirmError){const Zn=encode$1(isVersionedTransaction(er)?((Cn=er.signatures)===null||Cn===void 0?void 0:Cn[0])||new Uint8Array:($n=er.signature)!==null&&$n!==void 0?$n:new Uint8Array),Xn=await this.connection.getTransaction(Zn,{commitment:"confirmed"});if(Xn){const ar=(Un=Xn.meta)===null||Un===void 0?void 0:Un.logMessages;throw ar?new SendTransactionError(jn.message,ar):jn}else throw jn}else throw jn}}return Qn}async simulate(ht,Dt,Cn,$n){let Un=(await this.connection.getLatestBlockhash(Cn??this.connection.commitment)).blockhash,Fn;if(isVersionedTransaction(ht)?(Dt&&(ht.sign(Dt),ht=await this.wallet.signTransaction(ht)),Fn=await this.connection.simulateTransaction(ht,{commitment:Cn})):(ht.feePayer=ht.feePayer||this.wallet.publicKey,ht.recentBlockhash=Un,Dt&&(ht=await this.wallet.signTransaction(ht)),Fn=await simulateTransaction(this.connection,ht,Dt,Cn,$n)),Fn.value.err)throw new SimulateError(Fn.value);return Fn.value}}class SimulateError extends Error{constructor(ht,Dt){super(Dt),this.simulationResponse=ht}}async function sendAndConfirmRawTransaction(dt,ht,Dt){const Cn=Dt&&{skipPreflight:Dt.skipPreflight,preflightCommitment:Dt.preflightCommitment||Dt.commitment},$n=await dt.sendRawTransaction(ht,Cn),Un=(await dt.confirmTransaction($n,Dt&&Dt.commitment)).value;if(Un.err)throw new ConfirmError(`Raw transaction ${$n} failed (${JSON.stringify(Un)})`);return $n}class ConfirmError extends Error{constructor(ht){super(ht)}}function getProvider(){return AnchorProvider.local()}const _FEATURES=new Map;function isSet(dt){return _FEATURES.get(dt)!==void 0}class IdlError extends Error{constructor(ht){super(ht),this.name="IdlError"}}class ProgramErrorStack{constructor(ht){this.stack=ht}static parse(ht){var Dt;const Cn=/^Program (\w*) invoke/,$n=/^Program \w* success/,Un=[];for(let Fn=0;Fn<ht.length;Fn++){if($n.exec(ht[Fn])){Un.pop();continue}const Hn=(Dt=Cn.exec(ht[Fn]))===null||Dt===void 0?void 0:Dt[1];Hn&&Un.push(new PublicKey$4(Hn))}return new ProgramErrorStack(Un)}}class AnchorError extends Error{constructor(ht,Dt,Cn,$n,Un,Fn){super(Cn.join(`
327
327
  `).replace("Program log: ","")),this.errorLogs=Cn,this.logs=$n,this.error={errorCode:ht,errorMessage:Dt,comparedValues:Fn,origin:Un},this._programErrorStack=ProgramErrorStack.parse($n)}static parse(ht){if(!ht)return null;const Dt=ht.findIndex(Wn=>Wn.startsWith("Program log: AnchorError"));if(Dt===-1)return null;const Cn=ht[Dt],$n=[Cn];let Un;if(Dt+1<ht.length){if(ht[Dt+1]==="Program log: Left:"){const Wn=/^Program log: (.*)$/,jn=Wn.exec(ht[Dt+2])[1],Zn=Wn.exec(ht[Dt+4])[1];Un=[new PublicKey$4(jn),new PublicKey$4(Zn)],$n.push(...ht.slice(Dt+1,Dt+5))}else if(ht[Dt+1].startsWith("Program log: Left:")){const Wn=/^Program log: (Left|Right): (.*)$/,jn=Wn.exec(ht[Dt+1])[2],Zn=Wn.exec(ht[Dt+2])[2];$n.push(...ht.slice(Dt+1,Dt+3)),Un=[jn,Zn]}}const Hn=/^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(Cn),Qn=/^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(Cn),er=/^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(Cn);if(Hn){const[Wn,jn,Zn]=Hn.slice(1,4),Xn={code:Wn,number:parseInt(jn)};return new AnchorError(Xn,Zn,$n,ht,void 0,Un)}else if(Qn){const[Wn,jn,Zn,Xn,ar]=Qn.slice(1,6),dr={code:Zn,number:parseInt(Xn)},or={file:Wn,line:parseInt(jn)};return new AnchorError(dr,ar,$n,ht,or,Un)}else if(er){const[Wn,jn,Zn,Xn]=er.slice(1,5),ar=Wn,dr={code:jn,number:parseInt(Zn)};return new AnchorError(dr,Xn,$n,ht,ar,Un)}else return null}get program(){return this._programErrorStack.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){return this._programErrorStack.stack}toString(){return this.message}}class ProgramError extends Error{constructor(ht,Dt,Cn){super(),this.code=ht,this.msg=Dt,this.logs=Cn,Cn&&(this._programErrorStack=ProgramErrorStack.parse(Cn))}static parse(ht,Dt){const Cn=ht.toString();let $n;if(Cn.includes("custom program error:")){let Hn=Cn.split("custom program error: ");if(Hn.length!==2)return null;$n=Hn[1]}else{const Hn=Cn.match(/"Custom":([0-9]+)}/g);if(!Hn||Hn.length>1)return null;$n=Hn[0].match(/([0-9]+)/g)[0]}let Un;try{Un=parseInt($n)}catch{return null}let Fn=Dt.get(Un);return Fn!==void 0?new ProgramError(Un,Fn,ht.logs):(Fn=LangErrorMessage.get(Un),Fn!==void 0?new ProgramError(Un,Fn,ht.logs):null)}get program(){var ht;return(ht=this._programErrorStack)===null||ht===void 0?void 0:ht.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var ht;return(ht=this._programErrorStack)===null||ht===void 0?void 0:ht.stack}toString(){return this.msg}}function translateError(dt,ht){isSet("debug-logs")&&console.log("Translating error:",dt);const Dt=AnchorError.parse(dt.logs);if(Dt)return Dt;const Cn=ProgramError.parse(dt,ht);if(Cn)return Cn;if(dt.logs){const $n={get:function(Un,Fn){return Fn==="programErrorStack"?Un.programErrorStack.stack:Fn==="program"?Un.programErrorStack.stack[dt.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return dt.programErrorStack=ProgramErrorStack.parse(dt.logs),new Proxy(dt,$n)}return dt}const LangErrorCode={InstructionMissing:100,InstructionFallbackNotFound:101,InstructionDidNotDeserialize:102,InstructionDidNotSerialize:103,IdlInstructionStub:1e3,IdlInstructionInvalidProgram:1001,ConstraintMut:2e3,ConstraintHasOne:2001,ConstraintSigner:2002,ConstraintRaw:2003,ConstraintOwner:2004,ConstraintRentExempt:2005,ConstraintSeeds:2006,ConstraintExecutable:2007,ConstraintState:2008,ConstraintAssociated:2009,ConstraintAssociatedInit:2010,ConstraintClose:2011,ConstraintAddress:2012,ConstraintZero:2013,ConstraintTokenMint:2014,ConstraintTokenOwner:2015,ConstraintMintMintAuthority:2016,ConstraintMintFreezeAuthority:2017,ConstraintMintDecimals:2018,ConstraintSpace:2019,ConstraintAccountIsNone:2020,RequireViolated:2500,RequireEqViolated:2501,RequireKeysEqViolated:2502,RequireNeqViolated:2503,RequireKeysNeqViolated:2504,RequireGtViolated:2505,RequireGteViolated:2506,AccountDiscriminatorAlreadySet:3e3,AccountDiscriminatorNotFound:3001,AccountDiscriminatorMismatch:3002,AccountDidNotDeserialize:3003,AccountDidNotSerialize:3004,AccountNotEnoughKeys:3005,AccountNotMutable:3006,AccountOwnedByWrongProgram:3007,InvalidProgramId:3008,InvalidProgramExecutable:3009,AccountNotSigner:3010,AccountNotSystemOwned:3011,AccountNotInitialized:3012,AccountNotProgramData:3013,AccountNotAssociatedTokenAccount:3014,AccountSysvarMismatch:3015,AccountReallocExceedsLimit:3016,AccountDuplicateReallocs:3017,DeclaredProgramIdMismatch:4100,Deprecated:5e3},LangErrorMessage=new Map([[LangErrorCode.InstructionMissing,"8 byte instruction identifier not provided"],[LangErrorCode.InstructionFallbackNotFound,"Fallback functions are not supported"],[LangErrorCode.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[LangErrorCode.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[LangErrorCode.IdlInstructionStub,"The program was compiled without idl instructions"],[LangErrorCode.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[LangErrorCode.ConstraintMut,"A mut constraint was violated"],[LangErrorCode.ConstraintHasOne,"A has one constraint was violated"],[LangErrorCode.ConstraintSigner,"A signer constraint was violated"],[LangErrorCode.ConstraintRaw,"A raw constraint was violated"],[LangErrorCode.ConstraintOwner,"An owner constraint was violated"],[LangErrorCode.ConstraintRentExempt,"A rent exemption constraint was violated"],[LangErrorCode.ConstraintSeeds,"A seeds constraint was violated"],[LangErrorCode.ConstraintExecutable,"An executable constraint was violated"],[LangErrorCode.ConstraintState,"Deprecated Error, feel free to replace with something else"],[LangErrorCode.ConstraintAssociated,"An associated constraint was violated"],[LangErrorCode.ConstraintAssociatedInit,"An associated init constraint was violated"],[LangErrorCode.ConstraintClose,"A close constraint was violated"],[LangErrorCode.ConstraintAddress,"An address constraint was violated"],[LangErrorCode.ConstraintZero,"Expected zero account discriminant"],[LangErrorCode.ConstraintTokenMint,"A token mint constraint was violated"],[LangErrorCode.ConstraintTokenOwner,"A token owner constraint was violated"],[LangErrorCode.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[LangErrorCode.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[LangErrorCode.ConstraintMintDecimals,"A mint decimals constraint was violated"],[LangErrorCode.ConstraintSpace,"A space constraint was violated"],[LangErrorCode.ConstraintAccountIsNone,"A required account for the constraint is None"],[LangErrorCode.RequireViolated,"A require expression was violated"],[LangErrorCode.RequireEqViolated,"A require_eq expression was violated"],[LangErrorCode.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[LangErrorCode.RequireNeqViolated,"A require_neq expression was violated"],[LangErrorCode.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[LangErrorCode.RequireGtViolated,"A require_gt expression was violated"],[LangErrorCode.RequireGteViolated,"A require_gte expression was violated"],[LangErrorCode.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[LangErrorCode.AccountDiscriminatorNotFound,"No 8 byte discriminator was found on the account"],[LangErrorCode.AccountDiscriminatorMismatch,"8 byte discriminator did not match what was expected"],[LangErrorCode.AccountDidNotDeserialize,"Failed to deserialize the account"],[LangErrorCode.AccountDidNotSerialize,"Failed to serialize the account"],[LangErrorCode.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[LangErrorCode.AccountNotMutable,"The given account is not mutable"],[LangErrorCode.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[LangErrorCode.InvalidProgramId,"Program ID was not as expected"],[LangErrorCode.InvalidProgramExecutable,"Program account is not executable"],[LangErrorCode.AccountNotSigner,"The given account did not sign"],[LangErrorCode.AccountNotSystemOwned,"The given account is not owned by the system program"],[LangErrorCode.AccountNotInitialized,"The program expected this account to be already initialized"],[LangErrorCode.AccountNotProgramData,"The given account is not a program data account"],[LangErrorCode.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[LangErrorCode.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[LangErrorCode.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[LangErrorCode.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[LangErrorCode.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[LangErrorCode.Deprecated,"The API being used is deprecated and should no longer be used"]]);var __assign$1=function(){return __assign$1=Object.assign||function(ht){for(var Dt,Cn=1,$n=arguments.length;Cn<$n;Cn++){Dt=arguments[Cn];for(var Un in Dt)Object.prototype.hasOwnProperty.call(Dt,Un)&&(ht[Un]=Dt[Un])}return ht},__assign$1.apply(this,arguments)},__assign=function(){return __assign=Object.assign||function(ht){for(var Dt,Cn=1,$n=arguments.length;Cn<$n;Cn++){Dt=arguments[Cn];for(var Un in Dt)Object.prototype.hasOwnProperty.call(Dt,Un)&&(ht[Un]=Dt[Un])}return ht},__assign.apply(this,arguments)};function lowerCase(dt){return dt.toLowerCase()}var DEFAULT_SPLIT_REGEXP=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],DEFAULT_STRIP_REGEXP=/[^A-Z0-9]+/gi;function noCase(dt,ht){ht===void 0&&(ht={});for(var Dt=ht.splitRegexp,Cn=Dt===void 0?DEFAULT_SPLIT_REGEXP:Dt,$n=ht.stripRegexp,Un=$n===void 0?DEFAULT_STRIP_REGEXP:$n,Fn=ht.transform,Hn=Fn===void 0?lowerCase:Fn,Gn=ht.delimiter,Qn=Gn===void 0?" ":Gn,qn=replace(replace(dt,Cn,"$1\0$2"),Un,"\0"),er=0,Wn=qn.length;qn.charAt(er)==="\0";)er++;for(;qn.charAt(Wn-1)==="\0";)Wn--;return qn.slice(er,Wn).split("\0").map(Hn).join(Qn)}function replace(dt,ht,Dt){return ht instanceof RegExp?dt.replace(ht,Dt):ht.reduce(function(Cn,$n){return Cn.replace($n,Dt)},dt)}function dotCase(dt,ht){return ht===void 0&&(ht={}),noCase(dt,__assign({delimiter:"."},ht))}function snakeCase(dt,ht){return ht===void 0&&(ht={}),dotCase(dt,__assign$1({delimiter:"_"},ht))}class IdlCoder{static fieldLayout(ht,Dt){const Cn=ht.name!==void 0?camelCase$1(ht.name):void 0;switch(ht.type){case"bool":return dist.bool(Cn);case"u8":return dist.u8(Cn);case"i8":return dist.i8(Cn);case"u16":return dist.u16(Cn);case"i16":return dist.i16(Cn);case"u32":return dist.u32(Cn);case"i32":return dist.i32(Cn);case"f32":return dist.f32(Cn);case"u64":return dist.u64(Cn);case"i64":return dist.i64(Cn);case"f64":return dist.f64(Cn);case"u128":return dist.u128(Cn);case"i128":return dist.i128(Cn);case"u256":return dist.u256(Cn);case"i256":return dist.i256(Cn);case"bytes":return dist.vecU8(Cn);case"string":return dist.str(Cn);case"publicKey":return dist.publicKey(Cn);default:{if("vec"in ht.type)return dist.vec(IdlCoder.fieldLayout({name:void 0,type:ht.type.vec},Dt),Cn);if("option"in ht.type)return dist.option(IdlCoder.fieldLayout({name:void 0,type:ht.type.option},Dt),Cn);if("defined"in ht.type){if(!Dt)throw new IdlError("User defined types not provided");const $n=ht.type.defined,Un=Dt.filter(Fn=>Fn.name===$n);if(Un.length!==1)throw new IdlError(`Type not found: ${JSON.stringify(ht)}`);return IdlCoder.typeDefLayout(Un[0],Dt,Cn)}else if("array"in ht.type){let $n=ht.type.array[0],Un=ht.type.array[1],Fn=IdlCoder.fieldLayout({name:void 0,type:$n},Dt);return dist.array(Fn,Un,Cn)}else throw new Error(`Not yet implemented: ${ht}`)}}}static typeDefLayout(ht,Dt=[],Cn){switch(ht.type.kind){case"struct":{const $n=ht.type.fields.map(Un=>IdlCoder.fieldLayout(Un,Dt));return dist.struct($n,Cn)}case"enum":{let $n=ht.type.variants.map(Un=>{const Fn=camelCase$1(Un.name);if(!Un.fields)return dist.struct([],Fn);const Hn=Un.fields.map((Gn,Qn)=>Gn!=null&&Gn.name?IdlCoder.fieldLayout(Gn,Dt):IdlCoder.fieldLayout({type:Gn,name:Qn.toString()},Dt));return dist.struct(Hn,Fn)});return Cn!==void 0?dist.rustEnum($n).replicate(Cn):dist.rustEnum($n,Cn)}case"alias":return IdlCoder.fieldLayout({type:ht.type.value,name:ht.name},Dt)}}}const SIGHASH_GLOBAL_NAMESPACE="global";class BorshInstructionCoder{constructor(ht){this.idl=ht,this.ixLayout=BorshInstructionCoder.parseIxLayout(ht);const Dt=new Map;ht.instructions.forEach(Cn=>{const $n=sighash(SIGHASH_GLOBAL_NAMESPACE,Cn.name);Dt.set(bs58$3.encode($n),{layout:this.ixLayout.get(Cn.name),name:Cn.name})}),this.sighashLayouts=Dt}encode(ht,Dt){return this._encode(SIGHASH_GLOBAL_NAMESPACE,ht,Dt)}_encode(ht,Dt,Cn){const $n=bufferPolyfill.Buffer.alloc(1e3),Un=camelCase$1(Dt),Fn=this.ixLayout.get(Un);if(!Fn)throw new Error(`Unknown method: ${Un}`);const Hn=Fn.encode(Cn,$n),Gn=$n.slice(0,Hn);return bufferPolyfill.Buffer.concat([sighash(ht,Dt),Gn])}static parseIxLayout(ht){const Dt=ht.instructions.map(Cn=>{let $n=Cn.args.map(Fn=>{var Hn,Gn;return IdlCoder.fieldLayout(Fn,Array.from([...(Hn=ht.accounts)!==null&&Hn!==void 0?Hn:[],...(Gn=ht.types)!==null&&Gn!==void 0?Gn:[]]))});const Un=camelCase$1(Cn.name);return[Un,dist.struct($n,Un)]});return new Map(Dt)}decode(ht,Dt="hex"){typeof ht=="string"&&(ht=Dt==="hex"?bufferPolyfill.Buffer.from(ht,"hex"):bs58$3.decode(ht));let Cn=bs58$3.encode(ht.slice(0,8)),$n=ht.slice(8);const Un=this.sighashLayouts.get(Cn);return Un?{data:Un.layout.decode($n),name:Un.name}:null}format(ht,Dt){return InstructionFormatter.format(ht,Dt,this.idl)}}class InstructionFormatter{static format(ht,Dt,Cn){const $n=Cn.instructions.filter(Gn=>ht.name===Gn.name)[0];if($n===void 0)return console.error("Invalid instruction given"),null;const Un=$n.args.map(Gn=>({name:Gn.name,type:InstructionFormatter.formatIdlType(Gn.type),data:InstructionFormatter.formatIdlData(Gn,ht.data[Gn.name],Cn.types)})),Fn=InstructionFormatter.flattenIdlAccounts($n.accounts),Hn=Dt.map((Gn,Qn)=>Qn<Fn.length?{name:Fn[Qn].name,...Gn}:{name:void 0,...Gn});return{args:Un,accounts:Hn}}static formatIdlType(ht){if(typeof ht=="string")return ht;if("vec"in ht)return`Vec<${this.formatIdlType(ht.vec)}>`;if("option"in ht)return`Option<${this.formatIdlType(ht.option)}>`;if("defined"in ht)return ht.defined;if("array"in ht)return`Array<${ht.array[0]}; ${ht.array[1]}>`;throw new Error(`Unknown IDL type: ${ht}`)}static formatIdlData(ht,Dt,Cn){if(typeof ht.type=="string")return Dt.toString();if(ht.type.hasOwnProperty("vec"))return"["+Dt.map($n=>this.formatIdlData({name:"",type:ht.type.vec},$n)).join(", ")+"]";if(ht.type.hasOwnProperty("option"))return Dt===null?"null":this.formatIdlData({name:"",type:ht.type.option},Dt,Cn);if(ht.type.hasOwnProperty("defined")){if(Cn===void 0)throw new Error("User defined types not provided");const $n=Cn.filter(Un=>Un.name===ht.type.defined);if($n.length!==1)throw new Error(`Type not found: ${ht.type.defined}`);return InstructionFormatter.formatIdlDataDefined($n[0],Dt,Cn)}return"unknown"}static formatIdlDataDefined(ht,Dt,Cn){switch(ht.type.kind){case"struct":{const $n=ht.type;return"{ "+Object.keys(Dt).map(Fn=>{const Hn=$n.fields.find(Gn=>Gn.name===Fn);if(!Hn)throw new Error("Unable to find type");return Fn+": "+InstructionFormatter.formatIdlData(Hn,Dt[Fn],Cn)}).join(", ")+" }"}case"enum":{if(ht.type.variants.length===0)return"{}";if(ht.type.variants[0].name){const $n=ht.type.variants,Un=Object.keys(Dt)[0],Fn=Dt[Un],Hn=Object.keys(Fn).map(Qn=>{var qn;const er=Fn[Qn],Wn=(qn=$n[Un])===null||qn===void 0?void 0:qn.find(jn=>jn.name===Qn);if(!Wn)throw new Error("Unable to find variant");return Qn+": "+InstructionFormatter.formatIdlData(Wn,er,Cn)}).join(", "),Gn=camelCase$1(Un,{pascalCase:!0});return Hn.length===0?Gn:`${Gn} { ${Hn} }`}else return"Tuple formatting not yet implemented"}case"alias":return InstructionFormatter.formatIdlType(ht.type.value)}}static flattenIdlAccounts(ht,Dt){return ht.map(Cn=>{const $n=sentenceCase(Cn.name);if(Cn.hasOwnProperty("accounts")){const Un=Dt?`${Dt} > ${$n}`:$n;return InstructionFormatter.flattenIdlAccounts(Cn.accounts,Un)}else return{...Cn,name:Dt?`${Dt} > ${$n}`:$n}}).flat()}}function sentenceCase(dt){const ht=dt.replace(/([A-Z])/g," $1");return ht.charAt(0).toUpperCase()+ht.slice(1)}function sighash(dt,ht){let Dt=snakeCase(ht),Cn=`${dt}:${Dt}`;return bufferPolyfill.Buffer.from(sha256$4(Cn).slice(0,8))}function accountSize(dt,ht){switch(ht.type.kind){case"struct":return ht.type.fields.map(Dt=>typeSize(dt,Dt.type)).reduce((Dt,Cn)=>Dt+Cn,0);case"enum":{const Dt=ht.type.variants.map(Cn=>Cn.fields?Cn.fields.map($n=>typeof $n=="object"&&"name"in $n?typeSize(dt,$n.type):typeSize(dt,$n)).reduce(($n,Un)=>$n+Un,0):0);return Math.max(...Dt)+1}case"alias":return typeSize(dt,ht.type.value)}}function typeSize(dt,ht){var Dt,Cn;switch(ht){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"publicKey":return 32;default:if("vec"in ht)return 1;if("option"in ht)return 1+typeSize(dt,ht.option);if("coption"in ht)return 4+typeSize(dt,ht.coption);if("defined"in ht){const $n=(Cn=(Dt=dt.types)===null||Dt===void 0?void 0:Dt.filter(Fn=>Fn.name===ht.defined))!==null&&Cn!==void 0?Cn:[];if($n.length!==1)throw new IdlError(`Type not found: ${JSON.stringify(ht)}`);let Un=$n[0];return accountSize(dt,Un)}if("array"in ht){let $n=ht.array[0],Un=ht.array[1];return typeSize(dt,$n)*Un}throw new Error(`Invalid type ${JSON.stringify(ht)}`)}}const DISCRIMINATOR_SIZE=8;function discriminator(dt){return dist$8.Buffer.from(sha256$4(dt).slice(0,DISCRIMINATOR_SIZE))}class BorshAccountsCoder{constructor(ht){if(ht.accounts===void 0){this.accountLayouts=new Map;return}const Dt=ht.accounts.map(Cn=>[Cn.name,IdlCoder.typeDefLayout(Cn,ht.types)]);this.accountLayouts=new Map(Dt),this.idl=ht}async encode(ht,Dt){const Cn=bufferPolyfill.Buffer.alloc(1e3),$n=this.accountLayouts.get(ht);if(!$n)throw new Error(`Unknown account: ${ht}`);const Un=$n.encode(Dt,Cn);let Fn=Cn.slice(0,Un),Hn=BorshAccountsCoder.accountDiscriminator(ht);return bufferPolyfill.Buffer.concat([Hn,Fn])}decode(ht,Dt){if(BorshAccountsCoder.accountDiscriminator(ht).compare(Dt.slice(0,8)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(ht,Dt)}decodeAny(ht){const Dt=ht.slice(0,8),Cn=Array.from(this.accountLayouts.keys()).find($n=>BorshAccountsCoder.accountDiscriminator($n).equals(Dt));if(!Cn)throw new Error("Account descriminator not found");return this.decodeUnchecked(Cn,ht)}decodeUnchecked(ht,Dt){const Cn=Dt.subarray(DISCRIMINATOR_SIZE),$n=this.accountLayouts.get(ht);if(!$n)throw new Error(`Unknown account: ${ht}`);return $n.decode(Cn)}memcmp(ht,Dt){const Cn=BorshAccountsCoder.accountDiscriminator(ht);return{offset:0,bytes:bs58$3.encode(Dt?bufferPolyfill.Buffer.concat([Cn,Dt]):Cn)}}size(ht){var Dt;return DISCRIMINATOR_SIZE+((Dt=accountSize(this.idl,ht))!==null&&Dt!==void 0?Dt:0)}static accountDiscriminator(ht){const Dt=`account:${camelCase$1(ht,{pascalCase:!0,preserveConsecutiveUppercase:!0})}`;return discriminator(Dt)}}class BorshEventCoder{constructor(ht){if(ht.events===void 0){this.layouts=new Map;return}const Dt=ht.events.map(Cn=>{let $n={name:Cn.name,type:{kind:"struct",fields:Cn.fields.map(Un=>({name:Un.name,type:Un.type}))}};return[Cn.name,IdlCoder.typeDefLayout($n,ht.types)]});this.layouts=new Map(Dt),this.discriminators=new Map(ht.events===void 0?[]:ht.events.map(Cn=>[encode(eventDiscriminator(Cn.name)),Cn.name]))}decode(ht){let Dt;try{Dt=decode(ht)}catch{return null}const Cn=encode(Dt.slice(0,8)),$n=this.discriminators.get(Cn);if($n===void 0)return null;const Un=this.layouts.get($n);if(!Un)throw new Error(`Unknown event: ${$n}`);return{data:Un.decode(Dt.slice(8)),name:$n}}}function eventDiscriminator(dt){return discriminator(`event:${dt}`)}class BorshTypesCoder{constructor(ht){if(ht.types===void 0){this.typeLayouts=new Map;return}const Dt=ht.types.map(Cn=>[Cn.name,IdlCoder.typeDefLayout(Cn,ht.types)]);this.typeLayouts=new Map(Dt),this.idl=ht}encode(ht,Dt){const Cn=bufferPolyfill.Buffer.alloc(1e3),$n=this.typeLayouts.get(ht);if(!$n)throw new Error(`Unknown type: ${ht}`);const Un=$n.encode(Dt,Cn);return Cn.slice(0,Un)}decode(ht,Dt){const Cn=this.typeLayouts.get(ht);if(!Cn)throw new Error(`Unknown type: ${ht}`);return Cn.decode(Dt)}}class BorshCoder{constructor(ht){this.instruction=new BorshInstructionCoder(ht),this.accounts=new BorshAccountsCoder(ht),this.events=new BorshEventCoder(ht),this.types=new BorshTypesCoder(ht)}}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof dist$8.global<"u"?dist$8.global:typeof self<"u"?self:{};class Layout{constructor(ht,Dt){if(!Number.isInteger(ht))throw new TypeError("span must be an integer");this.span=ht,this.property=Dt}makeDestinationObject(){return{}}decode(ht,Dt){throw new Error("Layout is abstract")}encode(ht,Dt,Cn){throw new Error("Layout is abstract")}getSpan(ht,Dt){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(ht){const Dt=Object.create(this.constructor.prototype);return Object.assign(Dt,this),Dt.property=ht,Dt}fromArray(ht){}}var Layout_2=Layout;function nameWithProperty(dt,ht){return ht.property?dt+"["+ht.property+"]":dt}class ExternalLayout extends Layout{isCount(){throw new Error("ExternalLayout is abstract")}}class OffsetLayout extends ExternalLayout{constructor(ht,Dt,Cn){if(!(ht instanceof Layout))throw new TypeError("layout must be a Layout");if(Dt===void 0)Dt=0;else if(!Number.isInteger(Dt))throw new TypeError("offset must be integer or undefined");super(ht.span,Cn||ht.property),this.layout=ht,this.offset=Dt}isCount(){return this.layout instanceof UInt||this.layout instanceof UIntBE}decode(ht,Dt){return Dt===void 0&&(Dt=0),this.layout.decode(ht,Dt+this.offset)}encode(ht,Dt,Cn){return Cn===void 0&&(Cn=0),this.layout.encode(ht,Dt,Cn+this.offset)}}class UInt extends Layout{constructor(ht,Dt){if(super(ht,Dt),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(ht,Dt){return Dt===void 0&&(Dt=0),ht.readUIntLE(Dt,this.span)}encode(ht,Dt,Cn){return Cn===void 0&&(Cn=0),Dt.writeUIntLE(ht,Cn,this.span),this.span}}class UIntBE extends Layout{constructor(ht,Dt){if(super(ht,Dt),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(ht,Dt){return Dt===void 0&&(Dt=0),ht.readUIntBE(Dt,this.span)}encode(ht,Dt,Cn){return Cn===void 0&&(Cn=0),Dt.writeUIntBE(ht,Cn,this.span),this.span}}const V2E32=Math.pow(2,32);function divmodInt64(dt){const ht=Math.floor(dt/V2E32),Dt=dt-ht*V2E32;return{hi32:ht,lo32:Dt}}function roundedInt64(dt,ht){return dt*V2E32+ht}class NearUInt64 extends Layout{constructor(ht){super(8,ht)}decode(ht,Dt){Dt===void 0&&(Dt=0);const Cn=ht.readUInt32LE(Dt),$n=ht.readUInt32LE(Dt+4);return roundedInt64($n,Cn)}encode(ht,Dt,Cn){Cn===void 0&&(Cn=0);const $n=divmodInt64(ht);return Dt.writeUInt32LE($n.lo32,Cn),Dt.writeUInt32LE($n.hi32,Cn+4),8}}class NearInt64 extends Layout{constructor(ht){super(8,ht)}decode(ht,Dt){Dt===void 0&&(Dt=0);const Cn=ht.readUInt32LE(Dt),$n=ht.readInt32LE(Dt+4);return roundedInt64($n,Cn)}encode(ht,Dt,Cn){Cn===void 0&&(Cn=0);const $n=divmodInt64(ht);return Dt.writeUInt32LE($n.lo32,Cn),Dt.writeInt32LE($n.hi32,Cn+4),8}}class Structure extends Layout{constructor(ht,Dt,Cn){if(!(Array.isArray(ht)&&ht.reduce((Un,Fn)=>Un&&Fn instanceof Layout,!0)))throw new TypeError("fields must be array of Layout instances");typeof Dt=="boolean"&&Cn===void 0&&(Cn=Dt,Dt=void 0);for(const Un of ht)if(0>Un.span&&Un.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let $n=-1;try{$n=ht.reduce((Un,Fn)=>Un+Fn.getSpan(),0)}catch{}super($n,Dt),this.fields=ht,this.decodePrefixes=!!Cn}getSpan(ht,Dt){if(0<=this.span)return this.span;Dt===void 0&&(Dt=0);let Cn=0;try{Cn=this.fields.reduce(($n,Un)=>{const Fn=Un.getSpan(ht,Dt);return Dt+=Fn,$n+Fn},0)}catch{throw new RangeError("indeterminate span")}return Cn}decode(ht,Dt){Dt===void 0&&(Dt=0);const Cn=this.makeDestinationObject();for(const $n of this.fields)if($n.property!==void 0&&(Cn[$n.property]=$n.decode(ht,Dt)),Dt+=$n.getSpan(ht,Dt),this.decodePrefixes&&ht.length===Dt)break;return Cn}encode(ht,Dt,Cn){Cn===void 0&&(Cn=0);const $n=Cn;let Un=0,Fn=0;for(const Hn of this.fields){let Gn=Hn.span;if(Fn=0<Gn?Gn:0,Hn.property!==void 0){const Qn=ht[Hn.property];Qn!==void 0&&(Fn=Hn.encode(Qn,Dt,Cn),0>Gn&&(Gn=Hn.getSpan(Dt,Cn)))}Un=Cn,Cn+=Gn}return Un+Fn-$n}fromArray(ht){const Dt=this.makeDestinationObject();for(const Cn of this.fields)Cn.property!==void 0&&0<ht.length&&(Dt[Cn.property]=ht.shift());return Dt}layoutFor(ht){if(typeof ht!="string")throw new TypeError("property must be string");for(const Dt of this.fields)if(Dt.property===ht)return Dt}offsetOf(ht){if(typeof ht!="string")throw new TypeError("property must be string");let Dt=0;for(const Cn of this.fields){if(Cn.property===ht)return Dt;0>Cn.span?Dt=-1:0<=Dt&&(Dt+=Cn.span)}}}class UnionDiscriminator{constructor(ht){this.property=ht}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class UnionLayoutDiscriminator extends UnionDiscriminator{constructor(ht,Dt){if(!(ht instanceof ExternalLayout&&ht.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(Dt||ht.property||"variant"),this.layout=ht}decode(ht,Dt){return this.layout.decode(ht,Dt)}encode(ht,Dt,Cn){return this.layout.encode(ht,Dt,Cn)}}class Union extends Layout{constructor(ht,Dt,Cn){const $n=ht instanceof UInt||ht instanceof UIntBE;if($n)ht=new UnionLayoutDiscriminator(new OffsetLayout(ht));else if(ht instanceof ExternalLayout&&ht.isCount())ht=new UnionLayoutDiscriminator(ht);else if(!(ht instanceof UnionDiscriminator))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(Dt===void 0&&(Dt=null),!(Dt===null||Dt instanceof Layout))throw new TypeError("defaultLayout must be null or a Layout");if(Dt!==null){if(0>Dt.span)throw new Error("defaultLayout must have constant span");Dt.property===void 0&&(Dt=Dt.replicate("content"))}let Un=-1;Dt&&(Un=Dt.span,0<=Un&&$n&&(Un+=ht.layout.span)),super(Un,Cn),this.discriminator=ht,this.usesPrefixDiscriminator=$n,this.defaultLayout=Dt,this.registry={};let Fn=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(Hn){return Fn(Hn)},this.configGetSourceVariant=function(Hn){Fn=Hn.bind(this)}}getSpan(ht,Dt){if(0<=this.span)return this.span;Dt===void 0&&(Dt=0);const Cn=this.getVariant(ht,Dt);if(!Cn)throw new Error("unable to determine span for unrecognized variant");return Cn.getSpan(ht,Dt)}defaultGetSourceVariant(ht){if(ht.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&ht.hasOwnProperty(this.defaultLayout.property))return;const Dt=this.registry[ht[this.discriminator.property]];if(Dt&&(!Dt.layout||ht.hasOwnProperty(Dt.property)))return Dt}else for(const Dt in this.registry){const Cn=this.registry[Dt];if(ht.hasOwnProperty(Cn.property))return Cn}throw new Error("unable to infer src variant")}decode(ht,Dt){Dt===void 0&&(Dt=0);let Cn;const $n=this.discriminator,Un=$n.decode(ht,Dt);let Fn=this.registry[Un];if(Fn===void 0){let Hn=0;Fn=this.defaultLayout,this.usesPrefixDiscriminator&&(Hn=$n.layout.span),Cn=this.makeDestinationObject(),Cn[$n.property]=Un,Cn[Fn.property]=this.defaultLayout.decode(ht,Dt+Hn)}else Cn=Fn.decode(ht,Dt);return Cn}encode(ht,Dt,Cn){Cn===void 0&&(Cn=0);const $n=this.getSourceVariant(ht);if($n===void 0){const Un=this.discriminator,Fn=this.defaultLayout;let Hn=0;return this.usesPrefixDiscriminator&&(Hn=Un.layout.span),Un.encode(ht[Un.property],Dt,Cn),Hn+Fn.encode(ht[Fn.property],Dt,Cn+Hn)}return $n.encode(ht,Dt,Cn)}addVariant(ht,Dt,Cn){const $n=new VariantLayout(this,ht,Dt,Cn);return this.registry[ht]=$n,$n}getVariant(ht,Dt){let Cn=ht;return dist$8.Buffer.isBuffer(ht)&&(Dt===void 0&&(Dt=0),Cn=this.discriminator.decode(ht,Dt)),this.registry[Cn]}}class VariantLayout extends Layout{constructor(ht,Dt,Cn,$n){if(!(ht instanceof Union))throw new TypeError("union must be a Union");if(!Number.isInteger(Dt)||0>Dt)throw new TypeError("variant must be a (non-negative) integer");if(typeof Cn=="string"&&$n===void 0&&($n=Cn,Cn=null),Cn){if(!(Cn instanceof Layout))throw new TypeError("layout must be a Layout");if(ht.defaultLayout!==null&&0<=Cn.span&&Cn.span>ht.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof $n!="string")throw new TypeError("variant must have a String property")}let Un=ht.span;0>ht.span&&(Un=Cn?Cn.span:0,0<=Un&&ht.usesPrefixDiscriminator&&(Un+=ht.discriminator.layout.span)),super(Un,$n),this.union=ht,this.variant=Dt,this.layout=Cn||null}getSpan(ht,Dt){if(0<=this.span)return this.span;Dt===void 0&&(Dt=0);let Cn=0;return this.union.usesPrefixDiscriminator&&(Cn=this.union.discriminator.layout.span),Cn+this.layout.getSpan(ht,Dt+Cn)}decode(ht,Dt){const Cn=this.makeDestinationObject();if(Dt===void 0&&(Dt=0),this!==this.union.getVariant(ht,Dt))throw new Error("variant mismatch");let $n=0;return this.union.usesPrefixDiscriminator&&($n=this.union.discriminator.layout.span),this.layout?Cn[this.property]=this.layout.decode(ht,Dt+$n):this.property?Cn[this.property]=!0:this.union.usesPrefixDiscriminator&&(Cn[this.union.discriminator.property]=this.variant),Cn}encode(ht,Dt,Cn){Cn===void 0&&(Cn=0);let $n=0;if(this.union.usesPrefixDiscriminator&&($n=this.union.discriminator.layout.span),this.layout&&!ht.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,Dt,Cn);let Un=$n;if(this.layout&&(this.layout.encode(ht[this.property],Dt,Cn+$n),Un+=this.layout.getSpan(Dt,Cn+$n),0<=this.union.span&&Un>this.union.span))throw new Error("encoded variant overruns containing union");return Un}fromArray(ht){if(this.layout)return this.layout.fromArray(ht)}}class Blob$1 extends Layout{constructor(ht,Dt){if(!(ht instanceof ExternalLayout&&ht.isCount()||Number.isInteger(ht)&&0<=ht))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let Cn=-1;ht instanceof ExternalLayout||(Cn=ht),super(Cn,Dt),this.length=ht}getSpan(ht,Dt){let Cn=this.span;return 0>Cn&&(Cn=this.length.decode(ht,Dt)),Cn}decode(ht,Dt){Dt===void 0&&(Dt=0);let Cn=this.span;return 0>Cn&&(Cn=this.length.decode(ht,Dt)),ht.slice(Dt,Dt+Cn)}encode(ht,Dt,Cn){let $n=this.length;if(this.length instanceof ExternalLayout&&($n=ht.length),!(dist$8.Buffer.isBuffer(ht)&&$n===ht.length))throw new TypeError(nameWithProperty("Blob.encode",this)+" requires (length "+$n+") Buffer as src");if(Cn+$n>Dt.length)throw new RangeError("encoding overruns Buffer");return Dt.write(ht.toString("hex"),Cn,$n,"hex"),this.length instanceof ExternalLayout&&this.length.encode($n,Dt,Cn),$n}}var offset$2=(dt,ht,Dt)=>new OffsetLayout(dt,ht,Dt),u8=dt=>new UInt(1,dt),u32=dt=>new UInt(4,dt),nu64=dt=>new NearUInt64(dt),ns64=dt=>new NearInt64(dt),struct=(dt,ht,Dt)=>new Structure(dt,ht,Dt),union=(dt,ht,Dt)=>new Union(dt,ht,Dt),blob=(dt,ht)=>new Blob$1(dt,ht);class RustStringLayout extends Layout_2{constructor(ht){super(-1,ht),this.property=ht,this.layout=struct([u32("length"),u32("lengthPadding"),blob(offset$2(u32(),-8),"chars")],this.property)}encode(ht,Dt,Cn=0){if(ht==null)return this.layout.span;const $n={chars:dist$8.Buffer.from(ht,"utf8")};return this.layout.encode($n,Dt,Cn)}decode(ht,Dt=0){return this.layout.decode(ht,Dt).chars.toString()}getSpan(ht,Dt=0){return u32().span+u32().span+new BN$3(new Uint8Array(ht).slice(Dt,Dt+4),10,"le").toNumber()}}function rustStringLayout(dt){return new RustStringLayout(dt)}function publicKey$2(dt){return blob(32,dt)}const LAYOUT=union(u32("instruction"));LAYOUT.addVariant(0,struct([ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccount");LAYOUT.addVariant(1,struct([publicKey$2("owner")]),"assign");LAYOUT.addVariant(2,struct([ns64("lamports")]),"transfer");LAYOUT.addVariant(3,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("lamports"),ns64("space"),publicKey$2("owner")]),"createAccountWithSeed");LAYOUT.addVariant(4,struct([publicKey$2("authorized")]),"advanceNonceAccount");LAYOUT.addVariant(5,struct([ns64("lamports")]),"withdrawNonceAccount");LAYOUT.addVariant(6,struct([publicKey$2("authorized")]),"initializeNonceAccount");LAYOUT.addVariant(7,struct([publicKey$2("authorized")]),"authorizeNonceAccount");LAYOUT.addVariant(8,struct([ns64("space")]),"allocate");LAYOUT.addVariant(9,struct([publicKey$2("base"),rustStringLayout("seed"),ns64("space"),publicKey$2("owner")]),"allocateWithSeed");LAYOUT.addVariant(10,struct([publicKey$2("base"),rustStringLayout("seed"),publicKey$2("owner")]),"assignWithSeed");LAYOUT.addVariant(11,struct([ns64("lamports"),rustStringLayout("seed"),publicKey$2("owner")]),"transferWithSeed");Math.max(...Object.values(LAYOUT.registry).map(dt=>dt.span));class WrappedLayout$1 extends Layout_2{constructor(ht,Dt,Cn,$n){super(ht.span,$n),this.layout=ht,this.decoder=Dt,this.encoder=Cn}decode(ht,Dt){return this.decoder(this.layout.decode(ht,Dt))}encode(ht,Dt,Cn){return this.layout.encode(this.encoder(ht),Dt,Cn)}getSpan(ht,Dt){return this.layout.getSpan(ht,Dt)}}function publicKey$1(dt){return new WrappedLayout$1(blob(32),ht=>new PublicKey$4(ht),ht=>ht.toBuffer(),dt)}struct([u32("version"),u32("state"),publicKey$1("authorizedPubkey"),publicKey$1("nonce"),struct([nu64("lamportsPerSignature")],"feeCalculator")]);function associated(dt,...ht){let Dt=[bufferPolyfill.Buffer.from([97,110,99,104,111,114])];ht.forEach($n=>{Dt.push($n instanceof bufferPolyfill.Buffer?$n:translateAddress($n).toBuffer())});const[Cn]=PublicKey$4.findProgramAddressSync(Dt,translateAddress(dt));return Cn}const TOKEN_PROGRAM_ID$1=new PublicKey$4("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID$1=new PublicKey$4("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");var browserPonyfill={exports:{}};(function(dt,ht){var Dt=typeof self<"u"?self:commonjsGlobal,Cn=function(){function Un(){this.fetch=!1,this.DOMException=Dt.DOMException}return Un.prototype=Dt,new Un}();(function(Un){(function(Fn){var Hn={searchParams:"URLSearchParams"in Un,iterable:"Symbol"in Un&&"iterator"in Symbol,blob:"FileReader"in Un&&"Blob"in Un&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in Un,arrayBuffer:"ArrayBuffer"in Un};function Gn(fr){return fr&&DataView.prototype.isPrototypeOf(fr)}if(Hn.arrayBuffer)var Qn=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],qn=ArrayBuffer.isView||function(fr){return fr&&Qn.indexOf(Object.prototype.toString.call(fr))>-1};function er(fr){if(typeof fr!="string"&&(fr=String(fr)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(fr))throw new TypeError("Invalid character in header field name");return fr.toLowerCase()}function Wn(fr){return typeof fr!="string"&&(fr=String(fr)),fr}function jn(fr){var Cr={next:function(){var yr=fr.shift();return{done:yr===void 0,value:yr}}};return Hn.iterable&&(Cr[Symbol.iterator]=function(){return Cr}),Cr}function Zn(fr){this.map={},fr instanceof Zn?fr.forEach(function(Cr,yr){this.append(yr,Cr)},this):Array.isArray(fr)?fr.forEach(function(Cr){this.append(Cr[0],Cr[1])},this):fr&&Object.getOwnPropertyNames(fr).forEach(function(Cr){this.append(Cr,fr[Cr])},this)}Zn.prototype.append=function(fr,Cr){fr=er(fr),Cr=Wn(Cr);var yr=this.map[fr];this.map[fr]=yr?yr+", "+Cr:Cr},Zn.prototype.delete=function(fr){delete this.map[er(fr)]},Zn.prototype.get=function(fr){return fr=er(fr),this.has(fr)?this.map[fr]:null},Zn.prototype.has=function(fr){return this.map.hasOwnProperty(er(fr))},Zn.prototype.set=function(fr,Cr){this.map[er(fr)]=Wn(Cr)},Zn.prototype.forEach=function(fr,Cr){for(var yr in this.map)this.map.hasOwnProperty(yr)&&fr.call(Cr,this.map[yr],yr,this)},Zn.prototype.keys=function(){var fr=[];return this.forEach(function(Cr,yr){fr.push(yr)}),jn(fr)},Zn.prototype.values=function(){var fr=[];return this.forEach(function(Cr){fr.push(Cr)}),jn(fr)},Zn.prototype.entries=function(){var fr=[];return this.forEach(function(Cr,yr){fr.push([yr,Cr])}),jn(fr)},Hn.iterable&&(Zn.prototype[Symbol.iterator]=Zn.prototype.entries);function Xn(fr){if(fr.bodyUsed)return Promise.reject(new TypeError("Already read"));fr.bodyUsed=!0}function ar(fr){return new Promise(function(Cr,yr){fr.onload=function(){Cr(fr.result)},fr.onerror=function(){yr(fr.error)}})}function dr(fr){var Cr=new FileReader,yr=ar(Cr);return Cr.readAsArrayBuffer(fr),yr}function or(fr){var Cr=new FileReader,yr=ar(Cr);return Cr.readAsText(fr),yr}function sr(fr){for(var Cr=new Uint8Array(fr),yr=new Array(Cr.length),Ir=0;Ir<Cr.length;Ir++)yr[Ir]=String.fromCharCode(Cr[Ir]);return yr.join("")}function vr(fr){if(fr.slice)return fr.slice(0);var Cr=new Uint8Array(fr.byteLength);return Cr.set(new Uint8Array(fr)),Cr.buffer}function hr(){return this.bodyUsed=!1,this._initBody=function(fr){this._bodyInit=fr,fr?typeof fr=="string"?this._bodyText=fr:Hn.blob&&Blob.prototype.isPrototypeOf(fr)?this._bodyBlob=fr:Hn.formData&&FormData.prototype.isPrototypeOf(fr)?this._bodyFormData=fr:Hn.searchParams&&URLSearchParams.prototype.isPrototypeOf(fr)?this._bodyText=fr.toString():Hn.arrayBuffer&&Hn.blob&&Gn(fr)?(this._bodyArrayBuffer=vr(fr.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Hn.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(fr)||qn(fr))?this._bodyArrayBuffer=vr(fr):this._bodyText=fr=Object.prototype.toString.call(fr):this._bodyText="",this.headers.get("content-type")||(typeof fr=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hn.searchParams&&URLSearchParams.prototype.isPrototypeOf(fr)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Hn.blob&&(this.blob=function(){var fr=Xn(this);if(fr)return fr;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?Xn(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(dr)}),this.text=function(){var fr=Xn(this);if(fr)return fr;if(this._bodyBlob)return or(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(sr(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},Hn.formData&&(this.formData=function(){return this.text().then(nr)}),this.json=function(){return this.text().then(JSON.parse)},this}var gr=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function ur(fr){var Cr=fr.toUpperCase();return gr.indexOf(Cr)>-1?Cr:fr}function _r(fr,Cr){Cr=Cr||{};var yr=Cr.body;if(fr instanceof _r){if(fr.bodyUsed)throw new TypeError("Already read");this.url=fr.url,this.credentials=fr.credentials,Cr.headers||(this.headers=new Zn(fr.headers)),this.method=fr.method,this.mode=fr.mode,this.signal=fr.signal,!yr&&fr._bodyInit!=null&&(yr=fr._bodyInit,fr.bodyUsed=!0)}else this.url=String(fr);if(this.credentials=Cr.credentials||this.credentials||"same-origin",(Cr.headers||!this.headers)&&(this.headers=new Zn(Cr.headers)),this.method=ur(Cr.method||this.method||"GET"),this.mode=Cr.mode||this.mode||null,this.signal=Cr.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&yr)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(yr)}_r.prototype.clone=function(){return new _r(this,{body:this._bodyInit})};function nr(fr){var Cr=new FormData;return fr.trim().split("&").forEach(function(yr){if(yr){var Ir=yr.split("="),Pr=Ir.shift().replace(/\+/g," "),Br=Ir.join("=").replace(/\+/g," ");Cr.append(decodeURIComponent(Pr),decodeURIComponent(Br))}}),Cr}function Sr(fr){var Cr=new Zn,yr=fr.replace(/\r?\n[\t ]+/g," ");return yr.split(/\r?\n/).forEach(function(Ir){var Pr=Ir.split(":"),Br=Pr.shift().trim();if(Br){var rr=Pr.join(":").trim();Cr.append(Br,rr)}}),Cr}hr.call(_r.prototype);function Ar(fr,Cr){Cr||(Cr={}),this.type="default",this.status=Cr.status===void 0?200:Cr.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in Cr?Cr.statusText:"OK",this.headers=new Zn(Cr.headers),this.url=Cr.url||"",this._initBody(fr)}hr.call(Ar.prototype),Ar.prototype.clone=function(){return new Ar(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Zn(this.headers),url:this.url})},Ar.error=function(){var fr=new Ar(null,{status:0,statusText:""});return fr.type="error",fr};var tr=[301,302,303,307,308];Ar.redirect=function(fr,Cr){if(tr.indexOf(Cr)===-1)throw new RangeError("Invalid status code");return new Ar(null,{status:Cr,headers:{location:fr}})},Fn.DOMException=Un.DOMException;try{new Fn.DOMException}catch{Fn.DOMException=function(Cr,yr){this.message=Cr,this.name=yr;var Ir=Error(Cr);this.stack=Ir.stack},Fn.DOMException.prototype=Object.create(Error.prototype),Fn.DOMException.prototype.constructor=Fn.DOMException}function Yn(fr,Cr){return new Promise(function(yr,Ir){var Pr=new _r(fr,Cr);if(Pr.signal&&Pr.signal.aborted)return Ir(new Fn.DOMException("Aborted","AbortError"));var Br=new XMLHttpRequest;function rr(){Br.abort()}Br.onload=function(){var pr={status:Br.status,statusText:Br.statusText,headers:Sr(Br.getAllResponseHeaders()||"")};pr.url="responseURL"in Br?Br.responseURL:pr.headers.get("X-Request-URL");var $r="response"in Br?Br.response:Br.responseText;yr(new Ar($r,pr))},Br.onerror=function(){Ir(new TypeError("Network request failed"))},Br.ontimeout=function(){Ir(new TypeError("Network request failed"))},Br.onabort=function(){Ir(new Fn.DOMException("Aborted","AbortError"))},Br.open(Pr.method,Pr.url,!0),Pr.credentials==="include"?Br.withCredentials=!0:Pr.credentials==="omit"&&(Br.withCredentials=!1),"responseType"in Br&&Hn.blob&&(Br.responseType="blob"),Pr.headers.forEach(function(pr,$r){Br.setRequestHeader($r,pr)}),Pr.signal&&(Pr.signal.addEventListener("abort",rr),Br.onreadystatechange=function(){Br.readyState===4&&Pr.signal.removeEventListener("abort",rr)}),Br.send(typeof Pr._bodyInit>"u"?null:Pr._bodyInit)})}return Yn.polyfill=!0,Un.fetch||(Un.fetch=Yn,Un.Headers=Zn,Un.Request=_r,Un.Response=Ar),Fn.Headers=Zn,Fn.Request=_r,Fn.Response=Ar,Fn.fetch=Yn,Object.defineProperty(Fn,"__esModule",{value:!0}),Fn})({})})(Cn),Cn.fetch.ponyfill=!0,delete Cn.fetch.polyfill;var $n=Cn;ht=$n.fetch,ht.default=$n.fetch,ht.fetch=$n.fetch,ht.Headers=$n.Headers,ht.Request=$n.Request,ht.Response=$n.Response,dt.exports=ht})(browserPonyfill,browserPonyfill.exports);dist.rustEnum([dist.struct([],"uninitialized"),dist.struct([dist.option(dist.publicKey(),"authorityAddress")],"buffer"),dist.struct([dist.publicKey("programdataAddress")],"program"),dist.struct([dist.u64("slot"),dist.option(dist.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,dist.u32());function isIdlAccounts(dt){return"accounts"in dt}async function idlAddress(dt){const ht=(await PublicKey$4.findProgramAddress([],dt))[0];return await PublicKey$4.createWithSeed(ht,seed(),dt)}function seed(){return"anchor:idl"}const IDL_ACCOUNT_LAYOUT=dist.struct([dist.publicKey("authority"),dist.vecU8("data")]);function decodeIdlAccount(dt){return IDL_ACCOUNT_LAYOUT.decode(dt)}function splitArgsAndCtx(dt,ht){var Dt,Cn;let $n={};const Un=dt.args?dt.args.length:0;if(ht.length>Un){if(ht.length!==Un+1)throw new Error(`provided too many arguments ${ht} to instruction ${dt==null?void 0:dt.name} expecting: ${(Cn=(Dt=dt.args)===null||Dt===void 0?void 0:Dt.map(Fn=>Fn.name))!==null&&Cn!==void 0?Cn:[]}`);$n=ht.pop()}return[ht,$n]}class InstructionNamespaceFactory{static build(ht,Dt,Cn){if(ht.name==="_inner")throw new IdlError("the _inner name is reserved");const $n=(...Un)=>{const[Fn,Hn]=splitArgsAndCtx(ht,[...Un]);validateAccounts(ht.accounts,Hn.accounts),validateInstruction(ht,...Un);const Gn=$n.accounts(Hn.accounts);return Hn.remainingAccounts!==void 0&&Gn.push(...Hn.remainingAccounts),isSet("debug-logs")&&console.log("Outgoing account metas:",Gn),new TransactionInstruction({keys:Gn,programId:Cn,data:Dt(ht.name,toInstruction(ht,...Fn))})};return $n.accounts=Un=>InstructionNamespaceFactory.accountsArray(Un,ht.accounts,Cn,ht.name),$n}static accountsArray(ht,Dt,Cn,$n){return ht?Dt.map(Un=>{if(("accounts"in Un?Un.accounts:void 0)!==void 0){const Hn=ht[Un.name];return InstructionNamespaceFactory.accountsArray(Hn,Un.accounts,Cn,$n).flat()}else{const Hn=Un;let Gn;try{Gn=translateAddress(ht[Un.name])}catch{throw new Error(`Wrong input type for account "${Un.name}" in the instruction accounts object${$n!==void 0?' for instruction "'+$n+'"':""}. Expected PublicKey or string.`)}const Qn=Hn.isOptional&&Gn.equals(Cn),qn=Hn.isMut&&!Qn,er=Hn.isSigner&&!Qn;return{pubkey:Gn,isWritable:qn,isSigner:er}}}).flat():[]}}function validateInstruction(dt,...ht){}class TransactionFactory{static build(ht,Dt){return(...$n)=>{var Un,Fn,Hn;const[,Gn]=splitArgsAndCtx(ht,[...$n]),Qn=new Transaction;if(Gn.preInstructions&&Gn.instructions)throw new Error("instructions is deprecated, use preInstructions");return(Un=Gn.preInstructions)===null||Un===void 0||Un.forEach(qn=>Qn.add(qn)),(Fn=Gn.instructions)===null||Fn===void 0||Fn.forEach(qn=>Qn.add(qn)),Qn.add(Dt(...$n)),(Hn=Gn.postInstructions)===null||Hn===void 0||Hn.forEach(qn=>Qn.add(qn)),Qn}}}class RpcFactory{static build(ht,Dt,Cn,$n){return async(...Fn)=>{var Hn;const Gn=Dt(...Fn),[,Qn]=splitArgsAndCtx(ht,[...Fn]);if($n.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await $n.sendAndConfirm(Gn,(Hn=Qn.signers)!==null&&Hn!==void 0?Hn:[],Qn.options)}catch(qn){throw translateError(qn,Cn)}}}}class AccountFactory{static build(ht,Dt,Cn,$n){var Un;const Fn={};return(Un=ht.accounts)===null||Un===void 0||Un.forEach(Hn=>{const Gn=camelCase$1(Hn.name);Fn[Gn]=new AccountClient(ht,Hn,Cn,$n,Dt)}),Fn}}class AccountClient{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}get idlAccount(){return this._idlAccount}constructor(ht,Dt,Cn,$n,Un){this._idlAccount=Dt,this._programId=Cn,this._provider=$n??getProvider(),this._coder=Un??new BorshCoder(ht),this._size=this._coder.accounts.size(Dt)}async fetchNullable(ht,Dt){const{data:Cn}=await this.fetchNullableAndContext(ht,Dt);return Cn}async fetchNullableAndContext(ht,Dt){const Cn=await this.getAccountInfoAndContext(ht,Dt),{value:$n,context:Un}=Cn;return{data:$n&&$n.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,$n.data):null,context:Un}}async fetch(ht,Dt){const{data:Cn}=await this.fetchNullableAndContext(ht,Dt);if(Cn===null)throw new Error(`Account does not exist or has no data ${ht.toString()}`);return Cn}async fetchAndContext(ht,Dt){const{data:Cn,context:$n}=await this.fetchNullableAndContext(ht,Dt);if(Cn===null)throw new Error(`Account does not exist ${ht.toString()}`);return{data:Cn,context:$n}}async fetchMultiple(ht,Dt){return(await this.fetchMultipleAndContext(ht,Dt)).map($n=>$n?$n.data:null)}async fetchMultipleAndContext(ht,Dt){return(await getMultipleAccountsAndContext(this._provider.connection,ht.map($n=>translateAddress($n)),Dt)).map($n=>{if($n==null)return null;const{account:Un,context:Fn}=$n;return{data:this._coder.accounts.decode(this._idlAccount.name,Un.data),context:Fn}})}async all(ht){const Dt=this.coder.accounts.memcmp(this._idlAccount.name,ht instanceof dist$8.Buffer?ht:void 0),Cn=[];return(Dt==null?void 0:Dt.offset)!=null&&(Dt==null?void 0:Dt.bytes)!=null&&Cn.push({memcmp:{offset:Dt.offset,bytes:Dt.bytes}}),(Dt==null?void 0:Dt.dataSize)!=null&&Cn.push({dataSize:Dt.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...Cn,...Array.isArray(ht)?ht:[]]})).map(({pubkey:Un,account:Fn})=>({publicKey:Un,account:this._coder.accounts.decode(this._idlAccount.name,Fn.data)}))}subscribe(ht,Dt){const Cn=subscriptions.get(ht.toString());if(Cn)return Cn.ee;const $n=new EventEmitter;ht=translateAddress(ht);const Un=this._provider.connection.onAccountChange(ht,Fn=>{const Hn=this._coder.accounts.decode(this._idlAccount.name,Fn.data);$n.emit("change",Hn)},Dt);return subscriptions.set(ht.toString(),{ee:$n,listener:Un}),$n}async unsubscribe(ht){let Dt=subscriptions.get(ht.toString());if(!Dt){console.warn("Address is not subscribed");return}subscriptions&&await this._provider.connection.removeAccountChangeListener(Dt.listener).then(()=>{subscriptions.delete(ht.toString())}).catch(console.error)}async createInstruction(ht,Dt){const Cn=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return SystemProgram.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:ht.publicKey,space:Dt??Cn,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(Dt??Cn),programId:this._programId})}async associated(...ht){const Dt=await this.associatedAddress(...ht);return await this.fetch(Dt)}async associatedAddress(...ht){return await associated(this._programId,...ht)}async getAccountInfo(ht,Dt){return await this._provider.connection.getAccountInfo(translateAddress(ht),Dt)}async getAccountInfoAndContext(ht,Dt){return await this._provider.connection.getAccountInfoAndContext(translateAddress(ht),Dt)}}const subscriptions=new Map,PROGRAM_LOG="Program log: ",PROGRAM_DATA="Program data: ",PROGRAM_LOG_START_INDEX=PROGRAM_LOG.length,PROGRAM_DATA_START_INDEX=PROGRAM_DATA.length;class EventManager{constructor(ht,Dt,Cn){this._programId=ht,this._provider=Dt,this._eventParser=new EventParser(ht,Cn),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(ht,Dt){var Cn;let $n=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(ht)||this._eventListeners.set(ht,[]),this._eventListeners.set(ht,((Cn=this._eventListeners.get(ht))!==null&&Cn!==void 0?Cn:[]).concat($n)),this._eventCallbacks.set($n,[ht,Dt]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(Un,Fn)=>{if(!Un.err)for(const Hn of this._eventParser.parseLogs(Un.logs)){const Gn=this._eventListeners.get(Hn.name);Gn&&Gn.forEach(Qn=>{const qn=this._eventCallbacks.get(Qn);if(qn){const[,er]=qn;er(Hn.data,Fn.slot,Un.signature)}})}})),$n}async removeEventListener(ht){const Dt=this._eventCallbacks.get(ht);if(!Dt)throw new Error(`Event listener ${ht} doesn't exist!`);const[Cn]=Dt;let $n=this._eventListeners.get(Cn);if(!$n)throw new Error(`Event listeners don't exist for ${Cn}!`);if(this._eventCallbacks.delete(ht),$n=$n.filter(Un=>Un!==ht),this._eventListeners.set(Cn,$n),$n.length===0&&this._eventListeners.delete(Cn),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class EventParser{constructor(ht,Dt){this.coder=Dt,this.programId=ht}*parseLogs(ht,Dt=!1){const Cn=new LogScanner(ht),$n=new ExecutionContext;let Un=Cn.next();for(;Un!==null;){let[Fn,Hn,Gn]=this.handleLog($n,Un,Dt);Fn&&(yield Fn),Hn&&$n.push(Hn),Gn&&$n.pop(),Un=Cn.next()}}handleLog(ht,Dt,Cn){return ht.stack.length>0&&ht.program()===this.programId.toString()?this.handleProgramLog(Dt,Cn):[null,...this.handleSystemLog(Dt)]}handleProgramLog(ht,Dt){if(ht.startsWith(PROGRAM_LOG)||ht.startsWith(PROGRAM_DATA)){const Cn=ht.startsWith(PROGRAM_LOG)?ht.slice(PROGRAM_LOG_START_INDEX):ht.slice(PROGRAM_DATA_START_INDEX),$n=this.coder.events.decode(Cn);if(Dt&&$n===null)throw new Error(`Unable to decode event ${Cn}`);return[$n,null,!1]}else return[null,...this.handleSystemLog(ht)]}handleSystemLog(ht){const Dt=ht.split(":")[0];return Dt.match(/^Program (.*) success/g)!==null?[null,!0]:Dt.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:Dt.includes("invoke")?["cpi",!1]:[null,!1]}}class ExecutionContext{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(ht){this.stack.push(ht)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class LogScanner{constructor(ht){this.logs=ht}next(){if(this.logs.length===0)return null;let ht=this.logs[0];return this.logs=this.logs.slice(1),ht}}class SimulateFactory{static build(ht,Dt,Cn,$n,Un,Fn,Hn){return async(...Qn)=>{var qn;const er=Dt(...Qn),[,Wn]=splitArgsAndCtx(ht,[...Qn]);let jn;if($n.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{jn=await $n.simulate(er,Wn.signers,(qn=Wn.options)===null||qn===void 0?void 0:qn.commitment)}catch(ar){throw translateError(ar,Cn)}if(jn===void 0)throw new Error("Unable to simulate transaction");const Zn=jn.logs;if(!Zn)throw new Error("Simulated logs not found");const Xn=[];if(Hn.events){let ar=new EventParser(Fn,Un);for(const dr of ar.parseLogs(Zn))Xn.push(dr)}return{events:Xn,raw:Zn}}}}function uint64(dt){return new WrappedLayout(blob(8),ht=>u64.fromBuffer(ht),ht=>ht.toBuffer(),dt)}function publicKey(dt){return new WrappedLayout(blob(32),ht=>new PublicKey$4(ht),ht=>ht.toBuffer(),dt)}function coption(dt,ht){return new COptionLayout(dt,ht)}class WrappedLayout extends Layout_2{constructor(ht,Dt,Cn,$n){super(ht.span,$n),this.layout=ht,this.decoder=Dt,this.encoder=Cn}decode(ht,Dt){return this.decoder(this.layout.decode(ht,Dt))}encode(ht,Dt,Cn){return this.layout.encode(this.encoder(ht),Dt,Cn)}getSpan(ht,Dt){return this.layout.getSpan(ht,Dt)}}class COptionLayout extends Layout_2{constructor(ht,Dt){super(-1,Dt),this.layout=ht,this.discriminator=u32()}encode(ht,Dt,Cn=0){return ht==null?this.layout.span+this.discriminator.encode(0,Dt,Cn):(this.discriminator.encode(1,Dt,Cn),this.layout.encode(ht,Dt,Cn+4)+4)}decode(ht,Dt=0){const Cn=this.discriminator.decode(ht,Dt);if(Cn===0)return null;if(Cn===1)return this.layout.decode(ht,Dt+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(ht,Dt=0){return this.layout.getSpan(ht,Dt+4)+4}}class u64 extends BN$3{toBuffer(){const ht=super.toArray().reverse(),Dt=dist$8.Buffer.from(ht);if(Dt.length===8)return Dt;if(Dt.length>=8)throw new Error("u64 too large");const Cn=dist$8.Buffer.alloc(8);return Dt.copy(Cn),Cn}static fromBuffer(ht){if(ht.length!==8)throw new Error(`Invalid buffer length: ${ht.length}`);return new u64([...ht].reverse().map(Dt=>`00${Dt.toString(16)}`.slice(-2)).join(""),16)}}const TOKEN_ACCOUNT_LAYOUT=struct([publicKey("mint"),publicKey("owner"),uint64("amount"),coption(publicKey(),"delegate"),(dt=>{const ht=union(u8("discriminator"),null,dt);return ht.addVariant(0,struct([]),"uninitialized"),ht.addVariant(1,struct([]),"initialized"),ht.addVariant(2,struct([]),"frozen"),ht})("state"),coption(uint64(),"isNative"),uint64("delegatedAmount"),coption(publicKey(),"closeAuthority")]);function decodeTokenAccount(dt){return TOKEN_ACCOUNT_LAYOUT.decode(dt)}class AccountsResolver{constructor(ht,Dt,Cn,$n,Un,Fn,Hn,Gn){this._accounts=Dt,this._provider=Cn,this._programId=$n,this._idlIx=Un,this._idlTypes=Hn,this._customResolver=Gn,this._args=ht,this._accountStore=new AccountStore(Cn,Fn,this._programId)}args(ht){this._args=ht}async resolve(){for(await this.resolveConst(this._idlIx.accounts),this._resolveEventCpi(this._idlIx.accounts);await this.resolvePdas(this._idlIx.accounts)+await this.resolveRelations(this._idlIx.accounts)+await this.resolveCustom()>0;);}async resolveCustom(){if(this._customResolver){const{accounts:ht,resolved:Dt}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=ht,Dt}return 0}resolveOptionalsHelper(ht,Dt){const Cn={};for(const $n of Dt){const Un=$n.name,Fn=ht[Un];Fn!==void 0&&(isPartialAccounts(Fn)?isIdlAccounts($n)?Cn[Un]=this.resolveOptionalsHelper(Fn,$n.accounts):Cn[Un]=flattenPartialAccounts(Fn,!0):Fn!==null?Cn[Un]=translateAddress(Fn):$n.isOptional&&(Cn[Un]=this._programId))}return Cn}resolveOptionals(ht){Object.assign(this._accounts,this.resolveOptionalsHelper(ht,this._idlIx.accounts))}get(ht){const Dt=ht.reduce((Cn,$n)=>Cn&&Cn[$n],this._accounts);if(Dt&&Dt.toBase58)return Dt}set(ht,Dt){let Cn=this._accounts;ht.forEach(($n,Un)=>{Un==ht.length-1&&(Cn[$n]=Dt),Cn[$n]=Cn[$n]||{},Cn=Cn[$n]})}async resolveConst(ht,Dt=[]){for(let Cn=0;Cn<ht.length;Cn+=1){const $n=ht[Cn],Un=$n.accounts;Un&&await this.resolveConst(Un,[...Dt,camelCase$1($n.name)]);const Fn=$n,Hn=camelCase$1($n.name);if(Fn.isSigner&&!this.get([...Dt,Hn])){if(this._provider.wallet===void 0)throw new Error("This function requires the Provider interface implementor to have a 'wallet' field.");this.set([...Dt,Hn],this._provider.wallet.publicKey)}Reflect.has(AccountsResolver.CONST_ACCOUNTS,Hn)&&!this.get([...Dt,Hn])&&this.set([...Dt,Hn],AccountsResolver.CONST_ACCOUNTS[Hn])}}_resolveEventCpi(ht,Dt=[]){for(const Cn in ht){const $n=ht[Cn],Un=$n.accounts;Un&&this._resolveEventCpi(Un,[...Dt,camelCase$1($n.name)]);const Fn=+Cn+1;if(Fn===ht.length)return;const Hn=camelCase$1(ht[Cn].name),Gn=camelCase$1(ht[Fn].name);if(Hn==="eventAuthority"&&Gn==="program"){const Qn=[...Dt,Hn],qn=[...Dt,Gn];this.get(Qn)||this.set(Qn,PublicKey$4.findProgramAddressSync([dist$8.Buffer.from("__event_authority")],this._programId)[0]),this.get(qn)||this.set(qn,this._programId);return}}}async resolvePdas(ht,Dt=[]){let Cn=0;for(let $n=0;$n<ht.length;$n+=1){const Un=ht[$n],Fn=Un.accounts;Fn&&(Cn+=await this.resolvePdas(Fn,[...Dt,camelCase$1(Un.name)]));const Hn=Un,Gn=camelCase$1(Un.name);Hn.pda&&Hn.pda.seeds.length>0&&!this.get([...Dt,Gn])&&await this.autoPopulatePda(Hn,Dt)&&(Cn+=1)}return Cn}async resolveRelations(ht,Dt=[]){let Cn=0;for(let $n=0;$n<ht.length;$n+=1){const Un=ht[$n],Fn=Un.accounts;Fn&&(Cn+=await this.resolveRelations(Fn,[...Dt,camelCase$1(Un.name)]));const Hn=Un.relations||[],Gn=camelCase$1(Un.name),Qn=[...Dt,Gn],qn=this.get(Qn);if(qn){const er=Hn.filter(Wn=>!this.get([...Dt,camelCase$1(Wn)]));if(Cn+=er.length,er.length>0){const Wn=await this._accountStore.fetchAccount({publicKey:qn});await Promise.all(er.map(async jn=>{const Zn=camelCase$1(jn);return this.set([...Dt,Zn],Wn[Zn]),Wn[Zn]}))}}}return Cn}async autoPopulatePda(ht,Dt=[]){if(!ht.pda||!ht.pda.seeds)throw new Error("Must have seeds");const Cn=await Promise.all(ht.pda.seeds.map(Fn=>this.toBuffer(Fn,Dt)));if(Cn.some(Fn=>typeof Fn>"u"))return;const $n=await this.parseProgramId(ht,Dt);if(!$n)return;const[Un]=await PublicKey$4.findProgramAddress(Cn,$n);this.set([...Dt,camelCase$1(ht.name)],Un)}async parseProgramId(ht,Dt=[]){var Cn;if(!(!((Cn=ht.pda)===null||Cn===void 0)&&Cn.programId))return this._programId;switch(ht.pda.programId.kind){case"const":return new PublicKey$4(this.toBufferConst(ht.pda.programId.value));case"arg":return this.argValue(ht.pda.programId);case"account":return await this.accountValue(ht.pda.programId,Dt);default:throw new Error(`Unexpected program seed kind: ${ht.pda.programId.kind}`)}}async toBuffer(ht,Dt=[]){switch(ht.kind){case"const":return this.toBufferConst(ht);case"arg":return await this.toBufferArg(ht);case"account":return await this.toBufferAccount(ht,Dt);default:throw new Error(`Unexpected seed kind: ${ht.kind}`)}}getType(ht,Dt=[]){if(Dt.length>0&&ht.defined){const Cn=this._idlTypes.find(Fn=>Fn.name===ht.defined);if(!Cn)throw new Error(`Cannot find type ${ht.defined}`);const Un=Cn.type.fields.find(Fn=>Fn.name===Dt[0]);return this.getType(Un.type,Dt.slice(1))}return ht}toBufferConst(ht){return this.toBufferValue(this.getType(ht.type,(ht.path||"").split(".").slice(1)),ht.value)}async toBufferArg(ht){const Dt=this.argValue(ht);if(!(typeof Dt>"u"))return this.toBufferValue(this.getType(ht.type,(ht.path||"").split(".").slice(1)),Dt)}argValue(ht){const Dt=ht.path.split("."),Cn=camelCase$1(Dt[0]),$n=this._idlIx.args.findIndex(Un=>Un.name===Cn);if($n===-1)throw new Error(`Unable to find argument for seed: ${Cn}`);return Dt.slice(1).reduce((Un,Fn)=>(Un||{})[Fn],this._args[$n])}async toBufferAccount(ht,Dt=[]){const Cn=await this.accountValue(ht,Dt);if(Cn)return this.toBufferValue(ht.type,Cn)}async accountValue(ht,Dt=[]){const Cn=ht.path.split("."),$n=Cn[0],Un=this.get([...Dt,camelCase$1($n)]);if(Un===null)throw new Error("fieldPubkey is null");if(Cn.length===1)return Un;const Fn=await this._accountStore.fetchAccount({publicKey:Un,name:ht.account});return this.parseAccountValue(Fn,Cn.slice(1))}parseAccountValue(ht,Dt){let Cn;for(;Dt.length>0;)Cn=ht[camelCase$1(Dt[0])],Dt=Dt.slice(1);return Cn}toBufferValue(ht,Dt){switch(ht){case"u8":return dist$8.Buffer.from([Dt]);case"u16":let Cn=dist$8.Buffer.alloc(2);return Cn.writeUInt16LE(Dt),Cn;case"u32":let $n=dist$8.Buffer.alloc(4);return $n.writeUInt32LE(Dt),$n;case"u64":let Un=dist$8.Buffer.alloc(8);return Un.writeBigUInt64LE(BigInt(Dt)),Un;case"string":return dist$8.Buffer.from(encode$2(Dt));case"publicKey":return Dt.toBuffer();default:if(ht.array)return dist$8.Buffer.from(Dt);throw new Error(`Unexpected seed type: ${ht}`)}}}AccountsResolver.CONST_ACCOUNTS={associatedTokenProgram:ASSOCIATED_PROGRAM_ID$1,rent:SYSVAR_RENT_PUBKEY,systemProgram:SystemProgram.programId,tokenProgram:TOKEN_PROGRAM_ID$1,clock:SYSVAR_CLOCK_PUBKEY};class AccountStore{constructor(ht,Dt,Cn){this._provider=ht,this._programId=Cn,this._cache=new Map,this._idls={},this._idls[Cn.toBase58()]=Dt}async ensureIdl(ht){if(!this._idls[ht.toBase58()]){const Dt=await Program.fetchIdl(ht,this._provider);if(Dt){const Cn=new Program(Dt,ht,this._provider);this._idls[ht.toBase58()]=Cn.account}}return this._idls[ht.toBase58()]}async fetchAccount({publicKey:ht,name:Dt,programId:Cn=this._programId}){const $n=ht.toString();if(!this._cache.has($n))if(Dt==="TokenAccount"){const Un=await this._provider.connection.getAccountInfo(ht);if(Un===null)throw new Error(`invalid account info for ${$n}`);const Fn=decodeTokenAccount(Un.data);this._cache.set($n,Fn)}else if(Dt){const Un=await this.ensureIdl(Cn);if(Un){const Fn=Un[camelCase$1(Dt)];if(Fn){const Hn=await Fn.fetch(ht);this._cache.set($n,Hn)}}}else{const Un=await this._provider.connection.getAccountInfo(ht);if(Un===null)throw new Error(`invalid account info for ${$n}`);const Fn=Un.data,Hn=await this.ensureIdl(Un.owner);if(Hn){const Gn=Object.values(Hn)[0];if(!Gn)throw new Error("No accounts for this program");const Qn=Gn.coder.accounts.decodeAny(Fn);this._cache.set($n,Qn)}}return this._cache.get($n)}}class MethodsBuilderFactory{static build(ht,Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){return(...Wn)=>new MethodsBuilder(Wn,$n,Un,Fn,Hn,Gn,ht,Dt,Cn,Qn,qn,er)}}function isPartialAccounts(dt){return typeof dt=="object"&&dt!==null&&!("_bn"in dt)}function flattenPartialAccounts(dt,ht){const Dt={};for(const Cn in dt){const $n=dt[Cn];if($n===null){if(ht)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");continue}Dt[Cn]=isPartialAccounts($n)?flattenPartialAccounts($n,!0):translateAddress($n)}return Dt}class MethodsBuilder{constructor(ht,Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er,Wn){this._ixFn=Dt,this._txFn=Cn,this._rpcFn=$n,this._simulateFn=Un,this._viewFn=Fn,this._programId=Gn,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._autoResolveAccounts=!0,this._args=ht,this._accountsResolver=new AccountsResolver(ht,this._accounts,Hn,Gn,Qn,qn,er,Wn)}args(ht){this._args=ht,this._accountsResolver.args(ht)}async pubkeys(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._accounts}accounts(ht){return this._autoResolveAccounts=!0,this._accountsResolver.resolveOptionals(ht),this}accountsStrict(ht){return this._autoResolveAccounts=!1,this._accountsResolver.resolveOptionals(ht),this}signers(ht){return this._signers=this._signers.concat(ht),this}remainingAccounts(ht){return this._remainingAccounts=this._remainingAccounts.concat(ht),this}preInstructions(ht){return this._preInstructions=this._preInstructions.concat(ht),this}postInstructions(ht){return this._postInstructions=this._postInstructions.concat(ht),this}async rpc(ht){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:ht})}async rpcAndKeys(ht){return{pubkeys:await this.pubkeys(),signature:await this.rpc(ht)}}async view(ht){if(this._autoResolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error("Method does not support views");return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:ht})}async simulate(ht){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:ht})}async instruction(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async prepare(){return{instruction:await this.instruction(),pubkeys:await this.pubkeys(),signers:await this._signers}}async transaction(){return this._autoResolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}}class ViewFactory{static build(ht,Dt,Cn,$n){const Un=Dt.accounts.find(Gn=>Gn.isMut),Fn=!!Dt.returns;return Un||!Fn?void 0:async(...Gn)=>{var Qn,qn;let er=await Cn(...Gn);const Wn=`Program return: ${ht} `;let jn=er.raw.find(dr=>dr.startsWith(Wn));if(!jn)throw new Error("View expected return log");let Zn=decode(jn.slice(Wn.length)),Xn=Dt.returns;if(!Xn)throw new Error("View expected return type");return IdlCoder.fieldLayout({type:Xn},Array.from([...(Qn=$n.accounts)!==null&&Qn!==void 0?Qn:[],...(qn=$n.types)!==null&&qn!==void 0?qn:[]])).decode(Zn)}}}class NamespaceFactory{static build(ht,Dt,Cn,$n,Un){const Fn={},Hn={},Gn={},Qn={},qn={},er={},Wn=parseIdlErrors(ht),jn=ht.accounts?AccountFactory.build(ht,Dt,Cn,$n):{};return ht.instructions.forEach(Zn=>{const Xn=InstructionNamespaceFactory.build(Zn,(gr,ur)=>Dt.instruction.encode(gr,ur),Cn),ar=TransactionFactory.build(Zn,Xn),dr=RpcFactory.build(Zn,ar,Wn,$n),or=SimulateFactory.build(Zn,ar,Wn,$n,Dt,Cn,ht),sr=ViewFactory.build(Cn,Zn,or,ht),vr=MethodsBuilderFactory.build($n,Cn,Zn,Xn,ar,dr,or,sr,jn,ht.types||[],Un&&Un(Zn)),hr=camelCase$1(Zn.name);Hn[hr]=Xn,Gn[hr]=ar,Fn[hr]=dr,Qn[hr]=or,qn[hr]=vr,sr&&(er[hr]=sr)}),[Fn,Hn,Gn,jn,Qn,qn,er]}}class Program{get programId(){return this._programId}get idl(){return this._idl}get coder(){return this._coder}get provider(){return this._provider}constructor(ht,Dt,Cn,$n,Un){Dt=translateAddress(Dt),Cn||(Cn=getProvider()),this._idl=ht,this._provider=Cn,this._programId=Dt,this._coder=$n??new BorshCoder(ht),this._events=new EventManager(this._programId,Cn,this._coder);const[Fn,Hn,Gn,Qn,qn,er,Wn]=NamespaceFactory.build(ht,this._coder,Dt,Cn,Un??(()=>{}));this.rpc=Fn,this.instruction=Hn,this.transaction=Gn,this.account=Qn,this.simulate=qn,this.methods=er,this.views=Wn}static async at(ht,Dt){const Cn=translateAddress(ht),$n=await Program.fetchIdl(Cn,Dt);if(!$n)throw new Error(`IDL not found for program: ${ht.toString()}`);return new Program($n,Cn,Dt)}static async fetchIdl(ht,Dt){Dt=Dt??getProvider();const Cn=translateAddress(ht),$n=await idlAddress(Cn),Un=await Dt.connection.getAccountInfo($n);if(!Un)return null;let Fn=decodeIdlAccount(Un.data.slice(8));const Hn=inflate_1(Fn.data);return JSON.parse(decode$2(Hn))}addEventListener(ht,Dt){return this._events.addEventListener(ht,Dt)}async removeEventListener(ht){return await this._events.removeEventListener(ht)}}new PublicKey$4("11111111111111111111111111111111");const IDL$1={version:"1.0.0",name:"example_native_token_transfers",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"deployer",isMut:!1,isSigner:!0},{name:"programData",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"rateLimit",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1,docs:["The custody account that holds tokens in locking mode.","NOTE: the account is unconditionally initialized, but not used in","burning mode.","function if the token account has already been created."]},{name:"tokenProgram",isMut:!1,isSigner:!1,docs:["associated token account for the given mint."]},{name:"associatedTokenProgram",isMut:!1,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"version",accounts:[],args:[],returns:"string"},{name:"transferBurn",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"transferLock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"mint",isMut:!0,isSigner:!1},{name:"from",isMut:!0,isSigner:!1,docs:["account can spend these tokens."]},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!0,isSigner:!0},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"sessionAuthority",isMut:!1,isSigner:!1},{name:"custody",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"TransferArgs"}}]},{name:"redeem",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!1,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"inboxItem",isMut:!0,isSigner:!1,docs:["NOTE: This account is content-addressed (PDA seeded by the message hash).","This is because in a multi-transceiver configuration, the different",'transceivers "vote" on messages (by delivering them). By making the inbox',"items content-addressed, we can ensure that disagreeing votes don't","interfere with each other.","On the first call to [`redeem()`], [`InboxItem`] will be allocated and initialized with","default values.",'On subsequent calls, we want to modify the `InboxItem` by "voting" on it. Therefore the',"program should not fail which would occur when using the `init` constraint.","The [`InboxItem::init`] field is used to guard against malicious or accidental modification","InboxItem fields that should remain constant."]},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"outboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RedeemArgs"}}]},{name:"releaseInboundMint",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"releaseInboundUnlock",accounts:[{name:"common",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"inboxItem",isMut:!0,isSigner:!1},{name:"recipient",isMut:!0,isSigner:!1},{name:"tokenAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}]},{name:"custody",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"ReleaseInboundArgs"}}]},{name:"transferOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"newOwner",isMut:!1,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"claimOwnership",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"upgradeLock",isMut:!1,isSigner:!1},{name:"newOwner",isMut:!1,isSigner:!0},{name:"programData",isMut:!0,isSigner:!1},{name:"bpfLoaderUpgradeableProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setPaused",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"pause",type:"bool"}]},{name:"setPeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"owner",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!0,isSigner:!1},{name:"inboxRateLimit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetPeerArgs"}}]},{name:"registerTransceiver",accounts:[{name:"config",isMut:!0,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"transceiver",isMut:!1,isSigner:!1},{name:"registeredTransceiver",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setOutboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetOutboundLimitArgs"}}]},{name:"setInboundLimit",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"rateLimit",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"SetInboundLimitArgs"}}]},{name:"setWormholePeer",accounts:[{name:"config",isMut:!1,isSigner:!1},{name:"owner",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"peer",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"SetTransceiverPeerArgs"}}]},{name:"receiveWormholeMessage",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"peer",isMut:!1,isSigner:!1},{name:"vaa",isMut:!1,isSigner:!1},{name:"transceiverMessage",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"releaseWormholeOutbound",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",accounts:[{name:"config",isMut:!1,isSigner:!1}]},{name:"outboxItem",isMut:!0,isSigner:!1},{name:"transceiver",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!1},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"ReleaseOutboundArgs"}}]},{name:"broadcastWormholeId",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[]},{name:"broadcastWormholePeer",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"peer",isMut:!1,isSigner:!1},{name:"wormholeMessage",isMut:!0,isSigner:!0},{name:"emitter",isMut:!1,isSigner:!1},{name:"wormhole",accounts:[{name:"bridge",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"sequence",isMut:!0,isSigner:!1},{name:"program",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}]}],args:[{name:"args",type:{defined:"BroadcastPeerArgs"}}]}],accounts:[{name:"config",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"owner",docs:["Owner of the program."],type:"publicKey"},{name:"pendingOwner",docs:["Pending next owner (before claiming ownership)."],type:{option:"publicKey"}},{name:"mint",docs:["Mint address of the token managed by this program."],type:"publicKey"},{name:"tokenProgram",docs:["Address of the token program (token or token22). This could always be queried","from the [`mint`] account's owner, but storing it here avoids an indirection","on the client side."],type:"publicKey"},{name:"mode",docs:["The mode that this program is running in. This is used to determine","whether the program is burning tokens or locking tokens."],type:{defined:"Mode"}},{name:"chainId",docs:["The chain id of the chain that this program is running on. We don't","hardcode this so that the program is deployable on any potential SVM","forks."],type:{defined:"ChainId"}},{name:"nextTransceiverId",docs:["The next transceiver id to use when registering an transceiver."],type:"u8"},{name:"threshold",docs:["The number of transceivers that must attest to a transfer before it is","accepted."],type:"u8"},{name:"enabledTransceivers",docs:["Bitmap of enabled transceivers.","The maximum number of transceivers is equal to [`Bitmap::BITS`]."],type:{defined:"Bitmap"}},{name:"paused",docs:["Pause the program. This is useful for upgrades and other maintenance."],type:"bool"},{name:"custody",docs:["The custody account that holds tokens in locking mode."],type:"publicKey"}]}},{name:"nttManagerPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}},{name:"tokenDecimals",type:"u8"}]}},{name:"inboxItem",type:{kind:"struct",fields:[{name:"init",type:"bool"},{name:"bump",type:"u8"},{name:"amount",type:"u64"},{name:"recipientAddress",type:"publicKey"},{name:"votes",type:{defined:"Bitmap"}},{name:"releaseStatus",type:{defined:"ReleaseStatus"}}]}},{name:"inboxRateLimit",docs:["Inbound rate limit per chain.","SECURITY: must check the PDA (since there are multiple PDAs, namely one for each chain.)"],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"outboxItem",type:{kind:"struct",fields:[{name:"amount",type:{defined:"TrimmedAmount"}},{name:"sender",type:"publicKey"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientNttManager",type:{array:["u8",32]}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"releaseTimestamp",type:"i64"},{name:"released",type:{defined:"Bitmap"}}]}},{name:"outboxRateLimit",type:{kind:"struct",fields:[{name:"rateLimit",type:{defined:"RateLimitState"}}]}},{name:"registeredTransceiver",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"id",type:"u8"},{name:"transceiverAddress",type:"publicKey"}]}},{name:"transceiverPeer",docs:["A peer on another chain. Stored in a PDA seeded by the chain id."],type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"address",type:{array:["u8",32]}}]}},{name:"bridgeData",type:{kind:"struct",fields:[{name:"guardianSetIndex",docs:["The current guardian set index, used to decide which signature sets to accept."],type:"u32"},{name:"lastLamports",docs:["Lamports in the collection account"],type:"u64"},{name:"config",docs:["Bridge configuration, which is set once upon initialization."],type:{defined:"BridgeConfig"}}]}}],types:[{name:"Bitmap",type:{kind:"struct",fields:[{name:"map",type:"u128"}]}},{name:"SetInboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"},{name:"chainId",type:{defined:"ChainId"}}]}},{name:"SetOutboundLimitArgs",type:{kind:"struct",fields:[{name:"limit",type:"u64"}]}},{name:"SetPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}},{name:"limit",type:"u64"},{name:"tokenDecimals",docs:["The token decimals on the peer chain."],type:"u8"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"},{name:"limit",type:"u64"},{name:"mode",type:{defined:"Mode"}}]}},{name:"RedeemArgs",type:{kind:"struct",fields:[]}},{name:"ReleaseInboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"TransferArgs",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"recipientChain",type:{defined:"ChainId"}},{name:"recipientAddress",type:{array:["u8",32]}},{name:"shouldQueue",type:"bool"}]}},{name:"ReleaseStatus",docs:["The status of an InboxItem. This determines whether the tokens are minted/unlocked to the recipient. As","such, this must be used as a state machine that moves forward in a linear manner. A state",'should never "move backward" to a previous state (e.g. should never move from `Released` to',"`ReleaseAfter`)."],type:{kind:"enum",variants:[{name:"NotApproved"},{name:"ReleaseAfter",fields:["i64"]},{name:"Released"}]}},{name:"RateLimitState",type:{kind:"struct",fields:[{name:"limit",docs:["The maximum capacity of the rate limiter."],type:"u64"},{name:"capacityAtLastTx",docs:["The capacity of the rate limiter at `last_tx_timestamp`.","The actual current capacity is calculated in `capacity_at`, by","accounting for the time that has passed since `last_tx_timestamp` and","the refill rate."],type:"u64"},{name:"lastTxTimestamp",docs:["The timestamp of the last transaction that counted towards the current","capacity. Transactions that exceeded the capacity do not count, they are","just delayed."],type:"i64"}]}},{name:"SetTransceiverPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:{defined:"ChainId"}},{name:"address",type:{array:["u8",32]}}]}},{name:"BroadcastPeerArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"ReleaseOutboundArgs",type:{kind:"struct",fields:[{name:"revertOnDelay",type:"bool"}]}},{name:"ChainId",type:{kind:"struct",fields:[{name:"id",type:"u16"}]}},{name:"Mode",type:{kind:"enum",variants:[{name:"Locking"},{name:"Burning"}]}},{name:"TrimmedAmount",type:{kind:"struct",fields:[{name:"amount",type:"u64"},{name:"decimals",type:"u8"}]}},{name:"BridgeConfig",type:{kind:"struct",fields:[{name:"guardianSetExpirationTime",docs:["Period for how long a guardian set is valid after it has been replaced by a new one. This","guarantees that VAAs issued by that set can still be submitted for a certain period. In","this period we still trust the old guardian set."],type:"u32"},{name:"fee",docs:["Amount of lamports that needs to be paid to the protocol to post a message"],type:"u64"}]}}],errors:[{code:6e3,name:"CantReleaseYet",msg:"CantReleaseYet"},{code:6001,name:"InvalidPendingOwner",msg:"InvalidPendingOwner"},{code:6002,name:"InvalidChainId",msg:"InvalidChainId"},{code:6003,name:"InvalidRecipientAddress",msg:"InvalidRecipientAddress"},{code:6004,name:"InvalidTransceiverPeer",msg:"InvalidTransceiverPeer"},{code:6005,name:"InvalidNttManagerPeer",msg:"InvalidNttManagerPeer"},{code:6006,name:"InvalidRecipientNttManager",msg:"InvalidRecipientNttManager"},{code:6007,name:"TransferAlreadyRedeemed",msg:"TransferAlreadyRedeemed"},{code:6008,name:"TransferCannotBeRedeemed",msg:"TransferCannotBeRedeemed"},{code:6009,name:"TransferNotApproved",msg:"TransferNotApproved"},{code:6010,name:"MessageAlreadySent",msg:"MessageAlreadySent"},{code:6011,name:"InvalidMode",msg:"InvalidMode"},{code:6012,name:"InvalidMintAuthority",msg:"InvalidMintAuthority"},{code:6013,name:"TransferExceedsRateLimit",msg:"TransferExceedsRateLimit"},{code:6014,name:"Paused",msg:"Paused"},{code:6015,name:"DisabledTransceiver",msg:"DisabledTransceiver"},{code:6016,name:"InvalidDeployer",msg:"InvalidDeployer"},{code:6017,name:"BadAmountAfterTransfer",msg:"BadAmountAfterTransfer"},{code:6018,name:"BadAmountAfterBurn",msg:"BadAmountAfterBurn"},{code:6019,name:"ZeroThreshold",msg:"ZeroThreshold"},{code:6020,name:"OverflowExponent",msg:"OverflowExponent"},{code:6021,name:"OverflowScaledAmount",msg:"OverflowScaledAmount"},{code:6022,name:"BitmapIndexOutOfBounds",msg:"BitmapIndexOutOfBounds"}]},TOKEN_PROGRAM_ID=new PublicKey$4("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),ASSOCIATED_PROGRAM_ID=new PublicKey$4("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");function associatedAddress({mint:dt,owner:ht}){return PublicKey$4.findProgramAddressSync([ht.toBuffer(),TOKEN_PROGRAM_ID.toBuffer(),dt.toBuffer()],ASSOCIATED_PROGRAM_ID)[0]}const IDL={version:"1.0.0",name:"ntt_quoter",instructions:[{name:"requestRelay",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!1,isSigner:!1},{name:"outboxItem",isMut:!1,isSigner:!1,docs:["and checking the release constraint into a single function"]},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RequestRelayArgs"}}]},{name:"closeRelay",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"feeRecipient",isMut:!0,isSigner:!1},{name:"relayRequest",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"initialize",accounts:[{name:"owner",isMut:!0,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1},{name:"programData",isMut:!0,isSigner:!1,docs:["We use the program data to make sure this owner is the upgrade authority (the true owner,","who deployed this program)."]},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAssistant",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"assistant",isMut:!1,isSigner:!1,isOptional:!0}],args:[]},{name:"setFeeRecipient",accounts:[{name:"owner",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1},{name:"feeRecipient",isMut:!1,isSigner:!1}],args:[]},{name:"registerChain",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainArgs"}}]},{name:"registerNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterNttArgs"}}]},{name:"deregisterNtt",accounts:[{name:"authority",isMut:!0,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredNtt",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"DeregisterNttArgs"}}]},{name:"updateSolPrice",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateSolPriceArgs"}}]},{name:"updateChainPrices",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainPricesArgs"}}]},{name:"updateChainParams",accounts:[{name:"authority",isMut:!1,isSigner:!0},{name:"instance",isMut:!1,isSigner:!1},{name:"registeredChain",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainParamsArgs"}}]}],accounts:[{name:"instance",type:{kind:"struct",fields:[{name:"owner",type:"publicKey"},{name:"assistant",type:"publicKey"},{name:"feeRecipient",type:"publicKey"},{name:"solPrice",type:"u64"}]}},{name:"registeredChain",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"},{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"registeredNtt",type:{kind:"struct",fields:[{name:"bump",type:"u8"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"relayRequest",type:{kind:"struct",fields:[{name:"requestedGasDropoff",type:"u64"}]}}],types:[{name:"RegisterChainArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u16"}]}},{name:"RegisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"},{name:"wormholeTransceiverIndex",type:"u8"},{name:"gasCost",type:"u32"}]}},{name:"DeregisterNttArgs",type:{kind:"struct",fields:[{name:"nttProgramId",type:"publicKey"}]}},{name:"RequestRelayArgs",type:{kind:"struct",fields:[{name:"gasDropoff",type:"u64"},{name:"maxFee",type:"u64"}]}},{name:"UpdateSolPriceArgs",type:{kind:"struct",fields:[{name:"solPrice",type:"u64"}]}},{name:"UpdateChainPricesArgs",type:{kind:"struct",fields:[{name:"nativePrice",type:"u64"},{name:"gasPrice",type:"u64"}]}},{name:"UpdateChainParamsArgs",type:{kind:"struct",fields:[{name:"maxGasDropoff",type:"u64"},{name:"basePrice",type:"u64"}]}}],errors:[{code:6001,name:"ExceedsUserMaxFee",msg:"Relay fees exceeds specified max"},{code:6002,name:"ExceedsMaxGasDropoff",msg:"Requested gas dropoff exceeds max allowed for chain"},{code:6003,name:"InvalidFeeRecipient",msg:"The specified fee recipient does not match the address in the instance accound"},{code:6004,name:"RelayingToChainDisabled",msg:"Relaying to the specified chain is disabled"},{code:6005,name:"OutboxItemNotReleased",msg:"Relaying to the specified chain is disabled"},{code:6006,name:"ScalingOverflow",msg:"Scaled value exceeds u64::MAX"},{code:6007,name:"DivByZero",msg:"Cannot divide by zero"},{code:6257,name:"FeeRecipientCannotBeDefault",msg:"The fee recipient cannot be the default address (0x0)"},{code:6258,name:"NotAuthorized",msg:"Must be owner or assistant"},{code:6259,name:"PriceCannotBeZero",msg:"The price cannot be zero"}]},USD_UNIT=1e6,WEI_PER_GWEI=1e9,GWEI_PER_ETH=1e9,SEED_PREFIX_INSTANCE="instance",SEED_PREFIX_REGISTERED_CHAIN="registered_chain",SEED_PREFIX_REGISTERED_NTT="registered_ntt",SEED_PREFIX_RELAY_REQUEST="relay_request",U64={MAX:new BN$3((2n**64n-1n).toString()),to:(dt,ht)=>{const Dt=new BN$3(Math.round(dt*ht));if(Dt.isNeg())throw new Error("Value negative");if(Dt.bitLength()>64)throw new Error("Value too large");return Dt},from:(dt,ht)=>dt.toNumber()/ht};class NttQuoter{constructor(ht){Ll(this,"connection");Ll(this,"program");Ll(this,"instance");const{connection:Dt}=solanaContext();if(!Dt)throw new Error("Connection not found");this.connection=Dt,this.program=new Program(IDL,new PublicKey$4(ht),{connection:Dt}),this.instance=this.derivePda(dist$8.Buffer.from(SEED_PREFIX_INSTANCE))}async isRelayEnabled(ht){var Dt;try{const{paused:Cn}=await this.getRegisteredChain(ht);return!Cn}catch(Cn){if((Dt=Cn.message)!=null&&Dt.includes("Account does not exist"))return!1;throw Cn}}async calcRelayCost(ht,Dt,Cn=0){const[$n,Un,Fn,Hn]=await Promise.all([this.getRegisteredChain(ht),this.getRegisteredNtt(new PublicKey$4(Dt)),this.getInstance(),this.program.provider.connection.getMinimumBalanceForRentExemption(this.program.account.relayRequest.size)]);if($n.nativePriceUsd===0)throw new Error("Native price is 0");if(Fn.solPriceUsd===0)throw new Error("SOL price is 0");if(Cn>$n.maxGasDropoffEth)throw new Error("Requested gas dropoff exceeds allowed maximum");const Gn=$n.nativePriceUsd*(Cn+$n.gasPriceGwei*Un.gasCost/GWEI_PER_ETH),Qn=Hn/LAMPORTS_PER_SOL+($n.basePriceUsd+Gn)/Fn.solPriceUsd;return U64.to(Qn*1.05,LAMPORTS_PER_SOL)}async createRequestRelayInstruction(ht,Dt,Cn,$n,Un){return this.program.methods.requestRelay({maxFee:$n,gasDropoff:new BN$3(0)}).accounts({payer:ht,instance:this.instance,registeredChain:this.registeredChainPda(toChainId$1(Cn)),registeredNtt:this.registeredNttPda(new PublicKey$4(Un)),outboxItem:Dt,relayRequest:this.relayRequestPda(Dt),systemProgram:SystemProgram.programId}).instruction()}async getInstance(){const ht=await this.program.account.instance.fetch(this.instance);return{owner:ht.owner,assistant:ht.assistant,feeRecipient:ht.feeRecipient,solPriceUsd:U64.from(ht.solPrice,USD_UNIT)}}async getRegisteredNtt(ht){const Dt=await this.program.account.registeredNtt.fetch(this.registeredNttPda(ht));return{gasCost:Dt.gasCost,wormholeTransceiverIndex:Dt.wormholeTransceiverIndex}}async getRegisteredChain(ht){const Dt=await this.program.account.registeredChain.fetch(this.registeredChainPda(toChainId$1(ht)));return{paused:Dt.basePrice.eq(U64.MAX),maxGasDropoffEth:U64.from(Dt.maxGasDropoff,GWEI_PER_ETH),basePriceUsd:U64.from(Dt.basePrice,USD_UNIT),nativePriceUsd:U64.from(Dt.nativePrice,USD_UNIT),gasPriceGwei:U64.from(Dt.gasPrice,WEI_PER_GWEI)}}registeredChainPda(ht){return this.derivePda([dist$8.Buffer.from(SEED_PREFIX_REGISTERED_CHAIN),new BN$3(ht).toBuffer("be",2)])}registeredNttPda(ht){return this.derivePda([dist$8.Buffer.from(SEED_PREFIX_REGISTERED_NTT),ht.toBytes()])}relayRequestPda(ht){return this.derivePda([dist$8.Buffer.from(SEED_PREFIX_RELAY_REQUEST),ht.toBytes()])}derivePda(ht){const Dt=ht instanceof dist$8.Buffer?[ht]:ht,[Cn]=PublicKey$4.findProgramAddressSync(Dt,this.program.programId);return Cn}}var sha3={},sponge={},permute={},chi={},copy=function dt(ht,Dt){return function(Cn,$n){var Un=$n*2,Fn=Dt*2;Cn[Un]=ht[Fn],Cn[Un+1]=ht[Fn+1]}},copy_1=copy;(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=Dt(copy_1);function Dt(Un){return Un&&Un.__esModule?Un:{default:Un}}var Cn=function(Fn){for(var Hn=Fn.A,Gn=Fn.C,Qn=0;Qn<25;Qn+=5){for(var qn=0;qn<5;qn++)(0,ht.default)(Hn,Qn+qn)(Gn,qn);for(var er=0;er<5;er++){var Wn=(Qn+er)*2,jn=(er+1)%5*2,Zn=(er+2)%5*2;Hn[Wn]^=~Gn[jn]&Gn[Zn],Hn[Wn+1]^=~Gn[jn+1]&Gn[Zn+1]}}},$n=Cn;dt.default=$n})(chi);var iota={},roundConstants={};(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]),Dt=ht;dt.default=Dt})(roundConstants);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=Dt(roundConstants);function Dt(Un){return Un&&Un.__esModule?Un:{default:Un}}var Cn=function(Fn){var Hn=Fn.A,Gn=Fn.roundIndex,Qn=Gn*2;Hn[0]^=ht.default[Qn],Hn[1]^=ht.default[Qn+1]},$n=Cn;dt.default=$n})(iota);var rhoPi={},piShuffles={};(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1],Dt=ht;dt.default=Dt})(piShuffles);var rhoOffsets={};(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44],Dt=ht;dt.default=Dt})(rhoOffsets);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=$n(piShuffles),Dt=$n(rhoOffsets),Cn=$n(copy_1);function $n(Hn){return Hn&&Hn.__esModule?Hn:{default:Hn}}var Un=function(Gn){var Qn=Gn.A,qn=Gn.C,er=Gn.W;(0,Cn.default)(Qn,1)(er,0);for(var Wn=0,jn=0,Zn=0,Xn=32,ar=0;ar<24;ar++){var dr=ht.default[ar],or=Dt.default[ar];(0,Cn.default)(Qn,dr)(qn,0),Wn=er[0],jn=er[1],Xn=32-or,Zn=or<32?0:1,er[Zn]=Wn<<or|jn>>>Xn,er[(Zn+1)%2]=jn<<or|Wn>>>Xn,(0,Cn.default)(er,0)(Qn,dr),(0,Cn.default)(qn,0)(er,0)}},Fn=Un;dt.default=Fn})(rhoPi);var theta={};(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=Dt(copy_1);function Dt(Un){return Un&&Un.__esModule?Un:{default:Un}}var Cn=function(Fn){for(var Hn=Fn.A,Gn=Fn.C,Qn=Fn.D,qn=Fn.W,er=0,Wn=0,jn=0;jn<5;jn++){var Zn=jn*2,Xn=(jn+5)*2,ar=(jn+10)*2,dr=(jn+15)*2,or=(jn+20)*2;Gn[Zn]=Hn[Zn]^Hn[Xn]^Hn[ar]^Hn[dr]^Hn[or],Gn[Zn+1]=Hn[Zn+1]^Hn[Xn+1]^Hn[ar+1]^Hn[dr+1]^Hn[or+1]}for(var sr=0;sr<5;sr++){(0,ht.default)(Gn,(sr+1)%5)(qn,0),er=qn[0],Wn=qn[1],qn[0]=er<<1|Wn>>>31,qn[1]=Wn<<1|er>>>31,Qn[sr*2]=Gn[(sr+4)%5*2]^qn[0],Qn[sr*2+1]=Gn[(sr+4)%5*2+1]^qn[1];for(var vr=0;vr<25;vr+=5)Hn[(vr+sr)*2]^=Qn[sr*2],Hn[(vr+sr)*2+1]^=Qn[sr*2+1]}},$n=Cn;dt.default=$n})(theta);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=Un(chi),Dt=Un(iota),Cn=Un(rhoPi),$n=Un(theta);function Un(Gn){return Gn&&Gn.__esModule?Gn:{default:Gn}}var Fn=function(){var Qn=new Uint32Array(10),qn=new Uint32Array(10),er=new Uint32Array(2);return function(Wn){for(var jn=0;jn<24;jn++)(0,$n.default)({A:Wn,C:Qn,D:qn,W:er}),(0,Cn.default)({A:Wn,C:Qn,W:er}),(0,ht.default)({A:Wn,C:Qn}),(0,Dt.default)({A:Wn,roundIndex:jn});Qn.fill(0),qn.fill(0),er.fill(0)}},Hn=Fn;dt.default=Hn})(permute);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=void 0;var ht=bufferPolyfill,Dt=Cn(permute);function Cn(Gn){return Gn&&Gn.__esModule?Gn:{default:Gn}}var $n=function(Qn,qn){for(var er=0;er<Qn.length;er+=8){var Wn=er/4;qn[Wn]^=Qn[er+7]<<24|Qn[er+6]<<16|Qn[er+5]<<8|Qn[er+4],qn[Wn+1]^=Qn[er+3]<<24|Qn[er+2]<<16|Qn[er+1]<<8|Qn[er]}return qn},Un=function(Qn,qn){for(var er=0;er<qn.length;er+=8){var Wn=er/4;qn[er]=Qn[Wn+1],qn[er+1]=Qn[Wn+1]>>>8,qn[er+2]=Qn[Wn+1]>>>16,qn[er+3]=Qn[Wn+1]>>>24,qn[er+4]=Qn[Wn],qn[er+5]=Qn[Wn]>>>8,qn[er+6]=Qn[Wn]>>>16,qn[er+7]=Qn[Wn]>>>24}return qn},Fn=function(Qn){var qn=this,er=Qn.capacity,Wn=Qn.padding,jn=(0,Dt.default)(),Zn=200,Xn=er/8,ar=Zn-er/4,dr=0,or=new Uint32Array(Zn/4),sr=ht.Buffer.allocUnsafe(ar);return this.absorb=function(vr){for(var hr=0;hr<vr.length;hr++)sr[dr]=vr[hr],dr+=1,dr>=ar&&($n(sr,or),jn(or),dr=0);return qn},this.squeeze=function(){var vr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},hr={buffer:vr.buffer||ht.Buffer.allocUnsafe(Xn),padding:vr.padding||Wn,queue:ht.Buffer.allocUnsafe(sr.length),state:new Uint32Array(or.length)};sr.copy(hr.queue);for(var gr=0;gr<or.length;gr++)hr.state[gr]=or[gr];hr.queue.fill(0,dr),hr.queue[dr]|=hr.padding,hr.queue[ar-1]|=128,$n(hr.queue,hr.state);for(var ur=0;ur<hr.buffer.length;ur+=ar)jn(hr.state),Un(hr.state,hr.buffer.slice(ur,ur+ar));return hr.buffer},this.reset=function(){return sr.fill(0),or.fill(0),dr=0,qn},this},Hn=Fn;dt.default=Hn})(sponge);(function(dt){Object.defineProperty(dt,"__esModule",{value:!0}),dt.default=dt.SHAKE=dt.SHA3Hash=dt.SHA3=dt.Keccak=void 0;var ht=bufferPolyfill,Dt=Cn(sponge);function Cn(qn){return qn&&qn.__esModule?qn:{default:qn}}var $n=function(er){var Wn=er.allowedSizes,jn=er.defaultSize,Zn=er.padding;return function Xn(){var ar=this,dr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:jn;if(!this||this.constructor!==Xn)return new Xn(dr);if(Wn&&!Wn.includes(dr))throw new Error("Unsupported hash length");var or=new Dt.default({capacity:dr});return this.update=function(sr){var vr=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"utf8";if(ht.Buffer.isBuffer(sr))return or.absorb(sr),ar;if(typeof sr=="string")return ar.update(ht.Buffer.from(sr,vr));throw new TypeError("Not a string or buffer")},this.digest=function(){var sr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"binary",vr=typeof sr=="string"?{format:sr}:sr,hr=or.squeeze({buffer:vr.buffer,padding:vr.padding||Zn});return vr.format&&vr.format!=="binary"?hr.toString(vr.format):hr},this.reset=function(){return or.reset(),ar},this}},Un=$n({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});dt.Keccak=Un;var Fn=$n({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});dt.SHA3=Fn;var Hn=$n({allowedSizes:[128,256],defaultSize:256,padding:31});dt.SHAKE=Hn;var Gn=Un;dt.SHA3Hash=Gn,Fn.SHA3Hash=Gn;var Qn=Fn;dt.default=Qn})(sha3);const RATE_LIMIT_DURATION=24*60*60,jm=class jm{constructor(ht){Ll(this,"connection");Ll(this,"wormholeId");this.nttId=ht;const{connection:Dt}=solanaContext();if(!Dt)throw new Error("Connection not found");this.connection=Dt;const Cn=config$2.wh.mustGetContracts("solana").core;if(!Cn)throw new Error("Core not found");this.wormholeId=Cn}async send(ht,Dt,Cn,$n,Un,Fn){const Hn=await this.getProgram(),Gn=await this.getConfig(),Qn=Keypair.generate(),qn=config$2.wh.getContext(Un),er=new PublicKey$4(Dt),Wn=getAssociatedTokenAddressSync(new PublicKey$4(ht.address),er),jn={payer:er,from:Wn,amount:new BN$3($n.toString()),recipientChain:toChainName(Un),recipientAddress:qn.formatAddress(Cn),fromAuthority:er,outboxItem:Qn.publicKey,config:Gn,shouldQueue:!1};let Zn;Gn.mode.locking?Zn=await this.createTransferLockInstruction(jn):Zn=await this.createTransferBurnInstruction(jn);const Xn=await this.createReleaseOutboundInstruction({payer:er,outboxItem:Qn.publicKey,revertOnDelay:!jn.shouldQueue}),ar={amount:jn.amount,recipientChain:{id:toChainId$1(jn.recipientChain)},recipientAddress:Array.from(jn.recipientAddress),shouldQueue:jn.shouldQueue},dr=createApproveInstruction(Wn,this.sessionAuthorityAddress(jn.fromAuthority,ar),er,BigInt($n.toString())),or=new Transaction;if(or.add(dr,Zn,Xn),!Fn){const hr=getNttManagerConfigByAddress(Hn.programId.toString(),"solana");if(!hr||!hr.solanaQuoter)throw new Error("no quoter");const gr=new NttQuoter(hr.solanaQuoter),ur=await gr.calcRelayCost(Un,hr.address),_r=await gr.createRequestRelayInstruction(er,Qn.publicKey,Un,ur,hr.address);or.add(_r)}or.feePayer=er;const{blockhash:sr}=await this.connection.getLatestBlockhash("finalized");return or.recentBlockhash=sr,await this.simulate(or),await addComputeBudget(this.connection,or),or.partialSign(Qn),await signAndSendTransaction("solana",or,TransferWallet.SENDING,{commitment:"finalized"})}async receiveMessage(ht,Dt){const Cn=config$2.wh.mustGetContracts("solana").core;if(!Cn)throw new Error("Core not found");const $n=await this.getConfig(),Un=arrayify(ht,{allowMissingPrefix:!0}),Fn=new PublicKey$4(Dt),Hn={payer:Fn,vaa:Un,config:$n},Gn=parseVaa$1(Un),Qn=toChainId$1(Gn.emitterChain);await postVaa(this.connection,Cn,dist$8.Buffer.from(Un));const qn=new Transaction,er=await this.mintAccountAddress($n),Wn=getAssociatedTokenAddressSync(er,Fn);if(!await this.connection.getAccountInfo(Wn)){const or=createAssociatedTokenAccountInstruction(Fn,Wn,Fn,er);qn.add(or)}qn.add(await this.createReceiveWormholeMessageInstruction(Hn)),qn.add(await this.createRedeemInstruction(Hn));const{nttManagerPayload:jn}=deserializePayload("Ntt:WormholeTransfer",Gn.payload),Zn=Ntt.messageDigest(toChain(Qn),jn),Xn={...Hn,messageDigest:utils$P.hexlify(Zn),recipient:new PublicKey$4(jn.payload.recipientAddress.toUint8Array()),chain:Qn,revertOnDelay:!1,config:$n};$n.mode.locking?qn.add(await this.createReleaseInboundUnlockInstruction(Xn)):qn.add(await this.createReleaseInboundMintInstruction(Xn)),qn.feePayer=Fn;const{blockhash:ar}=await this.connection.getLatestBlockhash("finalized");return qn.recentBlockhash=ar,await this.simulate(qn),await addComputeBudget(this.connection,qn),await signAndSendTransaction("solana",qn,TransferWallet.RECEIVING,{commitment:"finalized"})}async getCurrentOutboundCapacity(){const{rateLimit:{limit:ht,capacityAtLastTx:Dt,lastTxTimestamp:Cn}}=await this.getOutboxRateLimit();return await this.getCurrentCapacity(ht,Dt,Cn)}async getCurrentInboundCapacity(ht){const{rateLimit:{limit:Dt,capacityAtLastTx:Cn,lastTxTimestamp:$n}}=await this.getInboxRateLimit(ht);return await this.getCurrentCapacity(Dt,Cn,$n)}async getCurrentCapacity(ht,Dt,Cn){const $n=BN$3.max(new BN$3(Date.now()/1e3).sub(Cn),new BN$3(0)),Un=await this.getRateLimitDuration(),Fn=Dt.add($n.mul(ht).div(new BN$3(Un)));return Fn.lt(ht)?Fn.toString():ht.toString()}async getRateLimitDuration(){return RATE_LIMIT_DURATION}async getInboundQueuedTransfer(ht){var Cn;let Dt;try{Dt=await this.getInboxItem(ht)}catch($n){if((Cn=$n.message)!=null&&Cn.includes("Account does not exist"))return;throw $n}if(Dt.releaseStatus.releaseAfter)return{recipient:Dt.recipientAddress.toString(),amount:Dt.amount.toString(),rateLimitExpiryTimestamp:Dt.releaseStatus.releaseAfter[0].toNumber()}}async completeInboundQueuedTransfer(ht,Dt,Cn){const $n=new PublicKey$4(Cn),Un={payer:$n,messageDigest:ht,recipient:new PublicKey$4(Dt),revertOnDelay:!1},Fn=await this.getConfig(),Hn=new Transaction,Gn=await this.mintAccountAddress(Fn),Qn=getAssociatedTokenAddressSync(Gn,$n);if(!await this.connection.getAccountInfo(Qn)){const Wn=createAssociatedTokenAccountInstruction($n,Qn,$n,Gn);Hn.add(Wn)}Fn.mode.locking?Hn.add(await this.createReleaseInboundUnlockInstruction(Un)):Hn.add(await this.createReleaseInboundMintInstruction(Un)),Hn.feePayer=$n;const{blockhash:qn}=await this.connection.getLatestBlockhash("finalized");return Hn.recentBlockhash=qn,await this.simulate(Hn),await addComputeBudget(this.connection,Hn),await signAndSendTransaction("solana",Hn,TransferWallet.RECEIVING,{commitment:"finalized"})}async isTransferCompleted(ht){var Dt;try{return!!(await this.getInboxItem(ht)).releaseStatus.released}catch(Cn){if((Dt=Cn.message)!=null&&Dt.includes("Account does not exist"))return!1;throw Cn}}async fetchRedeemTx(ht){var $n;const Dt=await this.inboxItemAccountAddress(ht),Cn=await this.connection.getSignaturesForAddress(Dt,{limit:1});return($n=Cn==null?void 0:Cn[0])==null?void 0:$n.signature}derivePda(ht){const Dt=ht instanceof dist$8.Buffer?[ht]:ht,[Cn]=PublicKey$4.findProgramAddressSync(Dt,new PublicKey$4(this.nttId));return Cn}configAccountAddress(){return this.derivePda(dist$8.Buffer.from("config"))}outboxRateLimitAccountAddress(){return this.derivePda(dist$8.Buffer.from("outbox_rate_limit"))}inboxRateLimitAccountAddress(ht){const Dt=toChainId$1(ht);return this.derivePda([dist$8.Buffer.from("inbox_rate_limit"),new BN$3(Dt).toBuffer("be",2)])}inboxItemAccountAddress(ht){return this.derivePda([dist$8.Buffer.from("inbox_item"),dist$8.Buffer.from(ht.slice(2),"hex")])}sessionAuthorityAddress(ht,Dt){const{amount:Cn,recipientChain:$n,recipientAddress:Un,shouldQueue:Fn}=Dt,Hn=dist$8.Buffer.concat([Cn.toArrayLike(dist$8.Buffer,"be",8),dist$8.Buffer.from(new BN$3($n.id).toArrayLike(dist$8.Buffer,"be",2)),dist$8.Buffer.from(new Uint8Array(Un)),dist$8.Buffer.from([Fn?1:0])]),Gn=new sha3.Keccak(256);return Gn.update(Hn),this.derivePda([dist$8.Buffer.from("session_authority"),ht.toBytes(),Gn.digest()])}tokenAuthorityAddress(){return this.derivePda([dist$8.Buffer.from("token_authority")])}emitterAccountAddress(){return this.derivePda([dist$8.Buffer.from("emitter")])}wormholeMessageAccountAddress(ht){return this.derivePda([dist$8.Buffer.from("message"),ht.toBuffer()])}peerAccountAddress(ht){const Dt=toChainId$1(ht);return this.derivePda([dist$8.Buffer.from("peer"),new BN$3(Dt).toBuffer("be",2)])}transceiverPeerAccountAddress(ht){const Dt=toChainId$1(ht);return this.derivePda([dist$8.Buffer.from("transceiver_peer"),new BN$3(Dt).toBuffer("be",2)])}transceiverMessageAccountAddress(ht,Dt){const Cn=toChainId$1(ht);if(Dt.length!==32)throw new Error("id must be 32 bytes");return this.derivePda([dist$8.Buffer.from("transceiver_message"),new BN$3(Cn).toBuffer("be",2),Dt])}registeredTransceiverAddress(ht){return this.derivePda([dist$8.Buffer.from("registered_transceiver"),ht.toBuffer()])}async createTransferBurnInstruction(ht){const Dt=await this.getConfig(ht.config),Cn=toChainId$1(ht.recipientChain),$n=await this.mintAccountAddress(Dt),Un={amount:ht.amount,recipientChain:{id:Cn},recipientAddress:Array.from(ht.recipientAddress),shouldQueue:ht.shouldQueue};return await(await this.getProgram()).methods.transferBurn({amount:ht.amount,recipientChain:{id:Cn},recipientAddress:Array.from(ht.recipientAddress),shouldQueue:ht.shouldQueue}).accounts({common:{payer:ht.payer,config:{config:this.configAccountAddress()},mint:$n,from:ht.from,outboxItem:ht.outboxItem,outboxRateLimit:this.outboxRateLimitAccountAddress()},peer:this.peerAccountAddress(ht.recipientChain),inboxRateLimit:this.inboxRateLimitAccountAddress(ht.recipientChain),sessionAuthority:this.sessionAuthorityAddress(ht.fromAuthority,Un)}).instruction()}async createTransferLockInstruction(ht){const Dt=toChainId$1(ht.recipientChain),Cn=await this.mintAccountAddress(ht.config),$n={amount:ht.amount,recipientChain:{id:Dt},recipientAddress:Array.from(ht.recipientAddress),shouldQueue:ht.shouldQueue};return await(await this.getProgram()).methods.transferLock({amount:ht.amount,recipientChain:{id:Dt},recipientAddress:Array.from(ht.recipientAddress),shouldQueue:ht.shouldQueue}).accounts({common:{payer:ht.payer,config:{config:this.configAccountAddress()},mint:Cn,from:ht.from,tokenProgram:await this.tokenProgram(ht.config),outboxItem:ht.outboxItem,outboxRateLimit:this.outboxRateLimitAccountAddress()},peer:this.peerAccountAddress(ht.recipientChain),inboxRateLimit:this.inboxRateLimitAccountAddress(ht.recipientChain),custody:await this.custodyAccountAddress(ht.config),sessionAuthority:this.sessionAuthorityAddress(ht.fromAuthority,$n)}).instruction()}async createReleaseOutboundInstruction(ht){const Dt=await this.getProgram(),Cn=getWormholeDerivedAccounts(Dt.programId,this.wormholeId);return await Dt.methods.releaseWormholeOutbound({revertOnDelay:ht.revertOnDelay}).accounts({payer:ht.payer,config:{config:this.configAccountAddress()},outboxItem:ht.outboxItem,wormholeMessage:this.wormholeMessageAccountAddress(ht.outboxItem),emitter:Cn.wormholeEmitter,transceiver:this.registeredTransceiverAddress(Dt.programId),wormhole:{bridge:Cn.wormholeBridge,feeCollector:Cn.wormholeFeeCollector,sequence:Cn.wormholeSequence,program:this.wormholeId}}).instruction()}async createReleaseInboundMintInstruction(ht){const Dt=await this.getProgram(),Cn=await this.getConfig(ht.config),$n=await this.mintAccountAddress(Cn);return await Dt.methods.releaseInboundMint({revertOnDelay:ht.revertOnDelay}).accounts({common:{payer:ht.payer,config:{config:this.configAccountAddress()},inboxItem:this.inboxItemAccountAddress(ht.messageDigest),recipient:getAssociatedTokenAddressSync($n,ht.recipient),mint:$n,tokenAuthority:this.tokenAuthorityAddress()}}).instruction()}async createReleaseInboundUnlockInstruction(ht){const Dt=await this.getProgram(),Cn=await this.getConfig(ht.config),$n=await this.mintAccountAddress(Cn);return await Dt.methods.releaseInboundUnlock({revertOnDelay:ht.revertOnDelay}).accounts({common:{payer:ht.payer,config:{config:this.configAccountAddress()},inboxItem:this.inboxItemAccountAddress(ht.messageDigest),recipient:getAssociatedTokenAddressSync($n,ht.recipient),mint:$n,tokenAuthority:this.tokenAuthorityAddress()},custody:await this.custodyAccountAddress(Cn)}).instruction()}async createReceiveWormholeMessageInstruction(ht){const Dt=parseVaa$1(ht.vaa),{nttManagerPayload:Cn}=deserializePayload("Ntt:WormholeTransfer",Dt.payload),$n=toChainId$1(Dt.emitterChain),Un=this.transceiverPeerAccountAddress($n);return await(await this.getProgram()).methods.receiveWormholeMessage().accounts({payer:ht.payer,config:{config:this.configAccountAddress()},peer:Un,vaa:derivePostedVaaKey$1(this.wormholeId,parseVaa$1(ht.vaa).hash),transceiverMessage:this.transceiverMessageAccountAddress($n,dist$8.Buffer.from(Cn.id))}).instruction()}async createRedeemInstruction(ht){const Dt=await this.getConfig(ht.config),Cn=parseVaa$1(ht.vaa),{nttManagerPayload:$n}=deserializePayload("Ntt:WormholeTransfer",Cn.payload),Un=toChainId$1(Cn.emitterChain),Fn=Ntt.messageDigest(toChain(Un),$n),Hn=this.peerAccountAddress(Un),Gn=this.inboxRateLimitAccountAddress(Un),Qn=await this.getProgram();return await Qn.methods.redeem({}).accounts({payer:ht.payer,config:this.configAccountAddress(),peer:Hn,transceiverMessage:this.transceiverMessageAccountAddress(Un,dist$8.Buffer.from($n.id)),transceiver:this.registeredTransceiverAddress(Qn.programId),mint:await this.mintAccountAddress(Dt),inboxItem:this.inboxItemAccountAddress(utils$P.hexlify(Fn)),inboxRateLimit:Gn,outboxRateLimit:this.outboxRateLimitAccountAddress()}).instruction()}async getConfig(ht){return ht??await(await this.getProgram()).account.config.fetch(this.configAccountAddress())}async isPaused(ht){return(await this.getConfig(ht)).paused}async mintAccountAddress(ht){return(await this.getConfig(ht)).mint}async tokenProgram(ht){return(await this.getConfig(ht)).tokenProgram}async getInboxItem(ht){return await(await this.getProgram()).account.inboxItem.fetch(this.inboxItemAccountAddress(ht))}async getOutboxRateLimit(){return await(await this.getProgram()).account.outboxRateLimit.fetch(this.outboxRateLimitAccountAddress())}async getInboxRateLimit(ht){return await(await this.getProgram()).account.inboxRateLimit.fetch(this.inboxRateLimitAccountAddress(ht))}async getVersion(){var Fn;const Dt=await new Program(IDL$1,this.nttId,{connection:this.connection}).methods.version().accountsStrict({}).instruction(),Cn=await this.connection.getLatestBlockhash(),$n=new PublicKey$4("Hk3SdYTJFpawrvRz4qRztuEt2SqoCG7BGj2yJfDJSFbJ"),Un=new TransactionMessage({payerKey:$n,recentBlockhash:Cn.blockhash,instructions:[Dt]}).compileToV0Message();try{const Hn=new VersionedTransaction(Un),Qn=(Fn=(await this.connection.simulateTransaction(Hn,{sigVerify:!1})).value.returnData)==null?void 0:Fn.data[0];if(!Qn)throw new Error("No version() return data");const qn=dist$8.Buffer.from(Qn,"base64"),er=qn.readUInt32LE(0);return qn.slice(4,er+4).toString()}catch(Hn){throw console.error(`Unable to fetch solana contract version: ${Hn}`),Hn}}async custodyAccountAddress(ht){return ht instanceof PublicKey$4?associatedAddress({mint:ht,owner:this.tokenAuthorityAddress()}):associatedAddress({mint:await this.mintAccountAddress(ht),owner:this.tokenAuthorityAddress()})}async getProgram(){let ht=jm.abiVersionCache.get(this.nttId);if(!ht){if(await this.getVersion()!=="1.0.0")throw new UnsupportedContractAbiVersion;ht=new Program(IDL$1,this.nttId,{connection:this.connection}),jm.abiVersionCache.set(this.nttId,ht)}return ht}async simulate(ht){var Cn,$n;const Dt=await this.connection.simulateTransaction(ht);if(Dt.value.err){const Un=(Cn=Dt.value.logs)==null?void 0:Cn.find(Fn=>Fn.startsWith("Program log: AnchorError occurred."));if(Un){const Fn=($n=Un.match(/Error Code: ([^\\.]+)/))==null?void 0:$n[1];if(Fn)throw Fn==="TransferExceedsRateLimit"?new NotEnoughCapacityError:Fn==="Paused"?new ContractIsPausedError:new Error(Fn)}throw new Error(`Simulation error: ${JSON.stringify(Dt)}`)}}};Ll(jm,"abiVersionCache",new Map);let NttManagerSolana=jm;const getMessageSolana=async dt=>{var _r,nr,Sr,Ar,tr;const ht=solanaContext(),Dt=ht.connection;if(!Dt)throw new Error("Connection not found");const Cn=await Dt.getTransaction(dt,{maxSupportedTransactionVersion:0});if(!Cn)throw new Error("Transaction not found");const $n="solana",Un=config$2.wh.mustGetContracts($n).core,Fn=Cn.transaction.message.getAccountKeys(),Hn=(nr=(_r=Cn.meta)==null?void 0:_r.innerInstructions)==null?void 0:nr.flatMap(Yn=>Yn.instructions).find(Yn=>{var fr;return((fr=Fn==null?void 0:Fn.get(Yn.programIdIndex))==null?void 0:fr.toString())===Un});if(!Hn)throw new Error("Wormhole instruction not found");const Gn=Fn==null?void 0:Fn.get(Hn.accounts[1]);if(!Gn)throw new Error("Message account not found");const Qn=await Dt.getAccountInfo(Gn);if(Qn===null)throw new Error("wormhole message account not found");const qn=PostedMessageData$1.deserialize(Qn.data),er=deserializePayload("Ntt:WormholeTransfer",qn.message.payload),Wn=er.nttManagerPayload,jn=config$2.wh.toChainName(toChainId(Wn.payload.recipientChain)),Zn=config$2.wh.parseAddress(utils$P.hexlify(Wn.payload.sourceToken.toString()),$n),Xn={chain:$n,address:Zn},ar=getTokenById(Xn);if(!ar||!isNttToken(ar))throw new Error(`Token ${Xn} is not an NTT token`);const dr=getNttGroupKeyByAddress(new PublicKey$4(er.sourceNttManager.toUint8Array()).toString(),$n);if(!dr)throw new Error("Group key not found");const or=getNttManagerConfigByGroupKey(dr,jn);if(!or)throw new Error("Recipient NTT manager not found");const sr=or.tokenKey;if(!sr)throw new Error(`Received token key not found for ${Xn}`);const vr=((Sr=Cn.meta)==null?void 0:Sr.logMessages)||[],hr=/total fee in lamports: (\d+)/,gr=vr.find(Yn=>hr.test(Yn)),ur=gr?(Ar=hr.exec(gr))==null?void 0:Ar[1]:"";return{sendTx:dt,sender:config$2.wh.parseAddress(utils$P.hexlify(Wn.sender.toUint8Array()),$n),amount:Wn.payload.trimmedAmount.amount.toString(),payloadID:0,recipient:config$2.wh.parseAddress(utils$P.hexlify(Wn.payload.recipientAddress.toString()),jn),toChain:jn,fromChain:$n,tokenAddress:config$2.wh.parseAddress(utils$P.hexlify(Wn.payload.sourceToken.toString()),$n),tokenChain:ar.nativeChain,tokenId:Xn,tokenKey:ar.key,tokenDecimals:Wn.payload.trimmedAmount.decimals,receivedTokenKey:sr,emitterAddress:utils$P.hexlify(ht.formatAddress(qn.message.emitterAddress)),sequence:qn.message.sequence.toString(),block:Cn.slot,gasFee:(tr=Cn.meta)==null?void 0:tr.fee.toString(),recipientNttManager:config$2.wh.parseAddress(utils$P.hexlify(er.recipientNttManager.toString()),jn),messageDigest:utils$P.hexlify(Ntt.messageDigest("Solana",Wn)),relayerFee:ur||"",relayingType:ur?NttRelayingType.Special:NttRelayingType.Manual}},getNttManager=(dt,ht)=>{if(isEvmChain(dt))return new NttManagerEvm(dt,ht);if(toChainName(dt)==="solana")return new NttManagerSolana(ht);throw new Error(`Unsupported chain: ${dt}`)};class NttBase extends BaseRoute{isSupportedChain(ht){return isEvmChain(ht)||ht==="solana"}async isSupportedSourceToken(ht,Dt,Cn,$n){return!(!ht||!isNttToken(ht)||!Cn||!this.isSupportedToken(ht,Cn)||Dt&&($n&&!this.isSupportedToken(Dt,$n)||!isNttTokenPair(Dt,ht)))}async isSupportedDestToken(ht,Dt,Cn,$n){return!(!ht||!isNttToken(ht)||!$n||!this.isSupportedToken(ht,$n)||Dt&&(Cn&&!this.isSupportedToken(Dt,Cn)||!isNttTokenPair(Dt,ht)))}isSupportedToken(ht,Dt){return this.isSupportedChain(ht.nativeChain)&&isNttToken(ht)&&toChainName(Dt)===ht.nativeChain}async isRouteSupported(ht,Dt,Cn,$n,Un){return await Promise.all([this.isSupportedChain(toChainName($n)),this.isSupportedChain(toChainName(Un)),this.isSupportedSourceToken(config$2.tokens[ht],config$2.tokens[Dt],$n,Un),this.isSupportedDestToken(config$2.tokens[Dt],config$2.tokens[ht],$n,Un)]).then(Fn=>Fn.every(Hn=>Hn))}async computeReceiveAmount(ht,Dt,Cn,$n,Un,Fn){return ht||0}async computeSendAmount(ht,Dt){return ht||0}async validate(ht,Dt,Cn,$n,Un,Fn,Hn){throw new Error("not implemented")}async estimateSendGas(ht,Dt,Cn,$n,Un,Fn,Hn){if(isEvmChain(Cn)){const Gn=this.TYPE===Route.NttManual?25e4:3e5;return await estimateAverageGasFee(Cn,Gn)}else if(toChainName(Cn)==="solana")return BigNumber$2.from(1e4);throw new Error("Unsupported chain")}async estimateClaimGas(ht,Dt){if(this.TYPE===Route.NttRelay)return BigNumber$2.from(0);if(isEvmChain(ht))return await estimateAverageGasFee(ht,3e5);if(toChainName(ht)==="solana")return BigNumber$2.from(65e3);throw new Error("Unsupported chain")}async send(ht,Dt,Cn,$n,Un,Fn,Hn,Gn){if(ht==="native")throw new Error("invalid token");const Qn=getTokenById(ht);if(!Qn||!isNttToken(Qn))throw new Error("invalid token");const qn=config$2.tokens[Hn];if(!isNttToken(qn))throw new Error("invalid dest token");const er=getNttGroupKey(Qn,qn);if(!er)throw new Error("invalid token pair");const Wn=getNttManagerAddress(qn,er);if(!Wn)throw new Error("recipient ntt manager not found");if(await getNttManager(Un,Wn).isPaused())throw new DestinationContractIsPausedError;const jn=getNttManagerAddress(Qn,er);if(!jn)throw new Error("ntt manager not found");const Zn=getNttManager(Cn,jn);if(await Zn.isPaused())throw new ContractIsPausedError;const Xn=getTokenDecimals(toChainId$1(Cn),Qn.tokenId),ar=removeDust(utils$P.parseUnits(Dt,Xn),Xn);if(ar.isZero())throw new Error("Amount too low");const dr=this.TYPE!==Route.NttRelay;return await Zn.send(ht,$n,Fn,ar.toBigInt(),Un,dr)}async redeem(ht,Dt,Cn){if(!isSignedNttMessage(Dt))throw new Error("Not a signed NttMessage");const{recipientNttManager:$n,vaa:Un}=Dt,Fn=getNttManager(ht,$n);if(await Fn.isPaused())throw new ContractIsPausedError;const Hn=getNttManagerConfigByAddress($n,toChainName(ht));if(!Hn)throw new Error("ntt config not found");if(isEvmChain(ht)){if(Hn.transceivers[0].type!=="wormhole")throw new Error("Unsupported transceiver type");return await new WormholeTransceiver(ht,Hn.transceivers[0].address).receiveMessage(Un,Cn)}else if(toChainName(ht)==="solana")return await Fn.receiveMessage(Un,Cn);throw new Error("Unsupported chain")}async getRelayerFee(ht,Dt,Cn,$n){return null}async getCurrentOutboundCapacity(ht,Dt){return await getNttManager(ht,Dt).getCurrentOutboundCapacity()}async getCurrentInboundCapacity(ht,Dt,Cn){return await getNttManager(ht,Dt).getCurrentInboundCapacity(Cn)}async getRateLimitDuration(ht,Dt){return await getNttManager(ht,Dt).getRateLimitDuration()}async getInboundQueuedTransfer(ht,Dt,Cn){return await getNttManager(ht,Dt).getInboundQueuedTransfer(Cn)}async completeInboundQueuedTransfer(ht,Dt,Cn,$n,Un){const Fn=getNttManager(ht,Dt);if(await Fn.isPaused())throw new ContractIsPausedError;return await Fn.completeInboundQueuedTransfer(Cn,$n,Un)}async getForeignAsset(ht,Dt,Cn){var $n;return(($n=Cn==null?void 0:Cn.tokenId)==null?void 0:$n.address)||null}async getMessage(ht,Dt){if(isEvmChain(Dt))return await getMessageEvm(ht,Dt);if(toChainName(Dt)==="solana")return await getMessageSolana(ht);throw new Error("Unsupported chain")}async getSignedMessage(ht){const Dt=await fetchVaa(ht,!0);if(!Dt)throw new Error("VAA not found");return{...ht,vaa:utils$P.hexlify(Dt)}}async tryFetchRedeemTx(ht){}async isTransferCompleted(ht,Dt){if(!isSignedNttMessage(Dt))throw new Error("Invalid signed message");const{recipientNttManager:Cn,messageDigest:$n}=Dt;return await getNttManager(ht,Cn).isTransferCompleted($n)}async getTransferDestInfo(ht){var Wn;const{txData:{receivedTokenKey:Dt,amount:Cn,tokenDecimals:$n,toChain:Un},tokenPrices:Fn,gasEstimate:Hn,receiveTx:Gn}=ht,Qn=config$2.tokens[Dt],qn=toNormalizedDecimals(Cn,$n,MAX_DECIMALS),er={route:this.TYPE,displayData:[{title:"Amount",value:`${qn} ${getDisplayName(Qn)}`,valueUSD:calculateUSDPrice(qn,Fn,Qn)}]};if(this.TYPE===Route.NttManual){const{gasToken:jn}=config$2.chains[Un];let Zn=Hn;if(Gn){if(isEvmChain(Un)){const Xn=await config$2.wh.getTxGasFee(Un,Gn);Xn&&(Zn=formatGasFee(Un,Xn))}else if(toChainName(Un)==="solana"){const Xn=solanaContext().connection;if(!Xn)throw new Error("Connection not found");const ar=await Xn.getParsedTransaction(Gn);(Wn=ar==null?void 0:ar.meta)!=null&&Wn.fee&&(Zn=formatGasFee(Un,BigNumber$2.from(ar.meta.fee)))}}er.displayData.push({title:Gn?"Gas fee":"Gas estimate",value:Zn?`${Zn} ${getDisplayName(config$2.tokens[jn])}`:NO_INPUT,valueUSD:calculateUSDPrice(Zn,Fn,config$2.tokens[jn])})}return er}}class NttManual extends NttBase{constructor(){super(...arguments);Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!1);Ll(this,"AUTOMATIC_DEPOSIT",!1);Ll(this,"TYPE",Route.NttManual)}}class NttRelay extends NttBase{constructor(){super(...arguments);Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!1);Ll(this,"AUTOMATIC_DEPOSIT",!0);Ll(this,"TYPE",Route.NttRelay)}async isRouteSupported(Dt,Cn,$n,Un,Fn){const Hn=getNttGroupKey(config$2.tokens[Dt],config$2.tokens[Cn]);if(!Hn)return!1;const Gn=getNttManagerConfig(config$2.tokens[Dt],Hn);if(!Gn||!await super.isRouteSupported(Dt,Cn,$n,Un,Fn))return!1;if(isEvmChain(Un)){if(Gn.transceivers[0].type!=="wormhole")return!1;const Qn=new WormholeTransceiver(Un,Gn.transceivers[0].address);return await Promise.all([Qn.isWormholeRelayingEnabled(Fn),Qn.isSpecialRelayingEnabled(Fn)]).then(qn=>qn.some(er=>er))}return toChainName(Un)==="solana"&&Gn.solanaQuoter?await new NttQuoter(Gn.solanaQuoter).isRelayEnabled(Fn):!1}async getRelayerFee(Dt,Cn,$n,Un){const Fn=getNttGroupKey(config$2.tokens[$n],config$2.tokens[Un]);if(!Fn)throw new Error("no ntt group");const Hn=getNttManagerAddress(config$2.tokens[$n],Fn);if(!Hn)throw new Error("no ntt manager address");const Gn=getNttManagerConfigByAddress(Hn,toChainName(Dt));if(!Gn)throw new Error("no ntt config");if(isEvmChain(Dt)){const Qn=new NttManagerEvm(Dt,Hn);if(Gn.transceivers[0].type!=="wormhole")throw new Error("no wormhole transceiver");return{fee:await Qn.quoteDeliveryPrice(Cn,!1),feeToken:"native"}}if(toChainName(Dt)==="solana"){if(!Gn.solanaQuoter)throw new Error("no solana quoter");const qn=await new NttQuoter(Gn.solanaQuoter).calcRelayCost(Cn,Gn.address);return{fee:BigNumber$2.from(qn.toString()),feeToken:"native"}}throw new Error("unsupported chain")}async getPreview(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){var sr;const Wn=toChainName(Un),jn=(sr=config$2.chains[Wn])==null?void 0:sr.gasToken,Zn=jn?getDisplayName(config$2.tokens[jn]):"",Xn=calculateUSDPrice(Hn,qn,config$2.tokens[jn||""]),ar=calculateUSDPrice(er.relayerFee,qn,config$2.tokens[jn||""]);let dr="",or="";if(Hn&&jn&&er.relayerFee!==void 0){const vr=er.relayerFee+Number.parseFloat(Hn);dr=toFixedDecimals(vr.toString(),6),or=calculateUSDPrice(vr,qn,config$2.tokens[jn])}return[{title:"Amount",value:`${isNaN($n)?"0":$n} ${getDisplayName(Cn)}`,valueUSD:calculateUSDPrice($n,qn,Cn)},{title:"Total fee estimates",value:dr?`${dr} ${Zn}`:"",valueUSD:or?`${or||NO_INPUT}`:"",rows:[{title:"Source chain gas estimate",value:Hn?`~ ${Hn} ${Zn}`:"Not available",valueUSD:Xn},{title:"Relayer fee",value:er.relayerFee?`${er.relayerFee} ${Zn}`:NO_INPUT,valueUSD:ar}]}]}async getTransferSourceInfo(Dt){const Cn=Dt.txData,{tokenKey:$n,amount:Un,tokenDecimals:Fn,fromChain:Hn,gasFee:Gn,relayerFee:Qn}=Cn,qn=Dt.tokenPrices,er=toNormalizedDecimals(Un,Fn,MAX_DECIMALS),{gasToken:Wn}=config$2.chains[Hn],jn=config$2.tokens[Wn],Zn=getTokenDecimals(toChainId$1(jn.nativeChain),"native"),Xn=Gn&&toDecimals(Gn,Zn,MAX_DECIMALS),ar=Qn&&toDecimals(Qn,Zn,MAX_DECIMALS),dr=config$2.tokens[$n];return[{title:"Amount",value:`${er} ${getDisplayName(dr)}`,valueUSD:calculateUSDPrice(er,qn,dr)},{title:"Gas fee",value:Xn?`${Xn} ${getDisplayName(jn)}`:NO_INPUT,valueUSD:calculateUSDPrice(Xn,qn,jn)},{title:"Relayer fee",value:ar?`${ar} ${getDisplayName(jn)}`:NO_INPUT,valueUSD:calculateUSDPrice(ar,qn,jn)}]}async tryFetchRedeemTx(Dt){if(!isUnsignedNttMessage(Dt))throw new Error("invalid txData");const{toChain:Cn,recipientNttManager:$n,messageDigest:Un}=Dt,Fn=getNttManager(Cn,$n);try{return await Fn.fetchRedeemTx(Un)}catch(Hn){console.error(Hn)}}}class Operator{getRoute(ht){switch(ht){case Route.Bridge:return new BridgeRoute;case Route.Relay:return new RelayRoute;case Route.CCTPManual:return new CCTPManualRoute;case Route.CCTPRelay:return new CCTPRelayRoute;case Route.CosmosGateway:return new CosmosGatewayRoute;case Route.TBTC:return new TBTCRoute;case Route.ETHBridge:return new ETHBridge;case Route.wstETHBridge:return new wstETHBridge;case Route.NttManual:return new NttManual;case Route.NttRelay:return new NttRelay;default:throw new Error(`${ht} is not a valid route`)}}async getRouteFromTx(ht,Dt){var Hn,Gn,Qn,qn,er;if(isGatewayChain(Dt))return Route.CosmosGateway;if(isEvmChain(Dt)){const jn=await config$2.wh.mustGetProvider(Dt).getTransactionReceipt(ht);if(!jn)throw new Error(`No receipt for ${ht} on ${Dt}`);const Zn=jn.logs.find(Xn=>Xn.topics[0]===CCTP_LOG_TokenMessenger_DepositForBurn);if(Zn)return Zn.topics[3].substring(26).toLowerCase()===((Qn=(Gn=(Hn=config$2.wh.getContracts(Dt))==null?void 0:Hn.cctpContracts)==null?void 0:Gn.wormholeCCTP)==null?void 0:Qn.substring(2).toLowerCase())?Route.CCTPRelay:Route.CCTPManual;if(jn.logs.some(Xn=>Xn.topics[0]===TRANSFER_SENT_EVENT_TOPIC)){const{relayingType:Xn}=await getMessageEvm(ht,Dt,jn);return Xn===NttRelayingType.Manual?Route.NttManual:Route.NttRelay}}if(Dt==="solana"){const Wn=solanaContext().connection;if(!Wn)throw new Error("Connection not found");const jn=await Wn.getParsedTransaction(ht);if(!jn)throw new Error("Transaction not found");if(jn.transaction.message.instructions.some(Zn=>getNttManagerConfigByAddress(Zn.programId.toString(),Dt))){const{relayingType:Zn}=await getMessageSolana(ht);return Zn===NttRelayingType.Manual?Route.NttManual:Route.NttRelay}}if(Dt==="solana"){const{connection:Wn,contracts:jn}=config$2.wh.getContext(Dt);if(!Wn)throw new Error("No connection for Solana");const{cctpTokenMessenger:Zn}=((qn=jn.getContracts(Dt))==null?void 0:qn.cctpContracts)||{};if(!Zn)throw new Error("No CCTP contracts on Solana");const Xn=await Wn.getTransaction(ht);if(Xn==null?void 0:Xn.transaction.message.instructions.some(dr=>Xn.transaction.message.accountKeys[dr.programIdIndex].equals(new PublicKey$4(Zn))))return Route.CCTPManual}const Cn=await getMessage(ht,Dt);if(Cn.toChain==="sei")return Route.Relay;if(isGatewayChain(Cn.fromChain)||isGatewayChain(Cn.toChain))return Route.CosmosGateway;const $n=getTokenById(Cn.tokenId),Un=$n==null?void 0:$n.symbol;if(Un==="tBTC")return Route.TBTC;const Fn=(er=config$2.wh.getContracts(Dt))==null?void 0:er.portico;if(Fn&&Cn.fromAddress&&isEqualCaseInsensitive(Cn.fromAddress,Fn)){if(Un==="ETH"||Un==="WETH")return Route.ETHBridge;if(Un==="wstETH")return Route.wstETHBridge;throw new Error(`Unsupported Portico bridge token ${Un}`)}return Cn.payloadID===PayloadType.Automatic?Route.Relay:Route.Bridge}async isRouteSupported(ht,Dt,Cn,$n,Un,Fn){return config$2.routes.includes(ht)?await this.getRoute(ht).isRouteSupported(Dt,Cn,$n,Un,Fn):!1}async isRouteAvailable(ht,Dt,Cn,$n,Un,Fn){return config$2.routes.includes(ht)?await this.getRoute(ht).isRouteAvailable(Dt,Cn,$n,Un,Fn):!1}allSupportedChains(){const ht=new Set;for(const Dt in config$2.chains){const Cn=Dt;for(const $n of config$2.routes)ht.has(Cn)||this.isSupportedChain($n,Cn)&&ht.add(Cn)}return Array.from(ht)}async allSupportedSourceTokens(ht,Dt,Cn){const $n={};for(const Un of config$2.routes)for(const Fn of config$2.tokensArr){const{key:Hn}=Fn;$n[Hn]||await this.isSupportedSourceToken(Un,config$2.tokens[Hn],ht,Dt,Cn)&&($n[Hn]=config$2.tokens[Hn])}return Object.values($n)}async allSupportedDestTokens(ht,Dt,Cn){const $n={};for(const Un of config$2.routes)for(const Fn of config$2.tokensArr){const{key:Hn}=Fn;$n[Hn]||await this.isSupportedDestToken(Un,config$2.tokens[Hn],ht,Dt,Cn)&&($n[Hn]=config$2.tokens[Hn])}return Object.values($n)}isSupportedChain(ht,Dt){return this.getRoute(ht).isSupportedChain(Dt)}async isSupportedSourceToken(ht,Dt,Cn,$n,Un){return config$2.routes.includes(ht)?await this.getRoute(ht).isSupportedSourceToken(Dt,Cn,$n,Un):!1}async isSupportedDestToken(ht,Dt,Cn,$n,Un){return config$2.routes.includes(ht)?await this.getRoute(ht).isSupportedDestToken(Dt,Cn,$n,Un):!1}async supportedSourceTokens(ht,Dt,Cn,$n,Un){return config$2.routes.includes(ht)?await this.getRoute(ht).supportedSourceTokens(Dt,Cn,$n,Un):[]}async supportedDestTokens(ht,Dt,Cn,$n,Un){return config$2.routes.includes(ht)?await this.getRoute(ht).supportedDestTokens(Dt,Cn,$n,Un):[]}async computeReceiveAmount(ht,Dt,Cn,$n,Un,Fn,Hn){return await this.getRoute(ht).computeReceiveAmount(Dt,Cn,$n,Un,Fn,Hn)}async computeReceiveAmountWithFees(ht,Dt,Cn,$n,Un,Fn,Hn){return await this.getRoute(ht).computeReceiveAmountWithFees(Dt,Cn,$n,Un,Fn,Hn)}async computeSendAmount(ht,Dt,Cn){return await this.getRoute(ht).computeSendAmount(Dt,Cn)}async validate(ht,Dt,Cn,$n,Un,Fn,Hn,Gn){return await this.getRoute(ht).validate(Dt,Cn,$n,Un,Fn,Hn,Gn)}async estimateSendGas(ht,Dt,Cn,$n,Un,Fn,Hn,Gn){return await this.getRoute(ht).estimateSendGas(Dt,Cn,$n,Un,Fn,Hn,Gn)}async estimateClaimGas(ht,Dt,Cn){if(!Cn)throw new Error("Cannot estimate gas without a signed message");return await this.getRoute(ht).estimateClaimGas(Dt,Cn)}async send(ht,Dt,Cn,$n,Un,Fn,Hn,Gn,Qn){return await this.getRoute(ht).send(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn)}async redeem(ht,Dt,Cn,$n){return await this.getRoute(ht).redeem(Dt,Cn,$n)}async getPreview(ht,Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){return await this.getRoute(ht).getPreview(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er)}async getRelayerFee(ht,Dt,Cn,$n,Un){return this.getRoute(ht).getRelayerFee(Dt,Cn,$n,Un)}async getForeignAsset(ht,Dt,Cn,$n){return this.getRoute(ht).getForeignAsset(Dt,Cn,$n)}async isTransferCompleted(ht,Dt,Cn){return this.getRoute(ht).isTransferCompleted(Dt,Cn)}async getMessage(ht,Dt,Cn,$n){return this.getRoute(ht).getMessage(Dt,Cn)}async getSignedMessage(ht,Dt){return this.getRoute(ht).getSignedMessage(Dt)}getTransferSourceInfo(ht,Dt){return this.getRoute(ht).getTransferSourceInfo(Dt)}getTransferDestInfo(ht,Dt){return this.getRoute(ht).getTransferDestInfo(Dt)}nativeTokenAmount(ht,Dt,Cn,$n,Un){const Fn=this.getRoute(ht);if(Fn.AUTOMATIC_DEPOSIT)return Fn.nativeTokenAmount(Dt,Cn,$n,Un);throw new Error("route does not support native gas dropoff")}maxSwapAmount(ht,Dt,Cn,$n){const Un=this.getRoute(ht);if(Un.AUTOMATIC_DEPOSIT)return Un.maxSwapAmount(Dt,Cn,$n);throw new Error("route does not support swap for native gas dropoff")}async minSwapAmountNative(ht,Dt,Cn,$n){if(config$2.wh.toChainName(Dt)==="solana"){const Fn=solanaContext();if(await Fn.connection.getAccountInfo(new PublicKey$4($n))!==null)return BigNumber$2.from(0);const Gn=await Fn.connection.getMinimumBalanceForRentExemption(0);return BigNumber$2.from(Gn)}return BigNumber$2.from(0)}tryFetchRedeemTx(ht,Dt){return this.getRoute(ht).tryFetchRedeemTx(Dt)}}const RouteOperator=new Operator,fetchRedeemedEvent=async dt=>{var Fn,Hn,Gn;const ht=getEmitterAndSequence(dt),{emitterChain:Dt,emitterAddress:Cn,sequence:$n}=ht,Un=`0x${Cn}`;if(dt.toChain==="solana"){const qn=await config$2.wh.getContext(dt.toChain).fetchRedeemedSignature(Dt,Cn,$n);return qn?{transactionHash:qn}:null}else if(dt.toChain==="sui"){const Qn=config$2.wh.getContext(dt.toChain),{suiOriginalTokenBridgePackageId:qn}=Qn.context.mustGetContracts("sui");if(!qn)throw new Error("suiOriginalTokenBridgePackageId not set");const Wn=await Qn.provider.queryEvents({query:{MoveEventType:`${qn}::complete_transfer::TransferRedeemed`},order:"descending"});for(const jn of Wn.data)if(`0x${dist$8.Buffer.from((Fn=jn.parsedJson)==null?void 0:Fn.emitter_address.value.data).toString("hex")}`===Un&&Number((Hn=jn.parsedJson)==null?void 0:Hn.emitter_chain)===Dt&&((Gn=jn.parsedJson)==null?void 0:Gn.sequence)===$n)return{transactionHash:jn.id.txDigest};return null}else if(dt.toChain==="sei"){const qn=await config$2.wh.getContext(dt.toChain).fetchRedeemedEvent(Dt,Un,$n);return qn?{transactionHash:qn}:null}else{const Qn=config$2.wh.mustGetProvider(dt.toChain),qn=config$2.wh.getContext(dt.toChain),er=config$2.wh.toChainName(dt.toChain),Wn=config$2.chains[er],jn=qn.contracts.mustGetTokenBridgeRelayer(dt.toChain),Zn=jn.filters.TransferRedeemed(Dt,Un,$n),Xn=await Qn.getBlockNumber(),ar=await jn.queryFilter(Zn,Xn-Wn.maxBlockSearch);return ar?ar[0]:null}},fetchRedeemedEventSender=async dt=>{var Dt,Cn;const ht=await fetchRedeemedEvent(dt);if(!ht)return null;if(dt.toChain==="solana"){const Un=await((Dt=config$2.wh.getContext(dt.toChain).connection)==null?void 0:Dt.getParsedTransaction(ht.transactionHash,{maxSupportedTransactionVersion:0})),Fn=Un==null?void 0:Un.transaction.message.accountKeys;return Fn?Fn[0].pubkey.toBase58():null}else{if(dt.toChain==="sui")return((Cn=(await config$2.wh.getContext(dt.toChain).provider.getTransactionBlock({digest:ht.transactionHash})).transaction)==null?void 0:Cn.data.sender)||null;if(isEvmChain(config$2.wh.toChainId(dt.toChain)))return(await config$2.wh.getContext(dt.toChain).getReceipt(ht.transactionHash,dt.toChain)).from}return null},fetchSwapEvent=async dt=>{var Un,Fn,Hn,Gn,Qn,qn;const{tokenId:ht,recipient:Dt,toNativeTokenAmount:Cn,tokenDecimals:$n}=dt;if(dt.toChain==="solana"){const er=config$2.wh.getContext(dt.toChain),Wn=getEmitterAndSequence(dt),{emitterChain:jn,emitterAddress:Zn,sequence:Xn}=Wn,ar=await er.fetchRedeemedSignature(jn,Zn,Xn);if(ar){const or=await er.contracts.mustGetTokenBridgeRelayer(dt.toChain).fetchSwapEvent(ar);return or?BigNumber$2.from(or.nativeAmount):null}}else if(dt.toChain==="sui"){const er=config$2.wh.getContext(dt.toChain),{suiRelayerPackageId:Wn}=er.context.mustGetContracts("sui");if(!Wn)throw new Error("suiRelayerPackageId not set");const Zn=await er.provider.queryEvents({query:{MoveEventType:`${Wn}::redeem::SwapExecuted`},order:"descending"}),Xn=config$2.wh.getContext(ht.chain),ar=utils$P.arrayify(await Xn.formatAssetAddress(ht.address));for(const dr of Zn.data)if(((Un=dr.parsedJson)==null?void 0:Un.recipient)===Dt&&((Fn=dr.parsedJson)==null?void 0:Fn.coin_amount)===Cn&&((Hn=dr.parsedJson)==null?void 0:Hn.coin)===`0x${dist$8.Buffer.from(ar).toString("hex")}`)return BigNumber$2.from((Gn=dr.parsedJson)==null?void 0:Gn.sui_amount);return null}else if(isEvmChain(config$2.wh.toChainId(dt.toChain))){const er=config$2.wh.mustGetProvider(dt.toChain),Wn=config$2.wh.getContext(dt.toChain),jn=config$2.wh.toChainName(dt.toChain),Zn=config$2.chains[jn],Xn=Wn.contracts.mustGetTokenBridgeRelayer(dt.toChain),ar=await Wn.getForeignAsset(ht,dt.toChain),dr=Xn.filters.SwapExecuted(Dt,void 0,ar),or=await er.getBlockNumber(),sr=await Xn.queryFilter(dr,or-Zn.maxBlockSearch),vr=fromNormalizedDecimals(BigNumber$2.from(Cn),$n),hr=sr.sort((gr,ur)=>ur.blockNumber-gr.blockNumber).filter(gr=>vr.eq(gr.args[3]));return hr?(qn=(Qn=hr[0])==null?void 0:Qn.args)==null?void 0:qn[4]:null}return null};class RelayRoute extends BridgeRoute{constructor(){super(...arguments);Ll(this,"NATIVE_GAS_DROPOFF_SUPPORTED",!0);Ll(this,"AUTOMATIC_DEPOSIT",!0);Ll(this,"TYPE",Route.Relay)}isSupportedChain(Dt){var Cn;return!!((Cn=config$2.chains[Dt])!=null&&Cn.contracts.relayer)}async isRouteSupported(Dt,Cn,$n,Un,Fn){if(!config$2.routes.includes(Route.Relay)||!await super.isRouteSupported(Dt,Cn,$n,Un,Fn))return!1;const Gn=config$2.wh.mustGetContracts(Un),Qn=config$2.wh.mustGetContracts(Fn);if(!Gn.relayer||!Qn.relayer)return!1;const qn=config$2.tokens[Dt],er=getWrappedTokenId(qn);return isAcceptedToken(er)}async isRouteAvailable(Dt,Cn,$n,Un,Fn){const Hn=config$2.tokens[Dt],Gn=getWrappedTokenId(Hn);let Qn;try{const er=await this.getRelayerFee(Un,Fn,Dt,Cn);Qn=er==null?void 0:er.fee}catch(er){console.error(er)}const qn=getTokenDecimals(config$2.wh.toChainId(Un),Gn);return!(Qn===void 0||parseFloat($n)<this.getMinSendAmount(Gn,Fn,{relayerFee:toDecimals(Qn,qn),toNativeToken:0}))}async isSupportedSourceToken(Dt,Cn,$n){if(!Dt||!await super.isSupportedSourceToken(Dt,Cn,$n))return!1;const Fn=getWrappedTokenId(Dt);return await isAcceptedToken(Fn)}async isSupportedDestToken(Dt,Cn,$n,Un){if(!Dt||!await super.isSupportedDestToken(Dt,Cn,$n,Un))return!1;const Hn=getWrappedTokenId(Dt);return await isAcceptedToken(Hn)}async supportedSourceTokens(Dt,Cn,$n){const Un=await Promise.allSettled(Dt.map(Fn=>this.isSupportedSourceToken(Fn,Cn,$n)));return Dt.filter((Fn,Hn)=>{const Gn=Un[Hn];return Gn.status==="fulfilled"&&Gn.value})}async supportedDestTokens(Dt,Cn){const $n=await Promise.allSettled(Dt.map(Un=>this.isSupportedDestToken(Un,Cn)));return Dt.filter((Un,Fn)=>{const Hn=$n[Fn];return Hn.status==="fulfilled"&&Hn.value})}async computeReceiveAmount(Dt,Cn,$n,Un,Fn,Hn){if(!Dt)return 0;const{toNativeToken:Gn,relayerFee:Qn}=Hn,qn=10**8;return(Math.round(Dt*qn)-Math.round((Gn||0)*qn)-Math.round((Qn||0)*qn))/qn}async computeSendAmount(Dt,Cn){return Dt?Dt+((Cn==null?void 0:Cn.toNativeToken)||0):0}async nativeTokenAmount(Dt,Cn,$n,Un){return calculateNativeTokenAmt(Dt,Cn,$n,Un)}async maxSwapAmount(Dt,Cn,$n){return calculateMaxSwapAmount(Dt,Cn,$n)}async validate(Dt,Cn,$n,Un,Fn,Hn,Gn){throw new Error("not implemented")}async estimateSendGas(Dt,Cn,$n,Un,Fn,Hn,Gn){const{relayerFee:Qn,toNativeToken:qn}=Gn,er=await config$2.wh.estimateSendWithRelayGas(Dt,Cn,$n,Un,Fn,Hn,Qn,qn?`${Gn.toNativeToken}`:"0");if(!er)throw new Error("could not estimate gas");return er}async estimateClaimGas(Dt,Cn){throw Cn?new Error("manual claim not implemented for automatic token bridge relays"):new Error("Cannot estimate gas without a signed message")}getMinSendAmount(Dt,Cn,$n){var Qn;const{relayerFee:Un,toNativeToken:Fn}=$n;let Gn=(parseFloat(Un)+parseFloat(Fn))*1.05;return toChainName(Cn)==="solana"&&Dt!=="native"&&((Qn=getTokenById(Dt))==null?void 0:Qn.key)==="WSOL"&&(Gn+=89088e-8),Number.parseFloat(Gn.toFixed(6))}async send(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn){const qn=config$2.wh.toChainId($n),er=config$2.wh.toChainName($n),Wn=getTokenDecimals(qn,Dt),jn=parseUnits(Cn,Wn);if(!config$2.wh.supportsSendWithRelay(qn))throw new Error("send with relay not supported");const Zn=Qn.toNativeToken?parseUnits(Qn.toNativeToken.toString(),Wn).toString():"0",Xn=await config$2.wh.sendWithRelay(Dt,jn.toString(),$n,Un,Fn,Hn,Zn),ar=await signAndSendTransaction(er,Xn,TransferWallet.SENDING);return config$2.wh.registerProviders(),ar}async redeem(Dt,Cn,$n){if(!isSignedWormholeMessage(Cn))throw new Error("Invalid signed message");const Un=config$2.wh.toChainId(Dt),Fn=config$2.wh.toChainName(Dt);if(Un===MAINNET_CHAINS$1.solana){const qn=config$2.wh.getContext(Dt).connection;if(!qn)throw new Error("no connection");const er=config$2.wh.mustGetContracts(Dt);if(!er.core)throw new Error("contract not found");await postVaa(qn,er.core,dist$8.Buffer.from(utils$P.arrayify(Cn.vaa,{allowMissingPrefix:!0})))}const Hn=await config$2.wh.redeemRelay(Dt,utils$P.arrayify(Cn.vaa),void 0,$n),Gn=await signAndSendTransaction(Fn,Hn,TransferWallet.RECEIVING);return config$2.wh.registerProviders(),Gn}async getMessage(Dt,Cn){const $n=await config$2.wh.getMessage(Dt,Cn),Un=await adaptParsedMessage($n);if(Un.payloadID!==PayloadType.Automatic)throw new Error("wrong payload, not a token bridge relay transfer");return{...Un,relayerFee:Un.relayerFee.toString(),toNativeTokenAmount:Un.toNativeTokenAmount.toString()}}async getSignedMessage(Dt){const Cn=await fetchVaa(Dt);if(!Cn)throw new Error("VAA not found");return{...Dt,vaa:hexlify(Cn.bytes)}}async getPreview(Dt,Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er){var nr,Sr;const Wn=config$2.wh.toChainName(Un),jn=config$2.wh.toChainName(Fn),Zn=(nr=config$2.chains[Wn])==null?void 0:nr.gasToken,Xn=(Sr=config$2.chains[jn])==null?void 0:Sr.gasToken,ar=Zn?getDisplayName(config$2.tokens[Zn]):"",dr=Xn?getDisplayName(config$2.tokens[Xn]):"",{relayerFee:or,receiveNativeAmt:sr}=er,vr=Dt.key===Zn;let hr="",gr="";if(Hn&&or!==void 0){const Ar=or+(vr?Number.parseFloat(Hn):0),tr=toFixedDecimals(`${Ar}`,6);hr=vr?`${tr} ${getDisplayName(Dt)}`:`${Hn} ${ar} & ${tr} ${getDisplayName(Dt)}`,gr=vr?calculateUSDPrice(Ar,qn,Dt):`${calculateUSDPrice(Hn,qn,config$2.tokens[Zn||""])||NO_INPUT} & ${calculateUSDPrice(Ar,qn,Dt)||NO_INPUT}`}const ur=await this.computeReceiveAmount($n,Dt.key,Cn.key,Wn,jn,er),_r=sr>0?[{title:"Native gas on destination",value:`${sr} ${dr}`,valueUSD:calculateUSDPrice(sr,qn,config$2.tokens[Xn||""])}]:[];return[{title:"Amount",value:`${toFixedDecimals(`${ur}`,6)} ${getDisplayName(Cn)}`,valueUSD:calculateUSDPrice(ur,qn,Cn)},..._r,{title:"Total fee estimates",value:hr,valueUSD:gr,rows:[{title:"Source chain gas estimate",value:Hn?`~ ${Hn} ${ar}`:NO_INPUT,valueUSD:calculateUSDPrice(Hn,qn,config$2.tokens[Zn||""])},{title:"Relayer fee",value:or!==void 0?`${or} ${getDisplayName(Dt)}`:NO_INPUT,valueUSD:calculateUSDPrice(or,qn,Dt)}]}]}async getRelayerFee(Dt,Cn,$n,Un){const Fn=config$2.wh.getContext(Dt),Hn=config$2.tokens[$n];if(!Hn)throw new Error("could not get token config");const Gn=Hn.tokenId||getWrappedTokenId(Hn);return{fee:Fn.getRelayerFee?await Fn.getRelayerFee(Dt,Cn,Gn):BigNumber$2.from(0),feeToken:Gn}}async getTransferSourceInfo({txData:Dt,tokenPrices:Cn}){const $n=Dt,Un=toNormalizedDecimals($n.amount,$n.tokenDecimals,MAX_DECIMALS),{gasToken:Fn}=config$2.chains[$n.fromChain],Hn=config$2.tokens[Fn],Gn=getTokenDecimals(toChainId$1(Hn.nativeChain),"native"),Qn=$n.gasFee&&toDecimals($n.gasFee,Gn,MAX_DECIMALS),qn=config$2.tokens[$n.tokenKey],er=toNormalizedDecimals($n.relayerFee,$n.tokenDecimals,MAX_DECIMALS),{gasToken:Wn}=config$2.chains[$n.toChain],jn=[{title:"Amount",value:`${Un} ${getDisplayName(qn)}`,valueUSD:calculateUSDPrice(Un,Cn,qn)},{title:"Gas fee",value:Qn?`${Qn} ${getDisplayName(Hn)}`:NO_INPUT,valueUSD:calculateUSDPrice(Qn,Cn,Hn)},{title:"Relayer fee",value:`${er} ${getDisplayName(qn)}`,valueUSD:calculateUSDPrice(er,Cn,qn)}];if(!BigNumber$2.from($n.toNativeTokenAmount).isZero()){const Zn=toNormalizedDecimals($n.toNativeTokenAmount,$n.tokenDecimals,MAX_DECIMALS);jn.push({title:"Convert to native gas token",value:`≈ ${Zn} ${getDisplayName(qn)} → ${getDisplayName(config$2.tokens[Wn])}`,valueUSD:calculateUSDPrice(Zn,Cn,qn)})}return jn}async getTransferDestInfo({txData:Dt,tokenPrices:Cn,receiveTx:$n,transferComplete:Un}){const Fn=Dt,Hn=config$2.tokens[Fn.tokenKey],{gasToken:Gn}=config$2.chains[Fn.toChain];let Qn;if($n){let Wn;try{Wn=await fetchSwapEvent(Fn)}catch(jn){console.error(`could not fetch swap event:
328
- ${jn}`)}if(Wn){const jn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),"native");Qn=toDecimals(Wn,jn,MAX_DECIMALS)}}if(!Qn){let Wn;try{Wn=await fetchRedeemedEventSender(Fn)}catch(ar){console.error(ar)}if(Wn&&Wn===Fn.recipient){const ar=toNormalizedDecimals(Fn.amount,Fn.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${ar} ${getDisplayName(Hn)}`,valueUSD:calculateUSDPrice(ar,Cn,Hn)},{title:"Native gas token",value:`${NO_INPUT}`},{title:"Relayer fee",value:`${NO_INPUT}`}]}}const jn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),Fn.tokenId),Zn=await calculateNativeTokenAmt(Fn.toChain,Fn.tokenId,fromNormalizedDecimals(BigNumber$2.from(Fn.toNativeTokenAmount),jn),Fn.recipient),Xn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),"native");Qn=toDecimals(Zn.toString(),Xn,MAX_DECIMALS)}const qn=BigNumber$2.from(Fn.amount).sub(BigNumber$2.from(Fn.relayerFee)).sub(BigNumber$2.from(Fn.toNativeTokenAmount||0)),er=toNormalizedDecimals(qn,Fn.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${er} ${getDisplayName(Hn)}`,valueUSD:calculateUSDPrice(er,Cn,Hn)},{title:"Native gas token",value:Qn?`${Qn} ${getDisplayName(config$2.tokens[Gn])}`:NO_INPUT,valueUSD:calculateUSDPrice(Qn,Cn,config$2.tokens[Gn])}]}}async tryFetchRedeemTx(Dt){if(!isSignedWormholeMessage(Dt))throw new Error("Signed message is not for relay");let Cn;try{const $n=await fetchRedeemedEvent(Dt);Cn=$n==null?void 0:$n.transactionHash}catch($n){console.error($n)}return Cn}}const formatBalance=(dt,ht,Dt)=>{const Cn=getTokenDecimals(toChainId$1(dt),ht.tokenId),$n=Dt!==null?toDecimals(Dt,Cn,6):null;return{[ht.key]:$n}},getNativeVersionOfToken=(dt,ht)=>{var Dt;return((Dt=Object.entries(config$2.tokens).map(([Cn,$n])=>$n).find(Cn=>Cn.symbol===dt&&Cn.nativeChain===ht))==null?void 0:Dt.key)||""},accessChainBalances=(dt,ht,Dt)=>{if(!Dt||!dt||!ht)return;const Cn=dt[ht];if(!Cn)return;const $n=Cn[Dt];if($n)return $n},accessBalance=(dt,ht,Dt,Cn)=>{const $n=accessChainBalances(dt,ht,Dt);return $n?$n.balances[Cn]:null};function getInitialState(){var dt,ht,Dt;return{showValidationState:!1,validations:{fromChain:"",toChain:"",token:"",destToken:"",amount:"",route:"",toNativeToken:"",sendingWallet:"",receivingWallet:"",foreignAsset:"",relayerFee:"",receiveAmount:""},routeStates:void 0,fromChain:((dt=config$2.bridgeDefaults)==null?void 0:dt.fromNetwork)||void 0,toChain:((ht=config$2.bridgeDefaults)==null?void 0:ht.toNetwork)||void 0,token:((Dt=config$2.bridgeDefaults)==null?void 0:Dt.token)||"",destToken:"",amount:"",receiveAmount:getEmptyDataWrapper(),route:void 0,balances:{},foreignAsset:"",associatedTokenAddress:"",gasEst:{send:"",claim:""},isTransactionInProgress:!1,receiverNativeBalance:"",supportedSourceTokens:[],allSupportedDestTokens:[],supportedDestTokens:[]}}const performModificationsIfFromChainChanged=dt=>{var Un,Fn;const{fromChain:ht,token:Dt,route:Cn,destToken:$n}=dt;if(Dt){const Hn=config$2.tokens[Dt];if((!ht||!Hn.tokenId&&Hn.nativeChain!==ht)&&(dt.token="",(!Cn||!isPorticoRoute(Cn))&&(dt.amount="")),isNttRoute(Cn)&&$n){const Gn=getNttGroupKey(Hn,config$2.tokens[$n]);Gn&&ht?dt.token=((Un=getNttTokenByGroupKey(Gn,ht))==null?void 0:Un.key)||"":dt.token=""}else Hn.symbol==="USDC"&&Hn.nativeChain!==ht?dt.token=getNativeVersionOfToken("USDC",ht):Hn.symbol==="tBTC"&&Hn.nativeChain!==ht?dt.token=getNativeVersionOfToken("tBTC",ht)||((Fn=config$2.tokens.tBTC)==null?void 0:Fn.key)||"":Cn&&isPorticoRoute(Cn)&&Hn.nativeChain!==ht&&(dt.token=getNativeVersionOfToken(Hn.symbol,ht))}},performModificationsIfToChainChanged=dt=>{var Un,Fn;const{toChain:ht,destToken:Dt,route:Cn,token:$n}=dt;if(Dt){const Hn=config$2.tokens[Dt];if(ht||(dt.destToken=""),isNttRoute(Cn)&&$n){const Gn=getNttGroupKey(Hn,config$2.tokens[$n]);Gn&&ht?dt.destToken=((Un=getNttTokenByGroupKey(Gn,ht))==null?void 0:Un.key)||"":dt.destToken=""}else Hn.symbol==="USDC"&&Hn.nativeChain!==ht?dt.destToken=getNativeVersionOfToken("USDC",ht):Hn.symbol==="tBTC"&&Hn.nativeChain!==ht?dt.destToken=getNativeVersionOfToken("tBTC",ht)||((Fn=config$2.tokens.tBTC)==null?void 0:Fn.key)||"":Cn&&isPorticoRoute(Cn)&&Hn.nativeChain!==ht&&(dt.destToken=getNativeVersionOfToken(Hn.symbol,ht))}},establishRoute=dt=>{const{routeStates:ht}=dt;if(!ht){dt.route=void 0;return}const Dt=[Route.CosmosGateway,Route.CCTPRelay,Route.CCTPManual,Route.TBTC,Route.ETHBridge,Route.wstETHBridge,Route.NttRelay,Route.NttManual,Route.Relay,Route.Bridge];for(const Cn of Dt){const $n=ht.find(Un=>Un.name===Cn);if($n&&$n.supported&&$n.available){dt.route=Cn;return}}dt.route=void 0},transferInputSlice=createSlice({name:"transfer",initialState:getInitialState(),reducers:{setValidations:(dt,{payload:{showValidationState:ht,validations:Dt}})=>{Object.keys(Dt).forEach(Cn=>{dt.validations[Cn]=Dt[Cn]}),!dt.showValidationState&&ht&&(dt.showValidationState=ht)},setRoutes:(dt,{payload:ht})=>{dt.routeStates=ht,establishRoute(dt)},setToken:(dt,{payload:ht})=>{dt.token=ht},setDestToken:(dt,{payload:ht})=>{dt.destToken=ht},setFromChain:(dt,{payload:ht})=>{dt.fromChain=ht,performModificationsIfFromChainChanged(dt)},setToChain:(dt,{payload:ht})=>{dt.toChain=ht,performModificationsIfToChainChanged(dt)},setAmount:(dt,{payload:ht})=>{dt.amount=ht},setReceiveAmount:(dt,{payload:ht})=>{dt.receiveAmount=receiveDataWrapper(ht)},setFetchingReceiveAmount:dt=>{dt.receiveAmount=fetchDataWrapper()},setReceiveAmountError:(dt,{payload:ht})=>{dt.receiveAmount=errorDataWrapper(ht)},setBalances:(dt,{payload:ht})=>{const{chain:Dt,balances:Cn,address:$n}=ht;if(!$n)return;const Un={[Dt]:{lastUpdated:Date.now(),balances:Cn}},Fn=dt.balances[$n]||{};dt.balances[$n]=Object.assign(Fn,Un)},setReceiverNativeBalance:(dt,{payload:ht})=>{dt.receiverNativeBalance=ht},setForeignAsset:(dt,{payload:ht})=>{dt.foreignAsset=ht},setAssociatedTokenAddress:(dt,{payload:ht})=>{dt.associatedTokenAddress=ht},setTransferRoute:(dt,{payload:ht})=>{if(!ht){dt.route=void 0;return}dt.routeStates&&dt.routeStates.some(Dt=>Dt.name===ht&&Dt.supported)?dt.route=ht:dt.route=void 0},setSendingGasEst:(dt,{payload:ht})=>{dt.gasEst.send=ht},setClaimGasEst:(dt,{payload:ht})=>{dt.gasEst.claim=ht},clearTransfer:dt=>{const ht=getInitialState();Object.keys(dt).forEach(Dt=>{dt[Dt]=ht[Dt]})},setIsTransactionInProgress:(dt,{payload:ht})=>{dt.isTransactionInProgress=ht},setSupportedSourceTokens:(dt,{payload:ht})=>{dt.supportedSourceTokens=ht},setSupportedDestTokens:(dt,{payload:ht})=>{dt.supportedDestTokens=ht},setAllSupportedDestTokens:(dt,{payload:ht})=>{dt.allSupportedDestTokens=ht},swapChains:dt=>{const ht=dt.fromChain;dt.fromChain=dt.toChain,dt.toChain=ht,performModificationsIfFromChainChanged(dt),performModificationsIfToChainChanged(dt)}}}),isDisabledChain=(dt,ht)=>ht.name==="OKX Wallet"&&dt==="evmos"?!0:!walletAcceptedChains(ht.type).includes(dt),selectFromChain=async(dt,ht,Dt)=>{selectChain(TransferWallet.SENDING,dt,ht,Dt)},selectToChain=async(dt,ht,Dt)=>{selectChain(TransferWallet.RECEIVING,dt,ht,Dt)},selectChain=async(dt,ht,Dt,Cn)=>{isDisabledChain(Dt,Cn)&&(ht(clearWallet(dt)),ht(setWalletError({type:dt,error:"Wallet disconnected, please connect a supported wallet"})));const $n=config$2.chains[Dt];if($n){if($n.context===Cn.type&&Cn.type===Context.COSMOS){const Un=await switchChain($n.chainId,dt);Un&&ht(setAddress({type:dt,address:Un}))}ht(dt===TransferWallet.SENDING?setFromChain(Dt):setToChain(Dt))}},{setValidations,setRoutes,setToken,setDestToken,setFromChain,setToChain,setAmount,setReceiveAmount,setFetchingReceiveAmount,setReceiveAmountError,setForeignAsset,setAssociatedTokenAddress,setTransferRoute,setSendingGasEst,setClaimGasEst,setBalances,clearTransfer,setIsTransactionInProgress,setReceiverNativeBalance:setReceiverNativeBalance$1,setSupportedDestTokens,setAllSupportedDestTokens,setSupportedSourceTokens,swapChains}=transferInputSlice.actions,transferInputReducer=transferInputSlice.reducer,initialState$4={maxSwapAmt:void 0,toNativeToken:0,receiveNativeAmt:void 0,relayerFee:void 0,receiverNativeBalance:""},relaySlice=createSlice({name:"transfer",initialState:initialState$4,reducers:{setToNativeToken:(dt,{payload:ht})=>{dt.toNativeToken=ht},setMaxSwapAmt:(dt,{payload:ht})=>{dt.maxSwapAmt=ht},setReceiveNativeAmt:(dt,{payload:ht})=>{dt.receiveNativeAmt=ht},setRelayerFee:(dt,{payload:ht})=>{dt.relayerFee=ht},setReceiverNativeBalance:(dt,{payload:ht})=>{dt.receiverNativeBalance=ht},clearRelay:dt=>{Object.keys(dt).forEach(ht=>{dt[ht]=initialState$4[ht]})}}}),{setToNativeToken,setMaxSwapAmt,setReceiveNativeAmt,setRelayerFee:setRelayerFee$1,setReceiverNativeBalance}=relaySlice.actions,relayReducer=relaySlice.reducer,initialState$3={route:"bridge",showFromChainsModal:!1,showToChainsModal:!1,showTokensModal:!1,showWalletModal:!1},routerSlice=createSlice({name:"router",initialState:initialState$3,reducers:{setWalletModal:(dt,{payload:ht})=>{dt.showWalletModal=ht},setRoute:(dt,{payload:ht})=>{dt.route=ht}}}),{setWalletModal,setRoute}=routerSlice.actions,routerReducer=routerSlice.reducer,initialState$2={relayerFee:getEmptyDataWrapper(),swapAmounts:getEmptyDataWrapper()},porticoBridgeSlice=createSlice({name:"porticoBridge",initialState:initialState$2,reducers:{setRelayerFee:(dt,{payload:ht})=>{dt.relayerFee=receiveDataWrapper(ht)},setFetchingRelayerFee:dt=>{dt.relayerFee=fetchDataWrapper()},setRelayerFeeError:(dt,{payload:ht})=>{dt.relayerFee=errorDataWrapper(ht)},resetRelayerFee:dt=>{dt.relayerFee=getEmptyDataWrapper()},setSwapAmounts:(dt,{payload:ht})=>{dt.swapAmounts=receiveDataWrapper(ht)},setFetchingSwapAmounts:dt=>{dt.swapAmounts=fetchDataWrapper()},setSwapAmountsError:(dt,{payload:ht})=>{dt.swapAmounts=errorDataWrapper(ht)},resetSwapAmounts:dt=>{dt.swapAmounts=getEmptyDataWrapper()},clearPorticoBridge:()=>initialState$2}}),{setRelayerFee,setFetchingRelayerFee,setRelayerFeeError,resetRelayerFee,setSwapAmounts,setFetchingSwapAmounts,setSwapAmountsError,resetSwapAmounts,clearPorticoBridge}=porticoBridgeSlice.actions,porticoBridgeReducer=porticoBridgeSlice.reducer,initialState$1={usdPrices:getEmptyDataWrapper()},tokenPricesSlice=createSlice({name:"tokenPrices",initialState:initialState$1,reducers:{setPrices:(dt,{payload:ht})=>{dt.usdPrices=receiveDataWrapper(ht)},setFetchingPrices:dt=>{dt.usdPrices=fetchDataWrapper()},setPricesError:(dt,{payload:ht})=>{dt.usdPrices=errorDataWrapper(ht)},resetPrices:dt=>{dt.usdPrices=getEmptyDataWrapper()},clearTokenPrices:()=>initialState$1}}),{setPrices,setFetchingPrices,setPricesError,resetPrices,clearTokenPrices}=tokenPricesSlice.actions,tokenPricesReducer=tokenPricesSlice.reducer,initialState={inboundQueuedTransfer:getEmptyDataWrapper()},nttSlice=createSlice({name:"ntt",initialState,reducers:{setInboundQueuedTransfer:(dt,{payload:ht})=>{dt.inboundQueuedTransfer=receiveDataWrapper(ht)},resetInboundQueuedTransfer:dt=>{dt.inboundQueuedTransfer=getEmptyDataWrapper()},clearNtt:()=>initialState}}),{setInboundQueuedTransfer,resetInboundQueuedTransfer,clearNtt}=nttSlice.actions,nttReducer=nttSlice.reducer,store=configureStore({reducer:{redeem:redeemReducer,transferInput:transferInputReducer,router:routerReducer,wallet:walletReducer,relay:relayReducer,porticoBridge:porticoBridgeReducer,tokenPrices:tokenPricesReducer,ntt:nttReducer}}),objectFromEntries=Object.fromEntries?Object.fromEntries:dt=>{if(!dt||!dt[Symbol.iterator])throw new Error("Object.fromEntries() requires a single iterable argument");const ht={};return Object.keys(dt).forEach(Dt=>{const[Cn,$n]=dt[Dt];ht[Cn]=$n}),ht};function objectKeys(dt){return Object.keys(dt)}function assert(dt,ht){if(!dt)throw new Error(ht)}function typeGuard(dt,ht){return ht}const classnames=dt=>{const ht=dt.length;let Dt=0,Cn="";for(;Dt<ht;Dt++){const $n=dt[Dt];if($n==null)continue;let Un;switch(typeof $n){case"boolean":break;case"object":{if(Array.isArray($n))Un=classnames($n);else{assert(!typeGuard($n,!1)),Un="";for(const Fn in $n)$n[Fn]&&Fn&&(Un&&(Un+=" "),Un+=Fn)}break}default:Un=$n}Un&&(Cn&&(Cn+=" "),Cn+=Un)}return Cn};function useGuaranteedMemo(dt,ht){const Dt=reactExports.useRef();return(!Dt.current||ht.length!==Dt.current.prevDeps.length||Dt.current.prevDeps.map((Cn,$n)=>Cn===ht[$n]).indexOf(!1)>=0)&&(Dt.current={v:dt(),prevDeps:[...ht]}),Dt.current.v}function matchCSSObject(dt){return dt instanceof Object&&!("styles"in dt)&&!("length"in dt)&&!("__emotion_styles"in dt)}const{createCssAndCx}=(()=>{function dt(Dt,Cn,$n){const Un=[],Fn=getRegisteredStyles(Dt,Un,$n);return Un.length<2?$n:Fn+Cn(Un)}function ht(Dt){const{cache:Cn}=Dt,$n=(...Fn)=>{const Hn=serializeStyles(Fn,Cn.registered);insertStyles(Cn,Hn,!1);const Gn=`${Cn.key}-${Hn.name}`;e:{const Qn=Fn[0];if(!matchCSSObject(Qn))break e;increaseSpecificityToTakePrecedenceOverMediaQueries.saveClassNameCSSObjectMapping(Cn,Gn,Qn)}return Gn};return{css:$n,cx:(...Fn)=>{const Hn=classnames(Fn),Gn=increaseSpecificityToTakePrecedenceOverMediaQueries.fixClassName(Cn,Hn,$n);return dt(Cn.registered,$n,Gn)}}}return{createCssAndCx:ht}})();function createUseCssAndCx(dt){const{useCache:ht}=dt;function Dt(){const Cn=ht(),{css:$n,cx:Un}=useGuaranteedMemo(()=>createCssAndCx({cache:Cn}),[Cn]);return{css:$n,cx:Un}}return{useCssAndCx:Dt}}const increaseSpecificityToTakePrecedenceOverMediaQueries=(()=>{const dt=new WeakMap;return{saveClassNameCSSObjectMapping:(ht,Dt,Cn)=>{let $n=dt.get(ht);$n===void 0&&($n=new Map,dt.set(ht,$n)),$n.set(Dt,Cn)},fixClassName:(()=>{function ht(Dt){let Cn=!1;return Dt.map(([$n,Un])=>{if(Un===void 0)return $n;let Fn;if(Cn)Fn={"&&":Un};else{Fn=$n;for(const Hn in Un)if(Hn.startsWith("@media")){Cn=!0;break}}return Fn})}return(Dt,Cn,$n)=>{const Un=dt.get(Dt);return classnames(ht(Cn.split(" ").map(Fn=>[Fn,Un==null?void 0:Un.get(Fn)])).map(Fn=>typeof Fn=="string"?Fn:$n(Fn)))}})()}})();function getDependencyArrayRef(dt){if(!(dt instanceof Object)||typeof dt=="function")return dt;const ht=[];for(const Dt in dt){const Cn=dt[Dt],$n=typeof Cn;if(!($n==="string"||$n==="number"&&!isNaN(Cn)||$n==="boolean"||Cn===void 0||Cn===null))return dt;ht.push(`${Dt}:${$n}_${Cn}`)}return"xSqLiJdLMd9s"+ht.join("|")}function mergeClasses(dt,ht,Dt){if(!(ht instanceof Object))return dt;const Cn={};return objectKeys(dt).forEach($n=>Cn[$n]=Dt(dt[$n],ht[$n])),objectKeys(ht).forEach($n=>{if($n in dt)return;const Un=ht[$n];typeof Un=="string"&&(Cn[$n]=Un)}),Cn}const useMuiThemeStyleOverridesPlugin=({classes:dt,theme:ht,muiStyleOverridesParams:Dt,css:Cn,cx:$n,name:Un})=>{var Fn,Hn;e:{if(Un==="makeStyle no name"){Un=void 0;break e}if(Dt!==void 0&&Un===void 0)throw new Error("To use muiStyleOverridesParams, you must specify a name using .withName('MyComponent')")}let Gn;try{Gn=Un===void 0?void 0:((Hn=(Fn=ht.components)===null||Fn===void 0?void 0:Fn[Un])===null||Hn===void 0?void 0:Hn.styleOverrides)||void 0}catch{}const Qn=reactExports.useMemo(()=>{if(Gn===void 0)return;const qn={};for(const er in Gn){const Wn=Gn[er];Wn instanceof Object&&(qn[er]=Cn(typeof Wn=="function"?Wn(Object.assign({theme:ht,ownerState:Dt==null?void 0:Dt.ownerState},Dt==null?void 0:Dt.props)):Wn))}return qn},[Gn,getDependencyArrayRef(Dt==null?void 0:Dt.props),getDependencyArrayRef(Dt==null?void 0:Dt.ownerState),Cn]);return dt=reactExports.useMemo(()=>mergeClasses(dt,Qn,$n),[dt,Qn,$n]),{classes:dt}};let counter$1=0;function createMakeStyles(dt){const{useTheme:ht,cache:Dt}=dt,{useCache:Cn}=createUseCache({cacheProvidedAtInception:Dt}),{useCssAndCx:$n}=createUseCssAndCx({useCache:Cn});function Un(Hn){const{name:Gn,uniqId:Qn=`${counter$1++}`}=Hn??{},qn=typeof Gn!="object"?Gn:Object.keys(Gn)[0];return function(er){const Wn=typeof er=="function"?er:()=>er;return function(Zn,Xn){const ar=ht();let{css:dr,cx:or}=$n();const sr=Cn();let vr=reactExports.useMemo(()=>{const hr={},gr=typeof Proxy<"u"&&new Proxy({},{get:(nr,Sr)=>(typeof Sr=="symbol"&&assert(!1),hr[Sr]=`${sr.key}-${Qn}${qn!==void 0?`-${qn}`:""}-${Sr}-ref`)}),ur=Wn(ar,Zn,gr||{}),_r=objectFromEntries(objectKeys(ur).map(nr=>{const Sr=ur[nr];return Sr.label||(Sr.label=`${qn!==void 0?`${qn}-`:""}${nr}`),[nr,`${dr(Sr)}${typeGuard(nr,nr in hr)?` ${hr[nr]}`:""}`]}));return objectKeys(hr).forEach(nr=>{nr in _r||(_r[nr]=hr[nr])}),_r},[sr,dr,or,ar,getDependencyArrayRef(Zn)]);{const hr=Xn==null?void 0:Xn.props.classes;vr=reactExports.useMemo(()=>mergeClasses(vr,hr,or),[vr,getDependencyArrayRef(hr),or])}{const hr=useMuiThemeStyleOverridesPlugin({classes:vr,css:dr,cx:or,name:qn??"makeStyle no name",idOfUseStyles:Qn,muiStyleOverridesParams:Xn,theme:ar});hr.classes!==void 0&&(vr=hr.classes),hr.css!==void 0&&(dr=hr.css),hr.cx!==void 0&&(or=hr.cx)}return{classes:vr,theme:ar,css:dr,cx:or}}}}function Fn(){const Hn=ht(),{css:Gn,cx:Qn}=$n();return{theme:Hn,css:Gn,cx:Qn}}return{makeStyles:Un,useStyles:Fn}}const reactContext=reactExports.createContext(void 0),{createUseCache}=(()=>{function dt(){return reactExports.useContext(reactContext)}function ht(Dt){const{cacheProvidedAtInception:Cn}=Dt;function $n(){var Un;const Fn=__unsafe_useEmotionCache(),Hn=dt(),Gn=(Un=Cn??Hn)!==null&&Un!==void 0?Un:Fn;if(Gn===null)throw new Error(["In order to get SSR working with tss-react you need to explicitly provide an Emotion cache.","MUI users be aware: This is not an error strictly related to tss-react, with or without tss-react,","MUI needs an Emotion cache to be provided for SSR to work.","Here is the MUI documentation related to SSR setup: https://mui.com/material-ui/guides/server-rendering/","TSS provides helper that makes the process of setting up SSR easier: https://docs.tss-react.dev/ssr"].join(`
328
+ ${jn}`)}if(Wn){const jn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),"native");Qn=toDecimals(Wn,jn,MAX_DECIMALS)}}if(!Qn){let Wn;try{Wn=await fetchRedeemedEventSender(Fn)}catch(ar){console.error(ar)}if(Wn&&Wn===Fn.recipient){const ar=toNormalizedDecimals(Fn.amount,Fn.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${ar} ${getDisplayName(Hn)}`,valueUSD:calculateUSDPrice(ar,Cn,Hn)},{title:"Native gas token",value:`${NO_INPUT}`},{title:"Relayer fee",value:`${NO_INPUT}`}]}}const jn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),Fn.tokenId),Zn=await calculateNativeTokenAmt(Fn.toChain,Fn.tokenId,fromNormalizedDecimals(BigNumber$2.from(Fn.toNativeTokenAmount),jn),Fn.recipient),Xn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),"native");Qn=toDecimals(Zn.toString(),Xn,MAX_DECIMALS)}const qn=BigNumber$2.from(Fn.amount).sub(BigNumber$2.from(Fn.relayerFee)).sub(BigNumber$2.from(Fn.toNativeTokenAmount||0)),er=toNormalizedDecimals(qn,Fn.tokenDecimals,MAX_DECIMALS);return{route:this.TYPE,displayData:[{title:"Amount",value:`${er} ${getDisplayName(Hn)}`,valueUSD:calculateUSDPrice(er,Cn,Hn)},{title:"Native gas token",value:Qn?`${Qn} ${getDisplayName(config$2.tokens[Gn])}`:NO_INPUT,valueUSD:calculateUSDPrice(Qn,Cn,config$2.tokens[Gn])}]}}async tryFetchRedeemTx(Dt){if(!isSignedWormholeMessage(Dt))throw new Error("Signed message is not for relay");let Cn;try{const $n=await fetchRedeemedEvent(Dt);Cn=$n==null?void 0:$n.transactionHash}catch($n){console.error($n)}return Cn}}const formatBalance=(dt,ht,Dt)=>{const Cn=getTokenDecimals(toChainId$1(dt),ht.tokenId);return Dt!==null?toDecimals(Dt,Cn,6):null},getNativeVersionOfToken=(dt,ht)=>{var Dt;return((Dt=Object.entries(config$2.tokens).map(([Cn,$n])=>$n).find(Cn=>Cn.symbol===dt&&Cn.nativeChain===ht))==null?void 0:Dt.key)||""},accessChainBalances=(dt,ht,Dt)=>{if(!Dt||!dt||!ht)return;const Cn=dt[ht];if(!Cn)return;const $n=Cn[Dt];if($n)return $n},accessBalance=(dt,ht,Dt,Cn)=>{const $n=accessChainBalances(dt,ht,Dt);if($n)return $n.balances[Cn]};function getInitialState(){var dt,ht,Dt;return{showValidationState:!1,validations:{fromChain:"",toChain:"",token:"",destToken:"",amount:"",route:"",toNativeToken:"",sendingWallet:"",receivingWallet:"",foreignAsset:"",relayerFee:"",receiveAmount:""},routeStates:void 0,fromChain:((dt=config$2.bridgeDefaults)==null?void 0:dt.fromNetwork)||void 0,toChain:((ht=config$2.bridgeDefaults)==null?void 0:ht.toNetwork)||void 0,token:((Dt=config$2.bridgeDefaults)==null?void 0:Dt.token)||"",destToken:"",amount:"",receiveAmount:getEmptyDataWrapper(),route:void 0,balances:{},foreignAsset:"",associatedTokenAddress:"",gasEst:{send:"",claim:""},isTransactionInProgress:!1,receiverNativeBalance:"",supportedSourceTokens:[],allSupportedDestTokens:[],supportedDestTokens:[]}}const performModificationsIfFromChainChanged=dt=>{var Un,Fn;const{fromChain:ht,token:Dt,route:Cn,destToken:$n}=dt;if(Dt){const Hn=config$2.tokens[Dt];if((!ht||!Hn.tokenId&&Hn.nativeChain!==ht)&&(dt.token="",(!Cn||!isPorticoRoute(Cn))&&(dt.amount="")),isNttRoute(Cn)&&$n){const Gn=getNttGroupKey(Hn,config$2.tokens[$n]);Gn&&ht?dt.token=((Un=getNttTokenByGroupKey(Gn,ht))==null?void 0:Un.key)||"":dt.token=""}else Hn.symbol==="USDC"&&Hn.nativeChain!==ht?dt.token=getNativeVersionOfToken("USDC",ht):Hn.symbol==="tBTC"&&Hn.nativeChain!==ht?dt.token=getNativeVersionOfToken("tBTC",ht)||((Fn=config$2.tokens.tBTC)==null?void 0:Fn.key)||"":Cn&&isPorticoRoute(Cn)&&Hn.nativeChain!==ht&&(dt.token=getNativeVersionOfToken(Hn.symbol,ht))}},performModificationsIfToChainChanged=dt=>{var Un,Fn;const{toChain:ht,destToken:Dt,route:Cn,token:$n}=dt;if(Dt){const Hn=config$2.tokens[Dt];if(ht||(dt.destToken=""),isNttRoute(Cn)&&$n){const Gn=getNttGroupKey(Hn,config$2.tokens[$n]);Gn&&ht?dt.destToken=((Un=getNttTokenByGroupKey(Gn,ht))==null?void 0:Un.key)||"":dt.destToken=""}else Hn.symbol==="USDC"&&Hn.nativeChain!==ht?dt.destToken=getNativeVersionOfToken("USDC",ht):Hn.symbol==="tBTC"&&Hn.nativeChain!==ht?dt.destToken=getNativeVersionOfToken("tBTC",ht)||((Fn=config$2.tokens.tBTC)==null?void 0:Fn.key)||"":Cn&&isPorticoRoute(Cn)&&Hn.nativeChain!==ht&&(dt.destToken=getNativeVersionOfToken(Hn.symbol,ht))}},establishRoute=dt=>{const{routeStates:ht}=dt;if(!ht){dt.route=void 0;return}const Dt=[Route.CosmosGateway,Route.CCTPRelay,Route.CCTPManual,Route.TBTC,Route.ETHBridge,Route.wstETHBridge,Route.NttRelay,Route.NttManual,Route.Relay,Route.Bridge];for(const Cn of Dt){const $n=ht.find(Un=>Un.name===Cn);if($n&&$n.supported&&$n.available){dt.route=Cn;return}}dt.route=void 0},transferInputSlice=createSlice({name:"transfer",initialState:getInitialState(),reducers:{setValidations:(dt,{payload:{showValidationState:ht,validations:Dt}})=>{Object.keys(Dt).forEach(Cn=>{dt.validations[Cn]=Dt[Cn]}),!dt.showValidationState&&ht&&(dt.showValidationState=ht)},setRoutes:(dt,{payload:ht})=>{dt.routeStates=ht,establishRoute(dt)},setToken:(dt,{payload:ht})=>{dt.token=ht},setDestToken:(dt,{payload:ht})=>{dt.destToken=ht},setFromChain:(dt,{payload:ht})=>{dt.fromChain=ht,performModificationsIfFromChainChanged(dt)},setToChain:(dt,{payload:ht})=>{dt.toChain=ht,performModificationsIfToChainChanged(dt)},setAmount:(dt,{payload:ht})=>{dt.amount=ht},setReceiveAmount:(dt,{payload:ht})=>{dt.receiveAmount=receiveDataWrapper(ht)},setFetchingReceiveAmount:dt=>{dt.receiveAmount=fetchDataWrapper()},setReceiveAmountError:(dt,{payload:ht})=>{dt.receiveAmount=errorDataWrapper(ht)},updateBalances:(dt,{payload:ht})=>{var Un,Fn;const{chain:Dt,balances:Cn,address:$n}=ht;$n&&((Un=dt.balances)[$n]??(Un[$n]={}),(Fn=dt.balances[$n])[Dt]??(Fn[Dt]={balances:{}}),dt.balances[$n][Dt].balances={...dt.balances[$n][Dt].balances,...Cn})},setReceiverNativeBalance:(dt,{payload:ht})=>{dt.receiverNativeBalance=ht},setForeignAsset:(dt,{payload:ht})=>{dt.foreignAsset=ht},setAssociatedTokenAddress:(dt,{payload:ht})=>{dt.associatedTokenAddress=ht},setTransferRoute:(dt,{payload:ht})=>{if(!ht){dt.route=void 0;return}dt.routeStates&&dt.routeStates.some(Dt=>Dt.name===ht&&Dt.supported)?dt.route=ht:dt.route=void 0},setSendingGasEst:(dt,{payload:ht})=>{dt.gasEst.send=ht},setClaimGasEst:(dt,{payload:ht})=>{dt.gasEst.claim=ht},clearTransfer:dt=>{const ht=getInitialState();Object.keys(dt).forEach(Dt=>{dt[Dt]=ht[Dt]})},setIsTransactionInProgress:(dt,{payload:ht})=>{dt.isTransactionInProgress=ht},setSupportedSourceTokens:(dt,{payload:ht})=>{dt.supportedSourceTokens=ht},setSupportedDestTokens:(dt,{payload:ht})=>{dt.supportedDestTokens=ht},setAllSupportedDestTokens:(dt,{payload:ht})=>{dt.allSupportedDestTokens=ht},swapChains:dt=>{const ht=dt.fromChain;dt.fromChain=dt.toChain,dt.toChain=ht,performModificationsIfFromChainChanged(dt),performModificationsIfToChainChanged(dt)}}}),isDisabledChain=(dt,ht)=>ht.name==="OKX Wallet"&&dt==="evmos"?!0:!walletAcceptedChains(ht.type).includes(dt),selectFromChain=async(dt,ht,Dt)=>{selectChain(TransferWallet.SENDING,dt,ht,Dt)},selectToChain=async(dt,ht,Dt)=>{selectChain(TransferWallet.RECEIVING,dt,ht,Dt)},selectChain=async(dt,ht,Dt,Cn)=>{isDisabledChain(Dt,Cn)&&(ht(clearWallet(dt)),ht(setWalletError({type:dt,error:"Wallet disconnected, please connect a supported wallet"})));const $n=config$2.chains[Dt];if($n){if($n.context===Cn.type&&Cn.type===Context.COSMOS){const Un=await switchChain($n.chainId,dt);Un&&ht(setAddress({type:dt,address:Un}))}ht(dt===TransferWallet.SENDING?setFromChain(Dt):setToChain(Dt))}},{setValidations,setRoutes,setToken,setDestToken,setFromChain,setToChain,setAmount,setReceiveAmount,setFetchingReceiveAmount,setReceiveAmountError,setForeignAsset,setAssociatedTokenAddress,setTransferRoute,setSendingGasEst,setClaimGasEst,updateBalances,clearTransfer,setIsTransactionInProgress,setReceiverNativeBalance:setReceiverNativeBalance$1,setSupportedDestTokens,setAllSupportedDestTokens,setSupportedSourceTokens,swapChains}=transferInputSlice.actions,transferInputReducer=transferInputSlice.reducer,initialState$4={maxSwapAmt:void 0,toNativeToken:0,receiveNativeAmt:void 0,relayerFee:void 0,receiverNativeBalance:""},relaySlice=createSlice({name:"transfer",initialState:initialState$4,reducers:{setToNativeToken:(dt,{payload:ht})=>{dt.toNativeToken=ht},setMaxSwapAmt:(dt,{payload:ht})=>{dt.maxSwapAmt=ht},setReceiveNativeAmt:(dt,{payload:ht})=>{dt.receiveNativeAmt=ht},setRelayerFee:(dt,{payload:ht})=>{dt.relayerFee=ht},setReceiverNativeBalance:(dt,{payload:ht})=>{dt.receiverNativeBalance=ht},clearRelay:dt=>{Object.keys(dt).forEach(ht=>{dt[ht]=initialState$4[ht]})}}}),{setToNativeToken,setMaxSwapAmt,setReceiveNativeAmt,setRelayerFee:setRelayerFee$1,setReceiverNativeBalance}=relaySlice.actions,relayReducer=relaySlice.reducer,initialState$3={route:"bridge",showFromChainsModal:!1,showToChainsModal:!1,showTokensModal:!1,showWalletModal:!1},routerSlice=createSlice({name:"router",initialState:initialState$3,reducers:{setWalletModal:(dt,{payload:ht})=>{dt.showWalletModal=ht},setRoute:(dt,{payload:ht})=>{dt.route=ht}}}),{setWalletModal,setRoute}=routerSlice.actions,routerReducer=routerSlice.reducer,initialState$2={relayerFee:getEmptyDataWrapper(),swapAmounts:getEmptyDataWrapper()},porticoBridgeSlice=createSlice({name:"porticoBridge",initialState:initialState$2,reducers:{setRelayerFee:(dt,{payload:ht})=>{dt.relayerFee=receiveDataWrapper(ht)},setFetchingRelayerFee:dt=>{dt.relayerFee=fetchDataWrapper()},setRelayerFeeError:(dt,{payload:ht})=>{dt.relayerFee=errorDataWrapper(ht)},resetRelayerFee:dt=>{dt.relayerFee=getEmptyDataWrapper()},setSwapAmounts:(dt,{payload:ht})=>{dt.swapAmounts=receiveDataWrapper(ht)},setFetchingSwapAmounts:dt=>{dt.swapAmounts=fetchDataWrapper()},setSwapAmountsError:(dt,{payload:ht})=>{dt.swapAmounts=errorDataWrapper(ht)},resetSwapAmounts:dt=>{dt.swapAmounts=getEmptyDataWrapper()},clearPorticoBridge:()=>initialState$2}}),{setRelayerFee,setFetchingRelayerFee,setRelayerFeeError,resetRelayerFee,setSwapAmounts,setFetchingSwapAmounts,setSwapAmountsError,resetSwapAmounts,clearPorticoBridge}=porticoBridgeSlice.actions,porticoBridgeReducer=porticoBridgeSlice.reducer,initialState$1={usdPrices:getEmptyDataWrapper()},tokenPricesSlice=createSlice({name:"tokenPrices",initialState:initialState$1,reducers:{setPrices:(dt,{payload:ht})=>{dt.usdPrices=receiveDataWrapper(ht)},setFetchingPrices:dt=>{dt.usdPrices=fetchDataWrapper()},setPricesError:(dt,{payload:ht})=>{dt.usdPrices=errorDataWrapper(ht)},resetPrices:dt=>{dt.usdPrices=getEmptyDataWrapper()},clearTokenPrices:()=>initialState$1}}),{setPrices,setFetchingPrices,setPricesError,resetPrices,clearTokenPrices}=tokenPricesSlice.actions,tokenPricesReducer=tokenPricesSlice.reducer,initialState={inboundQueuedTransfer:getEmptyDataWrapper()},nttSlice=createSlice({name:"ntt",initialState,reducers:{setInboundQueuedTransfer:(dt,{payload:ht})=>{dt.inboundQueuedTransfer=receiveDataWrapper(ht)},resetInboundQueuedTransfer:dt=>{dt.inboundQueuedTransfer=getEmptyDataWrapper()},clearNtt:()=>initialState}}),{setInboundQueuedTransfer,resetInboundQueuedTransfer,clearNtt}=nttSlice.actions,nttReducer=nttSlice.reducer,store=configureStore({reducer:{redeem:redeemReducer,transferInput:transferInputReducer,router:routerReducer,wallet:walletReducer,relay:relayReducer,porticoBridge:porticoBridgeReducer,tokenPrices:tokenPricesReducer,ntt:nttReducer}}),objectFromEntries=Object.fromEntries?Object.fromEntries:dt=>{if(!dt||!dt[Symbol.iterator])throw new Error("Object.fromEntries() requires a single iterable argument");const ht={};return Object.keys(dt).forEach(Dt=>{const[Cn,$n]=dt[Dt];ht[Cn]=$n}),ht};function objectKeys(dt){return Object.keys(dt)}function assert(dt,ht){if(!dt)throw new Error(ht)}function typeGuard(dt,ht){return ht}const classnames=dt=>{const ht=dt.length;let Dt=0,Cn="";for(;Dt<ht;Dt++){const $n=dt[Dt];if($n==null)continue;let Un;switch(typeof $n){case"boolean":break;case"object":{if(Array.isArray($n))Un=classnames($n);else{assert(!typeGuard($n,!1)),Un="";for(const Fn in $n)$n[Fn]&&Fn&&(Un&&(Un+=" "),Un+=Fn)}break}default:Un=$n}Un&&(Cn&&(Cn+=" "),Cn+=Un)}return Cn};function useGuaranteedMemo(dt,ht){const Dt=reactExports.useRef();return(!Dt.current||ht.length!==Dt.current.prevDeps.length||Dt.current.prevDeps.map((Cn,$n)=>Cn===ht[$n]).indexOf(!1)>=0)&&(Dt.current={v:dt(),prevDeps:[...ht]}),Dt.current.v}function matchCSSObject(dt){return dt instanceof Object&&!("styles"in dt)&&!("length"in dt)&&!("__emotion_styles"in dt)}const{createCssAndCx}=(()=>{function dt(Dt,Cn,$n){const Un=[],Fn=getRegisteredStyles(Dt,Un,$n);return Un.length<2?$n:Fn+Cn(Un)}function ht(Dt){const{cache:Cn}=Dt,$n=(...Fn)=>{const Hn=serializeStyles(Fn,Cn.registered);insertStyles(Cn,Hn,!1);const Gn=`${Cn.key}-${Hn.name}`;e:{const Qn=Fn[0];if(!matchCSSObject(Qn))break e;increaseSpecificityToTakePrecedenceOverMediaQueries.saveClassNameCSSObjectMapping(Cn,Gn,Qn)}return Gn};return{css:$n,cx:(...Fn)=>{const Hn=classnames(Fn),Gn=increaseSpecificityToTakePrecedenceOverMediaQueries.fixClassName(Cn,Hn,$n);return dt(Cn.registered,$n,Gn)}}}return{createCssAndCx:ht}})();function createUseCssAndCx(dt){const{useCache:ht}=dt;function Dt(){const Cn=ht(),{css:$n,cx:Un}=useGuaranteedMemo(()=>createCssAndCx({cache:Cn}),[Cn]);return{css:$n,cx:Un}}return{useCssAndCx:Dt}}const increaseSpecificityToTakePrecedenceOverMediaQueries=(()=>{const dt=new WeakMap;return{saveClassNameCSSObjectMapping:(ht,Dt,Cn)=>{let $n=dt.get(ht);$n===void 0&&($n=new Map,dt.set(ht,$n)),$n.set(Dt,Cn)},fixClassName:(()=>{function ht(Dt){let Cn=!1;return Dt.map(([$n,Un])=>{if(Un===void 0)return $n;let Fn;if(Cn)Fn={"&&":Un};else{Fn=$n;for(const Hn in Un)if(Hn.startsWith("@media")){Cn=!0;break}}return Fn})}return(Dt,Cn,$n)=>{const Un=dt.get(Dt);return classnames(ht(Cn.split(" ").map(Fn=>[Fn,Un==null?void 0:Un.get(Fn)])).map(Fn=>typeof Fn=="string"?Fn:$n(Fn)))}})()}})();function getDependencyArrayRef(dt){if(!(dt instanceof Object)||typeof dt=="function")return dt;const ht=[];for(const Dt in dt){const Cn=dt[Dt],$n=typeof Cn;if(!($n==="string"||$n==="number"&&!isNaN(Cn)||$n==="boolean"||Cn===void 0||Cn===null))return dt;ht.push(`${Dt}:${$n}_${Cn}`)}return"xSqLiJdLMd9s"+ht.join("|")}function mergeClasses(dt,ht,Dt){if(!(ht instanceof Object))return dt;const Cn={};return objectKeys(dt).forEach($n=>Cn[$n]=Dt(dt[$n],ht[$n])),objectKeys(ht).forEach($n=>{if($n in dt)return;const Un=ht[$n];typeof Un=="string"&&(Cn[$n]=Un)}),Cn}const useMuiThemeStyleOverridesPlugin=({classes:dt,theme:ht,muiStyleOverridesParams:Dt,css:Cn,cx:$n,name:Un})=>{var Fn,Hn;e:{if(Un==="makeStyle no name"){Un=void 0;break e}if(Dt!==void 0&&Un===void 0)throw new Error("To use muiStyleOverridesParams, you must specify a name using .withName('MyComponent')")}let Gn;try{Gn=Un===void 0?void 0:((Hn=(Fn=ht.components)===null||Fn===void 0?void 0:Fn[Un])===null||Hn===void 0?void 0:Hn.styleOverrides)||void 0}catch{}const Qn=reactExports.useMemo(()=>{if(Gn===void 0)return;const qn={};for(const er in Gn){const Wn=Gn[er];Wn instanceof Object&&(qn[er]=Cn(typeof Wn=="function"?Wn(Object.assign({theme:ht,ownerState:Dt==null?void 0:Dt.ownerState},Dt==null?void 0:Dt.props)):Wn))}return qn},[Gn,getDependencyArrayRef(Dt==null?void 0:Dt.props),getDependencyArrayRef(Dt==null?void 0:Dt.ownerState),Cn]);return dt=reactExports.useMemo(()=>mergeClasses(dt,Qn,$n),[dt,Qn,$n]),{classes:dt}};let counter$1=0;function createMakeStyles(dt){const{useTheme:ht,cache:Dt}=dt,{useCache:Cn}=createUseCache({cacheProvidedAtInception:Dt}),{useCssAndCx:$n}=createUseCssAndCx({useCache:Cn});function Un(Hn){const{name:Gn,uniqId:Qn=`${counter$1++}`}=Hn??{},qn=typeof Gn!="object"?Gn:Object.keys(Gn)[0];return function(er){const Wn=typeof er=="function"?er:()=>er;return function(Zn,Xn){const ar=ht();let{css:dr,cx:or}=$n();const sr=Cn();let vr=reactExports.useMemo(()=>{const hr={},gr=typeof Proxy<"u"&&new Proxy({},{get:(nr,Sr)=>(typeof Sr=="symbol"&&assert(!1),hr[Sr]=`${sr.key}-${Qn}${qn!==void 0?`-${qn}`:""}-${Sr}-ref`)}),ur=Wn(ar,Zn,gr||{}),_r=objectFromEntries(objectKeys(ur).map(nr=>{const Sr=ur[nr];return Sr.label||(Sr.label=`${qn!==void 0?`${qn}-`:""}${nr}`),[nr,`${dr(Sr)}${typeGuard(nr,nr in hr)?` ${hr[nr]}`:""}`]}));return objectKeys(hr).forEach(nr=>{nr in _r||(_r[nr]=hr[nr])}),_r},[sr,dr,or,ar,getDependencyArrayRef(Zn)]);{const hr=Xn==null?void 0:Xn.props.classes;vr=reactExports.useMemo(()=>mergeClasses(vr,hr,or),[vr,getDependencyArrayRef(hr),or])}{const hr=useMuiThemeStyleOverridesPlugin({classes:vr,css:dr,cx:or,name:qn??"makeStyle no name",idOfUseStyles:Qn,muiStyleOverridesParams:Xn,theme:ar});hr.classes!==void 0&&(vr=hr.classes),hr.css!==void 0&&(dr=hr.css),hr.cx!==void 0&&(or=hr.cx)}return{classes:vr,theme:ar,css:dr,cx:or}}}}function Fn(){const Hn=ht(),{css:Gn,cx:Qn}=$n();return{theme:Hn,css:Gn,cx:Qn}}return{makeStyles:Un,useStyles:Fn}}const reactContext=reactExports.createContext(void 0),{createUseCache}=(()=>{function dt(){return reactExports.useContext(reactContext)}function ht(Dt){const{cacheProvidedAtInception:Cn}=Dt;function $n(){var Un;const Fn=__unsafe_useEmotionCache(),Hn=dt(),Gn=(Un=Cn??Hn)!==null&&Un!==void 0?Un:Fn;if(Gn===null)throw new Error(["In order to get SSR working with tss-react you need to explicitly provide an Emotion cache.","MUI users be aware: This is not an error strictly related to tss-react, with or without tss-react,","MUI needs an Emotion cache to be provided for SSR to work.","Here is the MUI documentation related to SSR setup: https://mui.com/material-ui/guides/server-rendering/","TSS provides helper that makes the process of setting up SSR easier: https://docs.tss-react.dev/ssr"].join(`
329
329
  `));return Gn}return{useCache:$n}}return{createUseCache:ht}})();function capitalize(dt){return dt.charAt(0).toUpperCase()+dt.slice(1)}var __rest$1=function(dt,ht){var Dt={};for(var Cn in dt)Object.prototype.hasOwnProperty.call(dt,Cn)&&ht.indexOf(Cn)<0&&(Dt[Cn]=dt[Cn]);if(dt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $n=0,Cn=Object.getOwnPropertySymbols(dt);$n<Cn.length;$n++)ht.indexOf(Cn[$n])<0&&Object.prototype.propertyIsEnumerable.call(dt,Cn[$n])&&(Dt[Cn[$n]]=dt[Cn[$n]]);return Dt};function createWithStyles(dt){const{useTheme:ht,cache:Dt}=dt,{makeStyles:Cn}=createMakeStyles({useTheme:ht,cache:Dt});function $n(Un,Fn,Hn){const Gn=typeof Un=="string"?(()=>{const jn=Un,Zn=function(Xn){var{children:ar}=Xn,dr=__rest$1(Xn,["children"]);return reactExports.createElement(jn,dr,ar)};return Object.defineProperty(Zn,"name",{value:capitalize(jn)}),Zn})():Un,Qn=(()=>{{const{name:jn}=Hn??{};if(jn!==void 0)return typeof jn!="object"?jn:Object.keys(jn)[0]}{const jn=Gn.displayName;if(typeof jn=="string"&&jn!=="")return jn}{const{name:jn}=Gn;if(jn)return jn}})(),qn=Cn(Object.assign(Object.assign({},Hn),{name:Qn}))(typeof Fn=="function"?(jn,Zn,Xn)=>incorporateMediaQueries(Fn(jn,Zn,Xn)):incorporateMediaQueries(Fn));function er(jn){for(const Zn in jn)if(Zn!=="root")return!0;return!1}const Wn=reactExports.forwardRef(function(jn,Zn){const{className:Xn,classes:ar}=jn,dr=__rest$1(jn,["className","classes"]),{classes:or,cx:sr}=qn(jn,{props:jn}),vr=sr(or.root,Xn);return fixedClassesByClasses.set(or,Object.assign(Object.assign({},or),{root:vr})),React.createElement(Gn,Object.assign({ref:Zn,className:er(or)?Xn:vr},typeof Un=="string"?{}:{classes:or},dr))});return Qn!==void 0&&(Wn.displayName=`${capitalize(Qn)}WithStyles`,Object.defineProperty(Wn,"name",{value:Wn.displayName})),Wn}return $n.getClasses=getClasses,{withStyles:$n}}const fixedClassesByClasses=new WeakMap,errorMessageGetClasses="getClasses should only be used in conjunction with withStyles";function getClasses(dt){const ht=dt.classes;if(ht===void 0)throw new Error(errorMessageGetClasses);const Dt=fixedClassesByClasses.get(ht);if(Dt===void 0)throw new Error(errorMessageGetClasses);return Dt}function incorporateMediaQueries(dt){const ht={},Dt={};return Object.keys(dt).forEach(Cn=>(Cn.startsWith("@media")?Dt:ht)[Cn]=dt[Cn]),Object.keys(Dt).forEach(Cn=>{const $n=Dt[Cn];Object.keys($n).forEach(Un=>{var Fn;return ht[Un]=Object.assign(Object.assign({},(Fn=ht[Un])!==null&&Fn!==void 0?Fn:{}),{[Cn]:$n[Un]})})}),ht}const isSSR=!(typeof document=="object"&&typeof(document==null?void 0:document.getElementById)=="function")&&!(typeof jest<"u")&&!(typeof mocha<"u")&&!(typeof __vitest_worker__<"u");var __rest=function(dt,ht){var Dt={};for(var Cn in dt)Object.prototype.hasOwnProperty.call(dt,Cn)&&ht.indexOf(Cn)<0&&(Dt[Cn]=dt[Cn]);if(dt!=null&&typeof Object.getOwnPropertySymbols=="function")for(var $n=0,Cn=Object.getOwnPropertySymbols(dt);$n<Cn.length;$n++)ht.indexOf(Cn[$n])<0&&Object.prototype.propertyIsEnumerable.call(dt,Cn[$n])&&(Dt[Cn[$n]]=dt[Cn[$n]]);return Dt};function createTss(dt){const{useContext:ht,usePlugin:Dt,cache:Cn}=dt,{useCache:$n}=createUseCache({cacheProvidedAtInception:Cn}),{useCssAndCx:Un}=createUseCssAndCx({useCache:$n});return{tss:createTss_internal({useContext:ht,useCache:$n,useCssAndCx:Un,usePlugin:Dt??(({classes:Gn,cx:Qn,css:qn})=>({classes:Gn,cx:Qn,css:qn})),name:void 0,doesUseNestedSelectors:!1})}}let counter=0;const nestedSelectorUsageTrackRecord=[];function createTss_internal(dt){const{useContext:ht,useCache:Dt,useCssAndCx:Cn,usePlugin:$n,name:Un,doesUseNestedSelectors:Fn}=dt;return{withParams:()=>createTss_internal(Object.assign({},dt)),withName:Hn=>createTss_internal(Object.assign(Object.assign({},dt),{name:typeof Hn!="object"?Hn:Object.keys(Hn)[0]})),withNestedSelectors:()=>createTss_internal(Object.assign(Object.assign({},dt),{doesUseNestedSelectors:!0})),create:Hn=>{const Gn=`x${counter++}`,Qn=typeof Hn=="function"?Hn:()=>Hn;return function(er){var Wn,jn,Zn;const Xn=er??{},{classesOverrides:ar}=Xn,dr=__rest(Xn,["classesOverrides"]),or=ht(),{css:sr,cx:vr}=Cn(),hr=Dt();let gr=reactExports.useMemo(()=>{const _r={},nr=Qn(Object.assign(Object.assign(Object.assign({},er),or),Fn?{classes:typeof Proxy>"u"?{}:new Proxy({},{get:(Ar,tr)=>{if(typeof tr=="symbol"&&assert(!1),isSSR){{let Yn=nestedSelectorUsageTrackRecord.find(fr=>fr.name===Un&&fr.idOfUseStyles===Gn);Yn===void 0&&(Yn={name:Un,idOfUseStyles:Gn,nestedSelectorRuleNames:new Set},nestedSelectorUsageTrackRecord.push(Yn)),Yn.nestedSelectorRuleNames.add(tr)}if(nestedSelectorUsageTrackRecord.find(Yn=>Yn.name===Un&&Yn.idOfUseStyles!==Gn&&Yn.nestedSelectorRuleNames.has(tr))!==void 0)throw new Error([`tss-react: Duplicate nested selector "${tr}" detected in ${Un===void 0?`useStyles named "${Un}"`:"anonymous useStyles function"}.`,"In SSR setups, this may lead to CSS class name collisions, causing nested selectors to target elements outside of the intended scope.",'Solution: Ensure each useStyles using nested selectors has a unique name. Use tss.withName("UniqueName").withNestedSelectors<...>()... to set a name.'].join(`
330
- `))}return _r[tr]=`${hr.key}-${Gn}${Un!==void 0?`-${Un}`:""}-${tr}-ref`}})}:{})),Sr=objectFromEntries(objectKeys(nr).map(Ar=>{const tr=nr[Ar];return tr.label||(tr.label=`${Un!==void 0?`${Un}-`:""}${Ar}`),[Ar,`${sr(tr)}${typeGuard(Ar,Ar in _r)?` ${_r[Ar]}`:""}`]}));return objectKeys(_r).forEach(Ar=>{Ar in Sr||(Sr[Ar]=_r[Ar])}),Sr},[hr,sr,vr,getDependencyArrayRef(er),...Object.values(or)]);gr=reactExports.useMemo(()=>mergeClasses(gr,ar,vr),[gr,getDependencyArrayRef(ar),vr]);const ur=$n(Object.assign(Object.assign({classes:gr,css:sr,cx:vr,idOfUseStyles:Gn,name:Un},or),dr));return Object.assign({classes:(Wn=ur.classes)!==null&&Wn!==void 0?Wn:gr,css:(jn=ur.css)!==null&&jn!==void 0?jn:sr,cx:(Zn=ur.cx)!==null&&Zn!==void 0?Zn:vr},or)}}}}function createMakeAndWithStyles(dt){return Object.assign(Object.assign({},createMakeStyles(dt)),createWithStyles(dt))}const{tss:tss$1}=createTss({useContext:()=>({})});tss$1.create({});const{makeStyles,withStyles}=createMakeAndWithStyles({useTheme}),{tss}=createTss({useContext:function dt(){return{theme:useTheme()}},usePlugin:useMuiThemeStyleOverridesPlugin});tss.create({});const SANCTIONED_WALLETS=Object.freeze(new Set(["3","1Gq","1N6XqS","1B64QRxf","1B11Ezqg3AXj","3F6bbvS1krsc1qR8FsbTDfYQyvkMm","125W5ek3DT6Zqy5S2iPt4FHQdNMCbZA3FU","1295rkVyNfFpqZpXvKGhDqwhP1jZcNNDMV","129zKFLoVad9JtxSmDKeJoLCsjhGR7b3vr","12HQDsicffSBaYdJ6BhnE22sfjTESmmzKx","12NpCkhddSNiDkD9rRYUCHsTT9ReMNiJjG","12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h","12udabs2TkX7NXCSj6KpqXfakjE52ZPLhz","12w6v1qAaBc4W8h8C2Cu5SKFaKDSv3erUW","12YCfVAEzkEZXBYhUTyJJaRkgMXiFxJgcu","12YyR9EpvHxBjjKjTWqfKqeyoWnvcraxpW","134r8iHv69xdT6p5qVKTsHrcUEuBVZAYak","13f59kUM5FU8MfTG7DCEugYarDhSD7XCoC","13mnk8SvDGqsQTHbiGiHBXqtaQCUKfcsnP","13RH4JaFhaCxDGPyYE9emjp2aDxdX18uBA","13YBQr2Cp1YY3xqq2qngaPb7ca1o4ugeq6","149w62rY42aZBox8fGcmqNsXUzSStKeq8C","14gM1HuLVDELNHaFU22qpabjtiWek4HhV1","14kqryJUxM3a7aEi117KX9hoLUw592WsMR","14rjAD8ZP5xaL571cMRE98qgxxbg1S8mAN","158treVZBGMBThoaympxccPdZPtqUfYrT9","15cRqR3TXS1JehBGWERuxFE8NhWZzfoeeU","15kZobLkD6HZgEECtz4oS2Vz21XHTnNfSg","15Pt4NwZaUmMUwS2bQbyyncc7mzgWShtv8","15qyVrZvvVGvB7GWiAZ82TNcZ6QWMKu3kx","15uqdxqNXQwVf5H7yZPz4TmEGeSccCwdor","15YK647qtoZQDzNrvY6HJL6QwXduLHfT28","15yqWQ4sqr7jzCwDtZ3U1KaCa8WMEy7Mm2","16PhXY3hNNMTo8kpuJx2emh713KbWpkqci","17a5bpKvEp1j1Trs4qTbcNZrby53JbaS9C","17ezuJoT3XBbdcwFZbkTnrXbup11F4uhiy","17mhyeBX617ABZ1ffThhUTJkHUcMvCkfd5","17UVSMegvrzfobKC82dHXpZLtLcqzW9stF","17V7THwHMiDJmDwZK4unhE5HgKFJKx7VCe","182NGZbPJXwg2WDrhrPpR7tpiGQkNPF844","18gaXypKj9M23S2zT9qZfL9iPbLFM372Q5","18Qj1THHuETfYhuRDZycXJbWwDMGw73Poa","18uKfaUjgG52rVeXEi3wxnveww7zZuECtE","18yWCu6agTxYqAerMxiz9sgHrK3ViezzGa","1986rYHckYbJpGQJy6ornuMyD2N5MTqwDt","19D1iGzDr7FyAdiy3ZZdxMd6ttHj1kj6WW","19D8PHBjZH29uS1uPZ4m3sVyqqfF8UFG9o","19GrL5jnUkGmHXVcraB1Etv5rXCANeLWpq","1A7SKE2dQtezLktCY8peLsdAtkqxV9r1dC","1AeSq93WDNdLoEJ92sex7T8xQZoYYm8BtS","1AjZPMsnmpdK2Rv9KQNfMurTXinscVro9V","1AoxtfiBQ22DvbhqAN9Ctb8sULMRhrdwTr","1AXUTu9y3H8w4wYx4BjyFWgRhZKDhmcMrn","1BiUFjzH6wsT73U3tfy4aXHCQsYQHzjk5h","1CF46Rfbp97absrs7zb7dFfZS6qBXUm9EP","1CPJak9ZyddbawMGJPyEhCiJLXXb4sYv8N","1D6gG9iKEhPitTcWRJiniuj1jYM2hNeAfJ","1DbShx4r8i2XesthoDBf5EkYWz5dsKEusV","1DbvK8P6imBuLcwh2Vruis4xsUb8YAwJQF","1DDA93oZPn7wte2eR1ABwcFoxUFxkKMwCf","1Df883c96LVauVsx9FEgnsourD8DELwCUQ","1DH2xDH7TngrDU6LXciprKCBKNcPA1xX8A","1DJoEMvp95yJYWyxAZy8DDBzuvjnrTVrsN","1DJoVLgn1foJHHngduRPJvRbwpaFEKxvxd","1DT3tenf14cxz9WFNxmYrXFbB6TFiVWA9U","1DYFJ6CuBvrxyoQSuBzVsNcetY9tvdsrag","1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K","1Edue8XZCWNoDBNZgnQkCCivDyr9GEo4x6","1EfMVkxQQuZfBdocpJu6RUsCJvenQWbQyE","1EpMiZkQVekM5ij12nMiEwttFPcDK9XhX6","1EYitrwBYNWuTBcjZFbEUdqHppe2raLpaF","1F2Gdug9ib9NQMhKMGGJczzMk5SuENoqrp","1FCNgfZWpYMeYhy9t18AAkTBu8AsdoAc1Z","1FE2cuvkq8n5VGwj5hi8YYQxskwJpovPyV","1FjubFHV4mpYjBmvjsEhZssyiiA4TNmnm2","1FRyL9gmFGbzfYDAB4iY9836DJe3KSnjP9","1Fz29BQp82pE3vXXcsZoMNQ3KSHfMzfMe3","1G6DuwDKNHiUWqks2Lgu44cesu7ffFbLK7","1G9A8WRjGXdnYY4TNEVRrcaHsMtana4ncF","1G9CKRHA3mx22DoT1QyNYrh85VSQ19Y1em","1GYuu9d5HPikafbys3k5Q3DRJq6debGsoB","1H939dom7i4WDLCKyGbXUp3fs9CSTNRzgL","1Hn9ErTCPRP6j5UDBeuXPGuq5RtRjFJxJQ","1Hpj6qm9i7nMF3VkKfBFtjhEDpEjxHWvgv","1J9oGoAiHeRfeMZeUnJ9W7RpV55CdKtgYE","1JHdQHkBZiim1cb4hyUh2PbzEbbg6z2TrF","1JPfVv5cWRLx1js9NWxg46dG2CGbeRz4th","1JREJdZupiFhE7ZzQPtASuMCvvpXC7wRsC","1Js6goCey2NaqPQptiLANLQGuk4d6mowjP","1Kc6egXevyLEaeTxLFA1Zyw7GuhCN8jQtt","1KctQENEX5QkQMpnMC3Zh9yRAzkMBLpPcr","1KgudqxMfYaGzqAA7MS4DcsqejtMteqhix","1KSAbh5trMCTZwhiNsuUQvfTtSSTT8zqRk","1Kuf2Rd8mDyAViwBozGTNYnvWL8uYFrkVo","1KUUJPkyDhamZXgpsyXqNGc3x1QPXtdhgz","1Kys8fqDen8NGFUJ6AFcXfFW5qquuTH4eh","1L4ncif9hh9TnUveqWq77HfWWt6CJWtrnb","1LAh7PQwpd1uGiLHae5C5Xz9QXse3y2phq","1LiNmTUPSJEd92ZgVJjAV3RT9BzUjvUCkx","1Ljk8RNNabkZ9bfDYQBn98XfFozJhTjqcZ","1LpYKb3SXZPve9hsH2QEJZFX279wJVGowi","1LrxsRd7zNuxPJcL5rttnoeJFy1y4AffYY","1MkCnCa9agS5t6V1B15bzusBgYECB4LfWp","1MLPqwaFFUBZePTjpR3nxRoK19Cv9mPCc7","1MnbhWe5wr7Ut45ReyQsm96PwnM9jD7KaH","1NayLEVF3bEEbDtdF2Cwso1VdEtvVNh2qX","1NE2NiGhhbkFPSEyNWwj7hKGhGDedBtSrQ","1NuBZQXJPyYQGfoBib8wWBDpZmbtkJa5Ba","1P3ZfGFLezzYGg9k5SVzQmnjyh7nrUmF2y","1PfwHNxUnkpfkK9MKjMqzR3Xq3KCtq9u17","1PhqQpaGCrqSxQ6QDXcv14QCd1U98Zp34E","1PJp8diNa89cVHpiT1VPu7EQ8LxYM5HX6v","1Q6saNmqKkyFB9mFR68Ck8F7Dp7dTopF2W","1Q9UAQbcDezmyouFrzt94t4dSMxgsUfW1X","31p6woV4e55HUfC2aGynFhzQnGoJFW26cD","32DaxSzUhLBHY2WGSWQYiBSHnRsfQZrrRp","32jgFkZsTEjMFaBvxJnYvJEeTNKTmq5b32","32pTjxTNi7snk8sodrgfmdKao3DEn1nVJM","32wdqwX3zCEX3DhAVEcKwXCEGdzgBnx1R9","33Kja69SQVc8kozpoP7Qw6HFtGxHkiWzTz","33xWfziVZesgo83U5izdNCBVTnrtBpSwK7","347QFbejDBdMZFTxpmn6evvvqyXiqZTCd7","34pFGsSYbWEritXncW9unZtQQE9dKSvKku","35KAdTa2vqnJzitF2xiUzZn1Gmcas2Y465","35LScRJ8hzDvvWh9t9UA8bHGnGNVz3YEfa","35QpLWYkvD3ALhjbge5bK2kd7HfHYcDMu3","35qwVtMEohWDdBWRiCSR7azoP5cbY8SG1Q","3685sEusmTwZBiKJ4cgV73EAhpVD1nbgbe","372Wk9NLrMkJzKgqJdatWJy4bYRfxFjgat","389Sft4nJFkPGhbagk9FN4jXncA9piYTuU","38ncxqt932N9CcfNfYuHGZgCyR85hDkWBW","38TftW1heYPqvKbiAhT4ttNBqkUPpooXad","39eboeqYNFe2VoLC3mUGx4dh6GNhLB3D2q","39fhoB2DohisGBbHvvfmkdPdShT75CNHdX","39NG2LcGRHXxSr1irpEVnJMw4ydL231sEn","39p8qWp1bkBNhi4vPpFTetKPtH7goqNDZf","39Te8MbphSgs7npDJPj2hbNzhke61NTcnB","3AjyprBY5yhijiCjUC5NUJutGbwhd3AQdE","3AQSmMk5n3c6TKEg9B2WyzYAPm33gJJAA4","3B7S6zrgxQVQUHTU8wstM23tB9afE7ojuX","3BsyZ7qRFSi3NsaoV1Ff724qAgrEpjVUHm","3DNsaQnaUz7wkQny1ZDSmtz6QfbEShxoDD","3E6rY4dSCDW6y2bzJNwrjvTtdmMQjB6yeh","3E6ZCKRrsdPc35chA9Eftp1h3DLW18NFNV","3E7YbpXuhh3CWFks1jmvWoV8y5DvsfzE6n","3EeR8FbcPbkcGj77D6ttneJxmsr3Nu7KGV","3EPqGUw2q89pwPZ1UF8FJspE2AyojSTjdu","3F2sZ4jbhvDKQdGbHYPC6ZxFXEau2m5Lqj","3F6bbvS1krsc1qR8FsbTDfYQyvkMm3QvmR","3Gbs4rjcVUtQd8p3CiFUCxPLZwRqurezRZ","3GXdtA6kbb4M5aqzZm5qqxcFDFRMW8LqdJ","3H3rh85qPaGLy2w6618yZNaH7i8asHv46B","3He6EyDaCUgmdr4GXqhxbeTQukaGLCByU2","3HePkztPU6UsdENxnyQHFrdZA6eVKeMtvz","3HqA7i3ttECLvgqvq69HNxxUP5BL7Z5YgA","3HQRveQzPifZorZLDXHernc5zjoZax8U9f","3JHMz3mTna1gVCZSPp8NgRFiY7phkv5mA8","3JXKQ81JzBqVbB8VHdV9Jtd7auWokkdPgY","3K35dyL85fR9ht7UgzPfd1gLRRXQtNTqE3","3K4rjdh8A5yi6LWvft2rbmyZvqEbPSSSX4","3K7PMJyMNVnxqsfpmK9r9nJDtzDw9wNwNV","3KHfXU24Bt3YD5Ef4J7uNp2buCuhrxfGen","3LbDu1rUXHNyiz4i8eb3KwkSSBMf7C583D","3LhnVMcBq4gsR7aDaRr9XmUo17CuYBV4FN","3Lpoy53K625zVeE47ZasiG5jGkAxJ27kh1","3MkUNScqf21EcfWq6T4x2MFgBeSTqhB5t6","3MN8nYo1tt5hLxMwMbxDkXWd7Xu522hb9P","3MTrJTFhYK9v1C6pjHtuweZSopfZa4b1wb","3MTRvM5QrYZHKo8gh5qKcrPK3RLjxcDCZE","3N6WeZ6i34taX8Ditser6LKWBcXmt2XXL4","3N9YcPBDky9UsMx1RTk33tL4jDkZfSnsPk","3NNcbBcMZokPB2JC2dxYuZrpgcetvyGeJn","3NQ1aa9ceirMJ1JvRq3eXefvXj1L639fzX","3NRJ8aXdUiZdHaiFX9ePX3DhGHzcEi14Fq","3NU9zkD8CCVGVmYnNNSN7PbU9sSFQBm5UV","3PiCnZrBvGfWAKQ9hr4cCpfaDjy64yNSpE","3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML","3Q5dGfLKkWqWSwYtbMUyc8xGjN5LrRviK4","DFFJhnQNZf8rf67tYnesPu7MuGUpYtzv7Z","GPwg61XoHqQPNmAucFACuQ5H9sGCDv9TpS","LaizKtS5DUhPuP1nTQcc83MS7HwK6vk85z","LeKvNdNEzgQkzVVnRdV3fAu2DSF1nLsNw6","Leo3j36nn1JcsUQruytQhFUdCdCH5YHMR3","LNwgtMxcKUQ51dw7bQL1yPQjBVZh6QEqsd","TEAqwfMhXLaomXhZ8KeMhx3njGmQEDnsUR","TMStbg5fgb4uTV7fK1gEYF9hKAzP3siPsG","TRBACioxdrdsYEZHvJWiUDZcMdBPpEe5Ub","TTKnV2S1295UrPr7N67Tp9ykNL7xX2Z4Uj","TUCsTq7TofTCJRRoHk6RvhMoS2mJLm5Yzq","TVacWx7F5wgMgn49L5frDf9KLgdYy8nPHL","TX5GV4DyfxNB3rPkzZJhmqZ1efVmL4rEqG","XnPFsRWTaSgiVauosEwQ6dEitGYXgwznz2","Xs3vzQmNvAxRa3Xo8XzQqUb3BMgb9EogF4","XyARKoupuArYtToA2S6yMdnoquDCDaBsaT","t1g7wowvQ8gn2v8jrU1biyJ26sieNqNsBJy","t1MMXtBrSp1XG38Lx9cePcNUCJj5vdWfUWL","0x03893a7c7463AE47D46bc7f091665f1893656003","0x07687e702b410Fa43f4cB4Af7FA097918ffD2730","0x08723392Ed15743cc38513C4925f5e6be5c17243","0x098B716B8Aaf21512996dC57EB0615e2383E2f96","0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc","0x22aaA7720ddd5388A3c0A3333430953C68f1849b","0x23773E65ed146A459791799d01336DB287f25334","0x2717c5e28cf931547B621a5dddb772Ab6A35B701","0x35fB6f6DB4fb05e6A4cE86f2C93691425626d4b1","0x38735f03b30FbC022DdD06ABED01F0Ca823C6a94","0x39D908dac893CBCB53Cc86e0ECc369aA4DeF1A29","0x3AD9dB589d201A710Ed237c829c7860Ba86510Fc","0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d","0x3Cffd56B47B7b41c56258D9C7731ABaDc360E073","0x3e37627dEAA754090fBFbb8bd226c1CE66D255e9","0x43fa21d92141BA9db43052492E0DeEE5aa5f0A93","0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936","0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c","0x530a64c0ce595026a4a556b703644228179e2d57","0x53b6936513e738f44FB50d2b9476730C0Ab3Bfc1","0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f","0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2","0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e","0x797d7ae72ebddcdea2a346c1834e04d1f8df102b","0x7F367cC41522cE07553e823bf3be79A889DEbe1B","0x7FF9cFad3877F21d41Da833E2F775dB0569eE3D9","0x901bb9583b24d97e995513c6778dc6888ab6870e","0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF","0x931546D9e66836AbF687d2bc64B30407bAc8C568","0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1","0x97b1043abd9e6fc31681635166d430a458d14f9c","0x983a81ca6FB1e441266D2FbcB7D8E530AC2E05A2","0x9c2bc757b66f24d60f016b6237f8cdd414a879fa","0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9","0xa0e1c89Ef1a489c9C7dE96311eD5Ce5D32c20E4B","0xA160cdAB225685dA1d56aa342Ad8841c3b53f291","0xa7e5d5a720f06526557c513402f2e6b5fa20b008","0xb6f5ec1a0a9cd1526536d3f0426c429529471f40","0xc2a3829F459B3Edd87791c74cD45402BA0a20Be3","0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af","0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3","0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b","0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193","0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921","0xf3701f445b6bdafedbca97d1e477357839e4120d","0xF7B31119c2682c88d88D455dBb9d5932c65Cf1bE","0xfac583c0cf07ea434052c49115a4682172ab6b4f","0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144","0xfec8a60023265364d066a1212fde3930f6ae8da7","bc1q2lpgjntr348pfvxhfy33ehmdzy3gmx8w4052z6","bc1q3y5v2khlyvemcz042wl98dzflywr8ghglqws6s","bc1q5jqgm7nvrhaw2rh2vk0dk8e4gg5g373g0vz07r","bc1q8ew45w2agdffrnwp6adt2gqrc9n4mkev9ns29c","bc1q9lvynkfpaw330uhqmunzdz6gmafsvapv7y3zty","bc1qagp0gy58v8hqvw4p2wsphcxg067rrppp45hexr","bc1qardcxz845jw83vgfvcmewhuxa0ag9gchjwmcfd","bc1qdt3gml5z5n50y5hm04u2yjdphefkm0fl2zdj68","bc1qfg4gfg0y6t6xjnpmlhuwx5k0wlw6nmfzxn2psc","bc1ql7dlyh8xz6tpqk92vztrhqh88dmjvcwrmsemrm","bc1qn6segn8km4nfdp9vueu6msfjsaxaqgun9h60n9","bc1qpaly5nm7pfka9v92d6qvl4fc2l9xzee8a6ys3s","bc1qsxf77cvwcd6jv6j8d8j3uhh4g0xqw4meswmwuc","bc1qv7k70u2zynvem59u88ctdlaw7hc735d8xep9rq","bc1qw4cxpe6sxa5dg6sdwxjph959cw6yztrzl4r54s","bc1qx3e2axj3wsfn0ndtvlwmkghmmgm4583nqg8ngk","bc1qx9upga7f09tsetqf78wa3qrmcjar58mkwz6ng6","qpf2cphc5dkuclkqur7lhj2yuqq9pk3hmukle77vhq","qzjv8hrdvz6edu4gkzpnd4w6jc7zf296g5e9kkq4lx","bc1q86tl9255vg5wldamfymaaz36uqxzm30gs7fhkljvzdlt9t38s3lqgdwdfq","bc1q90zrdysy4flyacw7hsury3ajs9yzwtwp6guqpypx94w0d3p58hysvz6pde","bc1qkfqh5p2qsakseg5gnwen6zh5xf3elmku2xaup29mw3l0wnncy3es880dss","bc1qq7p0es3dv5hcynjjf40f2xjjr6qp5py47d2f6n847vduuq9gvnyq7y9ecd","bc1qw7vfgv3r5vnehafl0y95sclg3uqsj87wxs9ad628yjjcq33cwessr6ndyw","5be5543ff73456ab9f2d207887e2af87322c651ea1a873c5b25b7ffae456c320","49HqitRzdnhYjgTEAhgGpCfsjdTeMbUTU6cyR4JV1R7k2Eej9rGT8JpFiYDa4tZM6RZiFrHmMzgSrhHEqpDYKBe5B2ufNsL","884Bz8UH63aYsjVdkfWfScRYWZGGNbjFL7pztqvWNSrtYT4reFSwyvkCj9KEGUtheHhhMUj87ciTBFyzoesrMJ4L1FvSoxL"]));function c$1(dt,ht,Dt){var Cn=this,$n=reactExports.useRef(null),Un=reactExports.useRef(0),Fn=reactExports.useRef(null),Hn=reactExports.useRef([]),Gn=reactExports.useRef(),Qn=reactExports.useRef(),qn=reactExports.useRef(dt),er=reactExports.useRef(!0);reactExports.useEffect(function(){qn.current=dt},[dt]);var Wn=!ht&&ht!==0&&typeof window<"u";if(typeof dt!="function")throw new TypeError("Expected a function");ht=+ht||0;var jn=!!(Dt=Dt||{}).leading,Zn=!("trailing"in Dt)||!!Dt.trailing,Xn="maxWait"in Dt,ar=Xn?Math.max(+Dt.maxWait||0,ht):null;reactExports.useEffect(function(){return er.current=!0,function(){er.current=!1}},[]);var dr=reactExports.useMemo(function(){var or=function(_r){var nr=Hn.current,Sr=Gn.current;return Hn.current=Gn.current=null,Un.current=_r,Qn.current=qn.current.apply(Sr,nr)},sr=function(_r,nr){Wn&&cancelAnimationFrame(Fn.current),Fn.current=Wn?requestAnimationFrame(_r):setTimeout(_r,nr)},vr=function(_r){if(!er.current)return!1;var nr=_r-$n.current;return!$n.current||nr>=ht||nr<0||Xn&&_r-Un.current>=ar},hr=function(_r){return Fn.current=null,Zn&&Hn.current?or(_r):(Hn.current=Gn.current=null,Qn.current)},gr=function _r(){var nr=Date.now();if(vr(nr))return hr(nr);if(er.current){var Sr=ht-(nr-$n.current),Ar=Xn?Math.min(Sr,ar-(nr-Un.current)):Sr;sr(_r,Ar)}},ur=function(){var _r=Date.now(),nr=vr(_r);if(Hn.current=[].slice.call(arguments),Gn.current=Cn,$n.current=_r,nr){if(!Fn.current&&er.current)return Un.current=$n.current,sr(gr,ht),jn?or($n.current):Qn.current;if(Xn)return sr(gr,ht),or($n.current)}return Fn.current||sr(gr,ht),Qn.current};return ur.cancel=function(){Fn.current&&(Wn?cancelAnimationFrame(Fn.current):clearTimeout(Fn.current)),Un.current=0,Hn.current=$n.current=Gn.current=Fn.current=null},ur.isPending=function(){return!!Fn.current},ur.flush=function(){return Fn.current?hr(Date.now()):Qn.current},ur},[jn,Xn,ht,ar,Zn,Wn]);return dr}function i(dt,ht){return dt===ht}function a(dt){return typeof dt=="function"?function(){return dt}:dt}function o(dt,ht,Dt){var Cn,$n,Un=Dt&&Dt.equalityFn||i,Fn=(Cn=reactExports.useState(a(dt)),$n=Cn[1],[Cn[0],reactExports.useCallback(function(er){return $n(a(er))},[])]),Hn=Fn[0],Gn=Fn[1],Qn=c$1(reactExports.useCallback(function(er){return Gn(er)},[Gn]),ht,Dt),qn=reactExports.useRef(dt);return Un(qn.current,dt)||(Qn(dt),qn.current=dt),[Hn,Qn]}const GOVERNOR_WHITEPAPER_URL="https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0007_governor.md",CCTP_MAX_TRANSFER_LIMIT=1e6,validateFromChain=dt=>!dt||!config$2.chains[dt]?"Select a source chain":"",validateToChain=(dt,ht)=>{if(!dt||!config$2.chains[dt])return"Select a destination chain";if(ht&&dt===ht)return"Source chain and destination chain cannot be the same";if(config$2.bridgeDefaults&&config$2.bridgeDefaults.requiredNetwork&&dt&&ht){const{requiredNetwork:Cn}=config$2.bridgeDefaults,$n=config$2.chains[Cn];if($n&&dt!==Cn&&ht!==Cn)return`Must select ${$n.displayName} as either the source or destination chain`}return""},validateToken=(dt,ht)=>{if(!dt)return"Select an asset";const Dt=config$2.tokens[dt];if(!Dt)return"Select an asset";if(ht){if(!config$2.chains[ht]||Dt.tokenId)return"";if(!Dt.tokenId&&Dt.nativeChain!==ht)return`${dt} not available on ${ht}, select a different token`}return""},validateDestToken=(dt,ht,Dt)=>{if(!dt)return"Select an asset";const Cn=config$2.tokens[dt];if(!Cn)return"Select an asset";if(ht){if(!config$2.chains[ht]||Cn.tokenId)return"";if(!Cn.tokenId&&Cn.nativeChain!==ht)return`${dt} not available on ${ht}, select a different token`}return Dt.some($n=>$n.key===dt)?"":"No route available for this token, please select another"},validateAmount=(dt,ht,Dt,Cn)=>{if(dt==="")return"";const $n=Number.parseFloat(dt);if(isNaN($n))return"Amount must be a number";if($n<=0)return"Amount must be greater than 0";if(ht){const Un=Number.parseFloat(ht);if($n>Un)return"Amount cannot exceed balance"}return Cn&&$n>=CCTP_MAX_TRANSFER_LIMIT?`Your transaction exceeds the maximum transfer limit of ${Intl.NumberFormat("en-EN").format(CCTP_MAX_TRANSFER_LIMIT)} USDC. Please use a different amount.`:$n>Dt?`At the moment, amount cannot exceed ${Dt}`:""},checkAddressIsSanctioned=dt=>SANCTIONED_WALLETS.has(dt)||SANCTIONED_WALLETS.has("0x"+dt),validateWallet=async(dt,ht)=>{if(!dt.address)return"Wallet not connected";try{if(await checkAddressIsSanctioned(dt.address))return"This address is sanctioned, bridging is not available"}catch(Cn){console.error(Cn)}if(dt.currentAddress&&dt.currentAddress!==dt.address)return"Switch to connected wallet";const Dt=walletAcceptedChains(dt.type);return ht&&!Dt.includes(ht)?`Connected wallet is not supported for ${ht}`:""},validateToNativeAmt=(dt,ht)=>dt<0?"Amount must be equal to or greater than zero":ht&&dt>ht?"Amount exceeds maximum amount":"",validateRoute=(dt,ht)=>!dt||!ht||!ht.includes(dt)?"No bridge or swap route available for selected tokens":"",validateForeignAsset=dt=>dt?"":"No wrapped asset exists for this token",validateSolanaTokenAccount=(dt,ht,Dt,Cn)=>dt!=="solana"||Cn===Route.Relay||Cn===Route.TBTC||isNttRoute(Cn)||!ht?"":ht&&!Dt?"The associated token account for this asset does not exist on Solana, you must create it first":"",validateRelayerFee=(dt,ht)=>dt&&isPorticoRoute(dt)&&ht.relayerFee.error?"Error fetching relayer fee":"",validateReceiveAmount=(dt,ht,Dt)=>dt&&isPorticoRoute(dt)&&Dt.relayerFee.data&&!Dt.swapAmounts.isFetching&&ht.error?ht.error:"",getMaxAmt=dt=>dt?RouteOperator.getRoute(dt).getMaxSendAmount():1/0,getIsAutomatic=dt=>dt?RouteOperator.getRoute(dt).AUTOMATIC_DEPOSIT:!1,isCctp=(dt,ht,Dt,Cn)=>{var Fn,Hn,Gn,Qn;const $n=((Fn=config$2.tokens[dt])==null?void 0:Fn.symbol)==="USDC"&&((Hn=config$2.tokens[ht])==null?void 0:Hn.symbol)==="USDC"&&((Gn=config$2.tokens[dt])==null?void 0:Gn.nativeChain)===Cn&&((Qn=config$2.tokens[ht])==null?void 0:Qn.nativeChain)===Dt,Un=!!Dt&&CCTPManual_CHAINS.includes(Dt)&&!!Cn&&CCTPManual_CHAINS.includes(Cn);return $n&&Un},validateAll=async(dt,ht,Dt,Cn)=>{const{fromChain:$n,toChain:Un,token:Fn,destToken:Hn,amount:Gn,balances:Qn,foreignAsset:qn,route:er,supportedDestTokens:Wn,routeStates:jn,receiveAmount:Zn}=dt,{maxSwapAmt:Xn,toNativeToken:ar}=ht,{sending:dr,receiving:or}=Dt,sr=getIsAutomatic(er),vr=accessBalance(Qn,dr.address,$n,Fn),hr=getMaxAmt(er),gr=jn==null?void 0:jn.filter(nr=>nr.supported).map(nr=>nr.name),ur=isCctp(Fn,Hn,Un,$n),_r={sendingWallet:await validateWallet(dr,$n),receivingWallet:await validateWallet(or,Un),fromChain:validateFromChain($n),toChain:validateToChain(Un,$n),token:validateToken(Fn,$n),destToken:validateDestToken(Hn,Un,Wn),amount:validateAmount(Gn,vr,hr,ur),route:validateRoute(er,gr),toNativeToken:"",foreignAsset:validateForeignAsset(qn),relayerFee:"",receiveAmount:""};return sr?er===Route.NttRelay?_r:{..._r,toNativeToken:validateToNativeAmt(ar,Xn)}:er&&isPorticoRoute(er)?{..._r,relayerFee:validateRelayerFee(er,Cn),receiveAmount:validateReceiveAmount(er,Zn,Cn)}:_r},isTransferValid=dt=>{for(const ht of Object.values(dt))if(ht)return!1;return!0},validate=async({transferInput:dt,relay:ht,wallet:Dt,portico:Cn},$n)=>{var Hn;const Un=await validateAll(dt,ht,Dt,Cn),Fn=!!(Dt.sending.address&&Dt.receiving.address&&dt.fromChain&&dt.toChain&&dt.token&&dt.destToken&&dt.amount&&Number.parseFloat(dt.amount)>=0&&((Hn=dt.routeStates)==null?void 0:Hn.some(Gn=>Gn.supported))!==void 0);$n(setValidations({validations:Un,showValidationState:Fn}))},VALIDATION_DELAY_MS=250,useValidate=()=>{const dt=useDispatch(),ht=useSelector(Hn=>Hn.transferInput),Dt=useSelector(Hn=>Hn.relay),Cn=useSelector(Hn=>Hn.wallet),$n=useSelector(Hn=>Hn.porticoBridge),Un=reactExports.useMemo(()=>({transferInput:ht,relay:Dt,wallet:Cn,portico:$n}),[ht,Dt,Cn,$n]),[Fn]=o(Un,VALIDATION_DELAY_MS);reactExports.useEffect(()=>{validate(Fn,dt)},[Fn,dt])},millisToMinutesAndSeconds=dt=>{const ht=Math.floor(dt/6e4),Dt=Math.floor(dt%6e4/1e3);return`${ht}m ${Dt}s`},unloadHandler=dt=>(dt=dt??window.event,dt&&(dt.returnValue=!0),!0),useConfirmBeforeLeaving=dt=>{reactExports.useEffect(()=>{const ht=()=>{window.removeEventListener("beforeunload",unloadHandler)};if(dt)return window.addEventListener("beforeunload",unloadHandler),ht;ht()},[dt])};function isHostComponent(dt){return typeof dt=="string"}function appendOwnerState(dt,ht,Dt){return dt===void 0||isHostComponent(dt)?ht:_extends({},ht,{ownerState:_extends({},ht.ownerState,Dt)})}function areArraysEqual(dt,ht,Dt=(Cn,$n)=>Cn===$n){return dt.length===ht.length&&dt.every((Cn,$n)=>Dt(Cn,ht[$n]))}const defaultContextValue={disableDefaultClasses:!1},ClassNameConfiguratorContext=reactExports.createContext(defaultContextValue);function useClassNamesOverride(dt){const{disableDefaultClasses:ht}=reactExports.useContext(ClassNameConfiguratorContext);return Dt=>ht?"":dt(Dt)}function extractEventHandlers(dt,ht=[]){if(dt===void 0)return{};const Dt={};return Object.keys(dt).filter(Cn=>Cn.match(/^on[A-Z]/)&&typeof dt[Cn]=="function"&&!ht.includes(Cn)).forEach(Cn=>{Dt[Cn]=dt[Cn]}),Dt}function resolveComponentProps(dt,ht,Dt){return typeof dt=="function"?dt(ht,Dt):dt}function omitEventHandlers(dt){if(dt===void 0)return{};const ht={};return Object.keys(dt).filter(Dt=>!(Dt.match(/^on[A-Z]/)&&typeof dt[Dt]=="function")).forEach(Dt=>{ht[Dt]=dt[Dt]}),ht}function mergeSlotProps(dt){const{getSlotProps:ht,additionalProps:Dt,externalSlotProps:Cn,externalForwardedProps:$n,className:Un}=dt;if(!ht){const jn=clsx($n==null?void 0:$n.className,Cn==null?void 0:Cn.className,Un,Dt==null?void 0:Dt.className),Zn=_extends({},Dt==null?void 0:Dt.style,$n==null?void 0:$n.style,Cn==null?void 0:Cn.style),Xn=_extends({},Dt,$n,Cn);return jn.length>0&&(Xn.className=jn),Object.keys(Zn).length>0&&(Xn.style=Zn),{props:Xn,internalRef:void 0}}const Fn=extractEventHandlers(_extends({},$n,Cn)),Hn=omitEventHandlers(Cn),Gn=omitEventHandlers($n),Qn=ht(Fn),qn=clsx(Qn==null?void 0:Qn.className,Dt==null?void 0:Dt.className,Un,$n==null?void 0:$n.className,Cn==null?void 0:Cn.className),er=_extends({},Qn==null?void 0:Qn.style,Dt==null?void 0:Dt.style,$n==null?void 0:$n.style,Cn==null?void 0:Cn.style),Wn=_extends({},Qn,Dt,Gn,Hn);return qn.length>0&&(Wn.className=qn),Object.keys(er).length>0&&(Wn.style=er),{props:Wn,internalRef:Qn.ref}}const _excluded$H=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function useSlotProps(dt){var ht;const{elementType:Dt,externalSlotProps:Cn,ownerState:$n,skipResolvingSlotProps:Un=!1}=dt,Fn=_objectWithoutPropertiesLoose(dt,_excluded$H),Hn=Un?{}:resolveComponentProps(Cn,$n),{props:Gn,internalRef:Qn}=mergeSlotProps(_extends({},Fn,{externalSlotProps:Hn})),qn=useForkRef(Qn,Hn==null?void 0:Hn.ref,(ht=dt.additionalProps)==null?void 0:ht.ref);return appendOwnerState(Dt,_extends({},Gn,{ref:qn}),$n)}const candidatesSelector=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(dt){const ht=parseInt(dt.getAttribute("tabindex")||"",10);return Number.isNaN(ht)?dt.contentEditable==="true"||(dt.nodeName==="AUDIO"||dt.nodeName==="VIDEO"||dt.nodeName==="DETAILS")&&dt.getAttribute("tabindex")===null?0:dt.tabIndex:ht}function isNonTabbableRadio(dt){if(dt.tagName!=="INPUT"||dt.type!=="radio"||!dt.name)return!1;const ht=Cn=>dt.ownerDocument.querySelector(`input[type="radio"]${Cn}`);let Dt=ht(`[name="${dt.name}"]:checked`);return Dt||(Dt=ht(`[name="${dt.name}"]`)),Dt!==dt}function isNodeMatchingSelectorFocusable(dt){return!(dt.disabled||dt.tagName==="INPUT"&&dt.type==="hidden"||isNonTabbableRadio(dt))}function defaultGetTabbable(dt){const ht=[],Dt=[];return Array.from(dt.querySelectorAll(candidatesSelector)).forEach((Cn,$n)=>{const Un=getTabIndex(Cn);Un===-1||!isNodeMatchingSelectorFocusable(Cn)||(Un===0?ht.push(Cn):Dt.push({documentOrder:$n,tabIndex:Un,node:Cn}))}),Dt.sort((Cn,$n)=>Cn.tabIndex===$n.tabIndex?Cn.documentOrder-$n.documentOrder:Cn.tabIndex-$n.tabIndex).map(Cn=>Cn.node).concat(ht)}function defaultIsEnabled(){return!0}function FocusTrap(dt){const{children:ht,disableAutoFocus:Dt=!1,disableEnforceFocus:Cn=!1,disableRestoreFocus:$n=!1,getTabbable:Un=defaultGetTabbable,isEnabled:Fn=defaultIsEnabled,open:Hn}=dt,Gn=reactExports.useRef(!1),Qn=reactExports.useRef(null),qn=reactExports.useRef(null),er=reactExports.useRef(null),Wn=reactExports.useRef(null),jn=reactExports.useRef(!1),Zn=reactExports.useRef(null),Xn=useForkRef(ht.ref,Zn),ar=reactExports.useRef(null);reactExports.useEffect(()=>{!Hn||!Zn.current||(jn.current=!Dt)},[Dt,Hn]),reactExports.useEffect(()=>{if(!Hn||!Zn.current)return;const sr=ownerDocument(Zn.current);return Zn.current.contains(sr.activeElement)||(Zn.current.hasAttribute("tabIndex")||Zn.current.setAttribute("tabIndex","-1"),jn.current&&Zn.current.focus()),()=>{$n||(er.current&&er.current.focus&&(Gn.current=!0,er.current.focus()),er.current=null)}},[Hn]),reactExports.useEffect(()=>{if(!Hn||!Zn.current)return;const sr=ownerDocument(Zn.current),vr=ur=>{const{current:_r}=Zn;if(_r!==null){if(!sr.hasFocus()||Cn||!Fn()||Gn.current){Gn.current=!1;return}if(!_r.contains(sr.activeElement)){if(ur&&Wn.current!==ur.target||sr.activeElement!==Wn.current)Wn.current=null;else if(Wn.current!==null)return;if(!jn.current)return;let Ar=[];if((sr.activeElement===Qn.current||sr.activeElement===qn.current)&&(Ar=Un(Zn.current)),Ar.length>0){var nr,Sr;const tr=!!((nr=ar.current)!=null&&nr.shiftKey&&((Sr=ar.current)==null?void 0:Sr.key)==="Tab"),Yn=Ar[0],fr=Ar[Ar.length-1];typeof Yn!="string"&&typeof fr!="string"&&(tr?fr.focus():Yn.focus())}else _r.focus()}}},hr=ur=>{ar.current=ur,!(Cn||!Fn()||ur.key!=="Tab")&&sr.activeElement===Zn.current&&ur.shiftKey&&(Gn.current=!0,qn.current&&qn.current.focus())};sr.addEventListener("focusin",vr),sr.addEventListener("keydown",hr,!0);const gr=setInterval(()=>{sr.activeElement&&sr.activeElement.tagName==="BODY"&&vr(null)},50);return()=>{clearInterval(gr),sr.removeEventListener("focusin",vr),sr.removeEventListener("keydown",hr,!0)}},[Dt,Cn,$n,Fn,Hn,Un]);const dr=sr=>{er.current===null&&(er.current=sr.relatedTarget),jn.current=!0,Wn.current=sr.target;const vr=ht.props.onFocus;vr&&vr(sr)},or=sr=>{er.current===null&&(er.current=sr.relatedTarget),jn.current=!0};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{tabIndex:Hn?0:-1,onFocus:or,ref:Qn,"data-testid":"sentinelStart"}),reactExports.cloneElement(ht,{ref:Xn,onFocus:dr}),jsxRuntimeExports.jsx("div",{tabIndex:Hn?0:-1,onFocus:or,ref:qn,"data-testid":"sentinelEnd"})]})}var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce(function(dt,ht){return dt.concat([ht+"-"+start,ht+"-"+end])},[]),placements=[].concat(basePlacements,[auto]).reduce(function(dt,ht){return dt.concat([ht,ht+"-"+start,ht+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(dt){return dt?(dt.nodeName||"").toLowerCase():null}function getWindow(dt){if(dt==null)return window;if(dt.toString()!=="[object Window]"){var ht=dt.ownerDocument;return ht&&ht.defaultView||window}return dt}function isElement(dt){var ht=getWindow(dt).Element;return dt instanceof ht||dt instanceof Element}function isHTMLElement$1(dt){var ht=getWindow(dt).HTMLElement;return dt instanceof ht||dt instanceof HTMLElement}function isShadowRoot(dt){if(typeof ShadowRoot>"u")return!1;var ht=getWindow(dt).ShadowRoot;return dt instanceof ht||dt instanceof ShadowRoot}function applyStyles(dt){var ht=dt.state;Object.keys(ht.elements).forEach(function(Dt){var Cn=ht.styles[Dt]||{},$n=ht.attributes[Dt]||{},Un=ht.elements[Dt];!isHTMLElement$1(Un)||!getNodeName(Un)||(Object.assign(Un.style,Cn),Object.keys($n).forEach(function(Fn){var Hn=$n[Fn];Hn===!1?Un.removeAttribute(Fn):Un.setAttribute(Fn,Hn===!0?"":Hn)}))})}function effect$2(dt){var ht=dt.state,Dt={popper:{position:ht.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(ht.elements.popper.style,Dt.popper),ht.styles=Dt,ht.elements.arrow&&Object.assign(ht.elements.arrow.style,Dt.arrow),function(){Object.keys(ht.elements).forEach(function(Cn){var $n=ht.elements[Cn],Un=ht.attributes[Cn]||{},Fn=Object.keys(ht.styles.hasOwnProperty(Cn)?ht.styles[Cn]:Dt[Cn]),Hn=Fn.reduce(function(Gn,Qn){return Gn[Qn]="",Gn},{});!isHTMLElement$1($n)||!getNodeName($n)||(Object.assign($n.style,Hn),Object.keys(Un).forEach(function(Gn){$n.removeAttribute(Gn)}))})}}const applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(dt){return dt.split("-")[0]}var max=Math.max,min=Math.min,round$1=Math.round;function getUAString(){var dt=navigator.userAgentData;return dt!=null&&dt.brands&&Array.isArray(dt.brands)?dt.brands.map(function(ht){return ht.brand+"/"+ht.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(dt,ht,Dt){ht===void 0&&(ht=!1),Dt===void 0&&(Dt=!1);var Cn=dt.getBoundingClientRect(),$n=1,Un=1;ht&&isHTMLElement$1(dt)&&($n=dt.offsetWidth>0&&round$1(Cn.width)/dt.offsetWidth||1,Un=dt.offsetHeight>0&&round$1(Cn.height)/dt.offsetHeight||1);var Fn=isElement(dt)?getWindow(dt):window,Hn=Fn.visualViewport,Gn=!isLayoutViewport()&&Dt,Qn=(Cn.left+(Gn&&Hn?Hn.offsetLeft:0))/$n,qn=(Cn.top+(Gn&&Hn?Hn.offsetTop:0))/Un,er=Cn.width/$n,Wn=Cn.height/Un;return{width:er,height:Wn,top:qn,right:Qn+er,bottom:qn+Wn,left:Qn,x:Qn,y:qn}}function getLayoutRect(dt){var ht=getBoundingClientRect(dt),Dt=dt.offsetWidth,Cn=dt.offsetHeight;return Math.abs(ht.width-Dt)<=1&&(Dt=ht.width),Math.abs(ht.height-Cn)<=1&&(Cn=ht.height),{x:dt.offsetLeft,y:dt.offsetTop,width:Dt,height:Cn}}function contains(dt,ht){var Dt=ht.getRootNode&&ht.getRootNode();if(dt.contains(ht))return!0;if(Dt&&isShadowRoot(Dt)){var Cn=ht;do{if(Cn&&dt.isSameNode(Cn))return!0;Cn=Cn.parentNode||Cn.host}while(Cn)}return!1}function getComputedStyle(dt){return getWindow(dt).getComputedStyle(dt)}function isTableElement(dt){return["table","td","th"].indexOf(getNodeName(dt))>=0}function getDocumentElement(dt){return((isElement(dt)?dt.ownerDocument:dt.document)||window.document).documentElement}function getParentNode(dt){return getNodeName(dt)==="html"?dt:dt.assignedSlot||dt.parentNode||(isShadowRoot(dt)?dt.host:null)||getDocumentElement(dt)}function getTrueOffsetParent(dt){return!isHTMLElement$1(dt)||getComputedStyle(dt).position==="fixed"?null:dt.offsetParent}function getContainingBlock(dt){var ht=/firefox/i.test(getUAString()),Dt=/Trident/i.test(getUAString());if(Dt&&isHTMLElement$1(dt)){var Cn=getComputedStyle(dt);if(Cn.position==="fixed")return null}var $n=getParentNode(dt);for(isShadowRoot($n)&&($n=$n.host);isHTMLElement$1($n)&&["html","body"].indexOf(getNodeName($n))<0;){var Un=getComputedStyle($n);if(Un.transform!=="none"||Un.perspective!=="none"||Un.contain==="paint"||["transform","perspective"].indexOf(Un.willChange)!==-1||ht&&Un.willChange==="filter"||ht&&Un.filter&&Un.filter!=="none")return $n;$n=$n.parentNode}return null}function getOffsetParent(dt){for(var ht=getWindow(dt),Dt=getTrueOffsetParent(dt);Dt&&isTableElement(Dt)&&getComputedStyle(Dt).position==="static";)Dt=getTrueOffsetParent(Dt);return Dt&&(getNodeName(Dt)==="html"||getNodeName(Dt)==="body"&&getComputedStyle(Dt).position==="static")?ht:Dt||getContainingBlock(dt)||ht}function getMainAxisFromPlacement(dt){return["top","bottom"].indexOf(dt)>=0?"x":"y"}function within(dt,ht,Dt){return max(dt,min(ht,Dt))}function withinMaxClamp(dt,ht,Dt){var Cn=within(dt,ht,Dt);return Cn>Dt?Dt:Cn}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(dt){return Object.assign({},getFreshSideObject(),dt)}function expandToHashMap(dt,ht){return ht.reduce(function(Dt,Cn){return Dt[Cn]=dt,Dt},{})}var toPaddingObject=function dt(ht,Dt){return ht=typeof ht=="function"?ht(Object.assign({},Dt.rects,{placement:Dt.placement})):ht,mergePaddingObject(typeof ht!="number"?ht:expandToHashMap(ht,basePlacements))};function arrow(dt){var ht,Dt=dt.state,Cn=dt.name,$n=dt.options,Un=Dt.elements.arrow,Fn=Dt.modifiersData.popperOffsets,Hn=getBasePlacement(Dt.placement),Gn=getMainAxisFromPlacement(Hn),Qn=[left,right].indexOf(Hn)>=0,qn=Qn?"height":"width";if(!(!Un||!Fn)){var er=toPaddingObject($n.padding,Dt),Wn=getLayoutRect(Un),jn=Gn==="y"?top:left,Zn=Gn==="y"?bottom:right,Xn=Dt.rects.reference[qn]+Dt.rects.reference[Gn]-Fn[Gn]-Dt.rects.popper[qn],ar=Fn[Gn]-Dt.rects.reference[Gn],dr=getOffsetParent(Un),or=dr?Gn==="y"?dr.clientHeight||0:dr.clientWidth||0:0,sr=Xn/2-ar/2,vr=er[jn],hr=or-Wn[qn]-er[Zn],gr=or/2-Wn[qn]/2+sr,ur=within(vr,gr,hr),_r=Gn;Dt.modifiersData[Cn]=(ht={},ht[_r]=ur,ht.centerOffset=ur-gr,ht)}}function effect$1(dt){var ht=dt.state,Dt=dt.options,Cn=Dt.element,$n=Cn===void 0?"[data-popper-arrow]":Cn;$n!=null&&(typeof $n=="string"&&($n=ht.elements.popper.querySelector($n),!$n)||contains(ht.elements.popper,$n)&&(ht.elements.arrow=$n))}const arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(dt){return dt.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(dt,ht){var Dt=dt.x,Cn=dt.y,$n=ht.devicePixelRatio||1;return{x:round$1(Dt*$n)/$n||0,y:round$1(Cn*$n)/$n||0}}function mapToStyles(dt){var ht,Dt=dt.popper,Cn=dt.popperRect,$n=dt.placement,Un=dt.variation,Fn=dt.offsets,Hn=dt.position,Gn=dt.gpuAcceleration,Qn=dt.adaptive,qn=dt.roundOffsets,er=dt.isFixed,Wn=Fn.x,jn=Wn===void 0?0:Wn,Zn=Fn.y,Xn=Zn===void 0?0:Zn,ar=typeof qn=="function"?qn({x:jn,y:Xn}):{x:jn,y:Xn};jn=ar.x,Xn=ar.y;var dr=Fn.hasOwnProperty("x"),or=Fn.hasOwnProperty("y"),sr=left,vr=top,hr=window;if(Qn){var gr=getOffsetParent(Dt),ur="clientHeight",_r="clientWidth";if(gr===getWindow(Dt)&&(gr=getDocumentElement(Dt),getComputedStyle(gr).position!=="static"&&Hn==="absolute"&&(ur="scrollHeight",_r="scrollWidth")),gr=gr,$n===top||($n===left||$n===right)&&Un===end){vr=bottom;var nr=er&&gr===hr&&hr.visualViewport?hr.visualViewport.height:gr[ur];Xn-=nr-Cn.height,Xn*=Gn?1:-1}if($n===left||($n===top||$n===bottom)&&Un===end){sr=right;var Sr=er&&gr===hr&&hr.visualViewport?hr.visualViewport.width:gr[_r];jn-=Sr-Cn.width,jn*=Gn?1:-1}}var Ar=Object.assign({position:Hn},Qn&&unsetSides),tr=qn===!0?roundOffsetsByDPR({x:jn,y:Xn},getWindow(Dt)):{x:jn,y:Xn};if(jn=tr.x,Xn=tr.y,Gn){var Yn;return Object.assign({},Ar,(Yn={},Yn[vr]=or?"0":"",Yn[sr]=dr?"0":"",Yn.transform=(hr.devicePixelRatio||1)<=1?"translate("+jn+"px, "+Xn+"px)":"translate3d("+jn+"px, "+Xn+"px, 0)",Yn))}return Object.assign({},Ar,(ht={},ht[vr]=or?Xn+"px":"",ht[sr]=dr?jn+"px":"",ht.transform="",ht))}function computeStyles(dt){var ht=dt.state,Dt=dt.options,Cn=Dt.gpuAcceleration,$n=Cn===void 0?!0:Cn,Un=Dt.adaptive,Fn=Un===void 0?!0:Un,Hn=Dt.roundOffsets,Gn=Hn===void 0?!0:Hn,Qn={placement:getBasePlacement(ht.placement),variation:getVariation(ht.placement),popper:ht.elements.popper,popperRect:ht.rects.popper,gpuAcceleration:$n,isFixed:ht.options.strategy==="fixed"};ht.modifiersData.popperOffsets!=null&&(ht.styles.popper=Object.assign({},ht.styles.popper,mapToStyles(Object.assign({},Qn,{offsets:ht.modifiersData.popperOffsets,position:ht.options.strategy,adaptive:Fn,roundOffsets:Gn})))),ht.modifiersData.arrow!=null&&(ht.styles.arrow=Object.assign({},ht.styles.arrow,mapToStyles(Object.assign({},Qn,{offsets:ht.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:Gn})))),ht.attributes.popper=Object.assign({},ht.attributes.popper,{"data-popper-placement":ht.placement})}const computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};var passive={passive:!0};function effect(dt){var ht=dt.state,Dt=dt.instance,Cn=dt.options,$n=Cn.scroll,Un=$n===void 0?!0:$n,Fn=Cn.resize,Hn=Fn===void 0?!0:Fn,Gn=getWindow(ht.elements.popper),Qn=[].concat(ht.scrollParents.reference,ht.scrollParents.popper);return Un&&Qn.forEach(function(qn){qn.addEventListener("scroll",Dt.update,passive)}),Hn&&Gn.addEventListener("resize",Dt.update,passive),function(){Un&&Qn.forEach(function(qn){qn.removeEventListener("scroll",Dt.update,passive)}),Hn&&Gn.removeEventListener("resize",Dt.update,passive)}}const eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function dt(){},effect,data:{}};var hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(dt){return dt.replace(/left|right|bottom|top/g,function(ht){return hash$1[ht]})}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(dt){return dt.replace(/start|end/g,function(ht){return hash[ht]})}function getWindowScroll(dt){var ht=getWindow(dt),Dt=ht.pageXOffset,Cn=ht.pageYOffset;return{scrollLeft:Dt,scrollTop:Cn}}function getWindowScrollBarX(dt){return getBoundingClientRect(getDocumentElement(dt)).left+getWindowScroll(dt).scrollLeft}function getViewportRect(dt,ht){var Dt=getWindow(dt),Cn=getDocumentElement(dt),$n=Dt.visualViewport,Un=Cn.clientWidth,Fn=Cn.clientHeight,Hn=0,Gn=0;if($n){Un=$n.width,Fn=$n.height;var Qn=isLayoutViewport();(Qn||!Qn&&ht==="fixed")&&(Hn=$n.offsetLeft,Gn=$n.offsetTop)}return{width:Un,height:Fn,x:Hn+getWindowScrollBarX(dt),y:Gn}}function getDocumentRect(dt){var ht,Dt=getDocumentElement(dt),Cn=getWindowScroll(dt),$n=(ht=dt.ownerDocument)==null?void 0:ht.body,Un=max(Dt.scrollWidth,Dt.clientWidth,$n?$n.scrollWidth:0,$n?$n.clientWidth:0),Fn=max(Dt.scrollHeight,Dt.clientHeight,$n?$n.scrollHeight:0,$n?$n.clientHeight:0),Hn=-Cn.scrollLeft+getWindowScrollBarX(dt),Gn=-Cn.scrollTop;return getComputedStyle($n||Dt).direction==="rtl"&&(Hn+=max(Dt.clientWidth,$n?$n.clientWidth:0)-Un),{width:Un,height:Fn,x:Hn,y:Gn}}function isScrollParent(dt){var ht=getComputedStyle(dt),Dt=ht.overflow,Cn=ht.overflowX,$n=ht.overflowY;return/auto|scroll|overlay|hidden/.test(Dt+$n+Cn)}function getScrollParent(dt){return["html","body","#document"].indexOf(getNodeName(dt))>=0?dt.ownerDocument.body:isHTMLElement$1(dt)&&isScrollParent(dt)?dt:getScrollParent(getParentNode(dt))}function listScrollParents(dt,ht){var Dt;ht===void 0&&(ht=[]);var Cn=getScrollParent(dt),$n=Cn===((Dt=dt.ownerDocument)==null?void 0:Dt.body),Un=getWindow(Cn),Fn=$n?[Un].concat(Un.visualViewport||[],isScrollParent(Cn)?Cn:[]):Cn,Hn=ht.concat(Fn);return $n?Hn:Hn.concat(listScrollParents(getParentNode(Fn)))}function rectToClientRect(dt){return Object.assign({},dt,{left:dt.x,top:dt.y,right:dt.x+dt.width,bottom:dt.y+dt.height})}function getInnerBoundingClientRect(dt,ht){var Dt=getBoundingClientRect(dt,!1,ht==="fixed");return Dt.top=Dt.top+dt.clientTop,Dt.left=Dt.left+dt.clientLeft,Dt.bottom=Dt.top+dt.clientHeight,Dt.right=Dt.left+dt.clientWidth,Dt.width=dt.clientWidth,Dt.height=dt.clientHeight,Dt.x=Dt.left,Dt.y=Dt.top,Dt}function getClientRectFromMixedType(dt,ht,Dt){return ht===viewport?rectToClientRect(getViewportRect(dt,Dt)):isElement(ht)?getInnerBoundingClientRect(ht,Dt):rectToClientRect(getDocumentRect(getDocumentElement(dt)))}function getClippingParents(dt){var ht=listScrollParents(getParentNode(dt)),Dt=["absolute","fixed"].indexOf(getComputedStyle(dt).position)>=0,Cn=Dt&&isHTMLElement$1(dt)?getOffsetParent(dt):dt;return isElement(Cn)?ht.filter(function($n){return isElement($n)&&contains($n,Cn)&&getNodeName($n)!=="body"}):[]}function getClippingRect(dt,ht,Dt,Cn){var $n=ht==="clippingParents"?getClippingParents(dt):[].concat(ht),Un=[].concat($n,[Dt]),Fn=Un[0],Hn=Un.reduce(function(Gn,Qn){var qn=getClientRectFromMixedType(dt,Qn,Cn);return Gn.top=max(qn.top,Gn.top),Gn.right=min(qn.right,Gn.right),Gn.bottom=min(qn.bottom,Gn.bottom),Gn.left=max(qn.left,Gn.left),Gn},getClientRectFromMixedType(dt,Fn,Cn));return Hn.width=Hn.right-Hn.left,Hn.height=Hn.bottom-Hn.top,Hn.x=Hn.left,Hn.y=Hn.top,Hn}function computeOffsets(dt){var ht=dt.reference,Dt=dt.element,Cn=dt.placement,$n=Cn?getBasePlacement(Cn):null,Un=Cn?getVariation(Cn):null,Fn=ht.x+ht.width/2-Dt.width/2,Hn=ht.y+ht.height/2-Dt.height/2,Gn;switch($n){case top:Gn={x:Fn,y:ht.y-Dt.height};break;case bottom:Gn={x:Fn,y:ht.y+ht.height};break;case right:Gn={x:ht.x+ht.width,y:Hn};break;case left:Gn={x:ht.x-Dt.width,y:Hn};break;default:Gn={x:ht.x,y:ht.y}}var Qn=$n?getMainAxisFromPlacement($n):null;if(Qn!=null){var qn=Qn==="y"?"height":"width";switch(Un){case start:Gn[Qn]=Gn[Qn]-(ht[qn]/2-Dt[qn]/2);break;case end:Gn[Qn]=Gn[Qn]+(ht[qn]/2-Dt[qn]/2);break}}return Gn}function detectOverflow(dt,ht){ht===void 0&&(ht={});var Dt=ht,Cn=Dt.placement,$n=Cn===void 0?dt.placement:Cn,Un=Dt.strategy,Fn=Un===void 0?dt.strategy:Un,Hn=Dt.boundary,Gn=Hn===void 0?clippingParents:Hn,Qn=Dt.rootBoundary,qn=Qn===void 0?viewport:Qn,er=Dt.elementContext,Wn=er===void 0?popper:er,jn=Dt.altBoundary,Zn=jn===void 0?!1:jn,Xn=Dt.padding,ar=Xn===void 0?0:Xn,dr=mergePaddingObject(typeof ar!="number"?ar:expandToHashMap(ar,basePlacements)),or=Wn===popper?reference:popper,sr=dt.rects.popper,vr=dt.elements[Zn?or:Wn],hr=getClippingRect(isElement(vr)?vr:vr.contextElement||getDocumentElement(dt.elements.popper),Gn,qn,Fn),gr=getBoundingClientRect(dt.elements.reference),ur=computeOffsets({reference:gr,element:sr,strategy:"absolute",placement:$n}),_r=rectToClientRect(Object.assign({},sr,ur)),nr=Wn===popper?_r:gr,Sr={top:hr.top-nr.top+dr.top,bottom:nr.bottom-hr.bottom+dr.bottom,left:hr.left-nr.left+dr.left,right:nr.right-hr.right+dr.right},Ar=dt.modifiersData.offset;if(Wn===popper&&Ar){var tr=Ar[$n];Object.keys(Sr).forEach(function(Yn){var fr=[right,bottom].indexOf(Yn)>=0?1:-1,Cr=[top,bottom].indexOf(Yn)>=0?"y":"x";Sr[Yn]+=tr[Cr]*fr})}return Sr}function computeAutoPlacement(dt,ht){ht===void 0&&(ht={});var Dt=ht,Cn=Dt.placement,$n=Dt.boundary,Un=Dt.rootBoundary,Fn=Dt.padding,Hn=Dt.flipVariations,Gn=Dt.allowedAutoPlacements,Qn=Gn===void 0?placements:Gn,qn=getVariation(Cn),er=qn?Hn?variationPlacements:variationPlacements.filter(function(Zn){return getVariation(Zn)===qn}):basePlacements,Wn=er.filter(function(Zn){return Qn.indexOf(Zn)>=0});Wn.length===0&&(Wn=er);var jn=Wn.reduce(function(Zn,Xn){return Zn[Xn]=detectOverflow(dt,{placement:Xn,boundary:$n,rootBoundary:Un,padding:Fn})[getBasePlacement(Xn)],Zn},{});return Object.keys(jn).sort(function(Zn,Xn){return jn[Zn]-jn[Xn]})}function getExpandedFallbackPlacements(dt){if(getBasePlacement(dt)===auto)return[];var ht=getOppositePlacement(dt);return[getOppositeVariationPlacement(dt),ht,getOppositeVariationPlacement(ht)]}function flip(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name;if(!ht.modifiersData[Cn]._skip){for(var $n=Dt.mainAxis,Un=$n===void 0?!0:$n,Fn=Dt.altAxis,Hn=Fn===void 0?!0:Fn,Gn=Dt.fallbackPlacements,Qn=Dt.padding,qn=Dt.boundary,er=Dt.rootBoundary,Wn=Dt.altBoundary,jn=Dt.flipVariations,Zn=jn===void 0?!0:jn,Xn=Dt.allowedAutoPlacements,ar=ht.options.placement,dr=getBasePlacement(ar),or=dr===ar,sr=Gn||(or||!Zn?[getOppositePlacement(ar)]:getExpandedFallbackPlacements(ar)),vr=[ar].concat(sr).reduce(function(Tr,Nr){return Tr.concat(getBasePlacement(Nr)===auto?computeAutoPlacement(ht,{placement:Nr,boundary:qn,rootBoundary:er,padding:Qn,flipVariations:Zn,allowedAutoPlacements:Xn}):Nr)},[]),hr=ht.rects.reference,gr=ht.rects.popper,ur=new Map,_r=!0,nr=vr[0],Sr=0;Sr<vr.length;Sr++){var Ar=vr[Sr],tr=getBasePlacement(Ar),Yn=getVariation(Ar)===start,fr=[top,bottom].indexOf(tr)>=0,Cr=fr?"width":"height",yr=detectOverflow(ht,{placement:Ar,boundary:qn,rootBoundary:er,altBoundary:Wn,padding:Qn}),Ir=fr?Yn?right:left:Yn?bottom:top;hr[Cr]>gr[Cr]&&(Ir=getOppositePlacement(Ir));var Pr=getOppositePlacement(Ir),Br=[];if(Un&&Br.push(yr[tr]<=0),Hn&&Br.push(yr[Ir]<=0,yr[Pr]<=0),Br.every(function(Tr){return Tr})){nr=Ar,_r=!1;break}ur.set(Ar,Br)}if(_r)for(var rr=Zn?3:1,pr=function(Nr){var Yr=vr.find(function(to){var po=ur.get(to);if(po)return po.slice(0,Nr).every(function(So){return So})});if(Yr)return nr=Yr,"break"},$r=rr;$r>0;$r--){var kr=pr($r);if(kr==="break")break}ht.placement!==nr&&(ht.modifiersData[Cn]._skip=!0,ht.placement=nr,ht.reset=!0)}}const flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(dt,ht,Dt){return Dt===void 0&&(Dt={x:0,y:0}),{top:dt.top-ht.height-Dt.y,right:dt.right-ht.width+Dt.x,bottom:dt.bottom-ht.height+Dt.y,left:dt.left-ht.width-Dt.x}}function isAnySideFullyClipped(dt){return[top,right,bottom,left].some(function(ht){return dt[ht]>=0})}function hide(dt){var ht=dt.state,Dt=dt.name,Cn=ht.rects.reference,$n=ht.rects.popper,Un=ht.modifiersData.preventOverflow,Fn=detectOverflow(ht,{elementContext:"reference"}),Hn=detectOverflow(ht,{altBoundary:!0}),Gn=getSideOffsets(Fn,Cn),Qn=getSideOffsets(Hn,$n,Un),qn=isAnySideFullyClipped(Gn),er=isAnySideFullyClipped(Qn);ht.modifiersData[Dt]={referenceClippingOffsets:Gn,popperEscapeOffsets:Qn,isReferenceHidden:qn,hasPopperEscaped:er},ht.attributes.popper=Object.assign({},ht.attributes.popper,{"data-popper-reference-hidden":qn,"data-popper-escaped":er})}const hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(dt,ht,Dt){var Cn=getBasePlacement(dt),$n=[left,top].indexOf(Cn)>=0?-1:1,Un=typeof Dt=="function"?Dt(Object.assign({},ht,{placement:dt})):Dt,Fn=Un[0],Hn=Un[1];return Fn=Fn||0,Hn=(Hn||0)*$n,[left,right].indexOf(Cn)>=0?{x:Hn,y:Fn}:{x:Fn,y:Hn}}function offset(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name,$n=Dt.offset,Un=$n===void 0?[0,0]:$n,Fn=placements.reduce(function(qn,er){return qn[er]=distanceAndSkiddingToXY(er,ht.rects,Un),qn},{}),Hn=Fn[ht.placement],Gn=Hn.x,Qn=Hn.y;ht.modifiersData.popperOffsets!=null&&(ht.modifiersData.popperOffsets.x+=Gn,ht.modifiersData.popperOffsets.y+=Qn),ht.modifiersData[Cn]=Fn}const offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(dt){var ht=dt.state,Dt=dt.name;ht.modifiersData[Dt]=computeOffsets({reference:ht.rects.reference,element:ht.rects.popper,strategy:"absolute",placement:ht.placement})}const popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(dt){return dt==="x"?"y":"x"}function preventOverflow(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name,$n=Dt.mainAxis,Un=$n===void 0?!0:$n,Fn=Dt.altAxis,Hn=Fn===void 0?!1:Fn,Gn=Dt.boundary,Qn=Dt.rootBoundary,qn=Dt.altBoundary,er=Dt.padding,Wn=Dt.tether,jn=Wn===void 0?!0:Wn,Zn=Dt.tetherOffset,Xn=Zn===void 0?0:Zn,ar=detectOverflow(ht,{boundary:Gn,rootBoundary:Qn,padding:er,altBoundary:qn}),dr=getBasePlacement(ht.placement),or=getVariation(ht.placement),sr=!or,vr=getMainAxisFromPlacement(dr),hr=getAltAxis(vr),gr=ht.modifiersData.popperOffsets,ur=ht.rects.reference,_r=ht.rects.popper,nr=typeof Xn=="function"?Xn(Object.assign({},ht.rects,{placement:ht.placement})):Xn,Sr=typeof nr=="number"?{mainAxis:nr,altAxis:nr}:Object.assign({mainAxis:0,altAxis:0},nr),Ar=ht.modifiersData.offset?ht.modifiersData.offset[ht.placement]:null,tr={x:0,y:0};if(gr){if(Un){var Yn,fr=vr==="y"?top:left,Cr=vr==="y"?bottom:right,yr=vr==="y"?"height":"width",Ir=gr[vr],Pr=Ir+ar[fr],Br=Ir-ar[Cr],rr=jn?-_r[yr]/2:0,pr=or===start?ur[yr]:_r[yr],$r=or===start?-_r[yr]:-ur[yr],kr=ht.elements.arrow,Tr=jn&&kr?getLayoutRect(kr):{width:0,height:0},Nr=ht.modifiersData["arrow#persistent"]?ht.modifiersData["arrow#persistent"].padding:getFreshSideObject(),Yr=Nr[fr],to=Nr[Cr],po=within(0,ur[yr],Tr[yr]),So=sr?ur[yr]/2-rr-po-Yr-Sr.mainAxis:pr-po-Yr-Sr.mainAxis,Jo=sr?-ur[yr]/2+rr+po+to+Sr.mainAxis:$r+po+to+Sr.mainAxis,Zo=ht.elements.arrow&&getOffsetParent(ht.elements.arrow),Vo=Zo?vr==="y"?Zo.clientTop||0:Zo.clientLeft||0:0,ls=(Yn=Ar==null?void 0:Ar[vr])!=null?Yn:0,Ao=Ir+So-ls-Vo,Ss=Ir+Jo-ls,mo=within(jn?min(Pr,Ao):Pr,Ir,jn?max(Br,Ss):Br);gr[vr]=mo,tr[vr]=mo-Ir}if(Hn){var Bo,To=vr==="x"?top:left,Do=vr==="x"?bottom:right,zr=gr[hr],na=hr==="y"?"height":"width",Fo=zr+ar[To],os=zr-ar[Do],ns=[top,left].indexOf(dr)!==-1,xa=(Bo=Ar==null?void 0:Ar[hr])!=null?Bo:0,Ts=ns?Fo:zr-ur[na]-_r[na]-xa+Sr.altAxis,Mo=ns?zr+ur[na]+_r[na]-xa-Sr.altAxis:os,yo=jn&&ns?withinMaxClamp(Ts,zr,Mo):within(jn?Ts:Fo,zr,jn?Mo:os);gr[hr]=yo,tr[hr]=yo-zr}ht.modifiersData[Cn]=tr}}const preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(dt){return{scrollLeft:dt.scrollLeft,scrollTop:dt.scrollTop}}function getNodeScroll(dt){return dt===getWindow(dt)||!isHTMLElement$1(dt)?getWindowScroll(dt):getHTMLElementScroll(dt)}function isElementScaled(dt){var ht=dt.getBoundingClientRect(),Dt=round$1(ht.width)/dt.offsetWidth||1,Cn=round$1(ht.height)/dt.offsetHeight||1;return Dt!==1||Cn!==1}function getCompositeRect(dt,ht,Dt){Dt===void 0&&(Dt=!1);var Cn=isHTMLElement$1(ht),$n=isHTMLElement$1(ht)&&isElementScaled(ht),Un=getDocumentElement(ht),Fn=getBoundingClientRect(dt,$n,Dt),Hn={scrollLeft:0,scrollTop:0},Gn={x:0,y:0};return(Cn||!Cn&&!Dt)&&((getNodeName(ht)!=="body"||isScrollParent(Un))&&(Hn=getNodeScroll(ht)),isHTMLElement$1(ht)?(Gn=getBoundingClientRect(ht,!0),Gn.x+=ht.clientLeft,Gn.y+=ht.clientTop):Un&&(Gn.x=getWindowScrollBarX(Un))),{x:Fn.left+Hn.scrollLeft-Gn.x,y:Fn.top+Hn.scrollTop-Gn.y,width:Fn.width,height:Fn.height}}function order(dt){var ht=new Map,Dt=new Set,Cn=[];dt.forEach(function(Un){ht.set(Un.name,Un)});function $n(Un){Dt.add(Un.name);var Fn=[].concat(Un.requires||[],Un.requiresIfExists||[]);Fn.forEach(function(Hn){if(!Dt.has(Hn)){var Gn=ht.get(Hn);Gn&&$n(Gn)}}),Cn.push(Un)}return dt.forEach(function(Un){Dt.has(Un.name)||$n(Un)}),Cn}function orderModifiers(dt){var ht=order(dt);return modifierPhases.reduce(function(Dt,Cn){return Dt.concat(ht.filter(function($n){return $n.phase===Cn}))},[])}function debounce(dt){var ht;return function(){return ht||(ht=new Promise(function(Dt){Promise.resolve().then(function(){ht=void 0,Dt(dt())})})),ht}}function mergeByName(dt){var ht=dt.reduce(function(Dt,Cn){var $n=Dt[Cn.name];return Dt[Cn.name]=$n?Object.assign({},$n,Cn,{options:Object.assign({},$n.options,Cn.options),data:Object.assign({},$n.data,Cn.data)}):Cn,Dt},{});return Object.keys(ht).map(function(Dt){return ht[Dt]})}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var dt=arguments.length,ht=new Array(dt),Dt=0;Dt<dt;Dt++)ht[Dt]=arguments[Dt];return!ht.some(function(Cn){return!(Cn&&typeof Cn.getBoundingClientRect=="function")})}function popperGenerator(dt){dt===void 0&&(dt={});var ht=dt,Dt=ht.defaultModifiers,Cn=Dt===void 0?[]:Dt,$n=ht.defaultOptions,Un=$n===void 0?DEFAULT_OPTIONS:$n;return function(Hn,Gn,Qn){Qn===void 0&&(Qn=Un);var qn={placement:"bottom",orderedModifiers:[],options:Object.assign({},DEFAULT_OPTIONS,Un),modifiersData:{},elements:{reference:Hn,popper:Gn},attributes:{},styles:{}},er=[],Wn=!1,jn={state:qn,setOptions:function(dr){var or=typeof dr=="function"?dr(qn.options):dr;Xn(),qn.options=Object.assign({},Un,qn.options,or),qn.scrollParents={reference:isElement(Hn)?listScrollParents(Hn):Hn.contextElement?listScrollParents(Hn.contextElement):[],popper:listScrollParents(Gn)};var sr=orderModifiers(mergeByName([].concat(Cn,qn.options.modifiers)));return qn.orderedModifiers=sr.filter(function(vr){return vr.enabled}),Zn(),jn.update()},forceUpdate:function(){if(!Wn){var dr=qn.elements,or=dr.reference,sr=dr.popper;if(areValidElements(or,sr)){qn.rects={reference:getCompositeRect(or,getOffsetParent(sr),qn.options.strategy==="fixed"),popper:getLayoutRect(sr)},qn.reset=!1,qn.placement=qn.options.placement,qn.orderedModifiers.forEach(function(Sr){return qn.modifiersData[Sr.name]=Object.assign({},Sr.data)});for(var vr=0;vr<qn.orderedModifiers.length;vr++){if(qn.reset===!0){qn.reset=!1,vr=-1;continue}var hr=qn.orderedModifiers[vr],gr=hr.fn,ur=hr.options,_r=ur===void 0?{}:ur,nr=hr.name;typeof gr=="function"&&(qn=gr({state:qn,options:_r,name:nr,instance:jn})||qn)}}}},update:debounce(function(){return new Promise(function(ar){jn.forceUpdate(),ar(qn)})}),destroy:function(){Xn(),Wn=!0}};if(!areValidElements(Hn,Gn))return jn;jn.setOptions(Qn).then(function(ar){!Wn&&Qn.onFirstUpdate&&Qn.onFirstUpdate(ar)});function Zn(){qn.orderedModifiers.forEach(function(ar){var dr=ar.name,or=ar.options,sr=or===void 0?{}:or,vr=ar.effect;if(typeof vr=="function"){var hr=vr({state:qn,name:dr,instance:jn,options:sr}),gr=function(){};er.push(hr||gr)}})}function Xn(){er.forEach(function(ar){return ar()}),er=[]}return jn}}var defaultModifiers=[eventListeners,popperOffsets$1,computeStyles$1,applyStyles$1,offset$1,flip$1,preventOverflow$1,arrow$1,hide$1],createPopper=popperGenerator({defaultModifiers});function getContainer$1(dt){return typeof dt=="function"?dt():dt}const Portal=reactExports.forwardRef(function dt(ht,Dt){const{children:Cn,container:$n,disablePortal:Un=!1}=ht,[Fn,Hn]=reactExports.useState(null),Gn=useForkRef(reactExports.isValidElement(Cn)?Cn.ref:null,Dt);if(useEnhancedEffect$1(()=>{Un||Hn(getContainer$1($n)||document.body)},[$n,Un]),useEnhancedEffect$1(()=>{if(Fn&&!Un)return setRef(Dt,Fn),()=>{setRef(Dt,null)}},[Dt,Fn,Un]),Un){if(reactExports.isValidElement(Cn)){const Qn={ref:Gn};return reactExports.cloneElement(Cn,Qn)}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:Cn})}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:Fn&&reactDomExports.createPortal(Cn,Fn)})});function getPopperUtilityClass(dt){return generateUtilityClass("MuiPopper",dt)}generateUtilityClasses("MuiPopper",["root"]);const _excluded$G=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],_excluded2$3=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function flipPlacement(dt,ht){if(ht==="ltr")return dt;switch(dt){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return dt}}function resolveAnchorEl$1(dt){return typeof dt=="function"?dt():dt}function isHTMLElement(dt){return dt.nodeType!==void 0}const useUtilityClasses$y=()=>composeClasses({root:["root"]},useClassNamesOverride(getPopperUtilityClass)),defaultPopperOptions={},PopperTooltip=reactExports.forwardRef(function dt(ht,Dt){var Cn;const{anchorEl:$n,children:Un,direction:Fn,disablePortal:Hn,modifiers:Gn,open:Qn,placement:qn,popperOptions:er,popperRef:Wn,slotProps:jn={},slots:Zn={},TransitionProps:Xn}=ht,ar=_objectWithoutPropertiesLoose(ht,_excluded$G),dr=reactExports.useRef(null),or=useForkRef(dr,Dt),sr=reactExports.useRef(null),vr=useForkRef(sr,Wn),hr=reactExports.useRef(vr);useEnhancedEffect$1(()=>{hr.current=vr},[vr]),reactExports.useImperativeHandle(Wn,()=>sr.current,[]);const gr=flipPlacement(qn,Fn),[ur,_r]=reactExports.useState(gr),[nr,Sr]=reactExports.useState(resolveAnchorEl$1($n));reactExports.useEffect(()=>{sr.current&&sr.current.forceUpdate()}),reactExports.useEffect(()=>{$n&&Sr(resolveAnchorEl$1($n))},[$n]),useEnhancedEffect$1(()=>{if(!nr||!Qn)return;const Cr=Pr=>{_r(Pr.placement)};let yr=[{name:"preventOverflow",options:{altBoundary:Hn}},{name:"flip",options:{altBoundary:Hn}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:Pr})=>{Cr(Pr)}}];Gn!=null&&(yr=yr.concat(Gn)),er&&er.modifiers!=null&&(yr=yr.concat(er.modifiers));const Ir=createPopper(nr,dr.current,_extends({placement:gr},er,{modifiers:yr}));return hr.current(Ir),()=>{Ir.destroy(),hr.current(null)}},[nr,Hn,Gn,Qn,er,gr]);const Ar={placement:ur};Xn!==null&&(Ar.TransitionProps=Xn);const tr=useUtilityClasses$y(),Yn=(Cn=Zn.root)!=null?Cn:"div",fr=useSlotProps({elementType:Yn,externalSlotProps:jn.root,externalForwardedProps:ar,additionalProps:{role:"tooltip",ref:or},ownerState:ht,className:tr.root});return jsxRuntimeExports.jsx(Yn,_extends({},fr,{children:typeof Un=="function"?Un(Ar):Un}))}),Popper$2=reactExports.forwardRef(function dt(ht,Dt){const{anchorEl:Cn,children:$n,container:Un,direction:Fn="ltr",disablePortal:Hn=!1,keepMounted:Gn=!1,modifiers:Qn,open:qn,placement:er="bottom",popperOptions:Wn=defaultPopperOptions,popperRef:jn,style:Zn,transition:Xn=!1,slotProps:ar={},slots:dr={}}=ht,or=_objectWithoutPropertiesLoose(ht,_excluded2$3),[sr,vr]=reactExports.useState(!0),hr=()=>{vr(!1)},gr=()=>{vr(!0)};if(!Gn&&!qn&&(!Xn||sr))return null;let ur;if(Un)ur=Un;else if(Cn){const Sr=resolveAnchorEl$1(Cn);ur=Sr&&isHTMLElement(Sr)?ownerDocument(Sr).body:ownerDocument(null).body}const _r=!qn&&Gn&&(!Xn||sr)?"none":void 0,nr=Xn?{in:qn,onEnter:hr,onExited:gr}:void 0;return jsxRuntimeExports.jsx(Portal,{disablePortal:Hn,container:ur,children:jsxRuntimeExports.jsx(PopperTooltip,_extends({anchorEl:Cn,direction:Fn,disablePortal:Hn,modifiers:Qn,ref:Dt,open:Xn?!sr:qn,placement:er,popperOptions:Wn,popperRef:jn,slotProps:ar,slots:dr},or,{style:_extends({position:"fixed",top:0,left:0,display:_r},Zn),TransitionProps:nr,children:$n}))})});function isOverflowing(dt){const ht=ownerDocument(dt);return ht.body===dt?ownerWindow(dt).innerWidth>ht.documentElement.clientWidth:dt.scrollHeight>dt.clientHeight}function ariaHidden(dt,ht){ht?dt.setAttribute("aria-hidden","true"):dt.removeAttribute("aria-hidden")}function getPaddingRight(dt){return parseInt(ownerWindow(dt).getComputedStyle(dt).paddingRight,10)||0}function isAriaHiddenForbiddenOnElement(dt){const Dt=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(dt.tagName)!==-1,Cn=dt.tagName==="INPUT"&&dt.getAttribute("type")==="hidden";return Dt||Cn}function ariaHiddenSiblings(dt,ht,Dt,Cn,$n){const Un=[ht,Dt,...Cn];[].forEach.call(dt.children,Fn=>{const Hn=Un.indexOf(Fn)===-1,Gn=!isAriaHiddenForbiddenOnElement(Fn);Hn&&Gn&&ariaHidden(Fn,$n)})}function findIndexOf(dt,ht){let Dt=-1;return dt.some((Cn,$n)=>ht(Cn)?(Dt=$n,!0):!1),Dt}function handleContainer(dt,ht){const Dt=[],Cn=dt.container;if(!ht.disableScrollLock){if(isOverflowing(Cn)){const Fn=getScrollbarSize(ownerDocument(Cn));Dt.push({value:Cn.style.paddingRight,property:"padding-right",el:Cn}),Cn.style.paddingRight=`${getPaddingRight(Cn)+Fn}px`;const Hn=ownerDocument(Cn).querySelectorAll(".mui-fixed");[].forEach.call(Hn,Gn=>{Dt.push({value:Gn.style.paddingRight,property:"padding-right",el:Gn}),Gn.style.paddingRight=`${getPaddingRight(Gn)+Fn}px`})}let Un;if(Cn.parentNode instanceof DocumentFragment)Un=ownerDocument(Cn).body;else{const Fn=Cn.parentElement,Hn=ownerWindow(Cn);Un=(Fn==null?void 0:Fn.nodeName)==="HTML"&&Hn.getComputedStyle(Fn).overflowY==="scroll"?Fn:Cn}Dt.push({value:Un.style.overflow,property:"overflow",el:Un},{value:Un.style.overflowX,property:"overflow-x",el:Un},{value:Un.style.overflowY,property:"overflow-y",el:Un}),Un.style.overflow="hidden"}return()=>{Dt.forEach(({value:Un,el:Fn,property:Hn})=>{Un?Fn.style.setProperty(Hn,Un):Fn.style.removeProperty(Hn)})}}function getHiddenSiblings(dt){const ht=[];return[].forEach.call(dt.children,Dt=>{Dt.getAttribute("aria-hidden")==="true"&&ht.push(Dt)}),ht}class ModalManager{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(ht,Dt){let Cn=this.modals.indexOf(ht);if(Cn!==-1)return Cn;Cn=this.modals.length,this.modals.push(ht),ht.modalRef&&ariaHidden(ht.modalRef,!1);const $n=getHiddenSiblings(Dt);ariaHiddenSiblings(Dt,ht.mount,ht.modalRef,$n,!0);const Un=findIndexOf(this.containers,Fn=>Fn.container===Dt);return Un!==-1?(this.containers[Un].modals.push(ht),Cn):(this.containers.push({modals:[ht],container:Dt,restore:null,hiddenSiblings:$n}),Cn)}mount(ht,Dt){const Cn=findIndexOf(this.containers,Un=>Un.modals.indexOf(ht)!==-1),$n=this.containers[Cn];$n.restore||($n.restore=handleContainer($n,Dt))}remove(ht,Dt=!0){const Cn=this.modals.indexOf(ht);if(Cn===-1)return Cn;const $n=findIndexOf(this.containers,Fn=>Fn.modals.indexOf(ht)!==-1),Un=this.containers[$n];if(Un.modals.splice(Un.modals.indexOf(ht),1),this.modals.splice(Cn,1),Un.modals.length===0)Un.restore&&Un.restore(),ht.modalRef&&ariaHidden(ht.modalRef,Dt),ariaHiddenSiblings(Un.container,ht.mount,ht.modalRef,Un.hiddenSiblings,!1),this.containers.splice($n,1);else{const Fn=Un.modals[Un.modals.length-1];Fn.modalRef&&ariaHidden(Fn.modalRef,!1)}return Cn}isTopModal(ht){return this.modals.length>0&&this.modals[this.modals.length-1]===ht}}function getContainer(dt){return typeof dt=="function"?dt():dt}function getHasTransition(dt){return dt?dt.props.hasOwnProperty("in"):!1}const defaultManager=new ModalManager;function useModal(dt){const{container:ht,disableEscapeKeyDown:Dt=!1,disableScrollLock:Cn=!1,manager:$n=defaultManager,closeAfterTransition:Un=!1,onTransitionEnter:Fn,onTransitionExited:Hn,children:Gn,onClose:Qn,open:qn,rootRef:er}=dt,Wn=reactExports.useRef({}),jn=reactExports.useRef(null),Zn=reactExports.useRef(null),Xn=useForkRef(Zn,er),[ar,dr]=reactExports.useState(!qn),or=getHasTransition(Gn);let sr=!0;(dt["aria-hidden"]==="false"||dt["aria-hidden"]===!1)&&(sr=!1);const vr=()=>ownerDocument(jn.current),hr=()=>(Wn.current.modalRef=Zn.current,Wn.current.mount=jn.current,Wn.current),gr=()=>{$n.mount(hr(),{disableScrollLock:Cn}),Zn.current&&(Zn.current.scrollTop=0)},ur=useEventCallback(()=>{const yr=getContainer(ht)||vr().body;$n.add(hr(),yr),Zn.current&&gr()}),_r=reactExports.useCallback(()=>$n.isTopModal(hr()),[$n]),nr=useEventCallback(yr=>{jn.current=yr,yr&&(qn&&_r()?gr():Zn.current&&ariaHidden(Zn.current,sr))}),Sr=reactExports.useCallback(()=>{$n.remove(hr(),sr)},[sr,$n]);reactExports.useEffect(()=>()=>{Sr()},[Sr]),reactExports.useEffect(()=>{qn?ur():(!or||!Un)&&Sr()},[qn,Sr,or,Un,ur]);const Ar=yr=>Ir=>{var Pr;(Pr=yr.onKeyDown)==null||Pr.call(yr,Ir),!(Ir.key!=="Escape"||!_r())&&(Dt||(Ir.stopPropagation(),Qn&&Qn(Ir,"escapeKeyDown")))},tr=yr=>Ir=>{var Pr;(Pr=yr.onClick)==null||Pr.call(yr,Ir),Ir.target===Ir.currentTarget&&Qn&&Qn(Ir,"backdropClick")};return{getRootProps:(yr={})=>{const Ir=extractEventHandlers(dt);delete Ir.onTransitionEnter,delete Ir.onTransitionExited;const Pr=_extends({},Ir,yr);return _extends({role:"presentation"},Pr,{onKeyDown:Ar(Pr),ref:Xn})},getBackdropProps:(yr={})=>{const Ir=yr;return _extends({"aria-hidden":!0},Ir,{onClick:tr(Ir),open:qn})},getTransitionProps:()=>{const yr=()=>{dr(!1),Fn&&Fn()},Ir=()=>{dr(!0),Hn&&Hn(),Un&&Sr()};return{onEnter:createChainedFunction(yr,Gn.props.onEnter),onExited:createChainedFunction(Ir,Gn.props.onExited)}},rootRef:Xn,portalRef:nr,isTopModal:_r,exited:ar,hasTransition:or}}const INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(dt,ht){return dt-ht}function clamp(dt,ht,Dt){return dt==null?ht:Math.min(Math.max(ht,dt),Dt)}function findClosest(dt,ht){var Dt;const{index:Cn}=(Dt=dt.reduce(($n,Un,Fn)=>{const Hn=Math.abs(ht-Un);return $n===null||Hn<$n.distance||Hn===$n.distance?{distance:Hn,index:Fn}:$n},null))!=null?Dt:{};return Cn}function trackFinger(dt,ht){if(ht.current!==void 0&&dt.changedTouches){const Dt=dt;for(let Cn=0;Cn<Dt.changedTouches.length;Cn+=1){const $n=Dt.changedTouches[Cn];if($n.identifier===ht.current)return{x:$n.clientX,y:$n.clientY}}return!1}return{x:dt.clientX,y:dt.clientY}}function valueToPercent(dt,ht,Dt){return(dt-ht)*100/(Dt-ht)}function percentToValue(dt,ht,Dt){return(Dt-ht)*dt+ht}function getDecimalPrecision(dt){if(Math.abs(dt)<1){const Dt=dt.toExponential().split("e-"),Cn=Dt[0].split(".")[1];return(Cn?Cn.length:0)+parseInt(Dt[1],10)}const ht=dt.toString().split(".")[1];return ht?ht.length:0}function roundValueToStep(dt,ht,Dt){const Cn=Math.round((dt-Dt)/ht)*ht+Dt;return Number(Cn.toFixed(getDecimalPrecision(ht)))}function setValueIndex({values:dt,newValue:ht,index:Dt}){const Cn=dt.slice();return Cn[Dt]=ht,Cn.sort(asc)}function focusThumb({sliderRef:dt,activeIndex:ht,setActive:Dt}){var Cn,$n;const Un=ownerDocument(dt.current);if(!((Cn=dt.current)!=null&&Cn.contains(Un.activeElement))||Number(Un==null||($n=Un.activeElement)==null?void 0:$n.getAttribute("data-index"))!==ht){var Fn;(Fn=dt.current)==null||Fn.querySelector(`[type="range"][data-index="${ht}"]`).focus()}Dt&&Dt(ht)}function areValuesEqual(dt,ht){return typeof dt=="number"&&typeof ht=="number"?dt===ht:typeof dt=="object"&&typeof ht=="object"?areArraysEqual(dt,ht):!1}const axisProps={horizontal:{offset:dt=>({left:`${dt}%`}),leap:dt=>({width:`${dt}%`})},"horizontal-reverse":{offset:dt=>({right:`${dt}%`}),leap:dt=>({width:`${dt}%`})},vertical:{offset:dt=>({bottom:`${dt}%`}),leap:dt=>({height:`${dt}%`})}},Identity$1=dt=>dt;let cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?cachedSupportsTouchActionNone=CSS.supports("touch-action","none"):cachedSupportsTouchActionNone=!0),cachedSupportsTouchActionNone}function useSlider(dt){const{"aria-labelledby":ht,defaultValue:Dt,disabled:Cn=!1,disableSwap:$n=!1,isRtl:Un=!1,marks:Fn=!1,max:Hn=100,min:Gn=0,name:Qn,onChange:qn,onChangeCommitted:er,orientation:Wn="horizontal",rootRef:jn,scale:Zn=Identity$1,step:Xn=1,tabIndex:ar,value:dr}=dt,or=reactExports.useRef(),[sr,vr]=reactExports.useState(-1),[hr,gr]=reactExports.useState(-1),[ur,_r]=reactExports.useState(!1),nr=reactExports.useRef(0),[Sr,Ar]=useControlled({controlled:dr,default:Dt??Gn,name:"Slider"}),tr=qn&&((xa,Ts,Mo)=>{const yo=xa.nativeEvent||xa,Po=new yo.constructor(yo.type,yo);Object.defineProperty(Po,"target",{writable:!0,value:{value:Ts,name:Qn}}),qn(Po,Ts,Mo)}),Yn=Array.isArray(Sr);let fr=Yn?Sr.slice().sort(asc):[Sr];fr=fr.map(xa=>clamp(xa,Gn,Hn));const Cr=Fn===!0&&Xn!==null?[...Array(Math.floor((Hn-Gn)/Xn)+1)].map((xa,Ts)=>({value:Gn+Xn*Ts})):Fn||[],yr=Cr.map(xa=>xa.value),{isFocusVisibleRef:Ir,onBlur:Pr,onFocus:Br,ref:rr}=useIsFocusVisible(),[pr,$r]=reactExports.useState(-1),kr=reactExports.useRef(),Tr=useForkRef(rr,kr),Nr=useForkRef(jn,Tr),Yr=xa=>Ts=>{var Mo;const yo=Number(Ts.currentTarget.getAttribute("data-index"));Br(Ts),Ir.current===!0&&$r(yo),gr(yo),xa==null||(Mo=xa.onFocus)==null||Mo.call(xa,Ts)},to=xa=>Ts=>{var Mo;Pr(Ts),Ir.current===!1&&$r(-1),gr(-1),xa==null||(Mo=xa.onBlur)==null||Mo.call(xa,Ts)};useEnhancedEffect$1(()=>{if(Cn&&kr.current.contains(document.activeElement)){var xa;(xa=document.activeElement)==null||xa.blur()}},[Cn]),Cn&&sr!==-1&&vr(-1),Cn&&pr!==-1&&$r(-1);const po=xa=>Ts=>{var Mo;(Mo=xa.onChange)==null||Mo.call(xa,Ts);const yo=Number(Ts.currentTarget.getAttribute("data-index")),Po=fr[yo],Wo=yr.indexOf(Po);let as=Ts.target.valueAsNumber;if(Cr&&Xn==null){const Bs=yr[yr.length-1];as>Bs?as=Bs:as<yr[0]?as=yr[0]:as=as<Po?yr[Wo-1]:yr[Wo+1]}if(as=clamp(as,Gn,Hn),Yn){$n&&(as=clamp(as,fr[yo-1]||-1/0,fr[yo+1]||1/0));const Bs=as;as=setValueIndex({values:fr,newValue:as,index:yo});let ys=yo;$n||(ys=as.indexOf(Bs)),focusThumb({sliderRef:kr,activeIndex:ys})}Ar(as),$r(yo),tr&&!areValuesEqual(as,Sr)&&tr(Ts,as,yo),er&&er(Ts,as)},So=reactExports.useRef();let Jo=Wn;Un&&Wn==="horizontal"&&(Jo+="-reverse");const Zo=({finger:xa,move:Ts=!1})=>{const{current:Mo}=kr,{width:yo,height:Po,bottom:Wo,left:as}=Mo.getBoundingClientRect();let Bs;Jo.indexOf("vertical")===0?Bs=(Wo-xa.y)/Po:Bs=(xa.x-as)/yo,Jo.indexOf("-reverse")!==-1&&(Bs=1-Bs);let ys;if(ys=percentToValue(Bs,Gn,Hn),Xn)ys=roundValueToStep(ys,Xn,Gn);else{const tu=findClosest(yr,ys);ys=yr[tu]}ys=clamp(ys,Gn,Hn);let Qs=0;if(Yn){Ts?Qs=So.current:Qs=findClosest(fr,ys),$n&&(ys=clamp(ys,fr[Qs-1]||-1/0,fr[Qs+1]||1/0));const tu=ys;ys=setValueIndex({values:fr,newValue:ys,index:Qs}),$n&&Ts||(Qs=ys.indexOf(tu),So.current=Qs)}return{newValue:ys,activeIndex:Qs}},Vo=useEventCallback(xa=>{const Ts=trackFinger(xa,or);if(!Ts)return;if(nr.current+=1,xa.type==="mousemove"&&xa.buttons===0){ls(xa);return}const{newValue:Mo,activeIndex:yo}=Zo({finger:Ts,move:!0});focusThumb({sliderRef:kr,activeIndex:yo,setActive:vr}),Ar(Mo),!ur&&nr.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&_r(!0),tr&&!areValuesEqual(Mo,Sr)&&tr(xa,Mo,yo)}),ls=useEventCallback(xa=>{const Ts=trackFinger(xa,or);if(_r(!1),!Ts)return;const{newValue:Mo}=Zo({finger:Ts,move:!0});vr(-1),xa.type==="touchend"&&gr(-1),er&&er(xa,Mo),or.current=void 0,Ss()}),Ao=useEventCallback(xa=>{if(Cn)return;doesSupportTouchActionNone()||xa.preventDefault();const Ts=xa.changedTouches[0];Ts!=null&&(or.current=Ts.identifier);const Mo=trackFinger(xa,or);if(Mo!==!1){const{newValue:Po,activeIndex:Wo}=Zo({finger:Mo});focusThumb({sliderRef:kr,activeIndex:Wo,setActive:vr}),Ar(Po),tr&&!areValuesEqual(Po,Sr)&&tr(xa,Po,Wo)}nr.current=0;const yo=ownerDocument(kr.current);yo.addEventListener("touchmove",Vo),yo.addEventListener("touchend",ls)}),Ss=reactExports.useCallback(()=>{const xa=ownerDocument(kr.current);xa.removeEventListener("mousemove",Vo),xa.removeEventListener("mouseup",ls),xa.removeEventListener("touchmove",Vo),xa.removeEventListener("touchend",ls)},[ls,Vo]);reactExports.useEffect(()=>{const{current:xa}=kr;return xa.addEventListener("touchstart",Ao,{passive:doesSupportTouchActionNone()}),()=>{xa.removeEventListener("touchstart",Ao,{passive:doesSupportTouchActionNone()}),Ss()}},[Ss,Ao]),reactExports.useEffect(()=>{Cn&&Ss()},[Cn,Ss]);const mo=xa=>Ts=>{var Mo;if((Mo=xa.onMouseDown)==null||Mo.call(xa,Ts),Cn||Ts.defaultPrevented||Ts.button!==0)return;Ts.preventDefault();const yo=trackFinger(Ts,or);if(yo!==!1){const{newValue:Wo,activeIndex:as}=Zo({finger:yo});focusThumb({sliderRef:kr,activeIndex:as,setActive:vr}),Ar(Wo),tr&&!areValuesEqual(Wo,Sr)&&tr(Ts,Wo,as)}nr.current=0;const Po=ownerDocument(kr.current);Po.addEventListener("mousemove",Vo),Po.addEventListener("mouseup",ls)},Bo=valueToPercent(Yn?fr[0]:Gn,Gn,Hn),To=valueToPercent(fr[fr.length-1],Gn,Hn)-Bo,Do=(xa={})=>{const Ts={onMouseDown:mo(xa||{})},Mo=_extends({},xa,Ts);return _extends({ref:Nr},Mo)},zr=xa=>Ts=>{var Mo;(Mo=xa.onMouseOver)==null||Mo.call(xa,Ts);const yo=Number(Ts.currentTarget.getAttribute("data-index"));gr(yo)},na=xa=>Ts=>{var Mo;(Mo=xa.onMouseLeave)==null||Mo.call(xa,Ts),gr(-1)};return{active:sr,axis:Jo,axisProps,dragging:ur,focusedThumbIndex:pr,getHiddenInputProps:(xa={})=>{var Ts;const Mo={onChange:po(xa||{}),onFocus:Yr(xa||{}),onBlur:to(xa||{})},yo=_extends({},xa,Mo);return _extends({tabIndex:ar,"aria-labelledby":ht,"aria-orientation":Wn,"aria-valuemax":Zn(Hn),"aria-valuemin":Zn(Gn),name:Qn,type:"range",min:dt.min,max:dt.max,step:dt.step===null&&dt.marks?"any":(Ts=dt.step)!=null?Ts:void 0,disabled:Cn},yo,{style:_extends({},visuallyHidden$1,{direction:Un?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:Do,getThumbProps:(xa={})=>{const Ts={onMouseOver:zr(xa||{}),onMouseLeave:na(xa||{})};return _extends({},xa,Ts)},marks:Cr,open:hr,range:Yn,rootRef:Nr,trackLeap:To,trackOffset:Bo,values:fr,getThumbStyle:xa=>({pointerEvents:sr!==-1&&sr!==xa?"none":void 0})}}const _excluded$F=["onChange","maxRows","minRows","style","value"];function getStyleValue(dt){return parseInt(dt,10)||0}const styles$3={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isEmpty$1(dt){return dt==null||Object.keys(dt).length===0||dt.outerHeightStyle===0&&!dt.overflow}const TextareaAutosize=reactExports.forwardRef(function dt(ht,Dt){const{onChange:Cn,maxRows:$n,minRows:Un=1,style:Fn,value:Hn}=ht,Gn=_objectWithoutPropertiesLoose(ht,_excluded$F),{current:Qn}=reactExports.useRef(Hn!=null),qn=reactExports.useRef(null),er=useForkRef(Dt,qn),Wn=reactExports.useRef(null),jn=reactExports.useRef(0),[Zn,Xn]=reactExports.useState({outerHeightStyle:0}),ar=reactExports.useCallback(()=>{const hr=qn.current,ur=ownerWindow(hr).getComputedStyle(hr);if(ur.width==="0px")return{outerHeightStyle:0};const _r=Wn.current;_r.style.width=ur.width,_r.value=hr.value||ht.placeholder||"x",_r.value.slice(-1)===`
330
+ `))}return _r[tr]=`${hr.key}-${Gn}${Un!==void 0?`-${Un}`:""}-${tr}-ref`}})}:{})),Sr=objectFromEntries(objectKeys(nr).map(Ar=>{const tr=nr[Ar];return tr.label||(tr.label=`${Un!==void 0?`${Un}-`:""}${Ar}`),[Ar,`${sr(tr)}${typeGuard(Ar,Ar in _r)?` ${_r[Ar]}`:""}`]}));return objectKeys(_r).forEach(Ar=>{Ar in Sr||(Sr[Ar]=_r[Ar])}),Sr},[hr,sr,vr,getDependencyArrayRef(er),...Object.values(or)]);gr=reactExports.useMemo(()=>mergeClasses(gr,ar,vr),[gr,getDependencyArrayRef(ar),vr]);const ur=$n(Object.assign(Object.assign({classes:gr,css:sr,cx:vr,idOfUseStyles:Gn,name:Un},or),dr));return Object.assign({classes:(Wn=ur.classes)!==null&&Wn!==void 0?Wn:gr,css:(jn=ur.css)!==null&&jn!==void 0?jn:sr,cx:(Zn=ur.cx)!==null&&Zn!==void 0?Zn:vr},or)}}}}function createMakeAndWithStyles(dt){return Object.assign(Object.assign({},createMakeStyles(dt)),createWithStyles(dt))}const{tss:tss$1}=createTss({useContext:()=>({})});tss$1.create({});const{makeStyles,withStyles}=createMakeAndWithStyles({useTheme}),{tss}=createTss({useContext:function dt(){return{theme:useTheme()}},usePlugin:useMuiThemeStyleOverridesPlugin});tss.create({});const SANCTIONED_WALLETS=Object.freeze(new Set(["3","1Gq","1N6XqS","1B64QRxf","1B11Ezqg3AXj","3F6bbvS1krsc1qR8FsbTDfYQyvkMm","125W5ek3DT6Zqy5S2iPt4FHQdNMCbZA3FU","1295rkVyNfFpqZpXvKGhDqwhP1jZcNNDMV","129zKFLoVad9JtxSmDKeJoLCsjhGR7b3vr","12HQDsicffSBaYdJ6BhnE22sfjTESmmzKx","12NpCkhddSNiDkD9rRYUCHsTT9ReMNiJjG","12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h","12udabs2TkX7NXCSj6KpqXfakjE52ZPLhz","12w6v1qAaBc4W8h8C2Cu5SKFaKDSv3erUW","12YCfVAEzkEZXBYhUTyJJaRkgMXiFxJgcu","12YyR9EpvHxBjjKjTWqfKqeyoWnvcraxpW","134r8iHv69xdT6p5qVKTsHrcUEuBVZAYak","13f59kUM5FU8MfTG7DCEugYarDhSD7XCoC","13mnk8SvDGqsQTHbiGiHBXqtaQCUKfcsnP","13RH4JaFhaCxDGPyYE9emjp2aDxdX18uBA","13YBQr2Cp1YY3xqq2qngaPb7ca1o4ugeq6","149w62rY42aZBox8fGcmqNsXUzSStKeq8C","14gM1HuLVDELNHaFU22qpabjtiWek4HhV1","14kqryJUxM3a7aEi117KX9hoLUw592WsMR","14rjAD8ZP5xaL571cMRE98qgxxbg1S8mAN","158treVZBGMBThoaympxccPdZPtqUfYrT9","15cRqR3TXS1JehBGWERuxFE8NhWZzfoeeU","15kZobLkD6HZgEECtz4oS2Vz21XHTnNfSg","15Pt4NwZaUmMUwS2bQbyyncc7mzgWShtv8","15qyVrZvvVGvB7GWiAZ82TNcZ6QWMKu3kx","15uqdxqNXQwVf5H7yZPz4TmEGeSccCwdor","15YK647qtoZQDzNrvY6HJL6QwXduLHfT28","15yqWQ4sqr7jzCwDtZ3U1KaCa8WMEy7Mm2","16PhXY3hNNMTo8kpuJx2emh713KbWpkqci","17a5bpKvEp1j1Trs4qTbcNZrby53JbaS9C","17ezuJoT3XBbdcwFZbkTnrXbup11F4uhiy","17mhyeBX617ABZ1ffThhUTJkHUcMvCkfd5","17UVSMegvrzfobKC82dHXpZLtLcqzW9stF","17V7THwHMiDJmDwZK4unhE5HgKFJKx7VCe","182NGZbPJXwg2WDrhrPpR7tpiGQkNPF844","18gaXypKj9M23S2zT9qZfL9iPbLFM372Q5","18Qj1THHuETfYhuRDZycXJbWwDMGw73Poa","18uKfaUjgG52rVeXEi3wxnveww7zZuECtE","18yWCu6agTxYqAerMxiz9sgHrK3ViezzGa","1986rYHckYbJpGQJy6ornuMyD2N5MTqwDt","19D1iGzDr7FyAdiy3ZZdxMd6ttHj1kj6WW","19D8PHBjZH29uS1uPZ4m3sVyqqfF8UFG9o","19GrL5jnUkGmHXVcraB1Etv5rXCANeLWpq","1A7SKE2dQtezLktCY8peLsdAtkqxV9r1dC","1AeSq93WDNdLoEJ92sex7T8xQZoYYm8BtS","1AjZPMsnmpdK2Rv9KQNfMurTXinscVro9V","1AoxtfiBQ22DvbhqAN9Ctb8sULMRhrdwTr","1AXUTu9y3H8w4wYx4BjyFWgRhZKDhmcMrn","1BiUFjzH6wsT73U3tfy4aXHCQsYQHzjk5h","1CF46Rfbp97absrs7zb7dFfZS6qBXUm9EP","1CPJak9ZyddbawMGJPyEhCiJLXXb4sYv8N","1D6gG9iKEhPitTcWRJiniuj1jYM2hNeAfJ","1DbShx4r8i2XesthoDBf5EkYWz5dsKEusV","1DbvK8P6imBuLcwh2Vruis4xsUb8YAwJQF","1DDA93oZPn7wte2eR1ABwcFoxUFxkKMwCf","1Df883c96LVauVsx9FEgnsourD8DELwCUQ","1DH2xDH7TngrDU6LXciprKCBKNcPA1xX8A","1DJoEMvp95yJYWyxAZy8DDBzuvjnrTVrsN","1DJoVLgn1foJHHngduRPJvRbwpaFEKxvxd","1DT3tenf14cxz9WFNxmYrXFbB6TFiVWA9U","1DYFJ6CuBvrxyoQSuBzVsNcetY9tvdsrag","1ECeZBxCVJ8Wm2JSN3Cyc6rge2gnvD3W5K","1Edue8XZCWNoDBNZgnQkCCivDyr9GEo4x6","1EfMVkxQQuZfBdocpJu6RUsCJvenQWbQyE","1EpMiZkQVekM5ij12nMiEwttFPcDK9XhX6","1EYitrwBYNWuTBcjZFbEUdqHppe2raLpaF","1F2Gdug9ib9NQMhKMGGJczzMk5SuENoqrp","1FCNgfZWpYMeYhy9t18AAkTBu8AsdoAc1Z","1FE2cuvkq8n5VGwj5hi8YYQxskwJpovPyV","1FjubFHV4mpYjBmvjsEhZssyiiA4TNmnm2","1FRyL9gmFGbzfYDAB4iY9836DJe3KSnjP9","1Fz29BQp82pE3vXXcsZoMNQ3KSHfMzfMe3","1G6DuwDKNHiUWqks2Lgu44cesu7ffFbLK7","1G9A8WRjGXdnYY4TNEVRrcaHsMtana4ncF","1G9CKRHA3mx22DoT1QyNYrh85VSQ19Y1em","1GYuu9d5HPikafbys3k5Q3DRJq6debGsoB","1H939dom7i4WDLCKyGbXUp3fs9CSTNRzgL","1Hn9ErTCPRP6j5UDBeuXPGuq5RtRjFJxJQ","1Hpj6qm9i7nMF3VkKfBFtjhEDpEjxHWvgv","1J9oGoAiHeRfeMZeUnJ9W7RpV55CdKtgYE","1JHdQHkBZiim1cb4hyUh2PbzEbbg6z2TrF","1JPfVv5cWRLx1js9NWxg46dG2CGbeRz4th","1JREJdZupiFhE7ZzQPtASuMCvvpXC7wRsC","1Js6goCey2NaqPQptiLANLQGuk4d6mowjP","1Kc6egXevyLEaeTxLFA1Zyw7GuhCN8jQtt","1KctQENEX5QkQMpnMC3Zh9yRAzkMBLpPcr","1KgudqxMfYaGzqAA7MS4DcsqejtMteqhix","1KSAbh5trMCTZwhiNsuUQvfTtSSTT8zqRk","1Kuf2Rd8mDyAViwBozGTNYnvWL8uYFrkVo","1KUUJPkyDhamZXgpsyXqNGc3x1QPXtdhgz","1Kys8fqDen8NGFUJ6AFcXfFW5qquuTH4eh","1L4ncif9hh9TnUveqWq77HfWWt6CJWtrnb","1LAh7PQwpd1uGiLHae5C5Xz9QXse3y2phq","1LiNmTUPSJEd92ZgVJjAV3RT9BzUjvUCkx","1Ljk8RNNabkZ9bfDYQBn98XfFozJhTjqcZ","1LpYKb3SXZPve9hsH2QEJZFX279wJVGowi","1LrxsRd7zNuxPJcL5rttnoeJFy1y4AffYY","1MkCnCa9agS5t6V1B15bzusBgYECB4LfWp","1MLPqwaFFUBZePTjpR3nxRoK19Cv9mPCc7","1MnbhWe5wr7Ut45ReyQsm96PwnM9jD7KaH","1NayLEVF3bEEbDtdF2Cwso1VdEtvVNh2qX","1NE2NiGhhbkFPSEyNWwj7hKGhGDedBtSrQ","1NuBZQXJPyYQGfoBib8wWBDpZmbtkJa5Ba","1P3ZfGFLezzYGg9k5SVzQmnjyh7nrUmF2y","1PfwHNxUnkpfkK9MKjMqzR3Xq3KCtq9u17","1PhqQpaGCrqSxQ6QDXcv14QCd1U98Zp34E","1PJp8diNa89cVHpiT1VPu7EQ8LxYM5HX6v","1Q6saNmqKkyFB9mFR68Ck8F7Dp7dTopF2W","1Q9UAQbcDezmyouFrzt94t4dSMxgsUfW1X","31p6woV4e55HUfC2aGynFhzQnGoJFW26cD","32DaxSzUhLBHY2WGSWQYiBSHnRsfQZrrRp","32jgFkZsTEjMFaBvxJnYvJEeTNKTmq5b32","32pTjxTNi7snk8sodrgfmdKao3DEn1nVJM","32wdqwX3zCEX3DhAVEcKwXCEGdzgBnx1R9","33Kja69SQVc8kozpoP7Qw6HFtGxHkiWzTz","33xWfziVZesgo83U5izdNCBVTnrtBpSwK7","347QFbejDBdMZFTxpmn6evvvqyXiqZTCd7","34pFGsSYbWEritXncW9unZtQQE9dKSvKku","35KAdTa2vqnJzitF2xiUzZn1Gmcas2Y465","35LScRJ8hzDvvWh9t9UA8bHGnGNVz3YEfa","35QpLWYkvD3ALhjbge5bK2kd7HfHYcDMu3","35qwVtMEohWDdBWRiCSR7azoP5cbY8SG1Q","3685sEusmTwZBiKJ4cgV73EAhpVD1nbgbe","372Wk9NLrMkJzKgqJdatWJy4bYRfxFjgat","389Sft4nJFkPGhbagk9FN4jXncA9piYTuU","38ncxqt932N9CcfNfYuHGZgCyR85hDkWBW","38TftW1heYPqvKbiAhT4ttNBqkUPpooXad","39eboeqYNFe2VoLC3mUGx4dh6GNhLB3D2q","39fhoB2DohisGBbHvvfmkdPdShT75CNHdX","39NG2LcGRHXxSr1irpEVnJMw4ydL231sEn","39p8qWp1bkBNhi4vPpFTetKPtH7goqNDZf","39Te8MbphSgs7npDJPj2hbNzhke61NTcnB","3AjyprBY5yhijiCjUC5NUJutGbwhd3AQdE","3AQSmMk5n3c6TKEg9B2WyzYAPm33gJJAA4","3B7S6zrgxQVQUHTU8wstM23tB9afE7ojuX","3BsyZ7qRFSi3NsaoV1Ff724qAgrEpjVUHm","3DNsaQnaUz7wkQny1ZDSmtz6QfbEShxoDD","3E6rY4dSCDW6y2bzJNwrjvTtdmMQjB6yeh","3E6ZCKRrsdPc35chA9Eftp1h3DLW18NFNV","3E7YbpXuhh3CWFks1jmvWoV8y5DvsfzE6n","3EeR8FbcPbkcGj77D6ttneJxmsr3Nu7KGV","3EPqGUw2q89pwPZ1UF8FJspE2AyojSTjdu","3F2sZ4jbhvDKQdGbHYPC6ZxFXEau2m5Lqj","3F6bbvS1krsc1qR8FsbTDfYQyvkMm3QvmR","3Gbs4rjcVUtQd8p3CiFUCxPLZwRqurezRZ","3GXdtA6kbb4M5aqzZm5qqxcFDFRMW8LqdJ","3H3rh85qPaGLy2w6618yZNaH7i8asHv46B","3He6EyDaCUgmdr4GXqhxbeTQukaGLCByU2","3HePkztPU6UsdENxnyQHFrdZA6eVKeMtvz","3HqA7i3ttECLvgqvq69HNxxUP5BL7Z5YgA","3HQRveQzPifZorZLDXHernc5zjoZax8U9f","3JHMz3mTna1gVCZSPp8NgRFiY7phkv5mA8","3JXKQ81JzBqVbB8VHdV9Jtd7auWokkdPgY","3K35dyL85fR9ht7UgzPfd1gLRRXQtNTqE3","3K4rjdh8A5yi6LWvft2rbmyZvqEbPSSSX4","3K7PMJyMNVnxqsfpmK9r9nJDtzDw9wNwNV","3KHfXU24Bt3YD5Ef4J7uNp2buCuhrxfGen","3LbDu1rUXHNyiz4i8eb3KwkSSBMf7C583D","3LhnVMcBq4gsR7aDaRr9XmUo17CuYBV4FN","3Lpoy53K625zVeE47ZasiG5jGkAxJ27kh1","3MkUNScqf21EcfWq6T4x2MFgBeSTqhB5t6","3MN8nYo1tt5hLxMwMbxDkXWd7Xu522hb9P","3MTrJTFhYK9v1C6pjHtuweZSopfZa4b1wb","3MTRvM5QrYZHKo8gh5qKcrPK3RLjxcDCZE","3N6WeZ6i34taX8Ditser6LKWBcXmt2XXL4","3N9YcPBDky9UsMx1RTk33tL4jDkZfSnsPk","3NNcbBcMZokPB2JC2dxYuZrpgcetvyGeJn","3NQ1aa9ceirMJ1JvRq3eXefvXj1L639fzX","3NRJ8aXdUiZdHaiFX9ePX3DhGHzcEi14Fq","3NU9zkD8CCVGVmYnNNSN7PbU9sSFQBm5UV","3PiCnZrBvGfWAKQ9hr4cCpfaDjy64yNSpE","3PKiHs4GY4rFg8dpppNVPXGPqMX6K2cBML","3Q5dGfLKkWqWSwYtbMUyc8xGjN5LrRviK4","DFFJhnQNZf8rf67tYnesPu7MuGUpYtzv7Z","GPwg61XoHqQPNmAucFACuQ5H9sGCDv9TpS","LaizKtS5DUhPuP1nTQcc83MS7HwK6vk85z","LeKvNdNEzgQkzVVnRdV3fAu2DSF1nLsNw6","Leo3j36nn1JcsUQruytQhFUdCdCH5YHMR3","LNwgtMxcKUQ51dw7bQL1yPQjBVZh6QEqsd","TEAqwfMhXLaomXhZ8KeMhx3njGmQEDnsUR","TMStbg5fgb4uTV7fK1gEYF9hKAzP3siPsG","TRBACioxdrdsYEZHvJWiUDZcMdBPpEe5Ub","TTKnV2S1295UrPr7N67Tp9ykNL7xX2Z4Uj","TUCsTq7TofTCJRRoHk6RvhMoS2mJLm5Yzq","TVacWx7F5wgMgn49L5frDf9KLgdYy8nPHL","TX5GV4DyfxNB3rPkzZJhmqZ1efVmL4rEqG","XnPFsRWTaSgiVauosEwQ6dEitGYXgwznz2","Xs3vzQmNvAxRa3Xo8XzQqUb3BMgb9EogF4","XyARKoupuArYtToA2S6yMdnoquDCDaBsaT","t1g7wowvQ8gn2v8jrU1biyJ26sieNqNsBJy","t1MMXtBrSp1XG38Lx9cePcNUCJj5vdWfUWL","0x03893a7c7463AE47D46bc7f091665f1893656003","0x07687e702b410Fa43f4cB4Af7FA097918ffD2730","0x08723392Ed15743cc38513C4925f5e6be5c17243","0x098B716B8Aaf21512996dC57EB0615e2383E2f96","0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc","0x22aaA7720ddd5388A3c0A3333430953C68f1849b","0x23773E65ed146A459791799d01336DB287f25334","0x2717c5e28cf931547B621a5dddb772Ab6A35B701","0x35fB6f6DB4fb05e6A4cE86f2C93691425626d4b1","0x38735f03b30FbC022DdD06ABED01F0Ca823C6a94","0x39D908dac893CBCB53Cc86e0ECc369aA4DeF1A29","0x3AD9dB589d201A710Ed237c829c7860Ba86510Fc","0x3cbded43efdaf0fc77b9c55f6fc9988fcc9b757d","0x3Cffd56B47B7b41c56258D9C7731ABaDc360E073","0x3e37627dEAA754090fBFbb8bd226c1CE66D255e9","0x43fa21d92141BA9db43052492E0DeEE5aa5f0A93","0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936","0x4f47bc496083c727c5fbe3ce9cdf2b0f6496270c","0x530a64c0ce595026a4a556b703644228179e2d57","0x53b6936513e738f44FB50d2b9476730C0Ab3Bfc1","0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f","0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2","0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e","0x797d7ae72ebddcdea2a346c1834e04d1f8df102b","0x7F367cC41522cE07553e823bf3be79A889DEbe1B","0x7FF9cFad3877F21d41Da833E2F775dB0569eE3D9","0x901bb9583b24d97e995513c6778dc6888ab6870e","0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF","0x931546D9e66836AbF687d2bc64B30407bAc8C568","0x961c5be54a2ffc17cf4cb021d863c42dacd47fc1","0x97b1043abd9e6fc31681635166d430a458d14f9c","0x983a81ca6FB1e441266D2FbcB7D8E530AC2E05A2","0x9c2bc757b66f24d60f016b6237f8cdd414a879fa","0x9f4cda013e354b8fc285bf4b9a60460cee7f7ea9","0xa0e1c89Ef1a489c9C7dE96311eD5Ce5D32c20E4B","0xA160cdAB225685dA1d56aa342Ad8841c3b53f291","0xa7e5d5a720f06526557c513402f2e6b5fa20b008","0xb6f5ec1a0a9cd1526536d3f0426c429529471f40","0xc2a3829F459B3Edd87791c74cD45402BA0a20Be3","0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af","0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3","0xd882cfc20f52f2599d84b8e8d58c7fb62cfe344b","0xdcbEfFBECcE100cCE9E4b153C4e15cB885643193","0xed6e0a7e4ac94d976eebfb82ccf777a3c6bad921","0xf3701f445b6bdafedbca97d1e477357839e4120d","0xF7B31119c2682c88d88D455dBb9d5932c65Cf1bE","0xfac583c0cf07ea434052c49115a4682172ab6b4f","0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144","0xfec8a60023265364d066a1212fde3930f6ae8da7","bc1q2lpgjntr348pfvxhfy33ehmdzy3gmx8w4052z6","bc1q3y5v2khlyvemcz042wl98dzflywr8ghglqws6s","bc1q5jqgm7nvrhaw2rh2vk0dk8e4gg5g373g0vz07r","bc1q8ew45w2agdffrnwp6adt2gqrc9n4mkev9ns29c","bc1q9lvynkfpaw330uhqmunzdz6gmafsvapv7y3zty","bc1qagp0gy58v8hqvw4p2wsphcxg067rrppp45hexr","bc1qardcxz845jw83vgfvcmewhuxa0ag9gchjwmcfd","bc1qdt3gml5z5n50y5hm04u2yjdphefkm0fl2zdj68","bc1qfg4gfg0y6t6xjnpmlhuwx5k0wlw6nmfzxn2psc","bc1ql7dlyh8xz6tpqk92vztrhqh88dmjvcwrmsemrm","bc1qn6segn8km4nfdp9vueu6msfjsaxaqgun9h60n9","bc1qpaly5nm7pfka9v92d6qvl4fc2l9xzee8a6ys3s","bc1qsxf77cvwcd6jv6j8d8j3uhh4g0xqw4meswmwuc","bc1qv7k70u2zynvem59u88ctdlaw7hc735d8xep9rq","bc1qw4cxpe6sxa5dg6sdwxjph959cw6yztrzl4r54s","bc1qx3e2axj3wsfn0ndtvlwmkghmmgm4583nqg8ngk","bc1qx9upga7f09tsetqf78wa3qrmcjar58mkwz6ng6","qpf2cphc5dkuclkqur7lhj2yuqq9pk3hmukle77vhq","qzjv8hrdvz6edu4gkzpnd4w6jc7zf296g5e9kkq4lx","bc1q86tl9255vg5wldamfymaaz36uqxzm30gs7fhkljvzdlt9t38s3lqgdwdfq","bc1q90zrdysy4flyacw7hsury3ajs9yzwtwp6guqpypx94w0d3p58hysvz6pde","bc1qkfqh5p2qsakseg5gnwen6zh5xf3elmku2xaup29mw3l0wnncy3es880dss","bc1qq7p0es3dv5hcynjjf40f2xjjr6qp5py47d2f6n847vduuq9gvnyq7y9ecd","bc1qw7vfgv3r5vnehafl0y95sclg3uqsj87wxs9ad628yjjcq33cwessr6ndyw","5be5543ff73456ab9f2d207887e2af87322c651ea1a873c5b25b7ffae456c320","49HqitRzdnhYjgTEAhgGpCfsjdTeMbUTU6cyR4JV1R7k2Eej9rGT8JpFiYDa4tZM6RZiFrHmMzgSrhHEqpDYKBe5B2ufNsL","884Bz8UH63aYsjVdkfWfScRYWZGGNbjFL7pztqvWNSrtYT4reFSwyvkCj9KEGUtheHhhMUj87ciTBFyzoesrMJ4L1FvSoxL"]));function c$1(dt,ht,Dt){var Cn=this,$n=reactExports.useRef(null),Un=reactExports.useRef(0),Fn=reactExports.useRef(null),Hn=reactExports.useRef([]),Gn=reactExports.useRef(),Qn=reactExports.useRef(),qn=reactExports.useRef(dt),er=reactExports.useRef(!0);reactExports.useEffect(function(){qn.current=dt},[dt]);var Wn=!ht&&ht!==0&&typeof window<"u";if(typeof dt!="function")throw new TypeError("Expected a function");ht=+ht||0;var jn=!!(Dt=Dt||{}).leading,Zn=!("trailing"in Dt)||!!Dt.trailing,Xn="maxWait"in Dt,ar=Xn?Math.max(+Dt.maxWait||0,ht):null;reactExports.useEffect(function(){return er.current=!0,function(){er.current=!1}},[]);var dr=reactExports.useMemo(function(){var or=function(_r){var nr=Hn.current,Sr=Gn.current;return Hn.current=Gn.current=null,Un.current=_r,Qn.current=qn.current.apply(Sr,nr)},sr=function(_r,nr){Wn&&cancelAnimationFrame(Fn.current),Fn.current=Wn?requestAnimationFrame(_r):setTimeout(_r,nr)},vr=function(_r){if(!er.current)return!1;var nr=_r-$n.current;return!$n.current||nr>=ht||nr<0||Xn&&_r-Un.current>=ar},hr=function(_r){return Fn.current=null,Zn&&Hn.current?or(_r):(Hn.current=Gn.current=null,Qn.current)},gr=function _r(){var nr=Date.now();if(vr(nr))return hr(nr);if(er.current){var Sr=ht-(nr-$n.current),Ar=Xn?Math.min(Sr,ar-(nr-Un.current)):Sr;sr(_r,Ar)}},ur=function(){var _r=Date.now(),nr=vr(_r);if(Hn.current=[].slice.call(arguments),Gn.current=Cn,$n.current=_r,nr){if(!Fn.current&&er.current)return Un.current=$n.current,sr(gr,ht),jn?or($n.current):Qn.current;if(Xn)return sr(gr,ht),or($n.current)}return Fn.current||sr(gr,ht),Qn.current};return ur.cancel=function(){Fn.current&&(Wn?cancelAnimationFrame(Fn.current):clearTimeout(Fn.current)),Un.current=0,Hn.current=$n.current=Gn.current=Fn.current=null},ur.isPending=function(){return!!Fn.current},ur.flush=function(){return Fn.current?hr(Date.now()):Qn.current},ur},[jn,Xn,ht,ar,Zn,Wn]);return dr}function i(dt,ht){return dt===ht}function a(dt){return typeof dt=="function"?function(){return dt}:dt}function o(dt,ht,Dt){var Cn,$n,Un=Dt&&Dt.equalityFn||i,Fn=(Cn=reactExports.useState(a(dt)),$n=Cn[1],[Cn[0],reactExports.useCallback(function(er){return $n(a(er))},[])]),Hn=Fn[0],Gn=Fn[1],Qn=c$1(reactExports.useCallback(function(er){return Gn(er)},[Gn]),ht,Dt),qn=reactExports.useRef(dt);return Un(qn.current,dt)||(Qn(dt),qn.current=dt),[Hn,Qn]}const GOVERNOR_WHITEPAPER_URL="https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0007_governor.md",CCTP_MAX_TRANSFER_LIMIT=1e6,validateFromChain=dt=>!dt||!config$2.chains[dt]?"Select a source chain":"",validateToChain=(dt,ht)=>{if(!dt||!config$2.chains[dt])return"Select a destination chain";if(ht&&dt===ht)return"Source chain and destination chain cannot be the same";if(config$2.bridgeDefaults&&config$2.bridgeDefaults.requiredNetwork&&dt&&ht){const{requiredNetwork:Cn}=config$2.bridgeDefaults,$n=config$2.chains[Cn];if($n&&dt!==Cn&&ht!==Cn)return`Must select ${$n.displayName} as either the source or destination chain`}return""},validateToken=(dt,ht)=>{if(!dt)return"Select an asset";const Dt=config$2.tokens[dt];if(!Dt)return"Select an asset";if(ht){if(!config$2.chains[ht]||Dt.tokenId)return"";if(!Dt.tokenId&&Dt.nativeChain!==ht)return`${dt} not available on ${ht}, select a different token`}return""},validateDestToken=(dt,ht,Dt)=>{if(!dt)return"Select an asset";const Cn=config$2.tokens[dt];if(!Cn)return"Select an asset";if(ht){if(!config$2.chains[ht]||Cn.tokenId)return"";if(!Cn.tokenId&&Cn.nativeChain!==ht)return`${dt} not available on ${ht}, select a different token`}return Dt.some($n=>$n.key===dt)?"":"No route available for this token, please select another"},validateAmount=(dt,ht,Dt,Cn)=>{if(dt==="")return"";const $n=Number.parseFloat(dt);if(isNaN($n))return"Amount must be a number";if($n<=0)return"Amount must be greater than 0";if(ht){const Un=Number.parseFloat(ht);if($n>Un)return"Amount cannot exceed balance"}return Cn&&$n>=CCTP_MAX_TRANSFER_LIMIT?`Your transaction exceeds the maximum transfer limit of ${Intl.NumberFormat("en-EN").format(CCTP_MAX_TRANSFER_LIMIT)} USDC. Please use a different amount.`:$n>Dt?`At the moment, amount cannot exceed ${Dt}`:""},checkAddressIsSanctioned=dt=>SANCTIONED_WALLETS.has(dt)||SANCTIONED_WALLETS.has("0x"+dt),validateWallet=async(dt,ht)=>{if(!dt.address)return"Wallet not connected";try{if(await checkAddressIsSanctioned(dt.address))return"This address is sanctioned, bridging is not available"}catch(Cn){console.error(Cn)}if(dt.currentAddress&&dt.currentAddress!==dt.address)return"Switch to connected wallet";const Dt=walletAcceptedChains(dt.type);return ht&&!Dt.includes(ht)?`Connected wallet is not supported for ${ht}`:""},validateToNativeAmt=(dt,ht)=>dt<0?"Amount must be equal to or greater than zero":ht&&dt>ht?"Amount exceeds maximum amount":"",validateRoute=(dt,ht)=>!dt||!ht||!ht.includes(dt)?"No bridge or swap route available for selected tokens":"",validateForeignAsset=dt=>dt?"":"No wrapped asset exists for this token",validateSolanaTokenAccount=(dt,ht,Dt,Cn)=>dt!=="solana"||Cn===Route.Relay||Cn===Route.TBTC||isNttRoute(Cn)||!ht?"":ht&&!Dt?"The associated token account for this asset does not exist on Solana, you must create it first":"",validateRelayerFee=(dt,ht)=>dt&&isPorticoRoute(dt)&&ht.relayerFee.error?"Error fetching relayer fee":"",validateReceiveAmount=(dt,ht,Dt)=>dt&&isPorticoRoute(dt)&&Dt.relayerFee.data&&!Dt.swapAmounts.isFetching&&ht.error?ht.error:"",getMaxAmt=dt=>dt?RouteOperator.getRoute(dt).getMaxSendAmount():1/0,getIsAutomatic=dt=>dt?RouteOperator.getRoute(dt).AUTOMATIC_DEPOSIT:!1,isCctp=(dt,ht,Dt,Cn)=>{var Fn,Hn,Gn,Qn;const $n=((Fn=config$2.tokens[dt])==null?void 0:Fn.symbol)==="USDC"&&((Hn=config$2.tokens[ht])==null?void 0:Hn.symbol)==="USDC"&&((Gn=config$2.tokens[dt])==null?void 0:Gn.nativeChain)===Cn&&((Qn=config$2.tokens[ht])==null?void 0:Qn.nativeChain)===Dt,Un=!!Dt&&CCTPManual_CHAINS.includes(Dt)&&!!Cn&&CCTPManual_CHAINS.includes(Cn);return $n&&Un},validateAll=async(dt,ht,Dt,Cn)=>{const{fromChain:$n,toChain:Un,token:Fn,destToken:Hn,amount:Gn,balances:Qn,foreignAsset:qn,route:er,supportedDestTokens:Wn,routeStates:jn,receiveAmount:Zn}=dt,{maxSwapAmt:Xn,toNativeToken:ar}=ht,{sending:dr,receiving:or}=Dt,sr=getIsAutomatic(er),vr=accessBalance(Qn,dr.address,$n,Fn),hr=getMaxAmt(er),gr=jn==null?void 0:jn.filter(nr=>nr.supported).map(nr=>nr.name),ur=isCctp(Fn,Hn,Un,$n),_r={sendingWallet:await validateWallet(dr,$n),receivingWallet:await validateWallet(or,Un),fromChain:validateFromChain($n),toChain:validateToChain(Un,$n),token:validateToken(Fn,$n),destToken:validateDestToken(Hn,Un,Wn),amount:validateAmount(Gn,(vr==null?void 0:vr.balance)||null,hr,ur),route:validateRoute(er,gr),toNativeToken:"",foreignAsset:validateForeignAsset(qn),relayerFee:"",receiveAmount:""};return sr?er===Route.NttRelay?_r:{..._r,toNativeToken:validateToNativeAmt(ar,Xn)}:er&&isPorticoRoute(er)?{..._r,relayerFee:validateRelayerFee(er,Cn),receiveAmount:validateReceiveAmount(er,Zn,Cn)}:_r},isTransferValid=dt=>{for(const ht of Object.values(dt))if(ht)return!1;return!0},validate=async({transferInput:dt,relay:ht,wallet:Dt,portico:Cn},$n)=>{var Hn;const Un=await validateAll(dt,ht,Dt,Cn),Fn=!!(Dt.sending.address&&Dt.receiving.address&&dt.fromChain&&dt.toChain&&dt.token&&dt.destToken&&dt.amount&&Number.parseFloat(dt.amount)>=0&&((Hn=dt.routeStates)==null?void 0:Hn.some(Gn=>Gn.supported))!==void 0);$n(setValidations({validations:Un,showValidationState:Fn}))},VALIDATION_DELAY_MS=250,useValidate=()=>{const dt=useDispatch(),ht=useSelector(Hn=>Hn.transferInput),Dt=useSelector(Hn=>Hn.relay),Cn=useSelector(Hn=>Hn.wallet),$n=useSelector(Hn=>Hn.porticoBridge),Un=reactExports.useMemo(()=>({transferInput:ht,relay:Dt,wallet:Cn,portico:$n}),[ht,Dt,Cn,$n]),[Fn]=o(Un,VALIDATION_DELAY_MS);reactExports.useEffect(()=>{validate(Fn,dt)},[Fn,dt])},millisToMinutesAndSeconds=dt=>{const ht=Math.floor(dt/6e4),Dt=Math.floor(dt%6e4/1e3);return`${ht}m ${Dt}s`},unloadHandler=dt=>(dt=dt??window.event,dt&&(dt.returnValue=!0),!0),useConfirmBeforeLeaving=dt=>{reactExports.useEffect(()=>{const ht=()=>{window.removeEventListener("beforeunload",unloadHandler)};if(dt)return window.addEventListener("beforeunload",unloadHandler),ht;ht()},[dt])};function isHostComponent(dt){return typeof dt=="string"}function appendOwnerState(dt,ht,Dt){return dt===void 0||isHostComponent(dt)?ht:_extends({},ht,{ownerState:_extends({},ht.ownerState,Dt)})}function areArraysEqual(dt,ht,Dt=(Cn,$n)=>Cn===$n){return dt.length===ht.length&&dt.every((Cn,$n)=>Dt(Cn,ht[$n]))}const defaultContextValue={disableDefaultClasses:!1},ClassNameConfiguratorContext=reactExports.createContext(defaultContextValue);function useClassNamesOverride(dt){const{disableDefaultClasses:ht}=reactExports.useContext(ClassNameConfiguratorContext);return Dt=>ht?"":dt(Dt)}function extractEventHandlers(dt,ht=[]){if(dt===void 0)return{};const Dt={};return Object.keys(dt).filter(Cn=>Cn.match(/^on[A-Z]/)&&typeof dt[Cn]=="function"&&!ht.includes(Cn)).forEach(Cn=>{Dt[Cn]=dt[Cn]}),Dt}function resolveComponentProps(dt,ht,Dt){return typeof dt=="function"?dt(ht,Dt):dt}function omitEventHandlers(dt){if(dt===void 0)return{};const ht={};return Object.keys(dt).filter(Dt=>!(Dt.match(/^on[A-Z]/)&&typeof dt[Dt]=="function")).forEach(Dt=>{ht[Dt]=dt[Dt]}),ht}function mergeSlotProps(dt){const{getSlotProps:ht,additionalProps:Dt,externalSlotProps:Cn,externalForwardedProps:$n,className:Un}=dt;if(!ht){const jn=clsx($n==null?void 0:$n.className,Cn==null?void 0:Cn.className,Un,Dt==null?void 0:Dt.className),Zn=_extends({},Dt==null?void 0:Dt.style,$n==null?void 0:$n.style,Cn==null?void 0:Cn.style),Xn=_extends({},Dt,$n,Cn);return jn.length>0&&(Xn.className=jn),Object.keys(Zn).length>0&&(Xn.style=Zn),{props:Xn,internalRef:void 0}}const Fn=extractEventHandlers(_extends({},$n,Cn)),Hn=omitEventHandlers(Cn),Gn=omitEventHandlers($n),Qn=ht(Fn),qn=clsx(Qn==null?void 0:Qn.className,Dt==null?void 0:Dt.className,Un,$n==null?void 0:$n.className,Cn==null?void 0:Cn.className),er=_extends({},Qn==null?void 0:Qn.style,Dt==null?void 0:Dt.style,$n==null?void 0:$n.style,Cn==null?void 0:Cn.style),Wn=_extends({},Qn,Dt,Gn,Hn);return qn.length>0&&(Wn.className=qn),Object.keys(er).length>0&&(Wn.style=er),{props:Wn,internalRef:Qn.ref}}const _excluded$H=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function useSlotProps(dt){var ht;const{elementType:Dt,externalSlotProps:Cn,ownerState:$n,skipResolvingSlotProps:Un=!1}=dt,Fn=_objectWithoutPropertiesLoose(dt,_excluded$H),Hn=Un?{}:resolveComponentProps(Cn,$n),{props:Gn,internalRef:Qn}=mergeSlotProps(_extends({},Fn,{externalSlotProps:Hn})),qn=useForkRef(Qn,Hn==null?void 0:Hn.ref,(ht=dt.additionalProps)==null?void 0:ht.ref);return appendOwnerState(Dt,_extends({},Gn,{ref:qn}),$n)}const candidatesSelector=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(dt){const ht=parseInt(dt.getAttribute("tabindex")||"",10);return Number.isNaN(ht)?dt.contentEditable==="true"||(dt.nodeName==="AUDIO"||dt.nodeName==="VIDEO"||dt.nodeName==="DETAILS")&&dt.getAttribute("tabindex")===null?0:dt.tabIndex:ht}function isNonTabbableRadio(dt){if(dt.tagName!=="INPUT"||dt.type!=="radio"||!dt.name)return!1;const ht=Cn=>dt.ownerDocument.querySelector(`input[type="radio"]${Cn}`);let Dt=ht(`[name="${dt.name}"]:checked`);return Dt||(Dt=ht(`[name="${dt.name}"]`)),Dt!==dt}function isNodeMatchingSelectorFocusable(dt){return!(dt.disabled||dt.tagName==="INPUT"&&dt.type==="hidden"||isNonTabbableRadio(dt))}function defaultGetTabbable(dt){const ht=[],Dt=[];return Array.from(dt.querySelectorAll(candidatesSelector)).forEach((Cn,$n)=>{const Un=getTabIndex(Cn);Un===-1||!isNodeMatchingSelectorFocusable(Cn)||(Un===0?ht.push(Cn):Dt.push({documentOrder:$n,tabIndex:Un,node:Cn}))}),Dt.sort((Cn,$n)=>Cn.tabIndex===$n.tabIndex?Cn.documentOrder-$n.documentOrder:Cn.tabIndex-$n.tabIndex).map(Cn=>Cn.node).concat(ht)}function defaultIsEnabled(){return!0}function FocusTrap(dt){const{children:ht,disableAutoFocus:Dt=!1,disableEnforceFocus:Cn=!1,disableRestoreFocus:$n=!1,getTabbable:Un=defaultGetTabbable,isEnabled:Fn=defaultIsEnabled,open:Hn}=dt,Gn=reactExports.useRef(!1),Qn=reactExports.useRef(null),qn=reactExports.useRef(null),er=reactExports.useRef(null),Wn=reactExports.useRef(null),jn=reactExports.useRef(!1),Zn=reactExports.useRef(null),Xn=useForkRef(ht.ref,Zn),ar=reactExports.useRef(null);reactExports.useEffect(()=>{!Hn||!Zn.current||(jn.current=!Dt)},[Dt,Hn]),reactExports.useEffect(()=>{if(!Hn||!Zn.current)return;const sr=ownerDocument(Zn.current);return Zn.current.contains(sr.activeElement)||(Zn.current.hasAttribute("tabIndex")||Zn.current.setAttribute("tabIndex","-1"),jn.current&&Zn.current.focus()),()=>{$n||(er.current&&er.current.focus&&(Gn.current=!0,er.current.focus()),er.current=null)}},[Hn]),reactExports.useEffect(()=>{if(!Hn||!Zn.current)return;const sr=ownerDocument(Zn.current),vr=ur=>{const{current:_r}=Zn;if(_r!==null){if(!sr.hasFocus()||Cn||!Fn()||Gn.current){Gn.current=!1;return}if(!_r.contains(sr.activeElement)){if(ur&&Wn.current!==ur.target||sr.activeElement!==Wn.current)Wn.current=null;else if(Wn.current!==null)return;if(!jn.current)return;let Ar=[];if((sr.activeElement===Qn.current||sr.activeElement===qn.current)&&(Ar=Un(Zn.current)),Ar.length>0){var nr,Sr;const tr=!!((nr=ar.current)!=null&&nr.shiftKey&&((Sr=ar.current)==null?void 0:Sr.key)==="Tab"),Yn=Ar[0],fr=Ar[Ar.length-1];typeof Yn!="string"&&typeof fr!="string"&&(tr?fr.focus():Yn.focus())}else _r.focus()}}},hr=ur=>{ar.current=ur,!(Cn||!Fn()||ur.key!=="Tab")&&sr.activeElement===Zn.current&&ur.shiftKey&&(Gn.current=!0,qn.current&&qn.current.focus())};sr.addEventListener("focusin",vr),sr.addEventListener("keydown",hr,!0);const gr=setInterval(()=>{sr.activeElement&&sr.activeElement.tagName==="BODY"&&vr(null)},50);return()=>{clearInterval(gr),sr.removeEventListener("focusin",vr),sr.removeEventListener("keydown",hr,!0)}},[Dt,Cn,$n,Fn,Hn,Un]);const dr=sr=>{er.current===null&&(er.current=sr.relatedTarget),jn.current=!0,Wn.current=sr.target;const vr=ht.props.onFocus;vr&&vr(sr)},or=sr=>{er.current===null&&(er.current=sr.relatedTarget),jn.current=!0};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{tabIndex:Hn?0:-1,onFocus:or,ref:Qn,"data-testid":"sentinelStart"}),reactExports.cloneElement(ht,{ref:Xn,onFocus:dr}),jsxRuntimeExports.jsx("div",{tabIndex:Hn?0:-1,onFocus:or,ref:qn,"data-testid":"sentinelEnd"})]})}var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce(function(dt,ht){return dt.concat([ht+"-"+start,ht+"-"+end])},[]),placements=[].concat(basePlacements,[auto]).reduce(function(dt,ht){return dt.concat([ht,ht+"-"+start,ht+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(dt){return dt?(dt.nodeName||"").toLowerCase():null}function getWindow(dt){if(dt==null)return window;if(dt.toString()!=="[object Window]"){var ht=dt.ownerDocument;return ht&&ht.defaultView||window}return dt}function isElement(dt){var ht=getWindow(dt).Element;return dt instanceof ht||dt instanceof Element}function isHTMLElement$1(dt){var ht=getWindow(dt).HTMLElement;return dt instanceof ht||dt instanceof HTMLElement}function isShadowRoot(dt){if(typeof ShadowRoot>"u")return!1;var ht=getWindow(dt).ShadowRoot;return dt instanceof ht||dt instanceof ShadowRoot}function applyStyles(dt){var ht=dt.state;Object.keys(ht.elements).forEach(function(Dt){var Cn=ht.styles[Dt]||{},$n=ht.attributes[Dt]||{},Un=ht.elements[Dt];!isHTMLElement$1(Un)||!getNodeName(Un)||(Object.assign(Un.style,Cn),Object.keys($n).forEach(function(Fn){var Hn=$n[Fn];Hn===!1?Un.removeAttribute(Fn):Un.setAttribute(Fn,Hn===!0?"":Hn)}))})}function effect$2(dt){var ht=dt.state,Dt={popper:{position:ht.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(ht.elements.popper.style,Dt.popper),ht.styles=Dt,ht.elements.arrow&&Object.assign(ht.elements.arrow.style,Dt.arrow),function(){Object.keys(ht.elements).forEach(function(Cn){var $n=ht.elements[Cn],Un=ht.attributes[Cn]||{},Fn=Object.keys(ht.styles.hasOwnProperty(Cn)?ht.styles[Cn]:Dt[Cn]),Hn=Fn.reduce(function(Gn,Qn){return Gn[Qn]="",Gn},{});!isHTMLElement$1($n)||!getNodeName($n)||(Object.assign($n.style,Hn),Object.keys(Un).forEach(function(Gn){$n.removeAttribute(Gn)}))})}}const applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(dt){return dt.split("-")[0]}var max=Math.max,min=Math.min,round$1=Math.round;function getUAString(){var dt=navigator.userAgentData;return dt!=null&&dt.brands&&Array.isArray(dt.brands)?dt.brands.map(function(ht){return ht.brand+"/"+ht.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(dt,ht,Dt){ht===void 0&&(ht=!1),Dt===void 0&&(Dt=!1);var Cn=dt.getBoundingClientRect(),$n=1,Un=1;ht&&isHTMLElement$1(dt)&&($n=dt.offsetWidth>0&&round$1(Cn.width)/dt.offsetWidth||1,Un=dt.offsetHeight>0&&round$1(Cn.height)/dt.offsetHeight||1);var Fn=isElement(dt)?getWindow(dt):window,Hn=Fn.visualViewport,Gn=!isLayoutViewport()&&Dt,Qn=(Cn.left+(Gn&&Hn?Hn.offsetLeft:0))/$n,qn=(Cn.top+(Gn&&Hn?Hn.offsetTop:0))/Un,er=Cn.width/$n,Wn=Cn.height/Un;return{width:er,height:Wn,top:qn,right:Qn+er,bottom:qn+Wn,left:Qn,x:Qn,y:qn}}function getLayoutRect(dt){var ht=getBoundingClientRect(dt),Dt=dt.offsetWidth,Cn=dt.offsetHeight;return Math.abs(ht.width-Dt)<=1&&(Dt=ht.width),Math.abs(ht.height-Cn)<=1&&(Cn=ht.height),{x:dt.offsetLeft,y:dt.offsetTop,width:Dt,height:Cn}}function contains(dt,ht){var Dt=ht.getRootNode&&ht.getRootNode();if(dt.contains(ht))return!0;if(Dt&&isShadowRoot(Dt)){var Cn=ht;do{if(Cn&&dt.isSameNode(Cn))return!0;Cn=Cn.parentNode||Cn.host}while(Cn)}return!1}function getComputedStyle(dt){return getWindow(dt).getComputedStyle(dt)}function isTableElement(dt){return["table","td","th"].indexOf(getNodeName(dt))>=0}function getDocumentElement(dt){return((isElement(dt)?dt.ownerDocument:dt.document)||window.document).documentElement}function getParentNode(dt){return getNodeName(dt)==="html"?dt:dt.assignedSlot||dt.parentNode||(isShadowRoot(dt)?dt.host:null)||getDocumentElement(dt)}function getTrueOffsetParent(dt){return!isHTMLElement$1(dt)||getComputedStyle(dt).position==="fixed"?null:dt.offsetParent}function getContainingBlock(dt){var ht=/firefox/i.test(getUAString()),Dt=/Trident/i.test(getUAString());if(Dt&&isHTMLElement$1(dt)){var Cn=getComputedStyle(dt);if(Cn.position==="fixed")return null}var $n=getParentNode(dt);for(isShadowRoot($n)&&($n=$n.host);isHTMLElement$1($n)&&["html","body"].indexOf(getNodeName($n))<0;){var Un=getComputedStyle($n);if(Un.transform!=="none"||Un.perspective!=="none"||Un.contain==="paint"||["transform","perspective"].indexOf(Un.willChange)!==-1||ht&&Un.willChange==="filter"||ht&&Un.filter&&Un.filter!=="none")return $n;$n=$n.parentNode}return null}function getOffsetParent(dt){for(var ht=getWindow(dt),Dt=getTrueOffsetParent(dt);Dt&&isTableElement(Dt)&&getComputedStyle(Dt).position==="static";)Dt=getTrueOffsetParent(Dt);return Dt&&(getNodeName(Dt)==="html"||getNodeName(Dt)==="body"&&getComputedStyle(Dt).position==="static")?ht:Dt||getContainingBlock(dt)||ht}function getMainAxisFromPlacement(dt){return["top","bottom"].indexOf(dt)>=0?"x":"y"}function within(dt,ht,Dt){return max(dt,min(ht,Dt))}function withinMaxClamp(dt,ht,Dt){var Cn=within(dt,ht,Dt);return Cn>Dt?Dt:Cn}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(dt){return Object.assign({},getFreshSideObject(),dt)}function expandToHashMap(dt,ht){return ht.reduce(function(Dt,Cn){return Dt[Cn]=dt,Dt},{})}var toPaddingObject=function dt(ht,Dt){return ht=typeof ht=="function"?ht(Object.assign({},Dt.rects,{placement:Dt.placement})):ht,mergePaddingObject(typeof ht!="number"?ht:expandToHashMap(ht,basePlacements))};function arrow(dt){var ht,Dt=dt.state,Cn=dt.name,$n=dt.options,Un=Dt.elements.arrow,Fn=Dt.modifiersData.popperOffsets,Hn=getBasePlacement(Dt.placement),Gn=getMainAxisFromPlacement(Hn),Qn=[left,right].indexOf(Hn)>=0,qn=Qn?"height":"width";if(!(!Un||!Fn)){var er=toPaddingObject($n.padding,Dt),Wn=getLayoutRect(Un),jn=Gn==="y"?top:left,Zn=Gn==="y"?bottom:right,Xn=Dt.rects.reference[qn]+Dt.rects.reference[Gn]-Fn[Gn]-Dt.rects.popper[qn],ar=Fn[Gn]-Dt.rects.reference[Gn],dr=getOffsetParent(Un),or=dr?Gn==="y"?dr.clientHeight||0:dr.clientWidth||0:0,sr=Xn/2-ar/2,vr=er[jn],hr=or-Wn[qn]-er[Zn],gr=or/2-Wn[qn]/2+sr,ur=within(vr,gr,hr),_r=Gn;Dt.modifiersData[Cn]=(ht={},ht[_r]=ur,ht.centerOffset=ur-gr,ht)}}function effect$1(dt){var ht=dt.state,Dt=dt.options,Cn=Dt.element,$n=Cn===void 0?"[data-popper-arrow]":Cn;$n!=null&&(typeof $n=="string"&&($n=ht.elements.popper.querySelector($n),!$n)||contains(ht.elements.popper,$n)&&(ht.elements.arrow=$n))}const arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(dt){return dt.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(dt,ht){var Dt=dt.x,Cn=dt.y,$n=ht.devicePixelRatio||1;return{x:round$1(Dt*$n)/$n||0,y:round$1(Cn*$n)/$n||0}}function mapToStyles(dt){var ht,Dt=dt.popper,Cn=dt.popperRect,$n=dt.placement,Un=dt.variation,Fn=dt.offsets,Hn=dt.position,Gn=dt.gpuAcceleration,Qn=dt.adaptive,qn=dt.roundOffsets,er=dt.isFixed,Wn=Fn.x,jn=Wn===void 0?0:Wn,Zn=Fn.y,Xn=Zn===void 0?0:Zn,ar=typeof qn=="function"?qn({x:jn,y:Xn}):{x:jn,y:Xn};jn=ar.x,Xn=ar.y;var dr=Fn.hasOwnProperty("x"),or=Fn.hasOwnProperty("y"),sr=left,vr=top,hr=window;if(Qn){var gr=getOffsetParent(Dt),ur="clientHeight",_r="clientWidth";if(gr===getWindow(Dt)&&(gr=getDocumentElement(Dt),getComputedStyle(gr).position!=="static"&&Hn==="absolute"&&(ur="scrollHeight",_r="scrollWidth")),gr=gr,$n===top||($n===left||$n===right)&&Un===end){vr=bottom;var nr=er&&gr===hr&&hr.visualViewport?hr.visualViewport.height:gr[ur];Xn-=nr-Cn.height,Xn*=Gn?1:-1}if($n===left||($n===top||$n===bottom)&&Un===end){sr=right;var Sr=er&&gr===hr&&hr.visualViewport?hr.visualViewport.width:gr[_r];jn-=Sr-Cn.width,jn*=Gn?1:-1}}var Ar=Object.assign({position:Hn},Qn&&unsetSides),tr=qn===!0?roundOffsetsByDPR({x:jn,y:Xn},getWindow(Dt)):{x:jn,y:Xn};if(jn=tr.x,Xn=tr.y,Gn){var Yn;return Object.assign({},Ar,(Yn={},Yn[vr]=or?"0":"",Yn[sr]=dr?"0":"",Yn.transform=(hr.devicePixelRatio||1)<=1?"translate("+jn+"px, "+Xn+"px)":"translate3d("+jn+"px, "+Xn+"px, 0)",Yn))}return Object.assign({},Ar,(ht={},ht[vr]=or?Xn+"px":"",ht[sr]=dr?jn+"px":"",ht.transform="",ht))}function computeStyles(dt){var ht=dt.state,Dt=dt.options,Cn=Dt.gpuAcceleration,$n=Cn===void 0?!0:Cn,Un=Dt.adaptive,Fn=Un===void 0?!0:Un,Hn=Dt.roundOffsets,Gn=Hn===void 0?!0:Hn,Qn={placement:getBasePlacement(ht.placement),variation:getVariation(ht.placement),popper:ht.elements.popper,popperRect:ht.rects.popper,gpuAcceleration:$n,isFixed:ht.options.strategy==="fixed"};ht.modifiersData.popperOffsets!=null&&(ht.styles.popper=Object.assign({},ht.styles.popper,mapToStyles(Object.assign({},Qn,{offsets:ht.modifiersData.popperOffsets,position:ht.options.strategy,adaptive:Fn,roundOffsets:Gn})))),ht.modifiersData.arrow!=null&&(ht.styles.arrow=Object.assign({},ht.styles.arrow,mapToStyles(Object.assign({},Qn,{offsets:ht.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:Gn})))),ht.attributes.popper=Object.assign({},ht.attributes.popper,{"data-popper-placement":ht.placement})}const computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};var passive={passive:!0};function effect(dt){var ht=dt.state,Dt=dt.instance,Cn=dt.options,$n=Cn.scroll,Un=$n===void 0?!0:$n,Fn=Cn.resize,Hn=Fn===void 0?!0:Fn,Gn=getWindow(ht.elements.popper),Qn=[].concat(ht.scrollParents.reference,ht.scrollParents.popper);return Un&&Qn.forEach(function(qn){qn.addEventListener("scroll",Dt.update,passive)}),Hn&&Gn.addEventListener("resize",Dt.update,passive),function(){Un&&Qn.forEach(function(qn){qn.removeEventListener("scroll",Dt.update,passive)}),Hn&&Gn.removeEventListener("resize",Dt.update,passive)}}const eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function dt(){},effect,data:{}};var hash$1={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(dt){return dt.replace(/left|right|bottom|top/g,function(ht){return hash$1[ht]})}var hash={start:"end",end:"start"};function getOppositeVariationPlacement(dt){return dt.replace(/start|end/g,function(ht){return hash[ht]})}function getWindowScroll(dt){var ht=getWindow(dt),Dt=ht.pageXOffset,Cn=ht.pageYOffset;return{scrollLeft:Dt,scrollTop:Cn}}function getWindowScrollBarX(dt){return getBoundingClientRect(getDocumentElement(dt)).left+getWindowScroll(dt).scrollLeft}function getViewportRect(dt,ht){var Dt=getWindow(dt),Cn=getDocumentElement(dt),$n=Dt.visualViewport,Un=Cn.clientWidth,Fn=Cn.clientHeight,Hn=0,Gn=0;if($n){Un=$n.width,Fn=$n.height;var Qn=isLayoutViewport();(Qn||!Qn&&ht==="fixed")&&(Hn=$n.offsetLeft,Gn=$n.offsetTop)}return{width:Un,height:Fn,x:Hn+getWindowScrollBarX(dt),y:Gn}}function getDocumentRect(dt){var ht,Dt=getDocumentElement(dt),Cn=getWindowScroll(dt),$n=(ht=dt.ownerDocument)==null?void 0:ht.body,Un=max(Dt.scrollWidth,Dt.clientWidth,$n?$n.scrollWidth:0,$n?$n.clientWidth:0),Fn=max(Dt.scrollHeight,Dt.clientHeight,$n?$n.scrollHeight:0,$n?$n.clientHeight:0),Hn=-Cn.scrollLeft+getWindowScrollBarX(dt),Gn=-Cn.scrollTop;return getComputedStyle($n||Dt).direction==="rtl"&&(Hn+=max(Dt.clientWidth,$n?$n.clientWidth:0)-Un),{width:Un,height:Fn,x:Hn,y:Gn}}function isScrollParent(dt){var ht=getComputedStyle(dt),Dt=ht.overflow,Cn=ht.overflowX,$n=ht.overflowY;return/auto|scroll|overlay|hidden/.test(Dt+$n+Cn)}function getScrollParent(dt){return["html","body","#document"].indexOf(getNodeName(dt))>=0?dt.ownerDocument.body:isHTMLElement$1(dt)&&isScrollParent(dt)?dt:getScrollParent(getParentNode(dt))}function listScrollParents(dt,ht){var Dt;ht===void 0&&(ht=[]);var Cn=getScrollParent(dt),$n=Cn===((Dt=dt.ownerDocument)==null?void 0:Dt.body),Un=getWindow(Cn),Fn=$n?[Un].concat(Un.visualViewport||[],isScrollParent(Cn)?Cn:[]):Cn,Hn=ht.concat(Fn);return $n?Hn:Hn.concat(listScrollParents(getParentNode(Fn)))}function rectToClientRect(dt){return Object.assign({},dt,{left:dt.x,top:dt.y,right:dt.x+dt.width,bottom:dt.y+dt.height})}function getInnerBoundingClientRect(dt,ht){var Dt=getBoundingClientRect(dt,!1,ht==="fixed");return Dt.top=Dt.top+dt.clientTop,Dt.left=Dt.left+dt.clientLeft,Dt.bottom=Dt.top+dt.clientHeight,Dt.right=Dt.left+dt.clientWidth,Dt.width=dt.clientWidth,Dt.height=dt.clientHeight,Dt.x=Dt.left,Dt.y=Dt.top,Dt}function getClientRectFromMixedType(dt,ht,Dt){return ht===viewport?rectToClientRect(getViewportRect(dt,Dt)):isElement(ht)?getInnerBoundingClientRect(ht,Dt):rectToClientRect(getDocumentRect(getDocumentElement(dt)))}function getClippingParents(dt){var ht=listScrollParents(getParentNode(dt)),Dt=["absolute","fixed"].indexOf(getComputedStyle(dt).position)>=0,Cn=Dt&&isHTMLElement$1(dt)?getOffsetParent(dt):dt;return isElement(Cn)?ht.filter(function($n){return isElement($n)&&contains($n,Cn)&&getNodeName($n)!=="body"}):[]}function getClippingRect(dt,ht,Dt,Cn){var $n=ht==="clippingParents"?getClippingParents(dt):[].concat(ht),Un=[].concat($n,[Dt]),Fn=Un[0],Hn=Un.reduce(function(Gn,Qn){var qn=getClientRectFromMixedType(dt,Qn,Cn);return Gn.top=max(qn.top,Gn.top),Gn.right=min(qn.right,Gn.right),Gn.bottom=min(qn.bottom,Gn.bottom),Gn.left=max(qn.left,Gn.left),Gn},getClientRectFromMixedType(dt,Fn,Cn));return Hn.width=Hn.right-Hn.left,Hn.height=Hn.bottom-Hn.top,Hn.x=Hn.left,Hn.y=Hn.top,Hn}function computeOffsets(dt){var ht=dt.reference,Dt=dt.element,Cn=dt.placement,$n=Cn?getBasePlacement(Cn):null,Un=Cn?getVariation(Cn):null,Fn=ht.x+ht.width/2-Dt.width/2,Hn=ht.y+ht.height/2-Dt.height/2,Gn;switch($n){case top:Gn={x:Fn,y:ht.y-Dt.height};break;case bottom:Gn={x:Fn,y:ht.y+ht.height};break;case right:Gn={x:ht.x+ht.width,y:Hn};break;case left:Gn={x:ht.x-Dt.width,y:Hn};break;default:Gn={x:ht.x,y:ht.y}}var Qn=$n?getMainAxisFromPlacement($n):null;if(Qn!=null){var qn=Qn==="y"?"height":"width";switch(Un){case start:Gn[Qn]=Gn[Qn]-(ht[qn]/2-Dt[qn]/2);break;case end:Gn[Qn]=Gn[Qn]+(ht[qn]/2-Dt[qn]/2);break}}return Gn}function detectOverflow(dt,ht){ht===void 0&&(ht={});var Dt=ht,Cn=Dt.placement,$n=Cn===void 0?dt.placement:Cn,Un=Dt.strategy,Fn=Un===void 0?dt.strategy:Un,Hn=Dt.boundary,Gn=Hn===void 0?clippingParents:Hn,Qn=Dt.rootBoundary,qn=Qn===void 0?viewport:Qn,er=Dt.elementContext,Wn=er===void 0?popper:er,jn=Dt.altBoundary,Zn=jn===void 0?!1:jn,Xn=Dt.padding,ar=Xn===void 0?0:Xn,dr=mergePaddingObject(typeof ar!="number"?ar:expandToHashMap(ar,basePlacements)),or=Wn===popper?reference:popper,sr=dt.rects.popper,vr=dt.elements[Zn?or:Wn],hr=getClippingRect(isElement(vr)?vr:vr.contextElement||getDocumentElement(dt.elements.popper),Gn,qn,Fn),gr=getBoundingClientRect(dt.elements.reference),ur=computeOffsets({reference:gr,element:sr,strategy:"absolute",placement:$n}),_r=rectToClientRect(Object.assign({},sr,ur)),nr=Wn===popper?_r:gr,Sr={top:hr.top-nr.top+dr.top,bottom:nr.bottom-hr.bottom+dr.bottom,left:hr.left-nr.left+dr.left,right:nr.right-hr.right+dr.right},Ar=dt.modifiersData.offset;if(Wn===popper&&Ar){var tr=Ar[$n];Object.keys(Sr).forEach(function(Yn){var fr=[right,bottom].indexOf(Yn)>=0?1:-1,Cr=[top,bottom].indexOf(Yn)>=0?"y":"x";Sr[Yn]+=tr[Cr]*fr})}return Sr}function computeAutoPlacement(dt,ht){ht===void 0&&(ht={});var Dt=ht,Cn=Dt.placement,$n=Dt.boundary,Un=Dt.rootBoundary,Fn=Dt.padding,Hn=Dt.flipVariations,Gn=Dt.allowedAutoPlacements,Qn=Gn===void 0?placements:Gn,qn=getVariation(Cn),er=qn?Hn?variationPlacements:variationPlacements.filter(function(Zn){return getVariation(Zn)===qn}):basePlacements,Wn=er.filter(function(Zn){return Qn.indexOf(Zn)>=0});Wn.length===0&&(Wn=er);var jn=Wn.reduce(function(Zn,Xn){return Zn[Xn]=detectOverflow(dt,{placement:Xn,boundary:$n,rootBoundary:Un,padding:Fn})[getBasePlacement(Xn)],Zn},{});return Object.keys(jn).sort(function(Zn,Xn){return jn[Zn]-jn[Xn]})}function getExpandedFallbackPlacements(dt){if(getBasePlacement(dt)===auto)return[];var ht=getOppositePlacement(dt);return[getOppositeVariationPlacement(dt),ht,getOppositeVariationPlacement(ht)]}function flip(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name;if(!ht.modifiersData[Cn]._skip){for(var $n=Dt.mainAxis,Un=$n===void 0?!0:$n,Fn=Dt.altAxis,Hn=Fn===void 0?!0:Fn,Gn=Dt.fallbackPlacements,Qn=Dt.padding,qn=Dt.boundary,er=Dt.rootBoundary,Wn=Dt.altBoundary,jn=Dt.flipVariations,Zn=jn===void 0?!0:jn,Xn=Dt.allowedAutoPlacements,ar=ht.options.placement,dr=getBasePlacement(ar),or=dr===ar,sr=Gn||(or||!Zn?[getOppositePlacement(ar)]:getExpandedFallbackPlacements(ar)),vr=[ar].concat(sr).reduce(function(Tr,Nr){return Tr.concat(getBasePlacement(Nr)===auto?computeAutoPlacement(ht,{placement:Nr,boundary:qn,rootBoundary:er,padding:Qn,flipVariations:Zn,allowedAutoPlacements:Xn}):Nr)},[]),hr=ht.rects.reference,gr=ht.rects.popper,ur=new Map,_r=!0,nr=vr[0],Sr=0;Sr<vr.length;Sr++){var Ar=vr[Sr],tr=getBasePlacement(Ar),Yn=getVariation(Ar)===start,fr=[top,bottom].indexOf(tr)>=0,Cr=fr?"width":"height",yr=detectOverflow(ht,{placement:Ar,boundary:qn,rootBoundary:er,altBoundary:Wn,padding:Qn}),Ir=fr?Yn?right:left:Yn?bottom:top;hr[Cr]>gr[Cr]&&(Ir=getOppositePlacement(Ir));var Pr=getOppositePlacement(Ir),Br=[];if(Un&&Br.push(yr[tr]<=0),Hn&&Br.push(yr[Ir]<=0,yr[Pr]<=0),Br.every(function(Tr){return Tr})){nr=Ar,_r=!1;break}ur.set(Ar,Br)}if(_r)for(var rr=Zn?3:1,pr=function(Nr){var Yr=vr.find(function(to){var po=ur.get(to);if(po)return po.slice(0,Nr).every(function(So){return So})});if(Yr)return nr=Yr,"break"},$r=rr;$r>0;$r--){var kr=pr($r);if(kr==="break")break}ht.placement!==nr&&(ht.modifiersData[Cn]._skip=!0,ht.placement=nr,ht.reset=!0)}}const flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(dt,ht,Dt){return Dt===void 0&&(Dt={x:0,y:0}),{top:dt.top-ht.height-Dt.y,right:dt.right-ht.width+Dt.x,bottom:dt.bottom-ht.height+Dt.y,left:dt.left-ht.width-Dt.x}}function isAnySideFullyClipped(dt){return[top,right,bottom,left].some(function(ht){return dt[ht]>=0})}function hide(dt){var ht=dt.state,Dt=dt.name,Cn=ht.rects.reference,$n=ht.rects.popper,Un=ht.modifiersData.preventOverflow,Fn=detectOverflow(ht,{elementContext:"reference"}),Hn=detectOverflow(ht,{altBoundary:!0}),Gn=getSideOffsets(Fn,Cn),Qn=getSideOffsets(Hn,$n,Un),qn=isAnySideFullyClipped(Gn),er=isAnySideFullyClipped(Qn);ht.modifiersData[Dt]={referenceClippingOffsets:Gn,popperEscapeOffsets:Qn,isReferenceHidden:qn,hasPopperEscaped:er},ht.attributes.popper=Object.assign({},ht.attributes.popper,{"data-popper-reference-hidden":qn,"data-popper-escaped":er})}const hide$1={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide};function distanceAndSkiddingToXY(dt,ht,Dt){var Cn=getBasePlacement(dt),$n=[left,top].indexOf(Cn)>=0?-1:1,Un=typeof Dt=="function"?Dt(Object.assign({},ht,{placement:dt})):Dt,Fn=Un[0],Hn=Un[1];return Fn=Fn||0,Hn=(Hn||0)*$n,[left,right].indexOf(Cn)>=0?{x:Hn,y:Fn}:{x:Fn,y:Hn}}function offset(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name,$n=Dt.offset,Un=$n===void 0?[0,0]:$n,Fn=placements.reduce(function(qn,er){return qn[er]=distanceAndSkiddingToXY(er,ht.rects,Un),qn},{}),Hn=Fn[ht.placement],Gn=Hn.x,Qn=Hn.y;ht.modifiersData.popperOffsets!=null&&(ht.modifiersData.popperOffsets.x+=Gn,ht.modifiersData.popperOffsets.y+=Qn),ht.modifiersData[Cn]=Fn}const offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(dt){var ht=dt.state,Dt=dt.name;ht.modifiersData[Dt]=computeOffsets({reference:ht.rects.reference,element:ht.rects.popper,strategy:"absolute",placement:ht.placement})}const popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(dt){return dt==="x"?"y":"x"}function preventOverflow(dt){var ht=dt.state,Dt=dt.options,Cn=dt.name,$n=Dt.mainAxis,Un=$n===void 0?!0:$n,Fn=Dt.altAxis,Hn=Fn===void 0?!1:Fn,Gn=Dt.boundary,Qn=Dt.rootBoundary,qn=Dt.altBoundary,er=Dt.padding,Wn=Dt.tether,jn=Wn===void 0?!0:Wn,Zn=Dt.tetherOffset,Xn=Zn===void 0?0:Zn,ar=detectOverflow(ht,{boundary:Gn,rootBoundary:Qn,padding:er,altBoundary:qn}),dr=getBasePlacement(ht.placement),or=getVariation(ht.placement),sr=!or,vr=getMainAxisFromPlacement(dr),hr=getAltAxis(vr),gr=ht.modifiersData.popperOffsets,ur=ht.rects.reference,_r=ht.rects.popper,nr=typeof Xn=="function"?Xn(Object.assign({},ht.rects,{placement:ht.placement})):Xn,Sr=typeof nr=="number"?{mainAxis:nr,altAxis:nr}:Object.assign({mainAxis:0,altAxis:0},nr),Ar=ht.modifiersData.offset?ht.modifiersData.offset[ht.placement]:null,tr={x:0,y:0};if(gr){if(Un){var Yn,fr=vr==="y"?top:left,Cr=vr==="y"?bottom:right,yr=vr==="y"?"height":"width",Ir=gr[vr],Pr=Ir+ar[fr],Br=Ir-ar[Cr],rr=jn?-_r[yr]/2:0,pr=or===start?ur[yr]:_r[yr],$r=or===start?-_r[yr]:-ur[yr],kr=ht.elements.arrow,Tr=jn&&kr?getLayoutRect(kr):{width:0,height:0},Nr=ht.modifiersData["arrow#persistent"]?ht.modifiersData["arrow#persistent"].padding:getFreshSideObject(),Yr=Nr[fr],to=Nr[Cr],po=within(0,ur[yr],Tr[yr]),So=sr?ur[yr]/2-rr-po-Yr-Sr.mainAxis:pr-po-Yr-Sr.mainAxis,Jo=sr?-ur[yr]/2+rr+po+to+Sr.mainAxis:$r+po+to+Sr.mainAxis,Zo=ht.elements.arrow&&getOffsetParent(ht.elements.arrow),Vo=Zo?vr==="y"?Zo.clientTop||0:Zo.clientLeft||0:0,ls=(Yn=Ar==null?void 0:Ar[vr])!=null?Yn:0,Ao=Ir+So-ls-Vo,Ss=Ir+Jo-ls,mo=within(jn?min(Pr,Ao):Pr,Ir,jn?max(Br,Ss):Br);gr[vr]=mo,tr[vr]=mo-Ir}if(Hn){var Bo,To=vr==="x"?top:left,Do=vr==="x"?bottom:right,zr=gr[hr],na=hr==="y"?"height":"width",Fo=zr+ar[To],os=zr-ar[Do],ns=[top,left].indexOf(dr)!==-1,xa=(Bo=Ar==null?void 0:Ar[hr])!=null?Bo:0,Ts=ns?Fo:zr-ur[na]-_r[na]-xa+Sr.altAxis,Mo=ns?zr+ur[na]+_r[na]-xa-Sr.altAxis:os,yo=jn&&ns?withinMaxClamp(Ts,zr,Mo):within(jn?Ts:Fo,zr,jn?Mo:os);gr[hr]=yo,tr[hr]=yo-zr}ht.modifiersData[Cn]=tr}}const preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(dt){return{scrollLeft:dt.scrollLeft,scrollTop:dt.scrollTop}}function getNodeScroll(dt){return dt===getWindow(dt)||!isHTMLElement$1(dt)?getWindowScroll(dt):getHTMLElementScroll(dt)}function isElementScaled(dt){var ht=dt.getBoundingClientRect(),Dt=round$1(ht.width)/dt.offsetWidth||1,Cn=round$1(ht.height)/dt.offsetHeight||1;return Dt!==1||Cn!==1}function getCompositeRect(dt,ht,Dt){Dt===void 0&&(Dt=!1);var Cn=isHTMLElement$1(ht),$n=isHTMLElement$1(ht)&&isElementScaled(ht),Un=getDocumentElement(ht),Fn=getBoundingClientRect(dt,$n,Dt),Hn={scrollLeft:0,scrollTop:0},Gn={x:0,y:0};return(Cn||!Cn&&!Dt)&&((getNodeName(ht)!=="body"||isScrollParent(Un))&&(Hn=getNodeScroll(ht)),isHTMLElement$1(ht)?(Gn=getBoundingClientRect(ht,!0),Gn.x+=ht.clientLeft,Gn.y+=ht.clientTop):Un&&(Gn.x=getWindowScrollBarX(Un))),{x:Fn.left+Hn.scrollLeft-Gn.x,y:Fn.top+Hn.scrollTop-Gn.y,width:Fn.width,height:Fn.height}}function order(dt){var ht=new Map,Dt=new Set,Cn=[];dt.forEach(function(Un){ht.set(Un.name,Un)});function $n(Un){Dt.add(Un.name);var Fn=[].concat(Un.requires||[],Un.requiresIfExists||[]);Fn.forEach(function(Hn){if(!Dt.has(Hn)){var Gn=ht.get(Hn);Gn&&$n(Gn)}}),Cn.push(Un)}return dt.forEach(function(Un){Dt.has(Un.name)||$n(Un)}),Cn}function orderModifiers(dt){var ht=order(dt);return modifierPhases.reduce(function(Dt,Cn){return Dt.concat(ht.filter(function($n){return $n.phase===Cn}))},[])}function debounce(dt){var ht;return function(){return ht||(ht=new Promise(function(Dt){Promise.resolve().then(function(){ht=void 0,Dt(dt())})})),ht}}function mergeByName(dt){var ht=dt.reduce(function(Dt,Cn){var $n=Dt[Cn.name];return Dt[Cn.name]=$n?Object.assign({},$n,Cn,{options:Object.assign({},$n.options,Cn.options),data:Object.assign({},$n.data,Cn.data)}):Cn,Dt},{});return Object.keys(ht).map(function(Dt){return ht[Dt]})}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var dt=arguments.length,ht=new Array(dt),Dt=0;Dt<dt;Dt++)ht[Dt]=arguments[Dt];return!ht.some(function(Cn){return!(Cn&&typeof Cn.getBoundingClientRect=="function")})}function popperGenerator(dt){dt===void 0&&(dt={});var ht=dt,Dt=ht.defaultModifiers,Cn=Dt===void 0?[]:Dt,$n=ht.defaultOptions,Un=$n===void 0?DEFAULT_OPTIONS:$n;return function(Hn,Gn,Qn){Qn===void 0&&(Qn=Un);var qn={placement:"bottom",orderedModifiers:[],options:Object.assign({},DEFAULT_OPTIONS,Un),modifiersData:{},elements:{reference:Hn,popper:Gn},attributes:{},styles:{}},er=[],Wn=!1,jn={state:qn,setOptions:function(dr){var or=typeof dr=="function"?dr(qn.options):dr;Xn(),qn.options=Object.assign({},Un,qn.options,or),qn.scrollParents={reference:isElement(Hn)?listScrollParents(Hn):Hn.contextElement?listScrollParents(Hn.contextElement):[],popper:listScrollParents(Gn)};var sr=orderModifiers(mergeByName([].concat(Cn,qn.options.modifiers)));return qn.orderedModifiers=sr.filter(function(vr){return vr.enabled}),Zn(),jn.update()},forceUpdate:function(){if(!Wn){var dr=qn.elements,or=dr.reference,sr=dr.popper;if(areValidElements(or,sr)){qn.rects={reference:getCompositeRect(or,getOffsetParent(sr),qn.options.strategy==="fixed"),popper:getLayoutRect(sr)},qn.reset=!1,qn.placement=qn.options.placement,qn.orderedModifiers.forEach(function(Sr){return qn.modifiersData[Sr.name]=Object.assign({},Sr.data)});for(var vr=0;vr<qn.orderedModifiers.length;vr++){if(qn.reset===!0){qn.reset=!1,vr=-1;continue}var hr=qn.orderedModifiers[vr],gr=hr.fn,ur=hr.options,_r=ur===void 0?{}:ur,nr=hr.name;typeof gr=="function"&&(qn=gr({state:qn,options:_r,name:nr,instance:jn})||qn)}}}},update:debounce(function(){return new Promise(function(ar){jn.forceUpdate(),ar(qn)})}),destroy:function(){Xn(),Wn=!0}};if(!areValidElements(Hn,Gn))return jn;jn.setOptions(Qn).then(function(ar){!Wn&&Qn.onFirstUpdate&&Qn.onFirstUpdate(ar)});function Zn(){qn.orderedModifiers.forEach(function(ar){var dr=ar.name,or=ar.options,sr=or===void 0?{}:or,vr=ar.effect;if(typeof vr=="function"){var hr=vr({state:qn,name:dr,instance:jn,options:sr}),gr=function(){};er.push(hr||gr)}})}function Xn(){er.forEach(function(ar){return ar()}),er=[]}return jn}}var defaultModifiers=[eventListeners,popperOffsets$1,computeStyles$1,applyStyles$1,offset$1,flip$1,preventOverflow$1,arrow$1,hide$1],createPopper=popperGenerator({defaultModifiers});function getContainer$1(dt){return typeof dt=="function"?dt():dt}const Portal=reactExports.forwardRef(function dt(ht,Dt){const{children:Cn,container:$n,disablePortal:Un=!1}=ht,[Fn,Hn]=reactExports.useState(null),Gn=useForkRef(reactExports.isValidElement(Cn)?Cn.ref:null,Dt);if(useEnhancedEffect$1(()=>{Un||Hn(getContainer$1($n)||document.body)},[$n,Un]),useEnhancedEffect$1(()=>{if(Fn&&!Un)return setRef(Dt,Fn),()=>{setRef(Dt,null)}},[Dt,Fn,Un]),Un){if(reactExports.isValidElement(Cn)){const Qn={ref:Gn};return reactExports.cloneElement(Cn,Qn)}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:Cn})}return jsxRuntimeExports.jsx(reactExports.Fragment,{children:Fn&&reactDomExports.createPortal(Cn,Fn)})});function getPopperUtilityClass(dt){return generateUtilityClass("MuiPopper",dt)}generateUtilityClasses("MuiPopper",["root"]);const _excluded$G=["anchorEl","children","direction","disablePortal","modifiers","open","placement","popperOptions","popperRef","slotProps","slots","TransitionProps","ownerState"],_excluded2$3=["anchorEl","children","container","direction","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition","slotProps","slots"];function flipPlacement(dt,ht){if(ht==="ltr")return dt;switch(dt){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return dt}}function resolveAnchorEl$1(dt){return typeof dt=="function"?dt():dt}function isHTMLElement(dt){return dt.nodeType!==void 0}const useUtilityClasses$y=()=>composeClasses({root:["root"]},useClassNamesOverride(getPopperUtilityClass)),defaultPopperOptions={},PopperTooltip=reactExports.forwardRef(function dt(ht,Dt){var Cn;const{anchorEl:$n,children:Un,direction:Fn,disablePortal:Hn,modifiers:Gn,open:Qn,placement:qn,popperOptions:er,popperRef:Wn,slotProps:jn={},slots:Zn={},TransitionProps:Xn}=ht,ar=_objectWithoutPropertiesLoose(ht,_excluded$G),dr=reactExports.useRef(null),or=useForkRef(dr,Dt),sr=reactExports.useRef(null),vr=useForkRef(sr,Wn),hr=reactExports.useRef(vr);useEnhancedEffect$1(()=>{hr.current=vr},[vr]),reactExports.useImperativeHandle(Wn,()=>sr.current,[]);const gr=flipPlacement(qn,Fn),[ur,_r]=reactExports.useState(gr),[nr,Sr]=reactExports.useState(resolveAnchorEl$1($n));reactExports.useEffect(()=>{sr.current&&sr.current.forceUpdate()}),reactExports.useEffect(()=>{$n&&Sr(resolveAnchorEl$1($n))},[$n]),useEnhancedEffect$1(()=>{if(!nr||!Qn)return;const Cr=Pr=>{_r(Pr.placement)};let yr=[{name:"preventOverflow",options:{altBoundary:Hn}},{name:"flip",options:{altBoundary:Hn}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:Pr})=>{Cr(Pr)}}];Gn!=null&&(yr=yr.concat(Gn)),er&&er.modifiers!=null&&(yr=yr.concat(er.modifiers));const Ir=createPopper(nr,dr.current,_extends({placement:gr},er,{modifiers:yr}));return hr.current(Ir),()=>{Ir.destroy(),hr.current(null)}},[nr,Hn,Gn,Qn,er,gr]);const Ar={placement:ur};Xn!==null&&(Ar.TransitionProps=Xn);const tr=useUtilityClasses$y(),Yn=(Cn=Zn.root)!=null?Cn:"div",fr=useSlotProps({elementType:Yn,externalSlotProps:jn.root,externalForwardedProps:ar,additionalProps:{role:"tooltip",ref:or},ownerState:ht,className:tr.root});return jsxRuntimeExports.jsx(Yn,_extends({},fr,{children:typeof Un=="function"?Un(Ar):Un}))}),Popper$2=reactExports.forwardRef(function dt(ht,Dt){const{anchorEl:Cn,children:$n,container:Un,direction:Fn="ltr",disablePortal:Hn=!1,keepMounted:Gn=!1,modifiers:Qn,open:qn,placement:er="bottom",popperOptions:Wn=defaultPopperOptions,popperRef:jn,style:Zn,transition:Xn=!1,slotProps:ar={},slots:dr={}}=ht,or=_objectWithoutPropertiesLoose(ht,_excluded2$3),[sr,vr]=reactExports.useState(!0),hr=()=>{vr(!1)},gr=()=>{vr(!0)};if(!Gn&&!qn&&(!Xn||sr))return null;let ur;if(Un)ur=Un;else if(Cn){const Sr=resolveAnchorEl$1(Cn);ur=Sr&&isHTMLElement(Sr)?ownerDocument(Sr).body:ownerDocument(null).body}const _r=!qn&&Gn&&(!Xn||sr)?"none":void 0,nr=Xn?{in:qn,onEnter:hr,onExited:gr}:void 0;return jsxRuntimeExports.jsx(Portal,{disablePortal:Hn,container:ur,children:jsxRuntimeExports.jsx(PopperTooltip,_extends({anchorEl:Cn,direction:Fn,disablePortal:Hn,modifiers:Qn,ref:Dt,open:Xn?!sr:qn,placement:er,popperOptions:Wn,popperRef:jn,slotProps:ar,slots:dr},or,{style:_extends({position:"fixed",top:0,left:0,display:_r},Zn),TransitionProps:nr,children:$n}))})});function isOverflowing(dt){const ht=ownerDocument(dt);return ht.body===dt?ownerWindow(dt).innerWidth>ht.documentElement.clientWidth:dt.scrollHeight>dt.clientHeight}function ariaHidden(dt,ht){ht?dt.setAttribute("aria-hidden","true"):dt.removeAttribute("aria-hidden")}function getPaddingRight(dt){return parseInt(ownerWindow(dt).getComputedStyle(dt).paddingRight,10)||0}function isAriaHiddenForbiddenOnElement(dt){const Dt=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(dt.tagName)!==-1,Cn=dt.tagName==="INPUT"&&dt.getAttribute("type")==="hidden";return Dt||Cn}function ariaHiddenSiblings(dt,ht,Dt,Cn,$n){const Un=[ht,Dt,...Cn];[].forEach.call(dt.children,Fn=>{const Hn=Un.indexOf(Fn)===-1,Gn=!isAriaHiddenForbiddenOnElement(Fn);Hn&&Gn&&ariaHidden(Fn,$n)})}function findIndexOf(dt,ht){let Dt=-1;return dt.some((Cn,$n)=>ht(Cn)?(Dt=$n,!0):!1),Dt}function handleContainer(dt,ht){const Dt=[],Cn=dt.container;if(!ht.disableScrollLock){if(isOverflowing(Cn)){const Fn=getScrollbarSize(ownerDocument(Cn));Dt.push({value:Cn.style.paddingRight,property:"padding-right",el:Cn}),Cn.style.paddingRight=`${getPaddingRight(Cn)+Fn}px`;const Hn=ownerDocument(Cn).querySelectorAll(".mui-fixed");[].forEach.call(Hn,Gn=>{Dt.push({value:Gn.style.paddingRight,property:"padding-right",el:Gn}),Gn.style.paddingRight=`${getPaddingRight(Gn)+Fn}px`})}let Un;if(Cn.parentNode instanceof DocumentFragment)Un=ownerDocument(Cn).body;else{const Fn=Cn.parentElement,Hn=ownerWindow(Cn);Un=(Fn==null?void 0:Fn.nodeName)==="HTML"&&Hn.getComputedStyle(Fn).overflowY==="scroll"?Fn:Cn}Dt.push({value:Un.style.overflow,property:"overflow",el:Un},{value:Un.style.overflowX,property:"overflow-x",el:Un},{value:Un.style.overflowY,property:"overflow-y",el:Un}),Un.style.overflow="hidden"}return()=>{Dt.forEach(({value:Un,el:Fn,property:Hn})=>{Un?Fn.style.setProperty(Hn,Un):Fn.style.removeProperty(Hn)})}}function getHiddenSiblings(dt){const ht=[];return[].forEach.call(dt.children,Dt=>{Dt.getAttribute("aria-hidden")==="true"&&ht.push(Dt)}),ht}class ModalManager{constructor(){this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}add(ht,Dt){let Cn=this.modals.indexOf(ht);if(Cn!==-1)return Cn;Cn=this.modals.length,this.modals.push(ht),ht.modalRef&&ariaHidden(ht.modalRef,!1);const $n=getHiddenSiblings(Dt);ariaHiddenSiblings(Dt,ht.mount,ht.modalRef,$n,!0);const Un=findIndexOf(this.containers,Fn=>Fn.container===Dt);return Un!==-1?(this.containers[Un].modals.push(ht),Cn):(this.containers.push({modals:[ht],container:Dt,restore:null,hiddenSiblings:$n}),Cn)}mount(ht,Dt){const Cn=findIndexOf(this.containers,Un=>Un.modals.indexOf(ht)!==-1),$n=this.containers[Cn];$n.restore||($n.restore=handleContainer($n,Dt))}remove(ht,Dt=!0){const Cn=this.modals.indexOf(ht);if(Cn===-1)return Cn;const $n=findIndexOf(this.containers,Fn=>Fn.modals.indexOf(ht)!==-1),Un=this.containers[$n];if(Un.modals.splice(Un.modals.indexOf(ht),1),this.modals.splice(Cn,1),Un.modals.length===0)Un.restore&&Un.restore(),ht.modalRef&&ariaHidden(ht.modalRef,Dt),ariaHiddenSiblings(Un.container,ht.mount,ht.modalRef,Un.hiddenSiblings,!1),this.containers.splice($n,1);else{const Fn=Un.modals[Un.modals.length-1];Fn.modalRef&&ariaHidden(Fn.modalRef,!1)}return Cn}isTopModal(ht){return this.modals.length>0&&this.modals[this.modals.length-1]===ht}}function getContainer(dt){return typeof dt=="function"?dt():dt}function getHasTransition(dt){return dt?dt.props.hasOwnProperty("in"):!1}const defaultManager=new ModalManager;function useModal(dt){const{container:ht,disableEscapeKeyDown:Dt=!1,disableScrollLock:Cn=!1,manager:$n=defaultManager,closeAfterTransition:Un=!1,onTransitionEnter:Fn,onTransitionExited:Hn,children:Gn,onClose:Qn,open:qn,rootRef:er}=dt,Wn=reactExports.useRef({}),jn=reactExports.useRef(null),Zn=reactExports.useRef(null),Xn=useForkRef(Zn,er),[ar,dr]=reactExports.useState(!qn),or=getHasTransition(Gn);let sr=!0;(dt["aria-hidden"]==="false"||dt["aria-hidden"]===!1)&&(sr=!1);const vr=()=>ownerDocument(jn.current),hr=()=>(Wn.current.modalRef=Zn.current,Wn.current.mount=jn.current,Wn.current),gr=()=>{$n.mount(hr(),{disableScrollLock:Cn}),Zn.current&&(Zn.current.scrollTop=0)},ur=useEventCallback(()=>{const yr=getContainer(ht)||vr().body;$n.add(hr(),yr),Zn.current&&gr()}),_r=reactExports.useCallback(()=>$n.isTopModal(hr()),[$n]),nr=useEventCallback(yr=>{jn.current=yr,yr&&(qn&&_r()?gr():Zn.current&&ariaHidden(Zn.current,sr))}),Sr=reactExports.useCallback(()=>{$n.remove(hr(),sr)},[sr,$n]);reactExports.useEffect(()=>()=>{Sr()},[Sr]),reactExports.useEffect(()=>{qn?ur():(!or||!Un)&&Sr()},[qn,Sr,or,Un,ur]);const Ar=yr=>Ir=>{var Pr;(Pr=yr.onKeyDown)==null||Pr.call(yr,Ir),!(Ir.key!=="Escape"||!_r())&&(Dt||(Ir.stopPropagation(),Qn&&Qn(Ir,"escapeKeyDown")))},tr=yr=>Ir=>{var Pr;(Pr=yr.onClick)==null||Pr.call(yr,Ir),Ir.target===Ir.currentTarget&&Qn&&Qn(Ir,"backdropClick")};return{getRootProps:(yr={})=>{const Ir=extractEventHandlers(dt);delete Ir.onTransitionEnter,delete Ir.onTransitionExited;const Pr=_extends({},Ir,yr);return _extends({role:"presentation"},Pr,{onKeyDown:Ar(Pr),ref:Xn})},getBackdropProps:(yr={})=>{const Ir=yr;return _extends({"aria-hidden":!0},Ir,{onClick:tr(Ir),open:qn})},getTransitionProps:()=>{const yr=()=>{dr(!1),Fn&&Fn()},Ir=()=>{dr(!0),Hn&&Hn(),Un&&Sr()};return{onEnter:createChainedFunction(yr,Gn.props.onEnter),onExited:createChainedFunction(Ir,Gn.props.onExited)}},rootRef:Xn,portalRef:nr,isTopModal:_r,exited:ar,hasTransition:or}}const INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(dt,ht){return dt-ht}function clamp(dt,ht,Dt){return dt==null?ht:Math.min(Math.max(ht,dt),Dt)}function findClosest(dt,ht){var Dt;const{index:Cn}=(Dt=dt.reduce(($n,Un,Fn)=>{const Hn=Math.abs(ht-Un);return $n===null||Hn<$n.distance||Hn===$n.distance?{distance:Hn,index:Fn}:$n},null))!=null?Dt:{};return Cn}function trackFinger(dt,ht){if(ht.current!==void 0&&dt.changedTouches){const Dt=dt;for(let Cn=0;Cn<Dt.changedTouches.length;Cn+=1){const $n=Dt.changedTouches[Cn];if($n.identifier===ht.current)return{x:$n.clientX,y:$n.clientY}}return!1}return{x:dt.clientX,y:dt.clientY}}function valueToPercent(dt,ht,Dt){return(dt-ht)*100/(Dt-ht)}function percentToValue(dt,ht,Dt){return(Dt-ht)*dt+ht}function getDecimalPrecision(dt){if(Math.abs(dt)<1){const Dt=dt.toExponential().split("e-"),Cn=Dt[0].split(".")[1];return(Cn?Cn.length:0)+parseInt(Dt[1],10)}const ht=dt.toString().split(".")[1];return ht?ht.length:0}function roundValueToStep(dt,ht,Dt){const Cn=Math.round((dt-Dt)/ht)*ht+Dt;return Number(Cn.toFixed(getDecimalPrecision(ht)))}function setValueIndex({values:dt,newValue:ht,index:Dt}){const Cn=dt.slice();return Cn[Dt]=ht,Cn.sort(asc)}function focusThumb({sliderRef:dt,activeIndex:ht,setActive:Dt}){var Cn,$n;const Un=ownerDocument(dt.current);if(!((Cn=dt.current)!=null&&Cn.contains(Un.activeElement))||Number(Un==null||($n=Un.activeElement)==null?void 0:$n.getAttribute("data-index"))!==ht){var Fn;(Fn=dt.current)==null||Fn.querySelector(`[type="range"][data-index="${ht}"]`).focus()}Dt&&Dt(ht)}function areValuesEqual(dt,ht){return typeof dt=="number"&&typeof ht=="number"?dt===ht:typeof dt=="object"&&typeof ht=="object"?areArraysEqual(dt,ht):!1}const axisProps={horizontal:{offset:dt=>({left:`${dt}%`}),leap:dt=>({width:`${dt}%`})},"horizontal-reverse":{offset:dt=>({right:`${dt}%`}),leap:dt=>({width:`${dt}%`})},vertical:{offset:dt=>({bottom:`${dt}%`}),leap:dt=>({height:`${dt}%`})}},Identity$1=dt=>dt;let cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(typeof CSS<"u"&&typeof CSS.supports=="function"?cachedSupportsTouchActionNone=CSS.supports("touch-action","none"):cachedSupportsTouchActionNone=!0),cachedSupportsTouchActionNone}function useSlider(dt){const{"aria-labelledby":ht,defaultValue:Dt,disabled:Cn=!1,disableSwap:$n=!1,isRtl:Un=!1,marks:Fn=!1,max:Hn=100,min:Gn=0,name:Qn,onChange:qn,onChangeCommitted:er,orientation:Wn="horizontal",rootRef:jn,scale:Zn=Identity$1,step:Xn=1,tabIndex:ar,value:dr}=dt,or=reactExports.useRef(),[sr,vr]=reactExports.useState(-1),[hr,gr]=reactExports.useState(-1),[ur,_r]=reactExports.useState(!1),nr=reactExports.useRef(0),[Sr,Ar]=useControlled({controlled:dr,default:Dt??Gn,name:"Slider"}),tr=qn&&((xa,Ts,Mo)=>{const yo=xa.nativeEvent||xa,Po=new yo.constructor(yo.type,yo);Object.defineProperty(Po,"target",{writable:!0,value:{value:Ts,name:Qn}}),qn(Po,Ts,Mo)}),Yn=Array.isArray(Sr);let fr=Yn?Sr.slice().sort(asc):[Sr];fr=fr.map(xa=>clamp(xa,Gn,Hn));const Cr=Fn===!0&&Xn!==null?[...Array(Math.floor((Hn-Gn)/Xn)+1)].map((xa,Ts)=>({value:Gn+Xn*Ts})):Fn||[],yr=Cr.map(xa=>xa.value),{isFocusVisibleRef:Ir,onBlur:Pr,onFocus:Br,ref:rr}=useIsFocusVisible(),[pr,$r]=reactExports.useState(-1),kr=reactExports.useRef(),Tr=useForkRef(rr,kr),Nr=useForkRef(jn,Tr),Yr=xa=>Ts=>{var Mo;const yo=Number(Ts.currentTarget.getAttribute("data-index"));Br(Ts),Ir.current===!0&&$r(yo),gr(yo),xa==null||(Mo=xa.onFocus)==null||Mo.call(xa,Ts)},to=xa=>Ts=>{var Mo;Pr(Ts),Ir.current===!1&&$r(-1),gr(-1),xa==null||(Mo=xa.onBlur)==null||Mo.call(xa,Ts)};useEnhancedEffect$1(()=>{if(Cn&&kr.current.contains(document.activeElement)){var xa;(xa=document.activeElement)==null||xa.blur()}},[Cn]),Cn&&sr!==-1&&vr(-1),Cn&&pr!==-1&&$r(-1);const po=xa=>Ts=>{var Mo;(Mo=xa.onChange)==null||Mo.call(xa,Ts);const yo=Number(Ts.currentTarget.getAttribute("data-index")),Po=fr[yo],Wo=yr.indexOf(Po);let as=Ts.target.valueAsNumber;if(Cr&&Xn==null){const Bs=yr[yr.length-1];as>Bs?as=Bs:as<yr[0]?as=yr[0]:as=as<Po?yr[Wo-1]:yr[Wo+1]}if(as=clamp(as,Gn,Hn),Yn){$n&&(as=clamp(as,fr[yo-1]||-1/0,fr[yo+1]||1/0));const Bs=as;as=setValueIndex({values:fr,newValue:as,index:yo});let ys=yo;$n||(ys=as.indexOf(Bs)),focusThumb({sliderRef:kr,activeIndex:ys})}Ar(as),$r(yo),tr&&!areValuesEqual(as,Sr)&&tr(Ts,as,yo),er&&er(Ts,as)},So=reactExports.useRef();let Jo=Wn;Un&&Wn==="horizontal"&&(Jo+="-reverse");const Zo=({finger:xa,move:Ts=!1})=>{const{current:Mo}=kr,{width:yo,height:Po,bottom:Wo,left:as}=Mo.getBoundingClientRect();let Bs;Jo.indexOf("vertical")===0?Bs=(Wo-xa.y)/Po:Bs=(xa.x-as)/yo,Jo.indexOf("-reverse")!==-1&&(Bs=1-Bs);let ys;if(ys=percentToValue(Bs,Gn,Hn),Xn)ys=roundValueToStep(ys,Xn,Gn);else{const tu=findClosest(yr,ys);ys=yr[tu]}ys=clamp(ys,Gn,Hn);let Qs=0;if(Yn){Ts?Qs=So.current:Qs=findClosest(fr,ys),$n&&(ys=clamp(ys,fr[Qs-1]||-1/0,fr[Qs+1]||1/0));const tu=ys;ys=setValueIndex({values:fr,newValue:ys,index:Qs}),$n&&Ts||(Qs=ys.indexOf(tu),So.current=Qs)}return{newValue:ys,activeIndex:Qs}},Vo=useEventCallback(xa=>{const Ts=trackFinger(xa,or);if(!Ts)return;if(nr.current+=1,xa.type==="mousemove"&&xa.buttons===0){ls(xa);return}const{newValue:Mo,activeIndex:yo}=Zo({finger:Ts,move:!0});focusThumb({sliderRef:kr,activeIndex:yo,setActive:vr}),Ar(Mo),!ur&&nr.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&_r(!0),tr&&!areValuesEqual(Mo,Sr)&&tr(xa,Mo,yo)}),ls=useEventCallback(xa=>{const Ts=trackFinger(xa,or);if(_r(!1),!Ts)return;const{newValue:Mo}=Zo({finger:Ts,move:!0});vr(-1),xa.type==="touchend"&&gr(-1),er&&er(xa,Mo),or.current=void 0,Ss()}),Ao=useEventCallback(xa=>{if(Cn)return;doesSupportTouchActionNone()||xa.preventDefault();const Ts=xa.changedTouches[0];Ts!=null&&(or.current=Ts.identifier);const Mo=trackFinger(xa,or);if(Mo!==!1){const{newValue:Po,activeIndex:Wo}=Zo({finger:Mo});focusThumb({sliderRef:kr,activeIndex:Wo,setActive:vr}),Ar(Po),tr&&!areValuesEqual(Po,Sr)&&tr(xa,Po,Wo)}nr.current=0;const yo=ownerDocument(kr.current);yo.addEventListener("touchmove",Vo),yo.addEventListener("touchend",ls)}),Ss=reactExports.useCallback(()=>{const xa=ownerDocument(kr.current);xa.removeEventListener("mousemove",Vo),xa.removeEventListener("mouseup",ls),xa.removeEventListener("touchmove",Vo),xa.removeEventListener("touchend",ls)},[ls,Vo]);reactExports.useEffect(()=>{const{current:xa}=kr;return xa.addEventListener("touchstart",Ao,{passive:doesSupportTouchActionNone()}),()=>{xa.removeEventListener("touchstart",Ao,{passive:doesSupportTouchActionNone()}),Ss()}},[Ss,Ao]),reactExports.useEffect(()=>{Cn&&Ss()},[Cn,Ss]);const mo=xa=>Ts=>{var Mo;if((Mo=xa.onMouseDown)==null||Mo.call(xa,Ts),Cn||Ts.defaultPrevented||Ts.button!==0)return;Ts.preventDefault();const yo=trackFinger(Ts,or);if(yo!==!1){const{newValue:Wo,activeIndex:as}=Zo({finger:yo});focusThumb({sliderRef:kr,activeIndex:as,setActive:vr}),Ar(Wo),tr&&!areValuesEqual(Wo,Sr)&&tr(Ts,Wo,as)}nr.current=0;const Po=ownerDocument(kr.current);Po.addEventListener("mousemove",Vo),Po.addEventListener("mouseup",ls)},Bo=valueToPercent(Yn?fr[0]:Gn,Gn,Hn),To=valueToPercent(fr[fr.length-1],Gn,Hn)-Bo,Do=(xa={})=>{const Ts={onMouseDown:mo(xa||{})},Mo=_extends({},xa,Ts);return _extends({ref:Nr},Mo)},zr=xa=>Ts=>{var Mo;(Mo=xa.onMouseOver)==null||Mo.call(xa,Ts);const yo=Number(Ts.currentTarget.getAttribute("data-index"));gr(yo)},na=xa=>Ts=>{var Mo;(Mo=xa.onMouseLeave)==null||Mo.call(xa,Ts),gr(-1)};return{active:sr,axis:Jo,axisProps,dragging:ur,focusedThumbIndex:pr,getHiddenInputProps:(xa={})=>{var Ts;const Mo={onChange:po(xa||{}),onFocus:Yr(xa||{}),onBlur:to(xa||{})},yo=_extends({},xa,Mo);return _extends({tabIndex:ar,"aria-labelledby":ht,"aria-orientation":Wn,"aria-valuemax":Zn(Hn),"aria-valuemin":Zn(Gn),name:Qn,type:"range",min:dt.min,max:dt.max,step:dt.step===null&&dt.marks?"any":(Ts=dt.step)!=null?Ts:void 0,disabled:Cn},yo,{style:_extends({},visuallyHidden$1,{direction:Un?"rtl":"ltr",width:"100%",height:"100%"})})},getRootProps:Do,getThumbProps:(xa={})=>{const Ts={onMouseOver:zr(xa||{}),onMouseLeave:na(xa||{})};return _extends({},xa,Ts)},marks:Cr,open:hr,range:Yn,rootRef:Nr,trackLeap:To,trackOffset:Bo,values:fr,getThumbStyle:xa=>({pointerEvents:sr!==-1&&sr!==xa?"none":void 0})}}const _excluded$F=["onChange","maxRows","minRows","style","value"];function getStyleValue(dt){return parseInt(dt,10)||0}const styles$3={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isEmpty$1(dt){return dt==null||Object.keys(dt).length===0||dt.outerHeightStyle===0&&!dt.overflow}const TextareaAutosize=reactExports.forwardRef(function dt(ht,Dt){const{onChange:Cn,maxRows:$n,minRows:Un=1,style:Fn,value:Hn}=ht,Gn=_objectWithoutPropertiesLoose(ht,_excluded$F),{current:Qn}=reactExports.useRef(Hn!=null),qn=reactExports.useRef(null),er=useForkRef(Dt,qn),Wn=reactExports.useRef(null),jn=reactExports.useRef(0),[Zn,Xn]=reactExports.useState({outerHeightStyle:0}),ar=reactExports.useCallback(()=>{const hr=qn.current,ur=ownerWindow(hr).getComputedStyle(hr);if(ur.width==="0px")return{outerHeightStyle:0};const _r=Wn.current;_r.style.width=ur.width,_r.value=hr.value||ht.placeholder||"x",_r.value.slice(-1)===`
331
331
  `&&(_r.value+=" ");const nr=ur.boxSizing,Sr=getStyleValue(ur.paddingBottom)+getStyleValue(ur.paddingTop),Ar=getStyleValue(ur.borderBottomWidth)+getStyleValue(ur.borderTopWidth),tr=_r.scrollHeight;_r.value="x";const Yn=_r.scrollHeight;let fr=tr;Un&&(fr=Math.max(Number(Un)*Yn,fr)),$n&&(fr=Math.min(Number($n)*Yn,fr)),fr=Math.max(fr,Yn);const Cr=fr+(nr==="border-box"?Sr+Ar:0),yr=Math.abs(fr-tr)<=1;return{outerHeightStyle:Cr,overflow:yr}},[$n,Un,ht.placeholder]),dr=(hr,gr)=>{const{outerHeightStyle:ur,overflow:_r}=gr;return jn.current<20&&(ur>0&&Math.abs((hr.outerHeightStyle||0)-ur)>1||hr.overflow!==_r)?(jn.current+=1,{overflow:_r,outerHeightStyle:ur}):hr},or=reactExports.useCallback(()=>{const hr=ar();isEmpty$1(hr)||Xn(gr=>dr(gr,hr))},[ar]),sr=()=>{const hr=ar();isEmpty$1(hr)||reactDomExports.flushSync(()=>{Xn(gr=>dr(gr,hr))})};reactExports.useEffect(()=>{const hr=debounce$1(()=>{jn.current=0,qn.current&&sr()});let gr;const ur=qn.current,_r=ownerWindow(ur);return _r.addEventListener("resize",hr),typeof ResizeObserver<"u"&&(gr=new ResizeObserver(hr),gr.observe(ur)),()=>{hr.clear(),_r.removeEventListener("resize",hr),gr&&gr.disconnect()}}),useEnhancedEffect$1(()=>{or()}),reactExports.useEffect(()=>{jn.current=0},[Hn]);const vr=hr=>{jn.current=0,Qn||or(),Cn&&Cn(hr)};return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx("textarea",_extends({value:Hn,onChange:vr,ref:er,rows:Un,style:_extends({height:Zn.outerHeightStyle,overflow:Zn.overflow?"hidden":void 0},Fn)},Gn)),jsxRuntimeExports.jsx("textarea",{"aria-hidden":!0,className:ht.className,readOnly:!0,ref:Wn,tabIndex:-1,style:_extends({},styles$3.shadow,Fn,{paddingTop:0,paddingBottom:0})})]})}),shouldSpreadAdditionalProps=dt=>!dt||!isHostComponent(dt),shouldSpreadAdditionalProps$1=shouldSpreadAdditionalProps;function getSliderUtilityClass(dt){return generateUtilityClass("MuiSlider",dt)}const sliderClasses=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","thumbColorPrimary","thumbColorSecondary","track","trackInverted","trackFalse","thumbSizeSmall","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),sliderClasses$1=sliderClasses,useValueLabelClasses=dt=>{const{open:ht}=dt;return{offset:clsx(ht&&sliderClasses$1.valueLabelOpen),circle:sliderClasses$1.valueLabelCircle,label:sliderClasses$1.valueLabelLabel}};function SliderValueLabel(dt){const{children:ht,className:Dt,value:Cn}=dt,$n=useValueLabelClasses(dt);return ht?reactExports.cloneElement(ht,{className:clsx(ht.props.className)},jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ht.props.children,jsxRuntimeExports.jsx("span",{className:clsx($n.offset,Dt),"aria-hidden":!0,children:jsxRuntimeExports.jsx("span",{className:$n.circle,children:jsxRuntimeExports.jsx("span",{className:$n.label,children:Cn})})})]})):null}const _excluded$E=["aria-label","aria-valuetext","aria-labelledby","component","components","componentsProps","color","classes","className","disableSwap","disabled","getAriaLabel","getAriaValueText","marks","max","min","name","onChange","onChangeCommitted","orientation","size","step","scale","slotProps","slots","tabIndex","track","value","valueLabelDisplay","valueLabelFormat"];function Identity(dt){return dt}const SliderRoot=styled$1("span",{name:"MuiSlider",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,ht[`color${capitalize$1(Dt.color)}`],Dt.size!=="medium"&&ht[`size${capitalize$1(Dt.size)}`],Dt.marked&&ht.marked,Dt.orientation==="vertical"&&ht.vertical,Dt.track==="inverted"&&ht.trackInverted,Dt.track===!1&&ht.trackFalse]}})(({theme:dt,ownerState:ht})=>_extends({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",color:(dt.vars||dt).palette[ht.color].main,WebkitTapHighlightColor:"transparent"},ht.orientation==="horizontal"&&_extends({height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}},ht.size==="small"&&{height:2},ht.marked&&{marginBottom:20}),ht.orientation==="vertical"&&_extends({height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}},ht.size==="small"&&{width:2},ht.marked&&{marginRight:44}),{"@media print":{colorAdjust:"exact"},[`&.${sliderClasses$1.disabled}`]:{pointerEvents:"none",cursor:"default",color:(dt.vars||dt).palette.grey[400]},[`&.${sliderClasses$1.dragging}`]:{[`& .${sliderClasses$1.thumb}, & .${sliderClasses$1.track}`]:{transition:"none"}}})),SliderRail=styled$1("span",{name:"MuiSlider",slot:"Rail",overridesResolver:(dt,ht)=>ht.rail})(({ownerState:dt})=>_extends({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38},dt.orientation==="horizontal"&&{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"},dt.orientation==="vertical"&&{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"},dt.track==="inverted"&&{opacity:1})),SliderTrack=styled$1("span",{name:"MuiSlider",slot:"Track",overridesResolver:(dt,ht)=>ht.track})(({theme:dt,ownerState:ht})=>{const Dt=dt.palette.mode==="light"?lighten(dt.palette[ht.color].main,.62):darken(dt.palette[ht.color].main,.5);return _extends({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:dt.transitions.create(["left","width","bottom","height"],{duration:dt.transitions.duration.shortest})},ht.size==="small"&&{border:"none"},ht.orientation==="horizontal"&&{height:"inherit",top:"50%",transform:"translateY(-50%)"},ht.orientation==="vertical"&&{width:"inherit",left:"50%",transform:"translateX(-50%)"},ht.track===!1&&{display:"none"},ht.track==="inverted"&&{backgroundColor:dt.vars?dt.vars.palette.Slider[`${ht.color}Track`]:Dt,borderColor:dt.vars?dt.vars.palette.Slider[`${ht.color}Track`]:Dt})}),SliderThumb=styled$1("span",{name:"MuiSlider",slot:"Thumb",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.thumb,ht[`thumbColor${capitalize$1(Dt.color)}`],Dt.size!=="medium"&&ht[`thumbSize${capitalize$1(Dt.size)}`]]}})(({theme:dt,ownerState:ht})=>_extends({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:dt.transitions.create(["box-shadow","left","bottom"],{duration:dt.transitions.duration.shortest})},ht.size==="small"&&{width:12,height:12},ht.orientation==="horizontal"&&{top:"50%",transform:"translate(-50%, -50%)"},ht.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 50%)"},{"&:before":_extends({position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(dt.vars||dt).shadows[2]},ht.size==="small"&&{boxShadow:"none"}),"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&:hover, &.${sliderClasses$1.focusVisible}`]:{boxShadow:`0px 0px 0px 8px ${dt.vars?`rgba(${dt.vars.palette[ht.color].mainChannel} / 0.16)`:alpha(dt.palette[ht.color].main,.16)}`,"@media (hover: none)":{boxShadow:"none"}},[`&.${sliderClasses$1.active}`]:{boxShadow:`0px 0px 0px 14px ${dt.vars?`rgba(${dt.vars.palette[ht.color].mainChannel} / 0.16)`:alpha(dt.palette[ht.color].main,.16)}`},[`&.${sliderClasses$1.disabled}`]:{"&:hover":{boxShadow:"none"}}})),StyledSliderValueLabel=styled$1(SliderValueLabel,{name:"MuiSlider",slot:"ValueLabel",overridesResolver:(dt,ht)=>ht.valueLabel})(({theme:dt,ownerState:ht})=>_extends({[`&.${sliderClasses$1.valueLabelOpen}`]:{transform:`${ht.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(1)`},zIndex:1,whiteSpace:"nowrap"},dt.typography.body2,{fontWeight:500,transition:dt.transitions.create(["transform"],{duration:dt.transitions.duration.shortest}),transform:`${ht.orientation==="vertical"?"translateY(-50%)":"translateY(-100%)"} scale(0)`,position:"absolute",backgroundColor:(dt.vars||dt).palette.grey[600],borderRadius:2,color:(dt.vars||dt).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem"},ht.orientation==="horizontal"&&{top:"-10px",transformOrigin:"bottom center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"}},ht.orientation==="vertical"&&{right:ht.size==="small"?"20px":"30px",top:"50%",transformOrigin:"right center","&:before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"}},ht.size==="small"&&{fontSize:dt.typography.pxToRem(12),padding:"0.25rem 0.5rem"})),SliderMark=styled$1("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:dt=>slotShouldForwardProp(dt)&&dt!=="markActive",overridesResolver:(dt,ht)=>{const{markActive:Dt}=dt;return[ht.mark,Dt&&ht.markActive]}})(({theme:dt,ownerState:ht,markActive:Dt})=>_extends({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor"},ht.orientation==="horizontal"&&{top:"50%",transform:"translate(-1px, -50%)"},ht.orientation==="vertical"&&{left:"50%",transform:"translate(-50%, 1px)"},Dt&&{backgroundColor:(dt.vars||dt).palette.background.paper,opacity:.8})),SliderMarkLabel=styled$1("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:dt=>slotShouldForwardProp(dt)&&dt!=="markLabelActive",overridesResolver:(dt,ht)=>ht.markLabel})(({theme:dt,ownerState:ht,markLabelActive:Dt})=>_extends({},dt.typography.body2,{color:(dt.vars||dt).palette.text.secondary,position:"absolute",whiteSpace:"nowrap"},ht.orientation==="horizontal"&&{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}},ht.orientation==="vertical"&&{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}},Dt&&{color:(dt.vars||dt).palette.text.primary})),useUtilityClasses$x=dt=>{const{disabled:ht,dragging:Dt,marked:Cn,orientation:$n,track:Un,classes:Fn,color:Hn,size:Gn}=dt,Qn={root:["root",ht&&"disabled",Dt&&"dragging",Cn&&"marked",$n==="vertical"&&"vertical",Un==="inverted"&&"trackInverted",Un===!1&&"trackFalse",Hn&&`color${capitalize$1(Hn)}`,Gn&&`size${capitalize$1(Gn)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",ht&&"disabled",Gn&&`thumbSize${capitalize$1(Gn)}`,Hn&&`thumbColor${capitalize$1(Hn)}`],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]};return composeClasses(Qn,getSliderUtilityClass,Fn)},Forward=({children:dt})=>dt,Slider=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er,Wn,jn,Zn,Xn,ar,dr,or,sr,vr,hr,gr,ur,_r,nr,Sr;const Ar=useThemeProps({props:ht,name:"MuiSlider"}),Yn=useTheme().direction==="rtl",{"aria-label":fr,"aria-valuetext":Cr,"aria-labelledby":yr,component:Ir="span",components:Pr={},componentsProps:Br={},color:rr="primary",classes:pr,className:$r,disableSwap:kr=!1,disabled:Tr=!1,getAriaLabel:Nr,getAriaValueText:Yr,marks:to=!1,max:po=100,min:So=0,orientation:Jo="horizontal",size:Zo="medium",step:Vo=1,scale:ls=Identity,slotProps:Ao,slots:Ss,track:mo="normal",valueLabelDisplay:Bo="off",valueLabelFormat:To=Identity}=Ar,Do=_objectWithoutPropertiesLoose(Ar,_excluded$E),zr=_extends({},Ar,{isRtl:Yn,max:po,min:So,classes:pr,disabled:Tr,disableSwap:kr,orientation:Jo,marks:to,color:rr,size:Zo,step:Vo,scale:ls,track:mo,valueLabelDisplay:Bo,valueLabelFormat:To}),{axisProps:na,getRootProps:Fo,getHiddenInputProps:os,getThumbProps:ns,open:xa,active:Ts,axis:Mo,focusedThumbIndex:yo,range:Po,dragging:Wo,marks:as,values:Bs,trackOffset:ys,trackLeap:Qs,getThumbStyle:tu}=useSlider(_extends({},zr,{rootRef:Dt}));zr.marked=as.length>0&&as.some(Js=>Js.label),zr.dragging=Wo,zr.focusedThumbIndex=yo;const Ns=useUtilityClasses$x(zr),Or=(Cn=($n=Ss==null?void 0:Ss.root)!=null?$n:Pr.Root)!=null?Cn:SliderRoot,Qr=(Un=(Fn=Ss==null?void 0:Ss.rail)!=null?Fn:Pr.Rail)!=null?Un:SliderRail,xr=(Hn=(Gn=Ss==null?void 0:Ss.track)!=null?Gn:Pr.Track)!=null?Hn:SliderTrack,Jr=(Qn=(qn=Ss==null?void 0:Ss.thumb)!=null?qn:Pr.Thumb)!=null?Qn:SliderThumb,eo=(er=(Wn=Ss==null?void 0:Ss.valueLabel)!=null?Wn:Pr.ValueLabel)!=null?er:StyledSliderValueLabel,Fr=(jn=(Zn=Ss==null?void 0:Ss.mark)!=null?Zn:Pr.Mark)!=null?jn:SliderMark,qr=(Xn=(ar=Ss==null?void 0:Ss.markLabel)!=null?ar:Pr.MarkLabel)!=null?Xn:SliderMarkLabel,Co=(dr=(or=Ss==null?void 0:Ss.input)!=null?or:Pr.Input)!=null?dr:"input",Ls=(sr=Ao==null?void 0:Ao.root)!=null?sr:Br.root,ds=(vr=Ao==null?void 0:Ao.rail)!=null?vr:Br.rail,nu=(hr=Ao==null?void 0:Ao.track)!=null?hr:Br.track,du=(gr=Ao==null?void 0:Ao.thumb)!=null?gr:Br.thumb,mu=(ur=Ao==null?void 0:Ao.valueLabel)!=null?ur:Br.valueLabel,Cl=(_r=Ao==null?void 0:Ao.mark)!=null?_r:Br.mark,ru=(nr=Ao==null?void 0:Ao.markLabel)!=null?nr:Br.markLabel,gu=(Sr=Ao==null?void 0:Ao.input)!=null?Sr:Br.input,ba=useSlotProps({elementType:Or,getSlotProps:Fo,externalSlotProps:Ls,externalForwardedProps:Do,additionalProps:_extends({},shouldSpreadAdditionalProps$1(Or)&&{as:Ir}),ownerState:_extends({},zr,Ls==null?void 0:Ls.ownerState),className:[Ns.root,$r]}),ga=useSlotProps({elementType:Qr,externalSlotProps:ds,ownerState:zr,className:Ns.rail}),_a=useSlotProps({elementType:xr,externalSlotProps:nu,additionalProps:{style:_extends({},na[Mo].offset(ys),na[Mo].leap(Qs))},ownerState:_extends({},zr,nu==null?void 0:nu.ownerState),className:Ns.track}),Ro=useSlotProps({elementType:Jr,getSlotProps:ns,externalSlotProps:du,ownerState:_extends({},zr,du==null?void 0:du.ownerState),className:Ns.thumb}),ts=useSlotProps({elementType:eo,externalSlotProps:mu,ownerState:_extends({},zr,mu==null?void 0:mu.ownerState),className:Ns.valueLabel}),ks=useSlotProps({elementType:Fr,externalSlotProps:Cl,ownerState:zr,className:Ns.mark}),Xs=useSlotProps({elementType:qr,externalSlotProps:ru,ownerState:zr,className:Ns.markLabel}),_o=useSlotProps({elementType:Co,getSlotProps:os,externalSlotProps:gu,ownerState:zr});return jsxRuntimeExports.jsxs(Or,_extends({},ba,{children:[jsxRuntimeExports.jsx(Qr,_extends({},ga)),jsxRuntimeExports.jsx(xr,_extends({},_a)),as.filter(Js=>Js.value>=So&&Js.value<=po).map((Js,_i)=>{const ro=valueToPercent(Js.value,So,po),uo=na[Mo].offset(ro);let bo;return mo===!1?bo=Bs.indexOf(Js.value)!==-1:bo=mo==="normal"&&(Po?Js.value>=Bs[0]&&Js.value<=Bs[Bs.length-1]:Js.value<=Bs[0])||mo==="inverted"&&(Po?Js.value<=Bs[0]||Js.value>=Bs[Bs.length-1]:Js.value>=Bs[0]),jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(Fr,_extends({"data-index":_i},ks,!isHostComponent(Fr)&&{markActive:bo},{style:_extends({},uo,ks.style),className:clsx(ks.className,bo&&Ns.markActive)})),Js.label!=null?jsxRuntimeExports.jsx(qr,_extends({"aria-hidden":!0,"data-index":_i},Xs,!isHostComponent(qr)&&{markLabelActive:bo},{style:_extends({},uo,Xs.style),className:clsx(Ns.markLabel,Xs.className,bo&&Ns.markLabelActive),children:Js.label})):null]},_i)}),Bs.map((Js,_i)=>{const ro=valueToPercent(Js,So,po),uo=na[Mo].offset(ro),bo=Bo==="off"?Forward:eo;return jsxRuntimeExports.jsx(bo,_extends({},!isHostComponent(bo)&&{valueLabelFormat:To,valueLabelDisplay:Bo,value:typeof To=="function"?To(ls(Js),_i):To,index:_i,open:xa===_i||Ts===_i||Bo==="on",disabled:Tr},ts,{children:jsxRuntimeExports.jsx(Jr,_extends({"data-index":_i},Ro,{className:clsx(Ns.thumb,Ro.className,Ts===_i&&Ns.active,yo===_i&&Ns.focusVisible),style:_extends({},uo,tu(_i),Ro.style),children:jsxRuntimeExports.jsx(Co,_extends({"data-index":_i,"aria-label":Nr?Nr(_i):fr,"aria-valuenow":ls(Js),"aria-labelledby":yr,"aria-valuetext":Yr?Yr(ls(Js),_i):Cr,value:Bs[_i]},_o))}))}),_i)})]}))}),Slider$1=Slider;function WormholeIcon(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"200",viewBox:"0 0 200 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M100 199.834C73.4992 199.817 48.0872 189.288 29.3398 170.557C10.5924 151.827 0.0407392 126.424 0 99.9233C0.0407334 73.4212 10.5918 48.0173 29.3389 29.2847C48.0859 10.5521 73.498 0.0203393 100 0C126.502 0.0203393 151.914 10.5521 170.661 29.2847C189.408 48.0173 199.959 73.4212 200 99.9233C199.959 126.424 189.408 151.827 170.661 170.557C151.913 189.288 126.501 199.817 100 199.834ZM100 7.69232C75.5371 7.70927 52.0796 17.4295 34.7744 34.7203C17.4692 52.0111 7.72966 75.4603 7.69232 99.9233C7.71611 124.389 17.4519 147.845 34.7604 165.137C52.0689 182.429 75.5341 192.141 100 192.141C124.466 192.141 147.931 182.429 165.24 165.137C182.548 147.845 192.284 124.389 192.308 99.9233C192.27 75.4603 182.531 52.0111 165.226 34.7203C147.92 17.4295 124.463 7.70927 100 7.69232V7.69232Z",fill:"white"}),jsxRuntimeExports.jsx("path",{d:"M112.643 184.025C90.6872 184.008 69.6346 175.283 54.1034 159.764C38.5722 144.245 29.8309 123.199 29.797 101.243C29.8309 79.2872 38.5722 58.2412 54.1034 42.722C69.6346 27.2029 90.6872 18.4778 112.643 18.4608C134.599 18.4778 155.652 27.2029 171.183 42.722C186.714 58.2412 195.455 79.2872 195.489 101.243C195.455 123.199 186.714 144.245 171.183 159.764C155.652 175.283 134.599 184.008 112.643 184.025ZM112.643 24.4353C92.2729 24.4522 72.7411 32.5483 58.3324 46.9474C43.9236 61.3465 35.8146 80.8729 35.7841 101.243C35.818 121.611 43.9287 141.134 58.3371 155.531C72.7454 169.927 92.2751 178.021 112.643 178.038C133.011 178.021 152.541 169.927 166.949 155.531C181.357 141.134 189.468 121.611 189.502 101.243C189.468 80.8751 181.357 61.3519 166.949 46.9555C152.541 32.5592 133.011 24.465 112.643 24.4481V24.4353Z",fill:"white"}),jsxRuntimeExports.jsx("path",{d:"M125.281 168.231C107.872 168.217 91.1781 161.299 78.8628 148.993C66.5475 136.687 59.616 119.999 59.5888 102.589C59.616 85.1798 66.5475 68.4918 78.8628 56.1861C91.1781 43.8804 107.872 36.962 125.281 36.9484C142.692 36.9586 159.387 43.8759 171.703 56.1823C184.019 68.4888 190.95 85.1788 190.973 102.589C190.946 119.999 184.015 136.687 171.699 148.993C159.384 161.299 142.691 168.217 125.281 168.231V168.231ZM125.281 41.2176C109.003 41.2277 93.393 47.6953 81.8776 59.2011C70.3622 70.7069 63.8816 86.311 63.8578 102.589C63.885 118.866 70.3673 134.467 81.8823 145.97C93.3974 157.473 109.005 163.938 125.281 163.949C141.557 163.938 157.165 157.473 168.68 145.97C180.195 134.467 186.677 118.866 186.705 102.589C186.681 86.311 180.2 70.7069 168.684 59.2011C157.169 47.6953 141.56 41.2277 125.281 41.2176V41.2176Z",fill:"white"}),jsxRuntimeExports.jsx("path",{d:"M137.924 152.422C125.061 152.412 112.726 147.301 103.627 138.208C94.5276 129.116 89.4062 116.786 89.3858 103.922C89.4028 91.0568 94.5229 78.7233 103.623 69.6283C112.722 60.5333 125.059 55.4198 137.924 55.4096C150.79 55.4198 163.126 60.5333 172.226 69.6283C181.326 78.7233 186.446 91.0568 186.463 103.922C186.442 116.786 181.321 129.116 172.222 138.208C163.122 147.301 150.788 152.412 137.924 152.422V152.422ZM137.924 57.9737C125.739 57.9839 114.055 62.8272 105.436 71.4414C96.8169 80.0555 91.9669 91.7369 91.9499 103.922C91.9703 116.106 96.8217 127.784 105.44 136.395C114.059 145.006 125.741 149.848 137.924 149.858C150.108 149.848 161.789 145.006 170.408 136.395C179.027 127.784 183.878 116.106 183.898 103.922C183.881 91.7369 179.032 80.0555 170.413 71.4414C161.794 62.8272 150.11 57.9839 137.924 57.9737Z",fill:"white"})]})}function XLabsIcon(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"200",viewBox:"0 0 200 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M45.6197 18.1392C45.6197 16.9577 44.6394 16 43.4299 16H2.19037C0.98056 16 0 16.9577 0 18.1392V47.2774C0 48.4588 0.98056 49.4166 2.19037 49.4166H20.6197C21.8293 49.4166 22.8099 50.3743 22.8099 51.5556V80.6939C22.8099 81.8753 23.7906 82.833 25.0002 82.833H43.4299C44.6394 82.833 45.6197 83.7907 45.6197 84.9722V114.11C45.6197 115.292 44.6394 116.25 43.4299 116.25H25.0002C23.7906 116.25 22.8099 117.207 22.8099 118.389V147.527C22.8099 148.709 21.8293 149.666 20.6197 149.666H2.19037C0.98056 149.666 0 150.624 0 151.805V180.944C0 182.124 0.98056 183.083 2.19037 183.083H43.4299C44.6394 183.083 45.6197 182.124 45.6197 180.944V151.805C45.6197 150.624 46.6008 149.666 47.8103 149.666H66.2395C67.449 149.666 68.4301 148.709 68.4301 147.527V118.389C68.4301 117.207 69.4104 116.25 70.62 116.25H89.0491C90.2594 116.25 91.2397 115.292 91.2397 114.11V84.9722C91.2397 83.7907 90.2594 82.833 89.0491 82.833H70.62C69.4104 82.833 68.4301 81.8753 68.4301 80.6939V51.5556C68.4301 50.3743 67.449 49.4166 66.2395 49.4166H47.8103C46.6008 49.4166 45.6197 48.4588 45.6197 47.2774V18.1392Z",fill:"#0000FF"}),jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M154.38 18.1391C154.38 16.9576 155.36 15.9999 156.57 15.9999H197.809C199.019 15.9999 199.999 16.9576 199.999 18.1391V47.2773C199.999 48.4587 199.019 49.4165 197.809 49.4165H179.38C178.17 49.4165 177.19 50.3742 177.19 51.5555V80.6938C177.19 81.8752 176.208 82.8329 174.999 82.8329H156.57C155.36 82.8329 154.38 83.7906 154.38 84.9721V114.11C154.38 115.292 155.36 116.249 156.57 116.249H174.999C176.208 116.249 177.19 117.207 177.19 118.389V147.526C177.19 148.708 178.17 149.666 179.38 149.666H197.809C199.019 149.666 199.999 150.624 199.999 151.805V180.943C199.999 182.124 199.019 183.083 197.809 183.083H156.57C155.36 183.083 154.38 182.124 154.38 180.943V151.805C154.38 150.624 153.399 149.666 152.19 149.666H133.761C132.551 149.666 131.569 148.708 131.569 147.526V118.389C131.569 117.207 130.589 116.249 129.379 116.249H110.95C109.741 116.249 108.76 115.292 108.76 114.11V84.9721C108.76 83.7906 109.741 82.8329 110.95 82.8329H129.379C130.589 82.8329 131.569 81.8752 131.569 80.6938V51.5555C131.569 50.3742 132.551 49.4165 133.761 49.4165H152.19C153.399 49.4165 154.38 48.4587 154.38 47.2773V18.1391Z",fill:"#0000FF"})]})}function CCTPIcon(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"200",viewBox:"0 0 200 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",children:[jsxRuntimeExports.jsx("rect",{width:"200",height:"200",fill:"url(#pattern0)"}),jsxRuntimeExports.jsxs("defs",{children:[jsxRuntimeExports.jsx("pattern",{id:"pattern0",patternContentUnits:"objectBoundingBox",width:"1",height:"1",children:jsxRuntimeExports.jsx("use",{xlinkHref:"#image0_101_2",transform:"scale(0.00416667)"})}),jsxRuntimeExports.jsx("image",{id:"image0_101_2",width:"934",height:"240",xlinkHref:"data:image/png;base64,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"})]})]})}const RoutesConfig={[Route.Bridge]:{route:Route.Bridge,name:"Manual Bridge",providedBy:"Wormhole",link:"https://wormhole.com/",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.Relay]:{route:Route.Relay,name:"Automatic Bridge",providedBy:"xLabs",link:"https://xlabs.xyz",icon:XLabsIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.CCTPManual]:{route:Route.CCTPManual,name:"Circle CCTP",providedBy:"Circle",link:"https://www.circle.com/en/cross-chain-transfer-protocol",icon:CCTPIcon,pendingMessage:"Waiting for Circle attestation . . ."},[Route.CCTPRelay]:{route:Route.CCTPRelay,name:"Circle CCTP",providedBy:"Circle",link:"https://www.circle.com/en/cross-chain-transfer-protocol",icon:CCTPIcon,pendingMessage:"Waiting for Circle attestation . . ."},[Route.TBTC]:{route:Route.TBTC,name:"tBTC",providedBy:"Threshold",link:"https://threshold.network/earn/btc",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.CosmosGateway]:{route:Route.CosmosGateway,name:"Cosmos Gateway",providedBy:"Wormhole",link:"https://wormhole.com/",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.ETHBridge]:{route:Route.ETHBridge,name:"ETH Bridge",providedBy:"xLabs",routePath:"Wormhole",link:"https://xlabs.xyz",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.wstETHBridge]:{route:Route.wstETHBridge,name:"wstETH Bridge",providedBy:"xLabs",routePath:"Wormhole",link:"https://xlabs.xyz",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.NttManual]:{route:Route.NttManual,name:"Native Token Transfer",providedBy:"Wormhole",link:"https://wormhole.com/",icon:WormholeIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."},[Route.NttRelay]:{route:Route.NttRelay,name:"Native Token Transfer",providedBy:"xLabs",link:"https://xlabs.xyz",icon:XLabsIcon,pendingMessage:"Waiting for Wormhole network consensus . . ."}},useStyles$O=makeStyles()((dt,{bg:ht})=>({input:{width:"100%",padding:dt.spacing(1.5),borderRadius:"8px",backgroundColor:ht||dt.palette.card.background,boxShadow:dt.palette.card.elevation},border:{borderRadius:"0px !important",border:`1px solid ${dt.palette.divider}`}}));function InputContainer(dt){const{classes:ht}=useStyles$O({bg:dt.bg});return jsxRuntimeExports.jsx("div",{className:joinClass([ht.input,!!dt.border&&ht.border]),onClick:dt.onClick,style:{...dt.styles,cursor:dt.onClick?"pointer":"default"},children:dt.children})}function WBTC(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"201",viewBox:"0 0 200 201",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsxs("g",{clipPath:"url(#clip0_314_9802)",children:[jsxRuntimeExports.jsx("path",{d:"M197.008 124.204C183.651 177.782 129.385 210.389 75.8004 197.028C22.2386 183.671 -10.3679 129.402 2.99519 75.8283C16.3465 22.2444 70.6123 -10.3645 124.18 2.99268C177.76 16.3499 210.365 70.625 197.006 124.205L197.007 124.204H197.008Z",fill:"#F7931A"}),jsxRuntimeExports.jsx("path",{d:"M144.1 85.7619C146.091 72.4526 135.958 65.2984 122.102 60.5258L126.597 42.4971L115.623 39.7625L111.247 57.3165C108.362 56.5969 105.399 55.9189 102.454 55.2467L106.862 37.5769L95.8939 34.8423L91.3965 52.8651C89.009 52.3215 86.664 51.7842 84.3889 51.2181L84.4016 51.1614L69.2674 47.3822L66.3481 59.1037C66.3481 59.1037 74.4903 60.9701 74.3187 61.085C78.7628 62.1942 79.5665 65.1361 79.433 67.4679L74.3128 88.0067C74.6188 88.0844 75.0158 88.1969 75.4538 88.3729C75.0876 88.2819 74.698 88.1827 74.2938 88.0859L67.117 116.858C66.5739 118.208 65.1954 120.234 62.0883 119.465C62.1982 119.624 54.1118 117.474 54.1118 117.474L48.6631 130.037L62.9447 133.597C65.6016 134.263 68.2052 134.96 70.7692 135.616L66.2278 153.851L77.1897 156.586L81.6871 138.544C84.6817 139.357 87.5879 140.107 90.433 140.814L85.9508 158.771L96.9258 161.505L101.467 143.304C120.181 146.846 134.252 145.418 140.175 128.491C144.948 114.863 139.937 107.002 130.092 101.876C137.263 100.222 142.664 95.5061 144.104 85.7634L144.101 85.7609L144.1 85.7619ZM119.026 120.923C115.634 134.551 92.689 127.184 85.2498 125.336L91.2763 101.178C98.715 103.035 122.571 106.71 119.027 120.923H119.026ZM122.42 85.5644C119.326 97.9606 100.228 91.6628 94.0333 90.1185L99.4972 68.208C105.692 69.7522 125.643 72.6345 122.421 85.5644H122.42Z",fill:"white"})]}),jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("clipPath",{id:"clip0_314_9802",children:jsxRuntimeExports.jsx("rect",{width:"200",height:"200.022",fill:"white"})})})]})}function BUSD(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"200",viewBox:"0 0 200 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsxs("g",{clipPath:"url(#clip0_313_9795)",children:[jsxRuntimeExports.jsx("path",{d:"M99.6979 0.420898L124.296 25.6121L62.3557 87.5527L37.7573 62.9542L99.6979 0.420898Z",fill:"#F0B90B",stroke:"#F0B90B"}),jsxRuntimeExports.jsx("path",{d:"M137.04 37.7632L161.639 62.9543L62.3557 162.237L37.7573 137.639L137.04 37.7632Z",fill:"#F0B90B",stroke:"#F0B90B"}),jsxRuntimeExports.jsx("path",{d:"M25.0135 75.1055L49.6119 100.297L25.0135 124.895L0.415039 100.297L25.0135 75.1055Z",fill:"#F0B90B",stroke:"#F0B90B"}),jsxRuntimeExports.jsx("path",{d:"M174.382 75.1055L198.981 100.297L99.698 199.579L75.0996 174.981L174.382 75.1055Z",fill:"#F0B90B",stroke:"#F0B90B"})]}),jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("clipPath",{id:"clip0_313_9795",children:jsxRuntimeExports.jsx("rect",{width:"199.401",height:"200",fill:"white"})})})]})}function USDT(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"230",height:"200",viewBox:"0 0 230 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsxs("g",{clipPath:"url(#clip0_313_9792)",children:[jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M42.0972 0.982283L0.176253 89.0373C0.0167314 89.3648 -0.0338199 89.7348 0.0319915 90.0931C0.0978028 90.4514 0.276524 90.7792 0.54202 91.0287L113.76 199.519C114.082 199.828 114.51 200 114.956 200C115.402 200 115.83 199.828 116.151 199.519L229.37 91.0355C229.635 90.786 229.814 90.4582 229.88 90.0998C229.946 89.7415 229.895 89.3716 229.736 89.0441L187.815 0.989056C187.679 0.69333 187.462 0.442813 187.188 0.267445C186.914 0.0920761 186.596 -0.00072543 186.27 0.000131083H43.6551C43.3283 -0.00393409 43.0074 0.086632 42.731 0.260904C42.4545 0.435177 42.2344 0.68571 42.0972 0.982283Z",fill:"#50AF95"}),jsxRuntimeExports.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M129.502 98.0801C128.689 98.1411 124.49 98.3917 115.122 98.3917C107.671 98.3917 102.381 98.1682 100.525 98.0801C71.7311 96.8135 50.2389 91.8011 50.2389 85.7998C50.2389 79.7985 71.7311 74.7929 100.525 73.506V93.0881C102.408 93.2235 107.8 93.5419 115.251 93.5419C124.192 93.5419 128.669 93.1693 129.475 93.0948V73.5195C158.208 74.7997 179.653 79.8121 179.653 85.7998C179.653 91.7876 158.215 96.7999 129.475 98.0733L129.502 98.0801ZM129.502 71.4943V53.9713H169.601V27.25H60.4262V53.9713H100.518V71.4875C67.9312 72.9844 43.4248 79.4395 43.4248 87.1748C43.4248 94.9101 67.9312 101.358 100.518 102.862V159.014H129.495V102.842C162.008 101.345 186.474 94.8966 186.474 87.1681C186.474 79.4395 162.028 72.9912 129.495 71.4875L129.502 71.4943Z",fill:"white"})]}),jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("clipPath",{id:"clip0_313_9792",children:jsxRuntimeExports.jsx("rect",{width:"229.912",height:"200",fill:"white"})})})]})}function DAI(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},width:"200",height:"200",viewBox:"0 0 200 200",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsxs("g",{clipPath:"url(#clip0_313_9788)",children:[jsxRuntimeExports.jsx("path",{d:"M100 0C155.234 0 200 44.7754 200 100C200 155.234 155.234 200 100 200C44.7754 200 0 155.229 0 100C0 44.7754 44.7754 0 100 0Z",fill:"#F5AC37"}),jsxRuntimeExports.jsx("path",{d:"M103.686 107.06H141.684C142.494 107.06 142.877 107.06 142.935 105.998C143.246 102.133 143.246 98.2448 142.935 94.3748C142.935 93.6233 142.562 93.3128 141.747 93.3128H66.1237C65.1877 93.3128 64.9357 93.6233 64.9357 94.5008V105.625C64.9357 107.06 64.9357 107.06 66.4343 107.06H103.686ZM138.691 80.3121C138.799 80.0286 138.799 79.7181 138.691 79.4391C138.057 78.0576 137.305 76.7391 136.432 75.5016C135.118 73.3866 133.57 71.4381 131.806 69.6875C130.974 68.63 130.011 67.6805 128.931 66.875C123.522 62.2715 117.091 59.0134 110.179 57.3754C106.692 56.5924 103.128 56.2189 99.5546 56.2504H65.9932C65.0572 56.2504 64.9312 56.6239 64.9312 57.4384V79.6236C64.9312 80.5597 64.9312 80.8117 66.1192 80.8117H138.241C138.241 80.8117 138.867 80.6857 138.993 80.3121H138.687H138.691ZM138.691 120.061C137.629 119.944 136.558 119.944 135.496 120.061H66.1868C65.2507 120.061 64.9357 120.061 64.9357 121.312V143.002C64.9357 144.001 64.9357 144.253 66.1868 144.253H98.1866C99.7166 144.37 101.247 144.262 102.745 143.943C107.389 143.61 111.957 142.602 116.313 140.941C117.897 140.392 119.427 139.677 120.871 138.817H121.308C128.809 134.916 134.902 128.787 138.745 121.263C138.745 121.263 139.182 120.318 138.691 120.07V120.061ZM52.3761 155.499V155.125V140.563V135.627V120.939C52.3761 120.124 52.3761 120.003 51.3771 120.003H37.814C37.0625 120.003 36.752 120.003 36.752 119.004V107.128H51.2511C52.0611 107.128 52.3761 107.128 52.3761 106.066V94.3163C52.3761 93.5648 52.3761 93.3803 51.3771 93.3803H37.814C37.0625 93.3803 36.752 93.3803 36.752 92.3813V81.3832C36.752 80.6947 36.752 80.5102 37.751 80.5102H51.1881C52.1241 80.5102 52.3761 80.5102 52.3761 79.3221V45.6348C52.3761 44.6358 52.3761 44.3838 53.6271 44.3838H100.5C103.902 44.5188 107.281 44.8923 110.625 45.5088C117.514 46.7823 124.134 49.2438 130.186 52.7584C134.2 55.1209 137.895 57.9739 141.184 61.259C143.66 63.8285 145.892 66.6095 147.872 69.5705C149.838 72.5721 151.472 75.7806 152.754 79.1331C152.912 80.0061 153.749 80.5957 154.622 80.4472H165.809C167.244 80.4472 167.244 80.4472 167.307 81.8242V92.0753C167.307 93.0743 166.934 93.3263 165.93 93.3263H157.304C156.431 93.3263 156.179 93.3263 156.242 94.4513C156.584 98.2583 156.584 102.079 156.242 105.886C156.242 106.948 156.242 107.074 157.434 107.074H167.303C167.739 107.636 167.303 108.199 167.303 108.766C167.366 109.49 167.366 110.224 167.303 110.948V118.513C167.303 119.575 166.992 119.89 166.052 119.89H154.239C153.416 119.733 152.615 120.259 152.426 121.078C149.613 128.391 145.113 134.947 139.299 140.203C137.175 142.116 134.943 143.916 132.612 145.576C130.11 147.016 127.675 148.515 125.11 149.703C120.39 151.827 115.44 153.393 110.359 154.387C105.535 155.251 100.644 155.643 95.734 155.575H52.3581V155.512L52.3761 155.499Z",fill:"#FEFEFD"})]}),jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsx("clipPath",{id:"clip0_313_9788",children:jsxRuntimeExports.jsx("rect",{width:"200",height:"200",fill:"white"})})})]})}function GLMR(){return jsxRuntimeExports.jsx("svg",{style:{maxHeight:"100%",maxWidth:"100%"},xmlns:"http://www.w3.org/2000/svg",width:"200",height:"200",viewBox:"0 0 200 200",children:jsxRuntimeExports.jsxs("g",{id:"logo-symbol",transform:"translate(-83 -294)",children:[jsxRuntimeExports.jsx("rect",{id:"Rectangle_37",width:"200",height:"200",transform:"translate(83 294)",fill:"none"}),jsxRuntimeExports.jsxs("g",{id:"symbol",transform:"translate(-224.332 64.165)",children:[jsxRuntimeExports.jsx("path",{id:"Path_185",d:"M808.276,400.23A61.3,61.3,0,0,0,747,461.543h0c0,.043,0,.084,0,.128l0,.1a3.016,3.016,0,0,0,3.017,2.845H866.534a3.015,3.015,0,0,0,3.016-2.845l.005-.1c0-.044,0-.085,0-.128h0A61.3,61.3,0,0,0,808.276,400.23Z",transform:"translate(-382.261 -154.395)",fill:"#53cbc8"}),jsxRuntimeExports.jsx("path",{id:"Path_186",d:"M673.015,617.7a3.729,3.729,0,1,1-3.73-3.732A3.73,3.73,0,0,1,673.015,617.7Z",transform:"translate(-348.846 -242.095)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_187",d:"M853.29,585.287H728.267a3.677,3.677,0,0,0-3.231,5.423c.02.039.041.078.062.116a3.668,3.668,0,0,0,3.232,1.924h124.9a3.669,3.669,0,0,0,3.232-1.924l.062-.116A3.678,3.678,0,0,0,853.29,585.287Z",transform:"translate(-373.07 -230.326)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_188",d:"M869.9,527.924H728.262a3.681,3.681,0,0,0-3.666,3.887c0,.039,0,.078.006.117a3.665,3.665,0,0,0,3.667,3.459H869.9a3.666,3.666,0,0,0,3.667-3.459c0-.039,0-.078.006-.117A3.681,3.681,0,0,0,869.9,527.924Z",transform:"translate(-373.068 -206.789)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_189",d:"M833.6,671.331H769.767a3.675,3.675,0,0,0-1.638,6.964l.234.117a3.657,3.657,0,0,0,1.637.382h63.364a3.662,3.662,0,0,0,1.638-.382l.233-.117A3.675,3.675,0,0,0,833.6,671.331Z",transform:"translate(-390.097 -265.632)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_190",d:"M899.737,642.649H835.906a3.676,3.676,0,0,0-1.637,6.964l.233.117a3.668,3.668,0,0,0,1.638.381H899.5a3.665,3.665,0,0,0,1.638-.381l.233-.117A3.676,3.676,0,0,0,899.737,642.649Z",transform:"translate(-417.236 -253.863)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_191",d:"M798.341,620.256l-.108-.116a3.674,3.674,0,0,1,2.694-6.173h103.6a3.674,3.674,0,0,1,2.694,6.173l-.108.116a3.7,3.7,0,0,1-2.693,1.174H801.034A3.7,3.7,0,0,1,798.341,620.256Z",transform:"translate(-402.878 -242.095)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_192",d:"M691.913,613.968h49.472a3.676,3.676,0,0,1,1.637,6.964l-.233.117a3.657,3.657,0,0,1-1.637.382h-49a3.658,3.658,0,0,1-1.638-.382l-.233-.117A3.676,3.676,0,0,1,691.913,613.968Z",transform:"translate(-358.154 -242.095)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_193",d:"M709.367,531.655a3.729,3.729,0,1,1-3.73-3.731A3.73,3.73,0,0,1,709.367,531.655Z",transform:"translate(-363.763 -206.789)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_194",d:"M786.534,561.345c.01-.038.02-.078.031-.116a3.672,3.672,0,0,0-3.549-4.622H679.4a3.671,3.671,0,0,0-3.549,4.622c.01.038.021.078.032.116a3.681,3.681,0,0,0,3.547,2.724H782.986a3.683,3.683,0,0,0,3.548-2.724",transform:"translate(-353.019 -218.558)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_195",d:"M660.5,560.337a3.729,3.729,0,1,1-3.729-3.731A3.731,3.731,0,0,1,660.5,560.337Z",transform:"translate(-343.711 -218.558)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_196",d:"M709.367,589.018a3.729,3.729,0,1,1-3.73-3.731A3.731,3.731,0,0,1,709.367,589.018Z",transform:"translate(-363.763 -230.326)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_197",d:"M817.008,646.381a3.729,3.729,0,1,1-3.73-3.731A3.73,3.73,0,0,1,817.008,646.381Z",transform:"translate(-407.928 -253.863)",fill:"#e1147b"}),jsxRuntimeExports.jsx("path",{id:"Path_198",d:"M750.868,675.063a3.729,3.729,0,1,1-3.729-3.731A3.73,3.73,0,0,1,750.868,675.063Z",transform:"translate(-380.79 -265.632)",fill:"#e1147b"})]})]})})}function AVAX(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},xmlns:"http://www.w3.org/2000/svg",enableBackground:"new 0 0 254 254",width:"254",height:"254",viewBox:"0 0 254 254",children:[jsxRuntimeExports.jsx("circle",{cx:"127",cy:"127",r:"127",fill:"#e84142",fillRule:"evenodd",clipRule:"evenodd"}),jsxRuntimeExports.jsx("path",{fill:"#fff",d:"M171.8 130.3c4.4-7.6 11.5-7.6 15.9 0l27.4 48.1c4.4 7.6.8 13.8-8 13.8h-55.2c-8.7 0-12.3-6.2-8-13.8l27.9-48.1zm-53-92.6c4.4-7.6 11.4-7.6 15.8 0l6.1 11L155.1 74c3.5 7.2 3.5 15.7 0 22.9l-48.3 83.7c-4.4 6.8-11.7 11.1-19.8 11.6H46.9c-8.8 0-12.4-6.1-8-13.8l79.9-140.7z"})]})}function BNB(){return jsxRuntimeExports.jsxs("svg",{id:"Layer_1",style:{maxHeight:"100%",maxWidth:"100%"},xmlns:"http://www.w3.org/2000/svg",width:"511.97",height:"511.97",viewBox:"0 0 511.97 511.97",children:[jsxRuntimeExports.jsx("defs",{}),jsxRuntimeExports.jsx("title",{children:"binance-coin-bnb"}),jsxRuntimeExports.jsx("g",{id:"Layer_2","data-name":"Layer 2",children:jsxRuntimeExports.jsxs("g",{id:"Layer_1-2","data-name":"Layer 1-2",children:[jsxRuntimeExports.jsx("path",{fill:"#f3ba2f",d:"M156.56,215.14,256,115.71l99.47,99.47,57.86-57.85L256,0,98.71,157.28l57.85,57.85M0,256l57.86-57.87L115.71,256,57.85,313.83Zm156.56,40.85L256,396.27l99.47-99.47,57.89,57.82,0,0L256,512,98.71,354.7l-.08-.09,57.93-57.77M396.27,256l57.85-57.85L512,256l-57.85,57.85Z"}),jsxRuntimeExports.jsx("path",{fill:"#f3ba2f",d:"M314.66,256h0L256,197.25,212.6,240.63h0l-5,5L197.33,255.9l-.08.08.08.08L256,314.72l58.7-58.7,0,0-.05,0"})]})})]})}function CELO(){return jsxRuntimeExports.jsxs("svg",{style:{maxHeight:"100%",maxWidth:"100%"},version:"1.1",id:"Celo_Rings",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",x:"0px",y:"0px",width:"950",height:"950",viewBox:"0 0 950 950",xmlSpace:"preserve",children:[jsxRuntimeExports.jsx("title",{children:"Artboard 1"}),jsxRuntimeExports.jsx("path",{id:"Bottom_Ring",fill:"#FBCC5C",d:`M375,850c151.9,0,275-123.1,275-275S526.9,300,375,300S100,423.1,100,575S223.1,850,375,850z
332
332
  M375,950C167.9,950,0,782.1,0,575s167.9-375,375-375s375,167.9,375,375S582.1,950,375,950z`}),jsxRuntimeExports.jsx("path",{id:"Top_Ring",fill:"#35D07F",d:`M575,650c151.9,0,275-123.1,275-275S726.9,100,575,100S300,223.1,300,375S423.1,650,575,650z
333
333
  M575,750c-207.1,0-375-167.9-375-375S367.9,0,575,0s375,167.9,375,375S782.1,750,575,750z`}),jsxRuntimeExports.jsx("path",{id:"Rings_Overlap",fill:"#5EA33B",d:`M587.4,750c26-31.5,44.6-68.4,54.5-108.1c39.6-9.9,76.5-28.5,108.1-54.5
@@ -521,7 +521,7 @@ ${jn}`)}if(Wn){const jn=getTokenDecimals(config$2.wh.toChainId(Fn.toChain),"nati
521
521
  `),indeterminate1Keyframe)),LinearProgressBar2=styled$1("span",{name:"MuiLinearProgress",slot:"Bar2",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.bar,ht[`barColor${capitalize$1(Dt.color)}`],(Dt.variant==="indeterminate"||Dt.variant==="query")&&ht.bar2Indeterminate,Dt.variant==="buffer"&&ht.bar2Buffer]}})(({ownerState:dt,theme:ht})=>_extends({width:"100%",position:"absolute",left:0,bottom:0,top:0,transition:"transform 0.2s linear",transformOrigin:"left"},dt.variant!=="buffer"&&{backgroundColor:dt.color==="inherit"?"currentColor":(ht.vars||ht).palette[dt.color].main},dt.color==="inherit"&&{opacity:.3},dt.variant==="buffer"&&{backgroundColor:getColorShade(ht,dt.color),transition:`transform .${TRANSITION_DURATION}s linear`}),({ownerState:dt})=>(dt.variant==="indeterminate"||dt.variant==="query")&&css(_t6||(_t6=_`
522
522
  width: auto;
523
523
  animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
524
- `),indeterminate2Keyframe)),LinearProgress=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiLinearProgress"}),{className:$n,color:Un="primary",value:Fn,valueBuffer:Hn,variant:Gn="indeterminate"}=Cn,Qn=_objectWithoutPropertiesLoose(Cn,_excluded$h),qn=_extends({},Cn,{color:Un,variant:Gn}),er=useUtilityClasses$e(qn),Wn=useTheme(),jn={},Zn={bar1:{},bar2:{}};if((Gn==="determinate"||Gn==="buffer")&&Fn!==void 0){jn["aria-valuenow"]=Math.round(Fn),jn["aria-valuemin"]=0,jn["aria-valuemax"]=100;let Xn=Fn-100;Wn.direction==="rtl"&&(Xn=-Xn),Zn.bar1.transform=`translateX(${Xn}%)`}if(Gn==="buffer"&&Hn!==void 0){let Xn=(Hn||0)-100;Wn.direction==="rtl"&&(Xn=-Xn),Zn.bar2.transform=`translateX(${Xn}%)`}return jsxRuntimeExports.jsxs(LinearProgressRoot,_extends({className:clsx(er.root,$n),ownerState:qn,role:"progressbar"},jn,{ref:Dt},Qn,{children:[Gn==="buffer"?jsxRuntimeExports.jsx(LinearProgressDashed,{className:er.dashed,ownerState:qn}):null,jsxRuntimeExports.jsx(LinearProgressBar1,{className:er.bar1,ownerState:qn,style:Zn.bar1}),Gn==="determinate"?null:jsxRuntimeExports.jsx(LinearProgressBar2,{className:er.bar2,ownerState:qn,style:Zn.bar2})]}))}),LinearProgress$1=LinearProgress;function getLinkUtilityClass(dt){return generateUtilityClass("MuiLink",dt)}const linkClasses=generateUtilityClasses("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),linkClasses$1=linkClasses,colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=dt=>colorTransformations[dt]||dt,getTextDecoration=({theme:dt,ownerState:ht})=>{const Dt=transformDeprecatedColors(ht.color),Cn=getPath(dt,`palette.${Dt}`,!1)||ht.color,$n=getPath(dt,`palette.${Dt}Channel`);return"vars"in dt&&$n?`rgba(${$n} / 0.4)`:alpha(Cn,.4)},getTextDecoration$1=getTextDecoration,_excluded$g=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],useUtilityClasses$d=dt=>{const{classes:ht,component:Dt,focusVisible:Cn,underline:$n}=dt,Un={root:["root",`underline${capitalize$1($n)}`,Dt==="button"&&"button",Cn&&"focusVisible"]};return composeClasses(Un,getLinkUtilityClass,ht)},LinkRoot=styled$1(Typography$1,{name:"MuiLink",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,ht[`underline${capitalize$1(Dt.underline)}`],Dt.component==="button"&&ht.button]}})(({theme:dt,ownerState:ht})=>_extends({},ht.underline==="none"&&{textDecoration:"none"},ht.underline==="hover"&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},ht.underline==="always"&&_extends({textDecoration:"underline"},ht.color!=="inherit"&&{textDecorationColor:getTextDecoration$1({theme:dt,ownerState:ht})},{"&:hover":{textDecorationColor:"inherit"}}),ht.component==="button"&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${linkClasses$1.focusVisible}`]:{outline:"auto"}})),Link=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiLink"}),{className:$n,color:Un="primary",component:Fn="a",onBlur:Hn,onFocus:Gn,TypographyClasses:Qn,underline:qn="always",variant:er="inherit",sx:Wn}=Cn,jn=_objectWithoutPropertiesLoose(Cn,_excluded$g),{isFocusVisibleRef:Zn,onBlur:Xn,onFocus:ar,ref:dr}=useIsFocusVisible(),[or,sr]=reactExports.useState(!1),vr=useForkRef(Dt,dr),hr=nr=>{Xn(nr),Zn.current===!1&&sr(!1),Hn&&Hn(nr)},gr=nr=>{ar(nr),Zn.current===!0&&sr(!0),Gn&&Gn(nr)},ur=_extends({},Cn,{color:Un,component:Fn,focusVisible:or,underline:qn,variant:er}),_r=useUtilityClasses$d(ur);return jsxRuntimeExports.jsx(LinkRoot,_extends({color:Un,className:clsx(_r.root,$n),classes:Qn,component:Fn,onBlur:hr,onFocus:gr,ref:vr,ownerState:ur,variant:er,sx:[...Object.keys(colorTransformations).includes(Un)?[]:[{color:Un}],...Array.isArray(Wn)?Wn:[Wn]]},jn))}),Link$1=Link,ListContext=reactExports.createContext({}),ListContext$1=ListContext;function getListUtilityClass(dt){return generateUtilityClass("MuiList",dt)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);const _excluded$f=["children","className","component","dense","disablePadding","subheader"],useUtilityClasses$c=dt=>{const{classes:ht,disablePadding:Dt,dense:Cn,subheader:$n}=dt;return composeClasses({root:["root",!Dt&&"padding",Cn&&"dense",$n&&"subheader"]},getListUtilityClass,ht)},ListRoot=styled$1("ul",{name:"MuiList",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,!Dt.disablePadding&&ht.padding,Dt.dense&&ht.dense,Dt.subheader&&ht.subheader]}})(({ownerState:dt})=>_extends({listStyle:"none",margin:0,padding:0,position:"relative"},!dt.disablePadding&&{paddingTop:8,paddingBottom:8},dt.subheader&&{paddingTop:0})),List=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiList"}),{children:$n,className:Un,component:Fn="ul",dense:Hn=!1,disablePadding:Gn=!1,subheader:Qn}=Cn,qn=_objectWithoutPropertiesLoose(Cn,_excluded$f),er=reactExports.useMemo(()=>({dense:Hn}),[Hn]),Wn=_extends({},Cn,{component:Fn,dense:Hn,disablePadding:Gn}),jn=useUtilityClasses$c(Wn);return jsxRuntimeExports.jsx(ListContext$1.Provider,{value:er,children:jsxRuntimeExports.jsxs(ListRoot,_extends({as:Fn,className:clsx(jn.root,Un),ref:Dt,ownerState:Wn},qn,{children:[Qn,$n]}))})}),List$1=List,listItemIconClasses=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),listItemIconClasses$1=listItemIconClasses,listItemTextClasses=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),listItemTextClasses$1=listItemTextClasses,_excluded$e=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function nextItem$1(dt,ht,Dt){return dt===ht?dt.firstChild:ht&&ht.nextElementSibling?ht.nextElementSibling:Dt?null:dt.firstChild}function previousItem$1(dt,ht,Dt){return dt===ht?Dt?dt.firstChild:dt.lastChild:ht&&ht.previousElementSibling?ht.previousElementSibling:Dt?null:dt.lastChild}function textCriteriaMatches(dt,ht){if(ht===void 0)return!0;let Dt=dt.innerText;return Dt===void 0&&(Dt=dt.textContent),Dt=Dt.trim().toLowerCase(),Dt.length===0?!1:ht.repeating?Dt[0]===ht.keys[0]:Dt.indexOf(ht.keys.join(""))===0}function moveFocus$1(dt,ht,Dt,Cn,$n,Un){let Fn=!1,Hn=$n(dt,ht,ht?Dt:!1);for(;Hn;){if(Hn===dt.firstChild){if(Fn)return!1;Fn=!0}const Gn=Cn?!1:Hn.disabled||Hn.getAttribute("aria-disabled")==="true";if(!Hn.hasAttribute("tabindex")||!textCriteriaMatches(Hn,Un)||Gn)Hn=$n(dt,Hn,Dt);else return Hn.focus(),!0}return!1}const MenuList=reactExports.forwardRef(function dt(ht,Dt){const{actions:Cn,autoFocus:$n=!1,autoFocusItem:Un=!1,children:Fn,className:Hn,disabledItemsFocusable:Gn=!1,disableListWrap:Qn=!1,onKeyDown:qn,variant:er="selectedMenu"}=ht,Wn=_objectWithoutPropertiesLoose(ht,_excluded$e),jn=reactExports.useRef(null),Zn=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect$1(()=>{$n&&jn.current.focus()},[$n]),reactExports.useImperativeHandle(Cn,()=>({adjustStyleForScrollbar:(sr,vr)=>{const hr=!jn.current.style.width;if(sr.clientHeight<jn.current.clientHeight&&hr){const gr=`${getScrollbarSize(ownerDocument(sr))}px`;jn.current.style[vr.direction==="rtl"?"paddingLeft":"paddingRight"]=gr,jn.current.style.width=`calc(100% + ${gr})`}return jn.current}}),[]);const Xn=sr=>{const vr=jn.current,hr=sr.key,gr=ownerDocument(vr).activeElement;if(hr==="ArrowDown")sr.preventDefault(),moveFocus$1(vr,gr,Qn,Gn,nextItem$1);else if(hr==="ArrowUp")sr.preventDefault(),moveFocus$1(vr,gr,Qn,Gn,previousItem$1);else if(hr==="Home")sr.preventDefault(),moveFocus$1(vr,null,Qn,Gn,nextItem$1);else if(hr==="End")sr.preventDefault(),moveFocus$1(vr,null,Qn,Gn,previousItem$1);else if(hr.length===1){const ur=Zn.current,_r=hr.toLowerCase(),nr=performance.now();ur.keys.length>0&&(nr-ur.lastTime>500?(ur.keys=[],ur.repeating=!0,ur.previousKeyMatched=!0):ur.repeating&&_r!==ur.keys[0]&&(ur.repeating=!1)),ur.lastTime=nr,ur.keys.push(_r);const Sr=gr&&!ur.repeating&&textCriteriaMatches(gr,ur);ur.previousKeyMatched&&(Sr||moveFocus$1(vr,gr,!1,Gn,nextItem$1,ur))?sr.preventDefault():ur.previousKeyMatched=!1}qn&&qn(sr)},ar=useForkRef(jn,Dt);let dr=-1;reactExports.Children.forEach(Fn,(sr,vr)=>{if(!reactExports.isValidElement(sr)){dr===vr&&(dr+=1,dr>=Fn.length&&(dr=-1));return}sr.props.disabled||(er==="selectedMenu"&&sr.props.selected||dr===-1)&&(dr=vr),dr===vr&&(sr.props.disabled||sr.props.muiSkipListHighlight||sr.type.muiSkipListHighlight)&&(dr+=1,dr>=Fn.length&&(dr=-1))});const or=reactExports.Children.map(Fn,(sr,vr)=>{if(vr===dr){const hr={};return Un&&(hr.autoFocus=!0),sr.props.tabIndex===void 0&&er==="selectedMenu"&&(hr.tabIndex=0),reactExports.cloneElement(sr,hr)}return sr});return jsxRuntimeExports.jsx(List$1,_extends({role:"menu",ref:ar,className:Hn,onKeyDown:Xn,tabIndex:$n?0:-1},Wn,{children:or}))}),MenuList$1=MenuList;function getPopoverUtilityClass(dt){return generateUtilityClass("MuiPopover",dt)}generateUtilityClasses("MuiPopover",["root","paper"]);const _excluded$d=["onEntering"],_excluded2$2=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],_excluded3=["slotProps"];function getOffsetTop(dt,ht){let Dt=0;return typeof ht=="number"?Dt=ht:ht==="center"?Dt=dt.height/2:ht==="bottom"&&(Dt=dt.height),Dt}function getOffsetLeft(dt,ht){let Dt=0;return typeof ht=="number"?Dt=ht:ht==="center"?Dt=dt.width/2:ht==="right"&&(Dt=dt.width),Dt}function getTransformOriginValue(dt){return[dt.horizontal,dt.vertical].map(ht=>typeof ht=="number"?`${ht}px`:ht).join(" ")}function resolveAnchorEl(dt){return typeof dt=="function"?dt():dt}const useUtilityClasses$b=dt=>{const{classes:ht}=dt;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,ht)},PopoverRoot=styled$1(Modal$2,{name:"MuiPopover",slot:"Root",overridesResolver:(dt,ht)=>ht.root})({}),PopoverPaper=styled$1(Paper$1,{name:"MuiPopover",slot:"Paper",overridesResolver:(dt,ht)=>ht.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Popover=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un;const Fn=useThemeProps({props:ht,name:"MuiPopover"}),{action:Hn,anchorEl:Gn,anchorOrigin:Qn={vertical:"top",horizontal:"left"},anchorPosition:qn,anchorReference:er="anchorEl",children:Wn,className:jn,container:Zn,elevation:Xn=8,marginThreshold:ar=16,open:dr,PaperProps:or={},slots:sr,slotProps:vr,transformOrigin:hr={vertical:"top",horizontal:"left"},TransitionComponent:gr=Grow$1,transitionDuration:ur="auto",TransitionProps:{onEntering:_r}={},disableScrollLock:nr=!1}=Fn,Sr=_objectWithoutPropertiesLoose(Fn.TransitionProps,_excluded$d),Ar=_objectWithoutPropertiesLoose(Fn,_excluded2$2),tr=(Cn=vr==null?void 0:vr.paper)!=null?Cn:or,Yn=reactExports.useRef(),fr=useForkRef(Yn,tr.ref),Cr=_extends({},Fn,{anchorOrigin:Qn,anchorReference:er,elevation:Xn,marginThreshold:ar,externalPaperSlotProps:tr,transformOrigin:hr,TransitionComponent:gr,transitionDuration:ur,TransitionProps:Sr}),yr=useUtilityClasses$b(Cr),Ir=reactExports.useCallback(()=>{if(er==="anchorPosition")return qn;const ls=resolveAnchorEl(Gn),Ss=(ls&&ls.nodeType===1?ls:ownerDocument(Yn.current).body).getBoundingClientRect();return{top:Ss.top+getOffsetTop(Ss,Qn.vertical),left:Ss.left+getOffsetLeft(Ss,Qn.horizontal)}},[Gn,Qn.horizontal,Qn.vertical,qn,er]),Pr=reactExports.useCallback(ls=>({vertical:getOffsetTop(ls,hr.vertical),horizontal:getOffsetLeft(ls,hr.horizontal)}),[hr.horizontal,hr.vertical]),Br=reactExports.useCallback(ls=>{const Ao={width:ls.offsetWidth,height:ls.offsetHeight},Ss=Pr(Ao);if(er==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue(Ss)};const mo=Ir();let Bo=mo.top-Ss.vertical,To=mo.left-Ss.horizontal;const Do=Bo+Ao.height,zr=To+Ao.width,na=ownerWindow(resolveAnchorEl(Gn)),Fo=na.innerHeight-ar,os=na.innerWidth-ar;if(ar!==null&&Bo<ar){const ns=Bo-ar;Bo-=ns,Ss.vertical+=ns}else if(ar!==null&&Do>Fo){const ns=Do-Fo;Bo-=ns,Ss.vertical+=ns}if(ar!==null&&To<ar){const ns=To-ar;To-=ns,Ss.horizontal+=ns}else if(zr>os){const ns=zr-os;To-=ns,Ss.horizontal+=ns}return{top:`${Math.round(Bo)}px`,left:`${Math.round(To)}px`,transformOrigin:getTransformOriginValue(Ss)}},[Gn,er,Ir,Pr,ar]),[rr,pr]=reactExports.useState(dr),$r=reactExports.useCallback(()=>{const ls=Yn.current;if(!ls)return;const Ao=Br(ls);Ao.top!==null&&(ls.style.top=Ao.top),Ao.left!==null&&(ls.style.left=Ao.left),ls.style.transformOrigin=Ao.transformOrigin,pr(!0)},[Br]);reactExports.useEffect(()=>(nr&&window.addEventListener("scroll",$r),()=>window.removeEventListener("scroll",$r)),[Gn,nr,$r]);const kr=(ls,Ao)=>{_r&&_r(ls,Ao),$r()},Tr=()=>{pr(!1)};reactExports.useEffect(()=>{dr&&$r()}),reactExports.useImperativeHandle(Hn,()=>dr?{updatePosition:()=>{$r()}}:null,[dr,$r]),reactExports.useEffect(()=>{if(!dr)return;const ls=debounce$1(()=>{$r()}),Ao=ownerWindow(Gn);return Ao.addEventListener("resize",ls),()=>{ls.clear(),Ao.removeEventListener("resize",ls)}},[Gn,dr,$r]);let Nr=ur;ur==="auto"&&!gr.muiSupportAuto&&(Nr=void 0);const Yr=Zn||(Gn?ownerDocument(resolveAnchorEl(Gn)).body:void 0),to=($n=sr==null?void 0:sr.root)!=null?$n:PopoverRoot,po=(Un=sr==null?void 0:sr.paper)!=null?Un:PopoverPaper,So=useSlotProps({elementType:po,externalSlotProps:_extends({},tr,{style:rr?tr.style:_extends({},tr.style,{opacity:0})}),additionalProps:{elevation:Xn,ref:fr},ownerState:Cr,className:clsx(yr.paper,tr==null?void 0:tr.className)}),Jo=useSlotProps({elementType:to,externalSlotProps:(vr==null?void 0:vr.root)||{},externalForwardedProps:Ar,additionalProps:{ref:Dt,slotProps:{backdrop:{invisible:!0}},container:Yr,open:dr},ownerState:Cr,className:clsx(yr.root,jn)}),{slotProps:Zo}=Jo,Vo=_objectWithoutPropertiesLoose(Jo,_excluded3);return jsxRuntimeExports.jsx(to,_extends({},Vo,!isHostComponent(to)&&{slotProps:Zo,disableScrollLock:nr},{children:jsxRuntimeExports.jsx(gr,_extends({appear:!0,in:dr,onEntering:kr,onExited:Tr,timeout:Nr},Sr,{children:jsxRuntimeExports.jsx(po,_extends({},So,{children:Wn}))}))}))}),Popover$1=Popover;function getMenuUtilityClass(dt){return generateUtilityClass("MuiMenu",dt)}generateUtilityClasses("MuiMenu",["root","paper","list"]);const _excluded$c=["onEntering"],_excluded2$1=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],RTL_ORIGIN={vertical:"top",horizontal:"right"},LTR_ORIGIN={vertical:"top",horizontal:"left"},useUtilityClasses$a=dt=>{const{classes:ht}=dt;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,ht)},MenuRoot=styled$1(Popover$1,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(dt,ht)=>ht.root})({}),MenuPaper=styled$1(PopoverPaper,{name:"MuiMenu",slot:"Paper",overridesResolver:(dt,ht)=>ht.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),MenuMenuList=styled$1(MenuList$1,{name:"MuiMenu",slot:"List",overridesResolver:(dt,ht)=>ht.list})({outline:0}),Menu$1=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n;const Un=useThemeProps({props:ht,name:"MuiMenu"}),{autoFocus:Fn=!0,children:Hn,className:Gn,disableAutoFocusItem:Qn=!1,MenuListProps:qn={},onClose:er,open:Wn,PaperProps:jn={},PopoverClasses:Zn,transitionDuration:Xn="auto",TransitionProps:{onEntering:ar}={},variant:dr="selectedMenu",slots:or={},slotProps:sr={}}=Un,vr=_objectWithoutPropertiesLoose(Un.TransitionProps,_excluded$c),hr=_objectWithoutPropertiesLoose(Un,_excluded2$1),gr=useTheme(),ur=gr.direction==="rtl",_r=_extends({},Un,{autoFocus:Fn,disableAutoFocusItem:Qn,MenuListProps:qn,onEntering:ar,PaperProps:jn,transitionDuration:Xn,TransitionProps:vr,variant:dr}),nr=useUtilityClasses$a(_r),Sr=Fn&&!Qn&&Wn,Ar=reactExports.useRef(null),tr=(Br,rr)=>{Ar.current&&Ar.current.adjustStyleForScrollbar(Br,gr),ar&&ar(Br,rr)},Yn=Br=>{Br.key==="Tab"&&(Br.preventDefault(),er&&er(Br,"tabKeyDown"))};let fr=-1;reactExports.Children.map(Hn,(Br,rr)=>{reactExports.isValidElement(Br)&&(Br.props.disabled||(dr==="selectedMenu"&&Br.props.selected||fr===-1)&&(fr=rr))});const Cr=(Cn=or.paper)!=null?Cn:MenuPaper,yr=($n=sr.paper)!=null?$n:jn,Ir=useSlotProps({elementType:or.root,externalSlotProps:sr.root,ownerState:_r,className:[nr.root,Gn]}),Pr=useSlotProps({elementType:Cr,externalSlotProps:yr,ownerState:_r,className:nr.paper});return jsxRuntimeExports.jsx(MenuRoot,_extends({onClose:er,anchorOrigin:{vertical:"bottom",horizontal:ur?"right":"left"},transformOrigin:ur?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:Cr,root:or.root},slotProps:{root:Ir,paper:Pr},open:Wn,ref:Dt,transitionDuration:Xn,TransitionProps:_extends({onEntering:tr},vr),ownerState:_r},hr,{classes:Zn,children:jsxRuntimeExports.jsx(MenuMenuList,_extends({onKeyDown:Yn,actions:Ar,autoFocus:Fn&&(fr===-1||Qn),autoFocusItem:Sr,variant:dr},qn,{className:clsx(nr.list,qn.className),children:Hn}))}))}),Menu$2=Menu$1;function getMenuItemUtilityClass(dt){return generateUtilityClass("MuiMenuItem",dt)}const menuItemClasses=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),menuItemClasses$1=menuItemClasses,_excluded$b=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],overridesResolver=(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.dense&&ht.dense,Dt.divider&&ht.divider,!Dt.disableGutters&&ht.gutters]},useUtilityClasses$9=dt=>{const{disabled:ht,dense:Dt,divider:Cn,disableGutters:$n,selected:Un,classes:Fn}=dt,Gn=composeClasses({root:["root",Dt&&"dense",ht&&"disabled",!$n&&"gutters",Cn&&"divider",Un&&"selected"]},getMenuItemUtilityClass,Fn);return _extends({},Fn,Gn)},MenuItemRoot=styled$1(ButtonBase$1,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver})(({theme:dt,ownerState:ht})=>_extends({},dt.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!ht.disableGutters&&{paddingLeft:16,paddingRight:16},ht.divider&&{borderBottom:`1px solid ${(dt.vars||dt).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(dt.vars||dt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${menuItemClasses$1.selected}`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / ${dt.vars.palette.action.selectedOpacity})`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity),[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / calc(${dt.vars.palette.action.selectedOpacity} + ${dt.vars.palette.action.focusOpacity}))`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity+dt.palette.action.focusOpacity)}},[`&.${menuItemClasses$1.selected}:hover`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / calc(${dt.vars.palette.action.selectedOpacity} + ${dt.vars.palette.action.hoverOpacity}))`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity+dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / ${dt.vars.palette.action.selectedOpacity})`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity)}},[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:(dt.vars||dt).palette.action.focus},[`&.${menuItemClasses$1.disabled}`]:{opacity:(dt.vars||dt).palette.action.disabledOpacity},[`& + .${dividerClasses$1.root}`]:{marginTop:dt.spacing(1),marginBottom:dt.spacing(1)},[`& + .${dividerClasses$1.inset}`]:{marginLeft:52},[`& .${listItemTextClasses$1.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses$1.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses$1.root}`]:{minWidth:36}},!ht.dense&&{[dt.breakpoints.up("sm")]:{minHeight:"auto"}},ht.dense&&_extends({minHeight:32,paddingTop:4,paddingBottom:4},dt.typography.body2,{[`& .${listItemIconClasses$1.root} svg`]:{fontSize:"1.25rem"}}))),MenuItem=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiMenuItem"}),{autoFocus:$n=!1,component:Un="li",dense:Fn=!1,divider:Hn=!1,disableGutters:Gn=!1,focusVisibleClassName:Qn,role:qn="menuitem",tabIndex:er,className:Wn}=Cn,jn=_objectWithoutPropertiesLoose(Cn,_excluded$b),Zn=reactExports.useContext(ListContext$1),Xn=reactExports.useMemo(()=>({dense:Fn||Zn.dense||!1,disableGutters:Gn}),[Zn.dense,Fn,Gn]),ar=reactExports.useRef(null);useEnhancedEffect$1(()=>{$n&&ar.current&&ar.current.focus()},[$n]);const dr=_extends({},Cn,{dense:Xn.dense,divider:Hn,disableGutters:Gn}),or=useUtilityClasses$9(Cn),sr=useForkRef(ar,Dt);let vr;return Cn.disabled||(vr=er!==void 0?er:-1),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:Xn,children:jsxRuntimeExports.jsx(MenuItemRoot,_extends({ref:sr,role:qn,tabIndex:vr,component:Un,focusVisibleClassName:clsx(or.focusVisible,Qn),className:clsx(or.root,Wn)},jn,{ownerState:dr,classes:or}))})}),MenuItem$1=MenuItem;function getNativeSelectUtilityClasses(dt){return generateUtilityClass("MuiNativeSelect",dt)}const nativeSelectClasses=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),nativeSelectClasses$1=nativeSelectClasses,_excluded$a=["className","disabled","error","IconComponent","inputRef","variant"],useUtilityClasses$8=dt=>{const{classes:ht,variant:Dt,disabled:Cn,multiple:$n,open:Un,error:Fn}=dt,Hn={select:["select",Dt,Cn&&"disabled",$n&&"multiple",Fn&&"error"],icon:["icon",`icon${capitalize$1(Dt)}`,Un&&"iconOpen",Cn&&"disabled"]};return composeClasses(Hn,getNativeSelectUtilityClasses,ht)},nativeSelectSelectStyles=({ownerState:dt,theme:ht})=>_extends({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":_extends({},ht.vars?{backgroundColor:`rgba(${ht.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:ht.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${nativeSelectClasses$1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(ht.vars||ht).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},dt.variant==="filled"&&{"&&&":{paddingRight:32}},dt.variant==="outlined"&&{borderRadius:(ht.vars||ht).shape.borderRadius,"&:focus":{borderRadius:(ht.vars||ht).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.select,ht[Dt.variant],Dt.error&&ht.error,{[`&.${nativeSelectClasses$1.multiple}`]:ht.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:dt,theme:ht})=>_extends({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(ht.vars||ht).palette.action.active,[`&.${nativeSelectClasses$1.disabled}`]:{color:(ht.vars||ht).palette.action.disabled}},dt.open&&{transform:"rotate(180deg)"},dt.variant==="filled"&&{right:7},dt.variant==="outlined"&&{right:7}),NativeSelectIcon=styled$1("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.icon,Dt.variant&&ht[`icon${capitalize$1(Dt.variant)}`],Dt.open&&ht.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=reactExports.forwardRef(function dt(ht,Dt){const{className:Cn,disabled:$n,error:Un,IconComponent:Fn,inputRef:Hn,variant:Gn="standard"}=ht,Qn=_objectWithoutPropertiesLoose(ht,_excluded$a),qn=_extends({},ht,{disabled:$n,variant:Gn,error:Un}),er=useUtilityClasses$8(qn);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(NativeSelectSelect,_extends({ownerState:qn,className:clsx(er.select,Cn),disabled:$n,ref:Hn||Dt},Qn)),ht.multiple?null:jsxRuntimeExports.jsx(NativeSelectIcon,{as:Fn,ownerState:qn,className:er.icon})]})}),NativeSelectInput$1=NativeSelectInput;var _span$1;const _excluded$9=["children","classes","className","label","notched"],NotchedOutlineRoot$1=styled$1("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),NotchedOutlineLegend=styled$1("legend")(({ownerState:dt,theme:ht})=>_extends({float:"unset",width:"auto",overflow:"hidden"},!dt.withLabel&&{padding:0,lineHeight:"11px",transition:ht.transitions.create("width",{duration:150,easing:ht.transitions.easing.easeOut})},dt.withLabel&&_extends({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:ht.transitions.create("max-width",{duration:50,easing:ht.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},dt.notched&&{maxWidth:"100%",transition:ht.transitions.create("max-width",{duration:100,easing:ht.transitions.easing.easeOut,delay:50})})));function NotchedOutline(dt){const{className:ht,label:Dt,notched:Cn}=dt,$n=_objectWithoutPropertiesLoose(dt,_excluded$9),Un=Dt!=null&&Dt!=="",Fn=_extends({},dt,{notched:Cn,withLabel:Un});return jsxRuntimeExports.jsx(NotchedOutlineRoot$1,_extends({"aria-hidden":!0,className:ht,ownerState:Fn},$n,{children:jsxRuntimeExports.jsx(NotchedOutlineLegend,{ownerState:Fn,children:Un?jsxRuntimeExports.jsx("span",{children:Dt}):_span$1||(_span$1=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"}))})}))}const _excluded$8=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],useUtilityClasses$7=dt=>{const{classes:ht}=dt,Cn=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,ht);return _extends({},ht,Cn)},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:dt,ownerState:ht})=>{const Dt=dt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return _extends({position:"relative",borderRadius:(dt.vars||dt).shape.borderRadius,[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:dt.vars?`rgba(${dt.vars.palette.common.onBackgroundChannel} / 0.23)`:Dt}},[`&.${outlinedInputClasses$1.focused} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette[ht.color].main,borderWidth:2},[`&.${outlinedInputClasses$1.error} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.error.main},[`&.${outlinedInputClasses$1.disabled} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.action.disabled}},ht.startAdornment&&{paddingLeft:14},ht.endAdornment&&{paddingRight:14},ht.multiline&&_extends({padding:"16.5px 14px"},ht.size==="small"&&{padding:"8.5px 14px"}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(dt,ht)=>ht.notchedOutline})(({theme:dt})=>{const ht=dt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:dt.vars?`rgba(${dt.vars.palette.common.onBackgroundChannel} / 0.23)`:ht}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:dt,ownerState:ht})=>_extends({padding:"16.5px 14px"},!dt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:dt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:dt.palette.mode==="light"?null:"#fff",caretColor:dt.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},dt.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[dt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},ht.size==="small"&&{padding:"8.5px 14px"},ht.multiline&&{padding:0},ht.startAdornment&&{paddingLeft:0},ht.endAdornment&&{paddingRight:0})),OutlinedInput=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un,Fn,Hn;const Gn=useThemeProps({props:ht,name:"MuiOutlinedInput"}),{components:Qn={},fullWidth:qn=!1,inputComponent:er="input",label:Wn,multiline:jn=!1,notched:Zn,slots:Xn={},type:ar="text"}=Gn,dr=_objectWithoutPropertiesLoose(Gn,_excluded$8),or=useUtilityClasses$7(Gn),sr=useFormControl(),vr=formControlState({props:Gn,muiFormControl:sr,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),hr=_extends({},Gn,{color:vr.color||"primary",disabled:vr.disabled,error:vr.error,focused:vr.focused,formControl:sr,fullWidth:qn,hiddenLabel:vr.hiddenLabel,multiline:jn,size:vr.size,type:ar}),gr=(Cn=($n=Xn.root)!=null?$n:Qn.Root)!=null?Cn:OutlinedInputRoot,ur=(Un=(Fn=Xn.input)!=null?Fn:Qn.Input)!=null?Un:OutlinedInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends({slots:{root:gr,input:ur},renderSuffix:_r=>jsxRuntimeExports.jsx(NotchedOutlineRoot,{ownerState:hr,className:or.notchedOutline,label:Wn!=null&&Wn!==""&&vr.required?Hn||(Hn=jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[Wn," ","*"]})):Wn,notched:typeof Zn<"u"?Zn:!!(_r.startAdornment||_r.filled||_r.focused)}),fullWidth:qn,inputComponent:er,multiline:jn,ref:Dt,type:ar},dr,{classes:_extends({},or,{notchedOutline:null})}))});OutlinedInput.muiName="Input";const OutlinedInput$1=OutlinedInput;function getSelectUtilityClasses(dt){return generateUtilityClass("MuiSelect",dt)}const selectClasses=generateUtilityClasses("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),selectClasses$1=selectClasses;var _span;const _excluded$7=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],SelectSelect=styled$1("div",{name:"MuiSelect",slot:"Select",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[{[`&.${selectClasses$1.select}`]:ht.select},{[`&.${selectClasses$1.select}`]:ht[Dt.variant]},{[`&.${selectClasses$1.error}`]:ht.error},{[`&.${selectClasses$1.multiple}`]:ht.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses$1.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),SelectIcon=styled$1("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.icon,Dt.variant&&ht[`icon${capitalize$1(Dt.variant)}`],Dt.open&&ht.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1("input",{shouldForwardProp:dt=>slotShouldForwardProp(dt)&&dt!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(dt,ht)=>ht.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function areEqualValues(dt,ht){return typeof ht=="object"&&ht!==null?dt===ht:String(dt)===String(ht)}function isEmpty(dt){return dt==null||typeof dt=="string"&&!dt.trim()}const useUtilityClasses$6=dt=>{const{classes:ht,variant:Dt,disabled:Cn,multiple:$n,open:Un,error:Fn}=dt,Hn={select:["select",Dt,Cn&&"disabled",$n&&"multiple",Fn&&"error"],icon:["icon",`icon${capitalize$1(Dt)}`,Un&&"iconOpen",Cn&&"disabled"],nativeInput:["nativeInput"]};return composeClasses(Hn,getSelectUtilityClasses,ht)},SelectInput=reactExports.forwardRef(function dt(ht,Dt){const{"aria-describedby":Cn,"aria-label":$n,autoFocus:Un,autoWidth:Fn,children:Hn,className:Gn,defaultOpen:Qn,defaultValue:qn,disabled:er,displayEmpty:Wn,error:jn=!1,IconComponent:Zn,inputRef:Xn,labelId:ar,MenuProps:dr={},multiple:or,name:sr,onBlur:vr,onChange:hr,onClose:gr,onFocus:ur,onOpen:_r,open:nr,readOnly:Sr,renderValue:Ar,SelectDisplayProps:tr={},tabIndex:Yn,value:fr,variant:Cr="standard"}=ht,yr=_objectWithoutPropertiesLoose(ht,_excluded$7),[Ir,Pr]=useControlled({controlled:fr,default:qn,name:"Select"}),[Br,rr]=useControlled({controlled:nr,default:Qn,name:"Select"}),pr=reactExports.useRef(null),$r=reactExports.useRef(null),[kr,Tr]=reactExports.useState(null),{current:Nr}=reactExports.useRef(nr!=null),[Yr,to]=reactExports.useState(),po=useForkRef(Dt,Xn),So=reactExports.useCallback(Wo=>{$r.current=Wo,Wo&&Tr(Wo)},[]),Jo=kr==null?void 0:kr.parentNode;reactExports.useImperativeHandle(po,()=>({focus:()=>{$r.current.focus()},node:pr.current,value:Ir}),[Ir]),reactExports.useEffect(()=>{Qn&&Br&&kr&&!Nr&&(to(Fn?null:Jo.clientWidth),$r.current.focus())},[kr,Fn]),reactExports.useEffect(()=>{Un&&$r.current.focus()},[Un]),reactExports.useEffect(()=>{if(!ar)return;const Wo=ownerDocument($r.current).getElementById(ar);if(Wo){const as=()=>{getSelection().isCollapsed&&$r.current.focus()};return Wo.addEventListener("click",as),()=>{Wo.removeEventListener("click",as)}}},[ar]);const Zo=(Wo,as)=>{Wo?_r&&_r(as):gr&&gr(as),Nr||(to(Fn?null:Jo.clientWidth),rr(Wo))},Vo=Wo=>{Wo.button===0&&(Wo.preventDefault(),$r.current.focus(),Zo(!0,Wo))},ls=Wo=>{Zo(!1,Wo)},Ao=reactExports.Children.toArray(Hn),Ss=Wo=>{const as=Ao.find(Bs=>Bs.props.value===Wo.target.value);as!==void 0&&(Pr(as.props.value),hr&&hr(Wo,as))},mo=Wo=>as=>{let Bs;if(as.currentTarget.hasAttribute("tabindex")){if(or){Bs=Array.isArray(Ir)?Ir.slice():[];const ys=Ir.indexOf(Wo.props.value);ys===-1?Bs.push(Wo.props.value):Bs.splice(ys,1)}else Bs=Wo.props.value;if(Wo.props.onClick&&Wo.props.onClick(as),Ir!==Bs&&(Pr(Bs),hr)){const ys=as.nativeEvent||as,Qs=new ys.constructor(ys.type,ys);Object.defineProperty(Qs,"target",{writable:!0,value:{value:Bs,name:sr}}),hr(Qs,Wo)}or||Zo(!1,as)}},Bo=Wo=>{Sr||[" ","ArrowUp","ArrowDown","Enter"].indexOf(Wo.key)!==-1&&(Wo.preventDefault(),Zo(!0,Wo))},To=kr!==null&&Br,Do=Wo=>{!To&&vr&&(Object.defineProperty(Wo,"target",{writable:!0,value:{value:Ir,name:sr}}),vr(Wo))};delete yr["aria-invalid"];let zr,na;const Fo=[];let os=!1;(isFilled({value:Ir})||Wn)&&(Ar?zr=Ar(Ir):os=!0);const ns=Ao.map(Wo=>{if(!reactExports.isValidElement(Wo))return null;let as;if(or){if(!Array.isArray(Ir))throw new Error(formatMuiErrorMessage(2));as=Ir.some(Bs=>areEqualValues(Bs,Wo.props.value)),as&&os&&Fo.push(Wo.props.children)}else as=areEqualValues(Ir,Wo.props.value),as&&os&&(na=Wo.props.children);return reactExports.cloneElement(Wo,{"aria-selected":as?"true":"false",onClick:mo(Wo),onKeyUp:Bs=>{Bs.key===" "&&Bs.preventDefault(),Wo.props.onKeyUp&&Wo.props.onKeyUp(Bs)},role:"option",selected:as,value:void 0,"data-value":Wo.props.value})});os&&(or?Fo.length===0?zr=null:zr=Fo.reduce((Wo,as,Bs)=>(Wo.push(as),Bs<Fo.length-1&&Wo.push(", "),Wo),[]):zr=na);let xa=Yr;!Fn&&Nr&&kr&&(xa=Jo.clientWidth);let Ts;typeof Yn<"u"?Ts=Yn:Ts=er?null:0;const Mo=tr.id||(sr?`mui-component-select-${sr}`:void 0),yo=_extends({},ht,{variant:Cr,value:Ir,open:To,error:jn}),Po=useUtilityClasses$6(yo);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(SelectSelect,_extends({ref:So,tabIndex:Ts,role:"button","aria-disabled":er?"true":void 0,"aria-expanded":To?"true":"false","aria-haspopup":"listbox","aria-label":$n,"aria-labelledby":[ar,Mo].filter(Boolean).join(" ")||void 0,"aria-describedby":Cn,onKeyDown:Bo,onMouseDown:er||Sr?null:Vo,onBlur:Do,onFocus:ur},tr,{ownerState:yo,className:clsx(tr.className,Po.select,Gn),id:Mo,children:isEmpty(zr)?_span||(_span=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):zr})),jsxRuntimeExports.jsx(SelectNativeInput,_extends({"aria-invalid":jn,value:Array.isArray(Ir)?Ir.join(","):Ir,name:sr,ref:pr,"aria-hidden":!0,onChange:Ss,tabIndex:-1,disabled:er,className:Po.nativeInput,autoFocus:Un,ownerState:yo},yr)),jsxRuntimeExports.jsx(SelectIcon,{as:Zn,className:Po.icon,ownerState:yo}),jsxRuntimeExports.jsx(Menu$2,_extends({id:`menu-${sr||""}`,anchorEl:Jo,open:To,onClose:ls,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},dr,{MenuListProps:_extends({"aria-labelledby":ar,role:"listbox",disableListWrap:!0},dr.MenuListProps),PaperProps:_extends({},dr.PaperProps,{style:_extends({minWidth:xa},dr.PaperProps!=null?dr.PaperProps.style:null)}),children:ns}))]})}),SelectInput$1=SelectInput,_excluded$6=["autoWidth","children","classes","className","defaultOpen","displayEmpty","IconComponent","id","input","inputProps","label","labelId","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"],_excluded2=["root"],useUtilityClasses$5=dt=>{const{classes:ht}=dt;return ht},styledRootConfig={name:"MuiSelect",overridesResolver:(dt,ht)=>ht.root,shouldForwardProp:dt=>rootShouldForwardProp(dt)&&dt!=="variant",slot:"Root"},StyledInput=styled$1(Input$2,styledRootConfig)(""),StyledOutlinedInput=styled$1(OutlinedInput$1,styledRootConfig)(""),StyledFilledInput=styled$1(FilledInput$1,styledRootConfig)(""),Select$1=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({name:"MuiSelect",props:ht}),{autoWidth:$n=!1,children:Un,classes:Fn={},className:Hn,defaultOpen:Gn=!1,displayEmpty:Qn=!1,IconComponent:qn=ArrowDropDownIcon,id:er,input:Wn,inputProps:jn,label:Zn,labelId:Xn,MenuProps:ar,multiple:dr=!1,native:or=!1,onClose:sr,onOpen:vr,open:hr,renderValue:gr,SelectDisplayProps:ur,variant:_r="outlined"}=Cn,nr=_objectWithoutPropertiesLoose(Cn,_excluded$6),Sr=or?NativeSelectInput$1:SelectInput$1,Ar=useFormControl(),tr=formControlState({props:Cn,muiFormControl:Ar,states:["variant","error"]}),Yn=tr.variant||_r,fr=_extends({},Cn,{variant:Yn,classes:Fn}),Cr=useUtilityClasses$5(fr),yr=_objectWithoutPropertiesLoose(Cr,_excluded2),Ir=Wn||{standard:jsxRuntimeExports.jsx(StyledInput,{ownerState:fr}),outlined:jsxRuntimeExports.jsx(StyledOutlinedInput,{label:Zn,ownerState:fr}),filled:jsxRuntimeExports.jsx(StyledFilledInput,{ownerState:fr})}[Yn],Pr=useForkRef(Dt,Ir.ref);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:reactExports.cloneElement(Ir,_extends({inputComponent:Sr,inputProps:_extends({children:Un,error:tr.error,IconComponent:qn,variant:Yn,type:void 0,multiple:dr},or?{id:er}:{autoWidth:$n,defaultOpen:Gn,displayEmpty:Qn,labelId:Xn,MenuProps:ar,onClose:sr,onOpen:vr,open:hr,renderValue:gr,SelectDisplayProps:_extends({id:er},ur)},jn,{classes:jn?deepmerge(yr,jn.classes):yr},Wn?Wn.props.inputProps:{})},dr&&or&&Yn==="outlined"?{notched:!0}:{},{ref:Pr,className:clsx(Ir.props.className,Hn,Cr.root)},!Wn&&{variant:Yn},nr))})});Select$1.muiName="Select";const Select$2=Select$1;function getTooltipUtilityClass(dt){return generateUtilityClass("MuiTooltip",dt)}const tooltipClasses=generateUtilityClasses("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]),tooltipClasses$1=tooltipClasses,_excluded$5=["arrow","children","classes","components","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractive","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","slotProps","slots","title","TransitionComponent","TransitionProps"];function round(dt){return Math.round(dt*1e5)/1e5}const useUtilityClasses$4=dt=>{const{classes:ht,disableInteractive:Dt,arrow:Cn,touch:$n,placement:Un}=dt,Fn={popper:["popper",!Dt&&"popperInteractive",Cn&&"popperArrow"],tooltip:["tooltip",Cn&&"tooltipArrow",$n&&"touch",`tooltipPlacement${capitalize$1(Un.split("-")[0])}`],arrow:["arrow"]};return composeClasses(Fn,getTooltipUtilityClass,ht)},TooltipPopper=styled$1(Popper$1,{name:"MuiTooltip",slot:"Popper",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.popper,!Dt.disableInteractive&&ht.popperInteractive,Dt.arrow&&ht.popperArrow,!Dt.open&&ht.popperClose]}})(({theme:dt,ownerState:ht,open:Dt})=>_extends({zIndex:(dt.vars||dt).zIndex.tooltip,pointerEvents:"none"},!ht.disableInteractive&&{pointerEvents:"auto"},!Dt&&{pointerEvents:"none"},ht.arrow&&{[`&[data-popper-placement*="bottom"] .${tooltipClasses$1.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${tooltipClasses$1.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${tooltipClasses$1.arrow}`]:_extends({},ht.isRtl?{right:0,marginRight:"-0.71em"}:{left:0,marginLeft:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}}),[`&[data-popper-placement*="left"] .${tooltipClasses$1.arrow}`]:_extends({},ht.isRtl?{left:0,marginLeft:"-0.71em"}:{right:0,marginRight:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}})})),TooltipTooltip=styled$1("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.tooltip,Dt.touch&&ht.touch,Dt.arrow&&ht.tooltipArrow,ht[`tooltipPlacement${capitalize$1(Dt.placement.split("-")[0])}`]]}})(({theme:dt,ownerState:ht})=>_extends({backgroundColor:dt.vars?dt.vars.palette.Tooltip.bg:alpha(dt.palette.grey[700],.92),borderRadius:(dt.vars||dt).shape.borderRadius,color:(dt.vars||dt).palette.common.white,fontFamily:dt.typography.fontFamily,padding:"4px 8px",fontSize:dt.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:dt.typography.fontWeightMedium},ht.arrow&&{position:"relative",margin:0},ht.touch&&{padding:"8px 16px",fontSize:dt.typography.pxToRem(14),lineHeight:`${round(16/14)}em`,fontWeight:dt.typography.fontWeightRegular},{[`.${tooltipClasses$1.popper}[data-popper-placement*="left"] &`]:_extends({transformOrigin:"right center"},ht.isRtl?_extends({marginLeft:"14px"},ht.touch&&{marginLeft:"24px"}):_extends({marginRight:"14px"},ht.touch&&{marginRight:"24px"})),[`.${tooltipClasses$1.popper}[data-popper-placement*="right"] &`]:_extends({transformOrigin:"left center"},ht.isRtl?_extends({marginRight:"14px"},ht.touch&&{marginRight:"24px"}):_extends({marginLeft:"14px"},ht.touch&&{marginLeft:"24px"})),[`.${tooltipClasses$1.popper}[data-popper-placement*="top"] &`]:_extends({transformOrigin:"center bottom",marginBottom:"14px"},ht.touch&&{marginBottom:"24px"}),[`.${tooltipClasses$1.popper}[data-popper-placement*="bottom"] &`]:_extends({transformOrigin:"center top",marginTop:"14px"},ht.touch&&{marginTop:"24px"})})),TooltipArrow=styled$1("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(dt,ht)=>ht.arrow})(({theme:dt})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:dt.vars?dt.vars.palette.Tooltip.bg:alpha(dt.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}));let hystersisOpen=!1,hystersisTimer=null,cursorPosition={x:0,y:0};function composeEventHandler(dt,ht){return Dt=>{ht&&ht(Dt),dt(Dt)}}const Tooltip=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er,Wn,jn,Zn,Xn,ar,dr,or,sr,vr,hr;const gr=useThemeProps({props:ht,name:"MuiTooltip"}),{arrow:ur=!1,children:_r,components:nr={},componentsProps:Sr={},describeChild:Ar=!1,disableFocusListener:tr=!1,disableHoverListener:Yn=!1,disableInteractive:fr=!1,disableTouchListener:Cr=!1,enterDelay:yr=100,enterNextDelay:Ir=0,enterTouchDelay:Pr=700,followCursor:Br=!1,id:rr,leaveDelay:pr=0,leaveTouchDelay:$r=1500,onClose:kr,onOpen:Tr,open:Nr,placement:Yr="bottom",PopperComponent:to,PopperProps:po={},slotProps:So={},slots:Jo={},title:Zo,TransitionComponent:Vo=Grow$1,TransitionProps:ls}=gr,Ao=_objectWithoutPropertiesLoose(gr,_excluded$5),Ss=reactExports.isValidElement(_r)?_r:jsxRuntimeExports.jsx("span",{children:_r}),mo=useTheme(),Bo=mo.direction==="rtl",[To,Do]=reactExports.useState(),[zr,na]=reactExports.useState(null),Fo=reactExports.useRef(!1),os=fr||Br,ns=reactExports.useRef(),xa=reactExports.useRef(),Ts=reactExports.useRef(),Mo=reactExports.useRef(),[yo,Po]=useControlled({controlled:Nr,default:!1,name:"Tooltip",state:"open"});let Wo=yo;const as=useId(rr),Bs=reactExports.useRef(),ys=reactExports.useCallback(()=>{Bs.current!==void 0&&(document.body.style.WebkitUserSelect=Bs.current,Bs.current=void 0),clearTimeout(Mo.current)},[]);reactExports.useEffect(()=>()=>{clearTimeout(ns.current),clearTimeout(xa.current),clearTimeout(Ts.current),ys()},[ys]);const Qs=$a=>{clearTimeout(hystersisTimer),hystersisOpen=!0,Po(!0),Tr&&!Wo&&Tr($a)},tu=useEventCallback($a=>{clearTimeout(hystersisTimer),hystersisTimer=setTimeout(()=>{hystersisOpen=!1},800+pr),Po(!1),kr&&Wo&&kr($a),clearTimeout(ns.current),ns.current=setTimeout(()=>{Fo.current=!1},mo.transitions.duration.shortest)}),Ns=$a=>{Fo.current&&$a.type!=="touchstart"||(To&&To.removeAttribute("title"),clearTimeout(xa.current),clearTimeout(Ts.current),yr||hystersisOpen&&Ir?xa.current=setTimeout(()=>{Qs($a)},hystersisOpen?Ir:yr):Qs($a))},Or=$a=>{clearTimeout(xa.current),clearTimeout(Ts.current),Ts.current=setTimeout(()=>{tu($a)},pr)},{isFocusVisibleRef:Qr,onBlur:xr,onFocus:Jr,ref:eo}=useIsFocusVisible(),[,Fr]=reactExports.useState(!1),qr=$a=>{xr($a),Qr.current===!1&&(Fr(!1),Or($a))},Co=$a=>{To||Do($a.currentTarget),Jr($a),Qr.current===!0&&(Fr(!0),Ns($a))},Ls=$a=>{Fo.current=!0;const ps=Ss.props;ps.onTouchStart&&ps.onTouchStart($a)},ds=Ns,nu=Or,du=$a=>{Ls($a),clearTimeout(Ts.current),clearTimeout(ns.current),ys(),Bs.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",Mo.current=setTimeout(()=>{document.body.style.WebkitUserSelect=Bs.current,Ns($a)},Pr)},mu=$a=>{Ss.props.onTouchEnd&&Ss.props.onTouchEnd($a),ys(),clearTimeout(Ts.current),Ts.current=setTimeout(()=>{tu($a)},$r)};reactExports.useEffect(()=>{if(!Wo)return;function $a(ps){(ps.key==="Escape"||ps.key==="Esc")&&tu(ps)}return document.addEventListener("keydown",$a),()=>{document.removeEventListener("keydown",$a)}},[tu,Wo]);const Cl=useForkRef(Ss.ref,eo,Do,Dt);!Zo&&Zo!==0&&(Wo=!1);const ru=reactExports.useRef(),gu=$a=>{const ps=Ss.props;ps.onMouseMove&&ps.onMouseMove($a),cursorPosition={x:$a.clientX,y:$a.clientY},ru.current&&ru.current.update()},ba={},ga=typeof Zo=="string";Ar?(ba.title=!Wo&&ga&&!Yn?Zo:null,ba["aria-describedby"]=Wo?as:null):(ba["aria-label"]=ga?Zo:null,ba["aria-labelledby"]=Wo&&!ga?as:null);const _a=_extends({},ba,Ao,Ss.props,{className:clsx(Ao.className,Ss.props.className),onTouchStart:Ls,ref:Cl},Br?{onMouseMove:gu}:{}),Ro={};Cr||(_a.onTouchStart=du,_a.onTouchEnd=mu),Yn||(_a.onMouseOver=composeEventHandler(ds,_a.onMouseOver),_a.onMouseLeave=composeEventHandler(nu,_a.onMouseLeave),os||(Ro.onMouseOver=ds,Ro.onMouseLeave=nu)),tr||(_a.onFocus=composeEventHandler(Co,_a.onFocus),_a.onBlur=composeEventHandler(qr,_a.onBlur),os||(Ro.onFocus=Co,Ro.onBlur=qr));const ts=reactExports.useMemo(()=>{var $a;let ps=[{name:"arrow",enabled:!!zr,options:{element:zr,padding:4}}];return($a=po.popperOptions)!=null&&$a.modifiers&&(ps=ps.concat(po.popperOptions.modifiers)),_extends({},po.popperOptions,{modifiers:ps})},[zr,po]),ks=_extends({},gr,{isRtl:Bo,arrow:ur,disableInteractive:os,placement:Yr,PopperComponentProp:to,touch:Fo.current}),Xs=useUtilityClasses$4(ks),_o=(Cn=($n=Jo.popper)!=null?$n:nr.Popper)!=null?Cn:TooltipPopper,Js=(Un=(Fn=(Hn=Jo.transition)!=null?Hn:nr.Transition)!=null?Fn:Vo)!=null?Un:Grow$1,_i=(Gn=(Qn=Jo.tooltip)!=null?Qn:nr.Tooltip)!=null?Gn:TooltipTooltip,ro=(qn=(er=Jo.arrow)!=null?er:nr.Arrow)!=null?qn:TooltipArrow,uo=appendOwnerState(_o,_extends({},po,(Wn=So.popper)!=null?Wn:Sr.popper,{className:clsx(Xs.popper,po==null?void 0:po.className,(jn=(Zn=So.popper)!=null?Zn:Sr.popper)==null?void 0:jn.className)}),ks),bo=appendOwnerState(Js,_extends({},ls,(Xn=So.transition)!=null?Xn:Sr.transition),ks),$o=appendOwnerState(_i,_extends({},(ar=So.tooltip)!=null?ar:Sr.tooltip,{className:clsx(Xs.tooltip,(dr=(or=So.tooltip)!=null?or:Sr.tooltip)==null?void 0:dr.className)}),ks),Ho=appendOwnerState(ro,_extends({},(sr=So.arrow)!=null?sr:Sr.arrow,{className:clsx(Xs.arrow,(vr=(hr=So.arrow)!=null?hr:Sr.arrow)==null?void 0:vr.className)}),ks);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[reactExports.cloneElement(Ss,_a),jsxRuntimeExports.jsx(_o,_extends({as:to??Popper$1,placement:Yr,anchorEl:Br?{getBoundingClientRect:()=>({top:cursorPosition.y,left:cursorPosition.x,right:cursorPosition.x,bottom:cursorPosition.y,width:0,height:0})}:To,popperRef:ru,open:To?Wo:!1,id:as,transition:!0},Ro,uo,{popperOptions:ts,children:({TransitionProps:$a})=>jsxRuntimeExports.jsx(Js,_extends({timeout:mo.transitions.duration.shorter},$a,bo,{children:jsxRuntimeExports.jsxs(_i,_extends({},$o,{children:[Zo,ur?jsxRuntimeExports.jsx(ro,_extends({},Ho,{ref:na})):null]}))}))}))]})}),Tooltip$1=Tooltip;function getSwitchUtilityClass(dt){return generateUtilityClass("MuiSwitch",dt)}const switchClasses=generateUtilityClasses("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),switchClasses$1=switchClasses,_excluded$4=["className","color","edge","size","sx"],useUtilityClasses$3=dt=>{const{classes:ht,edge:Dt,size:Cn,color:$n,checked:Un,disabled:Fn}=dt,Hn={root:["root",Dt&&`edge${capitalize$1(Dt)}`,`size${capitalize$1(Cn)}`],switchBase:["switchBase",`color${capitalize$1($n)}`,Un&&"checked",Fn&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},Gn=composeClasses(Hn,getSwitchUtilityClass,ht);return _extends({},ht,Gn)},SwitchRoot=styled$1("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.edge&&ht[`edge${capitalize$1(Dt.edge)}`],ht[`size${capitalize$1(Dt.size)}`]]}})(({ownerState:dt})=>_extends({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"}},dt.edge==="start"&&{marginLeft:-8},dt.edge==="end"&&{marginRight:-8},dt.size==="small"&&{width:40,height:24,padding:7,[`& .${switchClasses$1.thumb}`]:{width:16,height:16},[`& .${switchClasses$1.switchBase}`]:{padding:4,[`&.${switchClasses$1.checked}`]:{transform:"translateX(16px)"}}})),SwitchSwitchBase=styled$1(SwitchBase$1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.switchBase,{[`& .${switchClasses$1.input}`]:ht.input},Dt.color!=="default"&&ht[`color${capitalize$1(Dt.color)}`]]}})(({theme:dt})=>({position:"absolute",top:0,left:0,zIndex:1,color:dt.vars?dt.vars.palette.Switch.defaultColor:`${dt.palette.mode==="light"?dt.palette.common.white:dt.palette.grey[300]}`,transition:dt.transitions.create(["left","transform"],{duration:dt.transitions.duration.shortest}),[`&.${switchClasses$1.checked}`]:{transform:"translateX(20px)"},[`&.${switchClasses$1.disabled}`]:{color:dt.vars?dt.vars.palette.Switch.defaultDisabledColor:`${dt.palette.mode==="light"?dt.palette.grey[100]:dt.palette.grey[600]}`},[`&.${switchClasses$1.checked} + .${switchClasses$1.track}`]:{opacity:.5},[`&.${switchClasses$1.disabled} + .${switchClasses$1.track}`]:{opacity:dt.vars?dt.vars.opacity.switchTrackDisabled:`${dt.palette.mode==="light"?.12:.2}`},[`& .${switchClasses$1.input}`]:{left:"-100%",width:"300%"}}),({theme:dt,ownerState:ht})=>_extends({"&:hover":{backgroundColor:dt.vars?`rgba(${dt.vars.palette.action.activeChannel} / ${dt.vars.palette.action.hoverOpacity})`:alpha(dt.palette.action.active,dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},ht.color!=="default"&&{[`&.${switchClasses$1.checked}`]:{color:(dt.vars||dt).palette[ht.color].main,"&:hover":{backgroundColor:dt.vars?`rgba(${dt.vars.palette[ht.color].mainChannel} / ${dt.vars.palette.action.hoverOpacity})`:alpha(dt.palette[ht.color].main,dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${switchClasses$1.disabled}`]:{color:dt.vars?dt.vars.palette.Switch[`${ht.color}DisabledColor`]:`${dt.palette.mode==="light"?lighten(dt.palette[ht.color].main,.62):darken(dt.palette[ht.color].main,.55)}`}},[`&.${switchClasses$1.checked} + .${switchClasses$1.track}`]:{backgroundColor:(dt.vars||dt).palette[ht.color].main}})),SwitchTrack=styled$1("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(dt,ht)=>ht.track})(({theme:dt})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:dt.transitions.create(["opacity","background-color"],{duration:dt.transitions.duration.shortest}),backgroundColor:dt.vars?dt.vars.palette.common.onBackground:`${dt.palette.mode==="light"?dt.palette.common.black:dt.palette.common.white}`,opacity:dt.vars?dt.vars.opacity.switchTrack:`${dt.palette.mode==="light"?.38:.3}`})),SwitchThumb=styled$1("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(dt,ht)=>ht.thumb})(({theme:dt})=>({boxShadow:(dt.vars||dt).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"})),Switch$1=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiSwitch"}),{className:$n,color:Un="primary",edge:Fn=!1,size:Hn="medium",sx:Gn}=Cn,Qn=_objectWithoutPropertiesLoose(Cn,_excluded$4),qn=_extends({},Cn,{color:Un,edge:Fn,size:Hn}),er=useUtilityClasses$3(qn),Wn=jsxRuntimeExports.jsx(SwitchThumb,{className:er.thumb,ownerState:qn});return jsxRuntimeExports.jsxs(SwitchRoot,{className:clsx(er.root,$n),sx:Gn,ownerState:qn,children:[jsxRuntimeExports.jsx(SwitchSwitchBase,_extends({type:"checkbox",icon:Wn,checkedIcon:Wn,ref:Dt,ownerState:qn},Qn,{classes:_extends({},er,{root:er.switchBase})})),jsxRuntimeExports.jsx(SwitchTrack,{className:er.track,ownerState:qn})]})}),MuiSwitch=Switch$1;function getTabUtilityClass(dt){return generateUtilityClass("MuiTab",dt)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),tabClasses$1=tabClasses,_excluded$3=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$2=dt=>{const{classes:ht,textColor:Dt,fullWidth:Cn,wrapped:$n,icon:Un,label:Fn,selected:Hn,disabled:Gn}=dt,Qn={root:["root",Un&&Fn&&"labelIcon",`textColor${capitalize$1(Dt)}`,Cn&&"fullWidth",$n&&"wrapped",Hn&&"selected",Gn&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(Qn,getTabUtilityClass,ht)},TabRoot=styled$1(ButtonBase$1,{name:"MuiTab",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.label&&Dt.icon&&ht.labelIcon,ht[`textColor${capitalize$1(Dt.textColor)}`],Dt.fullWidth&&ht.fullWidth,Dt.wrapped&&ht.wrapped]}})(({theme:dt,ownerState:ht})=>_extends({},dt.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},ht.label&&{flexDirection:ht.iconPosition==="top"||ht.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},ht.icon&&ht.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses$1.iconWrapper}`]:_extends({},ht.iconPosition==="top"&&{marginBottom:6},ht.iconPosition==="bottom"&&{marginTop:6},ht.iconPosition==="start"&&{marginRight:dt.spacing(1)},ht.iconPosition==="end"&&{marginLeft:dt.spacing(1)})},ht.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses$1.selected}`]:{opacity:1},[`&.${tabClasses$1.disabled}`]:{opacity:(dt.vars||dt).palette.action.disabledOpacity}},ht.textColor==="primary"&&{color:(dt.vars||dt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(dt.vars||dt).palette.primary.main},[`&.${tabClasses$1.disabled}`]:{color:(dt.vars||dt).palette.text.disabled}},ht.textColor==="secondary"&&{color:(dt.vars||dt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(dt.vars||dt).palette.secondary.main},[`&.${tabClasses$1.disabled}`]:{color:(dt.vars||dt).palette.text.disabled}},ht.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},ht.wrapped&&{fontSize:dt.typography.pxToRem(12)})),Tab=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiTab"}),{className:$n,disabled:Un=!1,disableFocusRipple:Fn=!1,fullWidth:Hn,icon:Gn,iconPosition:Qn="top",indicator:qn,label:er,onChange:Wn,onClick:jn,onFocus:Zn,selected:Xn,selectionFollowsFocus:ar,textColor:dr="inherit",value:or,wrapped:sr=!1}=Cn,vr=_objectWithoutPropertiesLoose(Cn,_excluded$3),hr=_extends({},Cn,{disabled:Un,disableFocusRipple:Fn,selected:Xn,icon:!!Gn,iconPosition:Qn,label:!!er,fullWidth:Hn,textColor:dr,wrapped:sr}),gr=useUtilityClasses$2(hr),ur=Gn&&er&&reactExports.isValidElement(Gn)?reactExports.cloneElement(Gn,{className:clsx(gr.iconWrapper,Gn.props.className)}):Gn,_r=Sr=>{!Xn&&Wn&&Wn(Sr,or),jn&&jn(Sr)},nr=Sr=>{ar&&!Xn&&Wn&&Wn(Sr,or),Zn&&Zn(Sr)};return jsxRuntimeExports.jsxs(TabRoot,_extends({focusRipple:!Fn,className:clsx(gr.root,$n),ref:Dt,role:"tab","aria-selected":Xn,disabled:Un,onClick:_r,onFocus:nr,ownerState:hr,tabIndex:Xn?0:-1},vr,{children:[Qn==="top"||Qn==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ur,er]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[er,ur]}),qn]}))}),Tab$1=Tab,KeyboardArrowLeft=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function easeInOutSin(dt){return(1+Math.sin(Math.PI*dt-Math.PI/2))/2}function animate(dt,ht,Dt,Cn={},$n=()=>{}){const{ease:Un=easeInOutSin,duration:Fn=300}=Cn;let Hn=null;const Gn=ht[dt];let Qn=!1;const qn=()=>{Qn=!0},er=Wn=>{if(Qn){$n(new Error("Animation cancelled"));return}Hn===null&&(Hn=Wn);const jn=Math.min(1,(Wn-Hn)/Fn);if(ht[dt]=Un(jn)*(Dt-Gn)+Gn,jn>=1){requestAnimationFrame(()=>{$n(null)});return}requestAnimationFrame(er)};return Gn===Dt?($n(new Error("Element already at target position")),qn):(requestAnimationFrame(er),qn)}const _excluded$2=["onChange"],styles={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(dt){const{onChange:ht}=dt,Dt=_objectWithoutPropertiesLoose(dt,_excluded$2),Cn=reactExports.useRef(),$n=reactExports.useRef(null),Un=()=>{Cn.current=$n.current.offsetHeight-$n.current.clientHeight};return useEnhancedEffect$1(()=>{const Fn=debounce$1(()=>{const Gn=Cn.current;Un(),Gn!==Cn.current&&ht(Cn.current)}),Hn=ownerWindow($n.current);return Hn.addEventListener("resize",Fn),()=>{Fn.clear(),Hn.removeEventListener("resize",Fn)}},[ht]),reactExports.useEffect(()=>{Un(),ht(Cn.current)},[ht]),jsxRuntimeExports.jsx("div",_extends({style:styles,ref:$n},Dt))}function getTabScrollButtonUtilityClass(dt){return generateUtilityClass("MuiTabScrollButton",dt)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),tabScrollButtonClasses$1=tabScrollButtonClasses,_excluded$1=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$1=dt=>{const{classes:ht,orientation:Dt,disabled:Cn}=dt;return composeClasses({root:["root",Dt,Cn&&"disabled"]},getTabScrollButtonUtilityClass,ht)},TabScrollButtonRoot=styled$1(ButtonBase$1,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.orientation&&ht[Dt.orientation]]}})(({ownerState:dt})=>_extends({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses$1.disabled}`]:{opacity:0}},dt.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${dt.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n;const Un=useThemeProps({props:ht,name:"MuiTabScrollButton"}),{className:Fn,slots:Hn={},slotProps:Gn={},direction:Qn}=Un,qn=_objectWithoutPropertiesLoose(Un,_excluded$1),Wn=useTheme().direction==="rtl",jn=_extends({isRtl:Wn},Un),Zn=useUtilityClasses$1(jn),Xn=(Cn=Hn.StartScrollButtonIcon)!=null?Cn:KeyboardArrowLeft,ar=($n=Hn.EndScrollButtonIcon)!=null?$n:KeyboardArrowRight,dr=useSlotProps({elementType:Xn,externalSlotProps:Gn.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:jn}),or=useSlotProps({elementType:ar,externalSlotProps:Gn.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:jn});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends({component:"div",className:clsx(Zn.root,Fn),ref:Dt,role:null,ownerState:jn,tabIndex:null},qn,{children:Qn==="left"?jsxRuntimeExports.jsx(Xn,_extends({},dr)):jsxRuntimeExports.jsx(ar,_extends({},or))}))}),TabScrollButton$1=TabScrollButton;function getTabsUtilityClass(dt){return generateUtilityClass("MuiTabs",dt)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),tabsClasses$1=tabsClasses,_excluded=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(dt,ht)=>dt===ht?dt.firstChild:ht&&ht.nextElementSibling?ht.nextElementSibling:dt.firstChild,previousItem=(dt,ht)=>dt===ht?dt.lastChild:ht&&ht.previousElementSibling?ht.previousElementSibling:dt.lastChild,moveFocus=(dt,ht,Dt)=>{let Cn=!1,$n=Dt(dt,ht);for(;$n;){if($n===dt.firstChild){if(Cn)return;Cn=!0}const Un=$n.disabled||$n.getAttribute("aria-disabled")==="true";if(!$n.hasAttribute("tabindex")||Un)$n=Dt(dt,$n);else{$n.focus();return}}},useUtilityClasses=dt=>{const{vertical:ht,fixed:Dt,hideScrollbar:Cn,scrollableX:$n,scrollableY:Un,centered:Fn,scrollButtonsHideMobile:Hn,classes:Gn}=dt;return composeClasses({root:["root",ht&&"vertical"],scroller:["scroller",Dt&&"fixed",Cn&&"hideScrollbar",$n&&"scrollableX",Un&&"scrollableY"],flexContainer:["flexContainer",ht&&"flexContainerVertical",Fn&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",Hn&&"scrollButtonsHideMobile"],scrollableX:[$n&&"scrollableX"],hideScrollbar:[Cn&&"hideScrollbar"]},getTabsUtilityClass,Gn)},TabsRoot=styled$1("div",{name:"MuiTabs",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[{[`& .${tabsClasses$1.scrollButtons}`]:ht.scrollButtons},{[`& .${tabsClasses$1.scrollButtons}`]:Dt.scrollButtonsHideMobile&&ht.scrollButtonsHideMobile},ht.root,Dt.vertical&&ht.vertical]}})(({ownerState:dt,theme:ht})=>_extends({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},dt.vertical&&{flexDirection:"column"},dt.scrollButtonsHideMobile&&{[`& .${tabsClasses$1.scrollButtons}`]:{[ht.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled$1("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.scroller,Dt.fixed&&ht.fixed,Dt.hideScrollbar&&ht.hideScrollbar,Dt.scrollableX&&ht.scrollableX,Dt.scrollableY&&ht.scrollableY]}})(({ownerState:dt})=>_extends({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},dt.fixed&&{overflowX:"hidden",width:"100%"},dt.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},dt.scrollableX&&{overflowX:"auto",overflowY:"hidden"},dt.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled$1("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.flexContainer,Dt.vertical&&ht.flexContainerVertical,Dt.centered&&ht.centered]}})(({ownerState:dt})=>_extends({display:"flex"},dt.vertical&&{flexDirection:"column"},dt.centered&&{justifyContent:"center"})),TabsIndicator=styled$1("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(dt,ht)=>ht.indicator})(({ownerState:dt,theme:ht})=>_extends({position:"absolute",height:2,bottom:0,width:"100%",transition:ht.transitions.create()},dt.indicatorColor==="primary"&&{backgroundColor:(ht.vars||ht).palette.primary.main},dt.indicatorColor==="secondary"&&{backgroundColor:(ht.vars||ht).palette.secondary.main},dt.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize,{name:"MuiTabs",slot:"ScrollbarSize"})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiTabs"}),$n=useTheme(),Un=$n.direction==="rtl",{"aria-label":Fn,"aria-labelledby":Hn,action:Gn,centered:Qn=!1,children:qn,className:er,component:Wn="div",allowScrollButtonsMobile:jn=!1,indicatorColor:Zn="primary",onChange:Xn,orientation:ar="horizontal",ScrollButtonComponent:dr=TabScrollButton$1,scrollButtons:or="auto",selectionFollowsFocus:sr,slots:vr={},slotProps:hr={},TabIndicatorProps:gr={},TabScrollButtonProps:ur={},textColor:_r="primary",value:nr,variant:Sr="standard",visibleScrollbar:Ar=!1}=Cn,tr=_objectWithoutPropertiesLoose(Cn,_excluded),Yn=Sr==="scrollable",fr=ar==="vertical",Cr=fr?"scrollTop":"scrollLeft",yr=fr?"top":"left",Ir=fr?"bottom":"right",Pr=fr?"clientHeight":"clientWidth",Br=fr?"height":"width",rr=_extends({},Cn,{component:Wn,allowScrollButtonsMobile:jn,indicatorColor:Zn,orientation:ar,vertical:fr,scrollButtons:or,textColor:_r,variant:Sr,visibleScrollbar:Ar,fixed:!Yn,hideScrollbar:Yn&&!Ar,scrollableX:Yn&&!fr,scrollableY:Yn&&fr,centered:Qn&&!Yn,scrollButtonsHideMobile:!jn}),pr=useUtilityClasses(rr),$r=useSlotProps({elementType:vr.StartScrollButtonIcon,externalSlotProps:hr.startScrollButtonIcon,ownerState:rr}),kr=useSlotProps({elementType:vr.EndScrollButtonIcon,externalSlotProps:hr.endScrollButtonIcon,ownerState:rr}),[Tr,Nr]=reactExports.useState(!1),[Yr,to]=reactExports.useState(defaultIndicatorStyle),[po,So]=reactExports.useState(!1),[Jo,Zo]=reactExports.useState(!1),[Vo,ls]=reactExports.useState(!1),[Ao,Ss]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),mo=new Map,Bo=reactExports.useRef(null),To=reactExports.useRef(null),Do=()=>{const tu=Bo.current;let Ns;if(tu){const Qr=tu.getBoundingClientRect();Ns={clientWidth:tu.clientWidth,scrollLeft:tu.scrollLeft,scrollTop:tu.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(tu,$n.direction),scrollWidth:tu.scrollWidth,top:Qr.top,bottom:Qr.bottom,left:Qr.left,right:Qr.right}}let Or;if(tu&&nr!==!1){const Qr=To.current.children;if(Qr.length>0){const xr=Qr[mo.get(nr)];Or=xr?xr.getBoundingClientRect():null}}return{tabsMeta:Ns,tabMeta:Or}},zr=useEventCallback(()=>{const{tabsMeta:tu,tabMeta:Ns}=Do();let Or=0,Qr;if(fr)Qr="top",Ns&&tu&&(Or=Ns.top-tu.top+tu.scrollTop);else if(Qr=Un?"right":"left",Ns&&tu){const Jr=Un?tu.scrollLeftNormalized+tu.clientWidth-tu.scrollWidth:tu.scrollLeft;Or=(Un?-1:1)*(Ns[Qr]-tu[Qr]+Jr)}const xr={[Qr]:Or,[Br]:Ns?Ns[Br]:0};if(isNaN(Yr[Qr])||isNaN(Yr[Br]))to(xr);else{const Jr=Math.abs(Yr[Qr]-xr[Qr]),eo=Math.abs(Yr[Br]-xr[Br]);(Jr>=1||eo>=1)&&to(xr)}}),na=(tu,{animation:Ns=!0}={})=>{Ns?animate(Cr,Bo.current,tu,{duration:$n.transitions.duration.standard}):Bo.current[Cr]=tu},Fo=tu=>{let Ns=Bo.current[Cr];fr?Ns+=tu:(Ns+=tu*(Un?-1:1),Ns*=Un&&detectScrollType()==="reverse"?-1:1),na(Ns)},os=()=>{const tu=Bo.current[Pr];let Ns=0;const Or=Array.from(To.current.children);for(let Qr=0;Qr<Or.length;Qr+=1){const xr=Or[Qr];if(Ns+xr[Pr]>tu){Qr===0&&(Ns=tu);break}Ns+=xr[Pr]}return Ns},ns=()=>{Fo(-1*os())},xa=()=>{Fo(os())},Ts=reactExports.useCallback(tu=>{Ss({overflow:null,scrollbarWidth:tu})},[]),Mo=()=>{const tu={};tu.scrollbarSizeListener=Yn?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Ts,className:clsx(pr.scrollableX,pr.hideScrollbar)}):null;const Or=Yn&&(or==="auto"&&(po||Jo)||or===!0);return tu.scrollButtonStart=Or?jsxRuntimeExports.jsx(dr,_extends({slots:{StartScrollButtonIcon:vr.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:$r},orientation:ar,direction:Un?"right":"left",onClick:ns,disabled:!po},ur,{className:clsx(pr.scrollButtons,ur.className)})):null,tu.scrollButtonEnd=Or?jsxRuntimeExports.jsx(dr,_extends({slots:{EndScrollButtonIcon:vr.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:kr},orientation:ar,direction:Un?"left":"right",onClick:xa,disabled:!Jo},ur,{className:clsx(pr.scrollButtons,ur.className)})):null,tu},yo=useEventCallback(tu=>{const{tabsMeta:Ns,tabMeta:Or}=Do();if(!(!Or||!Ns)){if(Or[yr]<Ns[yr]){const Qr=Ns[Cr]+(Or[yr]-Ns[yr]);na(Qr,{animation:tu})}else if(Or[Ir]>Ns[Ir]){const Qr=Ns[Cr]+(Or[Ir]-Ns[Ir]);na(Qr,{animation:tu})}}}),Po=useEventCallback(()=>{Yn&&or!==!1&&ls(!Vo)});reactExports.useEffect(()=>{const tu=debounce$1(()=>{Bo.current&&zr()}),Ns=ownerWindow(Bo.current);Ns.addEventListener("resize",tu);let Or;return typeof ResizeObserver<"u"&&(Or=new ResizeObserver(tu),Array.from(To.current.children).forEach(Qr=>{Or.observe(Qr)})),()=>{tu.clear(),Ns.removeEventListener("resize",tu),Or&&Or.disconnect()}},[zr]),reactExports.useEffect(()=>{const tu=Array.from(To.current.children),Ns=tu.length;if(typeof IntersectionObserver<"u"&&Ns>0&&Yn&&or!==!1){const Or=tu[0],Qr=tu[Ns-1],xr={root:Bo.current,threshold:.99},Jr=Co=>{So(!Co[0].isIntersecting)},eo=new IntersectionObserver(Jr,xr);eo.observe(Or);const Fr=Co=>{Zo(!Co[0].isIntersecting)},qr=new IntersectionObserver(Fr,xr);return qr.observe(Qr),()=>{eo.disconnect(),qr.disconnect()}}},[Yn,or,Vo,qn==null?void 0:qn.length]),reactExports.useEffect(()=>{Nr(!0)},[]),reactExports.useEffect(()=>{zr()}),reactExports.useEffect(()=>{yo(defaultIndicatorStyle!==Yr)},[yo,Yr]),reactExports.useImperativeHandle(Gn,()=>({updateIndicator:zr,updateScrollButtons:Po}),[zr,Po]);const Wo=jsxRuntimeExports.jsx(TabsIndicator,_extends({},gr,{className:clsx(pr.indicator,gr.className),ownerState:rr,style:_extends({},Yr,gr.style)}));let as=0;const Bs=reactExports.Children.map(qn,tu=>{if(!reactExports.isValidElement(tu))return null;const Ns=tu.props.value===void 0?as:tu.props.value;mo.set(Ns,as);const Or=Ns===nr;return as+=1,reactExports.cloneElement(tu,_extends({fullWidth:Sr==="fullWidth",indicator:Or&&!Tr&&Wo,selected:Or,selectionFollowsFocus:sr,onChange:Xn,textColor:_r,value:Ns},as===1&&nr===!1&&!tu.props.tabIndex?{tabIndex:0}:{}))}),ys=tu=>{const Ns=To.current,Or=ownerDocument(Ns).activeElement;if(Or.getAttribute("role")!=="tab")return;let xr=ar==="horizontal"?"ArrowLeft":"ArrowUp",Jr=ar==="horizontal"?"ArrowRight":"ArrowDown";switch(ar==="horizontal"&&Un&&(xr="ArrowRight",Jr="ArrowLeft"),tu.key){case xr:tu.preventDefault(),moveFocus(Ns,Or,previousItem);break;case Jr:tu.preventDefault(),moveFocus(Ns,Or,nextItem);break;case"Home":tu.preventDefault(),moveFocus(Ns,null,nextItem);break;case"End":tu.preventDefault(),moveFocus(Ns,null,previousItem);break}},Qs=Mo();return jsxRuntimeExports.jsxs(TabsRoot,_extends({className:clsx(pr.root,er),ownerState:rr,ref:Dt,as:Wn},tr,{children:[Qs.scrollButtonStart,Qs.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:pr.scroller,ownerState:rr,style:{overflow:Ao.overflow,[fr?`margin${Un?"Left":"Right"}`:"marginBottom"]:Ar?void 0:-Ao.scrollbarWidth},ref:Bo,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":Fn,"aria-labelledby":Hn,"aria-orientation":ar==="vertical"?"vertical":null,className:pr.flexContainer,ownerState:rr,onKeyDown:ys,ref:To,role:"tablist",children:Bs}),Tr&&Wo]}),Qs.scrollButtonEnd]}))}),Tabs$1=Tabs,DownIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M7 9L12 14L17 9",fill:"none",stroke:"currentColor",strokeOpacity:"0.9",strokeLinecap:"round",strokeLinejoin:"round"}),"Down"),Switch=styled$1(MuiSwitch)(({theme:dt})=>({width:40,height:20,padding:0,"& .MuiSwitch-switchBase":{padding:2,"&.Mui-checked":{color:"#fff","& + .MuiSwitch-track":{opacity:1,backgroundColor:dt.palette.success[400]}}},"& .MuiSwitch-thumb":{boxShadow:"0px 0px 3px rgba(0, 0, 0, 0.75)",width:16,height:16},"& .MuiSwitch-track":{borderRadius:10,opacity:1,backgroundColor:dt.palette.button.primary,boxSizing:"border-box"}})),useStyles$M=makeStyles()(dt=>({container:{width:"100%",borderRadius:"8px",boxShadow:dt.palette.card.elevation},header:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px",backgroundColor:dt.palette.card.background,backgroundOpacity:"80%",borderRadius:"8px",transition:"border-radius 0.4s"},title:{fontSize:"14px",fontWeight:"bold"},description:{fontSize:"14px",opacity:"80%"},invert:{transform:"rotate(180deg)"},arrow:{width:"32px",height:"32px",transition:"transform 0.4s"},controlled:{cursor:"default !important"},banner:{borderBottomRightRadius:"8px",borderBottomLeftRadius:"8px",backgroundColor:dt.palette.info[500],padding:"8px 16px",display:"flex",flexDirection:"row",transition:"border-radius 0.1s 0.3s"},open:{transition:"border-radius 0s 0s",borderBottomLeftRadius:"0 !important",borderBottomRightRadius:"0 !important"},disabled:{opacity:"70%",cursor:"not-allowed !important"},link:{...LINK(dt),margin:"0 0 0 4px"},collapseControl:{cursor:"pointer"}}));var CollapseControlStyle=(dt=>(dt[dt.None=1]="None",dt[dt.Arrow=2]="Arrow",dt[dt.Switch=3]="Switch",dt))(CollapseControlStyle||{});function DownControl(dt){const{classes:ht}=useStyles$M();return jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!dt.collapsed&&ht.invert])})}function getControlComponent(dt,ht){switch(dt){case 1:return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{});case 2:return jsxRuntimeExports.jsx(DownControl,{collapsed:ht});case 3:return jsxRuntimeExports.jsx(Switch,{checked:!ht});default:return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}}function BridgeCollapse(dt){const{classes:ht}=useStyles$M(),{onCollapseChange:Dt,disabled:Cn,startClosed:$n}=dt,[Un,Fn]=React.useState($n||!1),Hn=reactExports.useCallback(()=>{Cn||Fn(er=>(Dt&&Dt(!er),!er))},[Cn,Dt]);reactExports.useEffect(()=>{Fn($n||!1)},[$n]);const Gn=dt.controlStyle||2,Qn=dt.controlled?dt.value||!1:Un,qn=getControlComponent(Gn,Qn);return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:joinClass([ht.header,(!!dt.banner||!Qn)&&ht.open,!!Cn&&ht.disabled]),children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:ht.title,children:dt.title}),dt.description&&jsxRuntimeExports.jsx("div",{className:ht.description,children:dt.description})]}),jsxRuntimeExports.jsx("div",{onClick:Hn,className:ht.collapseControl,children:qn})]}),dt.banner&&jsxRuntimeExports.jsx("div",{className:joinClass([ht.banner,(dt.disableCollapse||!Qn)&&ht.open]),children:dt.banner}),jsxRuntimeExports.jsx(Collapse$1,{in:dt.disableCollapse||!Qn,unmountOnExit:!0,children:dt.children})]})}const ArrowRightIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M4 12H20M20 12L13 5M20 12L13 19",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),"ArrowRight"),useStyles$L=makeStyles()(dt=>({options:{backgroundColor:dt.palette.card.background,borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},option:{width:"100%",borderRadius:"0",backgroundColor:dt.palette.card.background,"&:last-child":{borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},optionContent:{padding:"16px"},optionContentEnabled:{"&:hover":{backgroundColor:dt.palette.options.hover}},arrow:{position:"absolute",right:"0",height:"100%",display:"flex",justifyContent:"center"},invert:{transform:"rotate(180deg)"},active:{backgroundColor:`${dt.palette.options.select} !important`}}));function Options(dt){const{classes:ht}=useStyles$L(),Dt=Cn=>dt.collapsable&&dt.collapsed&&dt.active!==Cn;return jsxRuntimeExports.jsx("div",{className:ht.options,children:dt.children.map((Cn,$n)=>jsxRuntimeExports.jsx(Collapse$1,{in:!Dt(Cn.key),className:joinClass([ht.option,dt.active===Cn.key&&ht.active]),unmountOnExit:!0,children:jsxRuntimeExports.jsx("div",{className:joinClass([ht.optionContent,!Cn.disabled&&ht.optionContentEnabled]),onClick:()=>dt.onSelect(Cn.key),style:{cursor:dt.children.length>0?"pointer":"default"},children:Cn.child})},$n))})}const useStyles$K=makeStyles()(()=>({price:{fontSize:"10px"},alignRight:{textAlign:"right"}})),Price=({children:dt,textAlign:ht="left"})=>{const{classes:Dt}=useStyles$K();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:dt!=null&&dt.length?jsxRuntimeExports.jsx("div",{className:`${Dt.price}`,style:{textAlign:ht},children:dt}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})},useStyles$J=makeStyles()(dt=>({link:{...LINK(dt),margin:"0 0 0 4px"},tag:{padding:"4px 8px",borderRadius:"8px",display:"flex",alignItems:"center",gap:"8px",[dt.breakpoints.down("sm")]:{padding:"4px 0",backgroundColor:"transparent !important"}},filled:{backgroundColor:dt.palette.card.secondary},tagIcon:{[dt.breakpoints.down("sm")]:{display:"none"}},route:{[dt.breakpoints.up("sm")]:{display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",gridTemplateAreas:'"path fees"'},[dt.breakpoints.down("sm")]:{display:"flex",flexDirection:"column"},width:"100%",maxWidth:"100%",fontSize:"14px"},disabled:{color:"grey",cursor:"default"},routeLeft:{gridArea:"path",display:"flex",flexDirection:"column"},routeTitle:{display:"flex",[dt.breakpoints.down("sm")]:{flexDirection:"column"},[dt.breakpoints.up("sm")]:{flexDirection:"row"},alignItems:"center",gap:"8px",fontSize:"14px",fontWeight:"600",marginBottom:"8px",whiteSpace:"nowrap"},routePath:{display:"flex",alignItems:"center",gap:"8px",[dt.breakpoints.down("sm")]:{gap:"4px",alignContent:"center"}},routeRight:{gridArea:"fees",display:"flex",flexDirection:"column",justifyContent:"space-around",alignItems:"flex-end",padding:"4px 0",height:"100%"},routeAmt:{opacity:"0.6",fontSize:"12px"},multiLineChip:{[dt.breakpoints.down("sm")]:{height:"auto","& .MuiChip-label":{display:"block",whiteSpace:"normal",textAlign:"center",maxWidth:"256px"}}}}));function Banner(dt){const{classes:ht}=useStyles$J(),Dt=dt.text||"This route provided by",Cn=useSelector(Un=>Un.transferInput.route),$n=Cn&&(dt.route||RoutesConfig[Cn]);return $n?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Dt,jsxRuntimeExports.jsx("a",{href:$n.link,target:"_blank",className:ht.link,rel:"noreferrer",children:$n.providedBy})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}function Tag(dt){const{classes:ht}=useStyles$J(),Dt=dt.height||20;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.tag,!!dt.colorFilled&&ht.filled]),children:[jsxRuntimeExports.jsx("div",{style:{height:Dt,width:Dt},className:ht.tagIcon,children:dt.icon}),dt.text]})}const getEstimatedTime=dt=>{if(!dt)return;const ht=chainIdToChain(config$2.wh.toChainId(dt)),Dt=finalityThreshold.get(ht);if(!(typeof Dt>"u"))return Dt===0?"Instantly":millisToMinutesAndSeconds(blockTime(ht)*Dt)};function RouteOption(dt){const{classes:ht}=useStyles$J(),Dt=useTheme(),Cn=useMediaQuery(Dt.breakpoints.down("sm")),{token:$n,destToken:Un,amount:Fn,toChain:Hn,fromChain:Gn}=useSelector(Ar=>Ar.transferInput),{toNativeToken:Qn,relayerFee:qn}=useSelector(Ar=>Ar.relay),{usdPrices:{data:er}}=useSelector(Ar=>Ar.tokenPrices),Wn=er||{},jn=useSelector(Ar=>Ar.porticoBridge),[Zn,Xn]=reactExports.useState(void 0),[ar,dr]=reactExports.useState(void 0),[or,sr]=reactExports.useState(void 0);reactExports.useEffect(()=>{let Ar=!1;async function tr(){try{const Yn=isPorticoRoute(dt.route.route)?jn:{toNativeToken:Qn,relayerFee:qn},fr=await RouteOperator.computeReceiveAmountWithFees(dt.route.route,Number.parseFloat(Fn),$n,Un,Gn,Hn,Yn);Ar||(Xn(Number.parseFloat(toFixedDecimals(`${fr}`,6))),dr(calculateUSDPrice(fr,Wn,config$2.tokens[Un])),sr(getEstimatedTime(Gn)))}catch{Ar||(Xn(0),dr(""),sr(getEstimatedTime(Gn)))}}return tr(),()=>{Ar=!0}},[dt.route,Fn,Qn,qn,$n,Un,Hn,Gn,jn,er]);const vr=config$2.tokens[$n],hr=vr&&jsxRuntimeExports.jsx(TokenIcon,{icon:vr.icon,height:20}),gr=config$2.tokens[Un],ur=gr&&jsxRuntimeExports.jsx(TokenIcon,{icon:gr.icon,height:20}),_r=dt.route.route,nr=reactExports.useMemo(()=>RouteOperator.getRoute(_r),[_r]),Sr=reactExports.useMemo(()=>nr.AUTOMATIC_DEPOSIT||Hn&&(isGatewayChain(Hn)||Hn==="sei")||isPorticoRoute(nr.TYPE),[nr,Hn]);return vr&&gr&&jsxRuntimeExports.jsx(Tooltip$1,{title:dt.disabled?"Not enough funds on the source chain for automatic redemption":"",children:jsxRuntimeExports.jsxs("div",{className:`${ht.route} ${dt.disabled?ht.disabled:""}`,"data-testid":`route-option-${dt.route.route}`,children:[jsxRuntimeExports.jsxs("div",{className:ht.routeLeft,children:[jsxRuntimeExports.jsxs("div",{className:ht.routeTitle,children:[dt.route.name,Sr?jsxRuntimeExports.jsx(Chip$1,{label:"Receive tokens automatically",color:"success",variant:"outlined",size:"small",className:ht.multiLineChip}):jsxRuntimeExports.jsx(Chip$1,{label:"Approve transfer with destination wallet",color:"warning",variant:"outlined",size:"small",className:ht.multiLineChip})]}),jsxRuntimeExports.jsxs("div",{className:ht.routePath,children:[jsxRuntimeExports.jsx(Tag,{icon:hr,text:getDisplayName(vr),colorFilled:!0}),jsxRuntimeExports.jsx(ArrowRightIcon,{fontSize:Cn?"inherit":void 0}),jsxRuntimeExports.jsx(Tag,{icon:dt.route.icon(),text:dt.route.routePath||dt.route.providedBy}),jsxRuntimeExports.jsx(ArrowRightIcon,{fontSize:Cn?"inherit":void 0}),jsxRuntimeExports.jsx(Tag,{icon:ur,text:getDisplayName(gr),colorFilled:!0})]})]}),jsxRuntimeExports.jsx("div",{className:ht.routeRight,children:dt.disabled?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{children:"Transfer amount too low"})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{children:[Zn," ",getDisplayName(config$2.tokens[Un]),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:ar})]}),jsxRuntimeExports.jsx("div",{className:ht.routeAmt,children:"after fees"}),typeof or<"u"&&jsxRuntimeExports.jsxs("div",{className:ht.routeAmt,children:["Estimated time: ",or]})]})})]})})}function RouteOptions(){const dt=useDispatch(),{isTransactionInProgress:ht,route:Dt,routeStates:Cn,token:$n,destToken:Un,fromChain:Fn,toChain:Hn,amount:Gn}=useSelector(Wn=>Wn.transferInput),Qn=reactExports.useCallback(Wn=>{if(Cn&&Cn.some(jn=>jn.name===Wn)){const jn=Cn.find(Zn=>Zn.name===Wn);jn!=null&&jn.available&&dt(setTransferRoute(Wn))}},[Cn,dt]),[qn]=o(Gn,500);reactExports.useEffect(()=>{let Wn=!0;return!Fn||!Hn||!$n||!Un?void 0:((async()=>{const Zn=[];for(const Xn of config$2.routes){const ar=Xn,dr=await RouteOperator.isRouteAvailable(ar,$n,Un,qn,Fn,Hn),or=await RouteOperator.isRouteSupported(ar,$n,Un,qn,Fn,Hn);Zn.push({name:ar,supported:or,available:dr})}Wn&&dt(setRoutes(Zn))})(),()=>{Wn=!1})},[dt,$n,Un,qn,Fn,Hn]);const er=reactExports.useMemo(()=>Cn?Cn.filter(jn=>jn.supported):[],[Cn]);return er&&er.length>0?jsxRuntimeExports.jsx(BridgeCollapse,{title:"Route",disabled:ht,banner:jsxRuntimeExports.jsx(Banner,{}),disableCollapse:!0,startClosed:!1,onCollapseChange:()=>{},controlStyle:CollapseControlStyle.None,children:jsxRuntimeExports.jsx(Options,{active:Dt,onSelect:Qn,collapsable:!0,collapsed:!1,children:er.map(({name:Wn,available:jn})=>({key:Wn,disabled:!jn,child:jsxRuntimeExports.jsx(RouteOption,{disabled:!jn,route:RoutesConfig[Wn]})}))})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}const useStyles$I=makeStyles()(()=>({container:{display:"flex",flexDirection:"column",gap:"8px",width:"100%"},amounts:{display:"flex",justifyContent:"space-between",alignItems:"center"},amountDisplay:{display:"flex",alignItems:"center",gap:"8px"}}));function label(dt,ht,Dt,Cn){return jsxRuntimeExports.jsxs("div",{children:[toFixedDecimals(`${dt}`,4)," ",ht,jsxRuntimeExports.jsx("br",{}),toFixedDecimals(`${Dt}`,4)," ",Cn]})}const PrettoSlider=styled$1(Slider$1)(({color1:dt,color2:ht})=>({color:dt,height:8,"& .MuiSlider-rail":{height:"4px",backgroundColor:ht},"& .MuiSlider-track":{height:"6px"},"& .MuiSlider-thumb":{height:28,width:28,backgroundColor:"#fff"}}));function formatAmount(dt){if(!dt)return 0;let ht=toFixedDecimals(`${dt}`,6);return dt<1e-6&&(ht="0"),Number.parseFloat(ht)}const INITIAL_STATE={disabled:!1,min:0,max:0,nativeGas:0,nativeGasPrice:"",token:formatAmount(),tokenPrice:"",swapAmt:0,conversionRate:void 0};function GasSlider(dt){const{classes:ht}=useStyles$I(),Dt=useDispatch(),{token:Cn,toChain:$n,amount:Un,route:Fn,destToken:Hn}=useSelector(Yn=>Yn.transferInput),[Gn]=o(Un,500),{maxSwapAmt:Qn,relayerFee:qn}=useSelector(Yn=>Yn.relay),er=reactExports.useMemo(()=>Number.parseFloat(Gn)-(qn||0),[Gn,qn]),{receiving:Wn}=useSelector(Yn=>Yn.wallet),{usdPrices:{data:jn}}=useSelector(Yn=>Yn.tokenPrices),Zn=jn||{},Xn=config$2.chains[$n],ar=config$2.tokens[Cn],dr=config$2.tokens[Hn],or=config$2.tokens[Xn.gasToken],[sr,vr]=reactExports.useState(INITIAL_STATE),[hr]=o(sr.swapAmt,500),[gr,ur]=reactExports.useState(dt.disabled);reactExports.useEffect(()=>{if(!er||er===0||!Qn||!Fn||!RouteOperator.getRoute(Fn).NATIVE_GAS_DROPOFF_SUPPORTED||!$n||!ar)return;let Yn=er&&Qn&&Math.max(Math.min(Qn,er),0);if(Yn){const Cr=RouteOperator.getRoute(Fn).getMinSendAmount(getWrappedTokenId(ar),$n,{toNativeToken:Yn,relayerFee:qn}),yr=Math.max(Cr-er-(qn||0),0);Yn=Math.max(Math.min(Qn,er-yr),0)}const fr=er-sr.swapAmt;Yn===0&&ur(!0),vr(Cr=>({...Cr,disabled:er<=0||Yn===0,token:formatAmount(fr),tokenPrice:calculateUSDPrice(formatAmount(fr),Zn,config$2.tokens[Cn]),max:formatAmount(Yn)}))},[qn,Qn,er,Fn,sr.swapAmt,jn,Cn,$n]),reactExports.useEffect(()=>{if(!$n||!ar||!Fn||!RouteOperator.getRoute(Fn).NATIVE_GAS_DROPOFF_SUPPORTED||!Wn.address||!dr)return;let Yn=!1;return(async()=>{var rr;const fr=dr.tokenId;try{const pr=await RouteOperator.maxSwapAmount(Fn,$n,fr,Wn.address);if(Yn)return;if(!pr){Dt(setMaxSwapAmt(void 0));return}const $r=getTokenDecimals(config$2.wh.toChainId($n),fr),kr=toDecimals(pr,$r,6);Dt(setMaxSwapAmt(Number.parseFloat(kr)))}catch(pr){if(Yn)return;if((rr=pr.message)!=null&&rr.includes("swap rate not set"))Fn===Route.CCTPRelay?Dt(setTransferRoute(Route.CCTPManual)):Dt(setTransferRoute(Route.Bridge));else throw pr}const{gasToken:Cr}=config$2.chains[$n],yr=await getConversion(Cn,Cr);if(Yn)return;const Ir=await RouteOperator.minSwapAmountNative(Fn,$n,fr,Wn.address),Pr=Number.parseFloat(toDecimals(Ir,getTokenDecimals(config$2.wh.toChainId($n),"native")));if(Yn)return;const Br=yr?Pr/yr:0;vr(pr=>({...pr,conversionRate:yr,min:Br}))})(),()=>{Yn=!0}},[ar,dr,Wn,$n,Fn,Cn,Hn,Dt]);function _r(Yn){const{children:fr,...Cr}=Yn;return jsxRuntimeExports.jsxs(SliderThumb,{...Cr,children:[fr,jsxRuntimeExports.jsx(TokenIcon,{icon:or.icon,height:16})]})}const nr=Yn=>{ur(Yn),Yn&&(vr(fr=>({...fr,swapAmt:0,nativeGas:0,nativeGasPrice:"",token:formatAmount(er),tokenPrice:calculateUSDPrice(formatAmount(er),Zn,config$2.tokens[Cn])})),Dt(setReceiveNativeAmt(0)))},Sr=Yn=>{if(!er||!sr.conversionRate)return;const fr=Yn.target.value<sr.min?0:Yn.target.value,Cr=fr*sr.conversionRate,yr=er-fr,Ir=fr,Pr={nativeGas:formatAmount(Cr),nativeGasPrice:calculateUSDPrice(formatAmount(Cr),Zn,or),token:formatAmount(yr),tokenPrice:calculateUSDPrice(formatAmount(yr),Zn,config$2.tokens[Cn]),swapAmt:formatAmount(Ir)};vr(Br=>({...Br,...Pr}))};reactExports.useEffect(()=>{let Yn=!1;return(async()=>{if(!dr||!ar||!Fn||!Wn.address)return;Dt(setToNativeToken(hr));const fr=dr.tokenId,Cr=getTokenDecimals(config$2.wh.toChainId($n),fr),yr=parseUnits(`${hr}`,Cr),Ir=await RouteOperator.nativeTokenAmount(Fn,$n,fr,yr,Wn.address);if(Yn)return;const Pr=getTokenDecimals(config$2.wh.toChainId($n),"native"),Br=Number.parseFloat(toDecimals(Ir.toString(),Pr,6));Dt(setReceiveNativeAmt(Br)),vr(rr=>({...rr,nativeGas:Br,nativeGasPrice:calculateUSDPrice(Br,Zn,or),token:formatAmount(er-hr),tokenPrice:calculateUSDPrice(formatAmount(er-hr),Zn,config$2.tokens[Cn])}))})(),()=>{Yn=!0}},[hr,Dt,or,Wn.address,ar,dr,$n,Fn,er,jn,Cn]);const Ar="white",tr=!dt.disabled&&!!Fn&&jsxRuntimeExports.jsx(Banner,{text:"This feature provided by",route:RoutesConfig[Fn]});return jsxRuntimeExports.jsx(BridgeCollapse,{title:"Native gas",banner:tr,disabled:dt.disabled||sr.disabled,startClosed:dt.disabled,controlStyle:CollapseControlStyle.Switch,controlled:!0,value:gr,onCollapseChange:nr,children:jsxRuntimeExports.jsx(InputContainer,{styles:{width:"100%",borderTopRightRadius:"0px",borderTopLeftRadius:"0px",boxShadow:"none"},children:ar&&or&&Xn?jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{children:["Would you like to receive some native gas token (",getDisplayName(or),")?"]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PrettoSlider,{slots:{thumb:_r},"aria-label":"Native gas conversion amount",defaultValue:0,value:sr.swapAmt,color1:or.color??Ar,color2:ar.color??Ar,step:1e-6,min:0,max:sr.max,valueLabelFormat:()=>label(sr.nativeGas,getDisplayName(or),sr.token,getDisplayName(config$2.tokens[Cn])),valueLabelDisplay:"auto",onChange:Sr,marks:sr.min?[{value:sr.min,label:"Min"}]:void 0}),jsxRuntimeExports.jsxs("div",{className:ht.amounts,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.amountDisplay,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:or.icon,height:16}),jsxRuntimeExports.jsxs("div",{children:[sr.nativeGas," ",getDisplayName(or)]})]}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:sr.nativeGasPrice})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.amountDisplay,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:ar.icon,height:16}),sr.token," ",getDisplayName(ar)]}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:sr.tokenPrice})]})]})]})]}):jsxRuntimeExports.jsx("div",{})})})}const useStyles$H=makeStyles()(dt=>({row:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:"4px 0"},rowTitle:{fontSize:"14px",opacity:"70%"},arrow:{height:"24px",marginLeft:"8px",transition:"transform 0.4s"},invert:{transform:"rotate(180deg)"},subrow:{marginLeft:"16px"},subrowText:{fontSize:"14px"}}));function RenderRows(dt){const{classes:ht}=useStyles$H(),[Dt,Cn]=React.useState(!0),$n=()=>Cn(Un=>!Un);return jsxRuntimeExports.jsx("div",{children:dt.rows.map((Un,Fn)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.row,style:{cursor:Un.rows?"pointer":"default"},onClick:()=>Un.rows&&$n(),children:[jsxRuntimeExports.jsxs("div",{className:ht.row,children:[jsxRuntimeExports.jsx("span",{className:ht.rowTitle,children:Un.title}),Un.rows&&jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!Dt&&ht.invert])})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:`${dt.small&&ht.subrowText}`,children:Un.value}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:Un.valueUSD})]})]}),jsxRuntimeExports.jsx("div",{children:Un.rows&&jsxRuntimeExports.jsx(Collapse$1,{in:!Dt,children:jsxRuntimeExports.jsx("div",{className:ht.subrow,children:jsxRuntimeExports.jsx(RenderRows,{rows:Un.rows,small:!0})})})})]},Fn))})}const defaultPrices={};function Preview(dt){const ht=useDispatch(),Dt=useTheme(),[Cn,$n]=React.useState({rows:[]}),{token:Un,destToken:Fn,amount:Hn,fromChain:Gn,toChain:Qn,route:qn,receiveAmount:er,gasEst:Wn}=useSelector(sr=>sr.transferInput),{toNativeToken:jn,receiveNativeAmt:Zn,relayerFee:Xn}=useSelector(sr=>sr.relay),ar=useSelector(sr=>sr.porticoBridge),{usdPrices:{data:dr}}=useSelector(sr=>sr.tokenPrices),or=dr||defaultPrices;return reactExports.useEffect(()=>{(async()=>{if(!Gn||!qn)return;const vr=Qn&&config$2.chains[Gn],hr=Qn&&config$2.chains[Qn],gr=Un&&config$2.tokens[Un],ur=Fn&&config$2.tokens[Fn];if(!gr||!ur||!vr||!hr)return;const _r=isPorticoRoute(qn)?ar:{toNativeToken:jn,receiveNativeAmt:Zn,relayerFee:Xn},nr=await RouteOperator.getPreview(qn,gr,ur,Number.parseFloat(Hn),Gn,Qn,Wn.send,Wn.claim,er.data||"",or,_r);$n({rows:nr})})()},[Un,Fn,Hn,Gn,Qn,qn,er,jn,Zn,ar,Wn,ht,Xn,or]),reactExports.useEffect(()=>{(async()=>{if(!(!Un||!Gn||!Qn||!qn||!RouteOperator.getRoute(qn).AUTOMATIC_DEPOSIT))try{if(!(Un&&config$2.tokens[Un]))return;const gr=await RouteOperator.getRelayerFee(qn,Gn,Qn,Un,Fn);if(gr===null)return;const{fee:ur,feeToken:_r}=gr,nr=getTokenDecimals(toChainId$1(Gn),_r),Sr=Number.parseFloat(toDecimals(ur,nr,6));ht(setRelayerFee$1(Sr))}catch(hr){if(hr.message===TokenNotSupportedForRelayError.MESSAGE||hr.message===TokenNotRegisteredError.MESSAGE)qn===Route.CCTPRelay?ht(setTransferRoute(Route.CCTPManual)):ht(setTransferRoute(Route.Bridge));else throw hr}})()},[qn,Un,Fn,Qn,Gn,ht]),jsxRuntimeExports.jsx(BridgeCollapse,{title:"Preview",disabled:dt.collapsed,controlled:!0,value:dt.collapsed,controlStyle:CollapseControlStyle.None,children:jsxRuntimeExports.jsx(InputContainer,{styles:{boxShadow:"none",borderTopLeftRadius:"0",borderTopRightRadius:"0"},bg:Dt.palette.options.select,children:jsxRuntimeExports.jsx(RenderRows,{rows:Cn.rows})})})}const useStyles$G=makeStyles()(dt=>({button:{width:"100%",backgroundColor:dt.palette.button.primary,color:dt.palette.button.primaryText,borderRadius:"8px",display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 64px",cursor:"pointer",textAlign:"center"},disabled:{cursor:"not-allowed",clickEvents:"none",backgroundColor:dt.palette.button.disabled+" !important",color:dt.palette.button.disabledText+" !important"},elevated:{boxShadow:dt.palette.card.elevation},action:{backgroundColor:dt.palette.button.action,color:dt.palette.button.actionText},link:{backgroundColor:"transparent"}}));function Button(dt){const{classes:ht}=useStyles$G(),Dt=Cn=>{dt.onClick&&!dt.disabled&&dt.onClick(Cn)};return jsxRuntimeExports.jsx("div",{className:joinClass([ht.button,!!dt.elevated&&ht.elevated,!!dt.action&&ht.action,!!dt.link&&ht.link,!!dt.disabled&&ht.disabled]),onClick:Dt,"data-testid":dt.testId,children:dt.children})}const AlertIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12.0003 9.99993V13.7499M2.69731 17.1259C1.83131 18.6259 2.91431 20.4999 4.64531 20.4999H19.3553C21.0853 20.4999 22.1683 18.6259 21.3033 17.1259L13.9493 4.37793C13.0833 2.87793 10.9173 2.87793 10.0513 4.37793L2.69731 17.1259ZM12.0003 16.7499H12.0073V16.7579H12.0003V16.7499Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Alert"),useStyles$F=makeStyles()(dt=>({base:{width:"100%",padding:"8px",display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",gap:"10px",borderRadius:"8px"},error:{backgroundColor:dt.palette.error[500]+OPACITY[25]},warning:{backgroundColor:dt.palette.warning[500]+OPACITY[25]}}));function AlertBanner(dt){const{classes:ht}=useStyles$F();return jsxRuntimeExports.jsx(Collapse$1,{in:dt.show&&!!dt.content,unmountOnExit:!0,children:jsxRuntimeExports.jsxs("div",{className:joinClass([ht.base,!!dt.warning&&ht.warning,!!dt.error&&ht.error]),style:{margin:dt.margin||0},"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(AlertIcon,{}),dt.content]})})}const useStyles$E=makeStyles()(dt=>({body:{width:"100%"},tosDisclaimer:{display:"flex",flexDirection:"row",marginBottom:10,marginLeft:16,fontSize:"12px"},link:{...LINK(dt),margin:"0 0 0 4px"}}));function Send(dt){const{classes:ht}=useStyles$E(),Dt=useDispatch(),Cn=useSelector(Ir=>Ir.transferInput),{showValidationState:$n,validations:Un,fromChain:Fn,toChain:Hn,token:Gn,destToken:Qn,amount:qn,route:er,isTransactionInProgress:Wn,foreignAsset:jn,associatedTokenAddress:Zn}=Cn,[Xn]=o(qn,500),ar=useSelector(Ir=>Ir.wallet),{sending:dr,receiving:or}=ar,sr=useSelector(Ir=>Ir.relay),{toNativeToken:vr,relayerFee:hr}=sr,gr=useSelector(Ir=>Ir.porticoBridge),[ur,_r]=reactExports.useState(dr.currentAddress.toLowerCase()===dr.address.toLowerCase()),[nr,Sr]=reactExports.useState(""),Ar=validateSolanaTokenAccount(Hn,jn,Zn,er);async function tr(){var Pr;if(Sr(""),await validate({transferInput:Cn,relay:sr,wallet:ar,portico:gr},Dt),!(!isTransferValid(Un)||!er)){Dt(setIsTransactionInProgress(!0));try{const Br=config$2.chains[Fn];if((Br==null?void 0:Br.context)===Context.ETH){const Nr=Br.chainId;if(typeof Nr!="number")throw new Error("invalid evm chain ID");await switchChain(Nr,TransferWallet.SENDING),registerWalletSigner(Fn,TransferWallet.SENDING)}(Br==null?void 0:Br.context)===Context.COSMOS&&await switchChain(Br.chainId,TransferWallet.SENDING);const pr=config$2.tokens[Gn].tokenId,$r=isPorticoRoute(er)?gr:{toNativeToken:vr},kr=await RouteOperator.send(er,pr||"native",`${qn}`,Fn,dr.address,Hn,or.address,Qn,$r);let Tr;for(;Tr===void 0;){try{Tr=await RouteOperator.getMessage(er,kr,Fn,!0)}catch(Nr){console.error(Nr)}Tr===void 0&&await sleep(3e3)}Dt(setIsTransactionInProgress(!1)),Dt(setSendTx(kr)),Dt(setTxDetails(Tr)),Dt(setRoute$1(er)),Dt(setRoute("redeem")),Sr("")}catch(Br){console.error(Br),Dt(setIsTransactionInProgress(!1)),Sr((Br==null?void 0:Br.message)===INSUFFICIENT_ALLOWANCE?"Error due to insufficient token allowance, please try again":(Br==null?void 0:Br.message)===SWAP_ERROR?SWAP_ERROR:(Br==null?void 0:Br.message)===NotEnoughCapacityError.MESSAGE?`This transfer would be rate-limited due to high volume on ${(Pr=config$2.chains[Cn.fromChain])==null?void 0:Pr.displayName}, please try again later`:(Br==null?void 0:Br.message)===ContractIsPausedError.MESSAGE||(Br==null?void 0:Br.message)===DestinationContractIsPausedError.MESSAGE?Br.message:(Br==null?void 0:Br.message)===UnsupportedContractAbiVersion.MESSAGE?"Unsupported contract ABI version":(Br==null?void 0:Br.message)===InsufficientFundsForGasError.MESSAGE?InsufficientFundsForGasError.MESSAGE:"Error with transfer, please try again")}}}const Yn=reactExports.useCallback(async()=>{const Ir=config$2.tokens[Gn];if(!er||!Ir)return;const Pr=Ir.tokenId,Br=await estimateSendGas(er,Pr||"native",(Xn||0).toString(),Fn,dr.address,Hn,or.address,{relayerFee:hr,toNativeToken:vr});Dt(setSendingGasEst(Br))},[Gn,Xn,Fn,dr,Hn,or,vr,hr,Dt,er]),fr=Wn||!!Ar||config$2.previewMode,Cr=reactExports.useCallback(async()=>{if(!er||!Hn)return;const Ir=await estimateClaimGas(er,Hn,void 0);Dt(setClaimGasEst(Ir))},[Hn,er,Dt]);reactExports.useEffect(()=>{isTransferValid(Un)&&(Yn(),Cr())},[Un,Cr,Yn]),reactExports.useEffect(()=>{_r(dr.currentAddress.toLowerCase()===dr.address.toLowerCase())},[dr]);const yr=reactExports.useMemo(()=>{if(!er)return!1;const Ir=RouteOperator.getRoute(er);return!(Ir.AUTOMATIC_DEPOSIT||Hn&&isGatewayChain(Hn)||Hn==="sei"||isPorticoRoute(Ir.TYPE))},[er,Hn]);return jsxRuntimeExports.jsxs("div",{className:ht.body,children:[!!dt.valid&&jsxRuntimeExports.jsx(AlertBanner,{show:$n&&!!dt.valid&&yr,content:"This transfer requires two transactions: one on the source chain and one on the destination chain. You will need gas on the destination chain.",warning:!0,margin:"0 0 16px 0"}),jsxRuntimeExports.jsx(AlertBanner,{show:!!nr,content:nr,error:!0,margin:"0 0 16px 0",testId:"send-error-message"}),dt.valid&&!ur?jsxRuntimeExports.jsxs(Button,{disabled:!0,elevated:!0,children:["Connect to ",displayWalletAddress(dr.type,dr.address)]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:ht.tosDisclaimer,children:["By proceeding, you agree to the",jsxRuntimeExports.jsx("span",{className:ht.link,onClick:()=>Dt(setRoute("terms")),rel:"noreferrer",children:"Terms of Use"})]}),jsxRuntimeExports.jsx(Button,{onClick:tr,action:dt.valid,disabled:fr,testId:"approve-button",elevated:!0,children:Wn?jsxRuntimeExports.jsx(CircularProgress$1,{size:22}):"Approve and proceed with transaction"})]})]})}const useStyles$D=makeStyles()((dt,{align:ht,fontSize:Dt})=>({title:{fontSize:`${Dt}px`,width:"100%",textAlign:ht,fontFamily:dt.palette.font.header,[dt.breakpoints.down("sm")]:{fontSize:"24px"}}}));function Header$1(dt){const ht={align:dt.align||"center",fontSize:dt.size||42},{classes:Dt}=useStyles$D(ht);return jsxRuntimeExports.jsx("div",{className:Dt.title,"data-test-id":dt.testId,children:dt.text})}const MenuIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M3.75 6.75H20.25M3.75 12H20.25M12 17.25H20.25",fill:"none",stroke:"currentColor",strokeOpacity:"0.6",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Menu"),CloseIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12 0C5.38338 0 0 5.38338 0 12C0 18.6166 5.38338 24 12 24C18.6166 24 24 18.6166 24 12C24 5.38338 18.6166 0 12 0ZM12 1.84615C17.6188 1.84615 22.1538 6.38123 22.1538 12C22.1538 17.6188 17.6188 22.1538 12 22.1538C6.38123 22.1538 1.84615 17.6188 1.84615 12C1.84615 6.38123 6.38123 1.84615 12 1.84615ZM8.51077 7.18154L7.18154 8.51077L10.6745 12L7.18338 15.4892L8.51262 16.8185L12 13.3265L15.4892 16.8157L16.8185 15.4892L13.3265 12L16.8157 8.51077L15.4892 7.18154L12 10.6745L8.51077 7.18338V7.18154Z",fill:"currentColor",fillOpacity:"0.9"}),"Close"),useStyles$C=makeStyles()((dt,{width:ht})=>({dialog:{zIndex:10},container:{position:"relative",width:"100%",margin:"0 auto",display:"flex",justifyContent:"center"},modal:{width:"100%",maxWidth:`${ht}px`,margin:"40px auto",padding:"24px",textAlign:"center",position:"relative",[dt.breakpoints.down("sm")]:{margin:"20px auto",padding:"24px 12px"},maxHeight:"calc( 100vh - 80px )"},close:{position:"absolute",top:"28px",right:"28px",cursor:"pointer",opacity:"70%",zIndex:"10",[dt.breakpoints.down("sm")]:{top:"12px",right:"20px"}},background:{background:dt.palette.modal.background}}));function Modal({open:dt,width:ht,closable:Dt,children:Cn,onClose:$n}){const{classes:Un}=useStyles$C({width:ht}),Fn=reactExports.useCallback(Hn=>{Hn.stopPropagation()},[]);return reactExports.useEffect(()=>{const Hn=Gn=>{(Gn.keyCode===27||Gn.which===27)&&$n()};return document.addEventListener("keyup",Hn),()=>{document.removeEventListener("keyup",Hn)}},[]),jsxRuntimeExports.jsx(Dialog$1,{open:dt,sx:{borderRadius:8},className:Un.dialog,fullWidth:!0,fullScreen:!0,children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:Un.container,onClick:$n,children:[Dt&&jsxRuntimeExports.jsx(CloseIcon,{sx:{fontSize:32},className:Un.close,onClick:$n}),jsxRuntimeExports.jsx("div",{className:Un.modal,onClick:Fn,children:Cn})]})})})}function Spacer(dt){return jsxRuntimeExports.jsx("div",{style:{height:`${dt.height||24}px`}})}function WormholeLogo(dt){return jsxRuntimeExports.jsxs("svg",{width:"227",height:"24",viewBox:"0 0 227 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M1.23295 17V6.81818H4.6733C5.47206 6.81818 6.125 6.96236 6.6321 7.25071C7.14252 7.53575 7.52036 7.92188 7.76562 8.40909C8.01089 8.89631 8.13352 9.43987 8.13352 10.0398C8.13352 10.6397 8.01089 11.1849 7.76562 11.6754C7.52367 12.166 7.14915 12.5571 6.64205 12.8487C6.13494 13.1371 5.48532 13.2812 4.69318 13.2812H2.22727V12.1875H4.65341C5.20028 12.1875 5.63944 12.093 5.97088 11.9041C6.30232 11.7152 6.54261 11.46 6.69176 11.1385C6.84422 10.8137 6.92045 10.4474 6.92045 10.0398C6.92045 9.6321 6.84422 9.26752 6.69176 8.94602C6.54261 8.62453 6.30066 8.37263 5.96591 8.19034C5.63116 8.00473 5.18703 7.91193 4.63352 7.91193H2.46591V17H1.23295ZM12.9808 17.1591C12.2914 17.1591 11.6866 16.995 11.1662 16.6669C10.6491 16.3388 10.2448 15.8797 9.95312 15.2898C9.66477 14.6998 9.5206 14.0104 9.5206 13.2216C9.5206 12.4261 9.66477 11.7318 9.95312 11.1385C10.2448 10.5452 10.6491 10.0845 11.1662 9.75639C11.6866 9.42827 12.2914 9.2642 12.9808 9.2642C13.6702 9.2642 14.2734 9.42827 14.7905 9.75639C15.3108 10.0845 15.7152 10.5452 16.0036 11.1385C16.2952 11.7318 16.4411 12.4261 16.4411 13.2216C16.4411 14.0104 16.2952 14.6998 16.0036 15.2898C15.7152 15.8797 15.3108 16.3388 14.7905 16.6669C14.2734 16.995 13.6702 17.1591 12.9808 17.1591ZM12.9808 16.1051C13.5045 16.1051 13.9354 15.9709 14.2734 15.7024C14.6115 15.4339 14.8617 15.081 15.0241 14.6435C15.1866 14.206 15.2678 13.732 15.2678 13.2216C15.2678 12.7112 15.1866 12.2356 15.0241 11.7947C14.8617 11.3539 14.6115 10.9976 14.2734 10.7259C13.9354 10.4541 13.5045 10.3182 12.9808 10.3182C12.4571 10.3182 12.0263 10.4541 11.6882 10.7259C11.3501 10.9976 11.0999 11.3539 10.9375 11.7947C10.7751 12.2356 10.6939 12.7112 10.6939 13.2216C10.6939 13.732 10.7751 14.206 10.9375 14.6435C11.0999 15.081 11.3501 15.4339 11.6882 15.7024C12.0263 15.9709 12.4571 16.1051 12.9808 16.1051ZM19.7024 17L17.3757 9.36364H18.6087L20.2592 15.2102H20.3388L21.9695 9.36364H23.2223L24.8331 15.1903H24.9126L26.5632 9.36364H27.7962L25.4695 17H24.3161L22.6456 11.1335H22.5263L20.8558 17H19.7024ZM32.2892 17.1591C31.5534 17.1591 30.9187 16.9967 30.3851 16.6719C29.8548 16.3438 29.4455 15.8864 29.1571 15.2997C28.8721 14.7098 28.7296 14.0237 28.7296 13.2415C28.7296 12.4593 28.8721 11.7699 29.1571 11.1733C29.4455 10.5734 29.8465 10.1061 30.3603 9.77131C30.8773 9.43324 31.4805 9.2642 32.1699 9.2642C32.5676 9.2642 32.9604 9.33049 33.3482 9.46307C33.736 9.59564 34.089 9.81108 34.4071 10.1094C34.7253 10.4044 34.9789 10.7955 35.1678 11.2827C35.3567 11.7699 35.4512 12.3698 35.4512 13.0824V13.5795H29.5648V12.5653H34.258C34.258 12.1345 34.1718 11.75 33.9995 11.4119C33.8304 11.0739 33.5885 10.8071 33.2736 10.6115C32.9621 10.416 32.5942 10.3182 32.1699 10.3182C31.7026 10.3182 31.2982 10.4342 30.9569 10.6662C30.6188 10.8949 30.3586 11.1932 30.1763 11.5611C29.994 11.929 29.9029 12.3234 29.9029 12.7443V13.4205C29.9029 13.9972 30.0023 14.486 30.2012 14.8871C30.4033 15.2848 30.6834 15.5881 31.0414 15.7969C31.3993 16.0024 31.8153 16.1051 32.2892 16.1051C32.5975 16.1051 32.8759 16.062 33.1245 15.9759C33.3764 15.8864 33.5935 15.7538 33.7757 15.5781C33.958 15.3991 34.0989 15.1771 34.1983 14.9119L35.3319 15.2301C35.2125 15.6146 35.012 15.9527 34.7303 16.2443C34.4486 16.5327 34.1006 16.758 33.6863 16.9205C33.272 17.0795 32.8063 17.1591 32.2892 17.1591ZM37.236 17V9.36364H38.3695V10.517H38.449C38.5882 10.1392 38.8401 9.83262 39.2047 9.5973C39.5693 9.36198 39.9803 9.24432 40.4377 9.24432C40.5239 9.24432 40.6316 9.24597 40.7608 9.24929C40.8901 9.2526 40.9879 9.25758 41.0542 9.2642V10.4574C41.0144 10.4474 40.9232 10.4325 40.7807 10.4126C40.6415 10.3894 40.494 10.3778 40.3382 10.3778C39.967 10.3778 39.6356 10.4557 39.3439 10.6115C39.0556 10.764 38.8269 10.9761 38.6578 11.2479C38.4921 11.5163 38.4093 11.8229 38.4093 12.1676V17H37.236ZM45.4142 17.1591C44.6784 17.1591 44.0437 16.9967 43.5101 16.6719C42.9798 16.3438 42.5705 15.8864 42.2821 15.2997C41.9971 14.7098 41.8546 14.0237 41.8546 13.2415C41.8546 12.4593 41.9971 11.7699 42.2821 11.1733C42.5705 10.5734 42.9715 10.1061 43.4853 9.77131C44.0023 9.43324 44.6055 9.2642 45.2949 9.2642C45.6926 9.2642 46.0854 9.33049 46.4732 9.46307C46.861 9.59564 47.214 9.81108 47.5321 10.1094C47.8503 10.4044 48.1039 10.7955 48.2928 11.2827C48.4817 11.7699 48.5762 12.3698 48.5762 13.0824V13.5795H42.6898V12.5653H47.383C47.383 12.1345 47.2968 11.75 47.1245 11.4119C46.9554 11.0739 46.7135 10.8071 46.3986 10.6115C46.0871 10.416 45.7192 10.3182 45.2949 10.3182C44.8276 10.3182 44.4232 10.4342 44.0819 10.6662C43.7438 10.8949 43.4836 11.1932 43.3013 11.5611C43.119 11.929 43.0279 12.3234 43.0279 12.7443V13.4205C43.0279 13.9972 43.1273 14.486 43.3262 14.8871C43.5283 15.2848 43.8084 15.5881 44.1664 15.7969C44.5243 16.0024 44.9403 16.1051 45.4142 16.1051C45.7225 16.1051 46.0009 16.062 46.2495 15.9759C46.5014 15.8864 46.7185 15.7538 46.9007 15.5781C47.083 15.3991 47.2239 15.1771 47.3233 14.9119L48.4569 15.2301C48.3375 15.6146 48.137 15.9527 47.8553 16.2443C47.5736 16.5327 47.2256 16.758 46.8113 16.9205C46.397 17.0795 45.9313 17.1591 45.4142 17.1591ZM53.2445 17.1591C52.6081 17.1591 52.0463 16.9983 51.5591 16.6768C51.0719 16.352 50.6908 15.8946 50.4157 15.3047C50.1406 14.7114 50.003 14.0104 50.003 13.2017C50.003 12.3996 50.1406 11.7036 50.4157 11.1136C50.6908 10.5237 51.0736 10.0679 51.5641 9.74645C52.0546 9.42495 52.6214 9.2642 53.2644 9.2642C53.7615 9.2642 54.1543 9.34706 54.4426 9.51278C54.7343 9.67519 54.9564 9.8608 55.1088 10.0696C55.2646 10.2751 55.3856 10.4441 55.4718 10.5767H55.5712V6.81818H56.7445V17H55.611V15.8267H55.4718C55.3856 15.9659 55.263 16.1416 55.1039 16.3537C54.9448 16.5625 54.7177 16.7498 54.4228 16.9155C54.1278 17.0779 53.735 17.1591 53.2445 17.1591ZM53.4036 16.1051C53.8742 16.1051 54.272 15.9825 54.5968 15.7372C54.9216 15.4886 55.1685 15.1456 55.3375 14.7081C55.5066 14.2673 55.5911 13.7585 55.5911 13.1818C55.5911 12.6117 55.5082 12.1129 55.3425 11.6854C55.1768 11.2545 54.9315 10.9197 54.6067 10.6811C54.2819 10.4392 53.8809 10.3182 53.4036 10.3182C52.9064 10.3182 52.4921 10.4458 52.1607 10.701C51.8326 10.9529 51.5856 11.2959 51.4199 11.7301C51.2575 12.161 51.1763 12.6449 51.1763 13.1818C51.1763 13.7254 51.2592 14.2192 51.4249 14.6634C51.5939 15.1042 51.8425 15.4555 52.1706 15.7173C52.5021 15.9759 52.9131 16.1051 53.4036 16.1051ZM63.1529 17V6.81818H66.7125C67.4218 6.81818 68.0068 6.94081 68.4675 7.18608C68.9282 7.42803 69.2712 7.7545 69.4966 8.16548C69.722 8.57315 69.8347 9.02557 69.8347 9.52273C69.8347 9.96023 69.7568 10.3215 69.601 10.6065C69.4486 10.8916 69.2464 11.117 68.9945 11.2827C68.7459 11.4484 68.4758 11.571 68.1841 11.6506V11.75C68.4957 11.7699 68.8089 11.8793 69.1238 12.0781C69.4386 12.277 69.7021 12.562 69.9142 12.9332C70.1264 13.3045 70.2324 13.7585 70.2324 14.2955C70.2324 14.8059 70.1164 15.2649 69.8844 15.6726C69.6524 16.0803 69.2862 16.4034 68.7857 16.642C68.2852 16.8807 67.6339 17 66.8319 17H63.1529ZM64.3858 15.9062H66.8319C67.6373 15.9062 68.209 15.7505 68.5471 15.4389C68.8884 15.1241 69.0591 14.7429 69.0591 14.2955C69.0591 13.9508 68.9713 13.6326 68.7956 13.3409C68.62 13.0459 68.3697 12.8106 68.0449 12.6349C67.7201 12.456 67.3356 12.3665 66.8915 12.3665H64.3858V15.9062ZM64.3858 11.2926H66.6728C67.044 11.2926 67.3787 11.2197 67.677 11.0739C67.9786 10.928 68.2173 10.7225 68.3929 10.4574C68.5719 10.1922 68.6614 9.88068 68.6614 9.52273C68.6614 9.07528 68.5056 8.69579 68.1941 8.38423C67.8825 8.06937 67.3887 7.91193 66.7125 7.91193H64.3858V11.2926ZM72.8549 19.8636C72.6561 19.8636 72.4788 19.8471 72.323 19.8139C72.1672 19.7841 72.0595 19.7543 71.9998 19.7244L72.2981 18.6903C72.5832 18.7633 72.835 18.7898 73.0538 18.7699C73.2725 18.75 73.4664 18.6522 73.6355 18.4766C73.8078 18.3042 73.9653 18.0241 74.1078 17.6364L74.3265 17.0398L71.5027 9.36364H72.7754L74.8833 15.4489H74.9629L77.0708 9.36364H78.3436L75.1021 18.1136C74.9563 18.508 74.7756 18.8345 74.5602 19.093C74.3448 19.3549 74.0945 19.5488 73.8095 19.6747C73.5278 19.8007 73.2096 19.8636 72.8549 19.8636Z",fill:dt.color,fillOpacity:"0.6"}),jsxRuntimeExports.jsx("path",{d:"M133.698 7.32755L130.547 16.1698C130.533 16.2126 130.504 16.2492 130.466 16.2741C130.429 16.2989 130.383 16.3104 130.338 16.3069H130.099C130.054 16.3087 130.009 16.2965 129.971 16.2719C129.933 16.2474 129.903 16.2117 129.886 16.1698L127.524 9.96839L125.166 16.1698C125.15 16.2118 125.121 16.2476 125.084 16.2723C125.046 16.2969 125.001 16.309 124.956 16.3069H124.714C124.669 16.3094 124.624 16.2974 124.586 16.2727C124.549 16.248 124.52 16.212 124.505 16.1698L121.354 7.33064C121.305 7.19361 121.358 7.10844 121.492 7.10844H122.467C122.513 7.10384 122.559 7.1149 122.598 7.13982C122.636 7.16473 122.665 7.202 122.68 7.24548L124.926 13.9401L127.21 7.80911C127.226 7.76689 127.255 7.7309 127.294 7.70629C127.332 7.68168 127.377 7.6697 127.423 7.67207H127.628C127.673 7.66981 127.717 7.68189 127.755 7.70654C127.793 7.73119 127.821 7.76713 127.837 7.80911L130.188 13.9401L132.382 7.24548C132.397 7.202 132.426 7.16473 132.464 7.13982C132.503 7.1149 132.549 7.10384 132.595 7.10844H133.556C133.694 7.10844 133.746 7.19361 133.698 7.32755",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M147.413 11.6335C147.404 12.5442 147.124 13.432 146.608 14.1849C146.091 14.9379 145.362 15.5225 144.512 15.865C143.661 16.2075 142.728 16.2926 141.829 16.1096C140.93 15.9266 140.105 15.4837 139.46 14.8366C138.814 14.1896 138.375 13.3673 138.199 12.4735C138.024 11.5796 138.118 10.6541 138.471 9.81351C138.825 8.97292 139.421 8.25486 140.184 7.74975C140.948 7.24465 141.845 6.9751 142.763 6.97506C143.38 6.96645 143.992 7.0814 144.563 7.31303C145.134 7.54465 145.652 7.88819 146.086 8.3231C146.52 8.758 146.861 9.27533 147.089 9.84414C147.317 10.4129 147.427 11.0215 147.413 11.6335V11.6335ZM146.123 11.6335C146.123 9.48971 144.714 8.01328 142.763 8.01328C140.812 8.01328 139.403 9.48971 139.403 11.6335C139.403 13.7773 140.812 15.2537 142.763 15.2537C144.714 15.2537 146.123 13.7773 146.123 11.6335Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M159.728 15.791C159.758 15.8251 159.776 15.8674 159.781 15.9122C159.786 15.9571 159.777 16.0023 159.756 16.0421C159.734 16.0818 159.701 16.1142 159.661 16.1349C159.62 16.1556 159.575 16.1636 159.53 16.158H158.651C158.623 16.1571 158.595 16.1493 158.57 16.1351C158.545 16.1209 158.524 16.1008 158.509 16.0767L156.304 12.7754H153.935V15.973C153.934 16.022 153.915 16.069 153.88 16.1037C153.845 16.1384 153.797 16.1582 153.748 16.1588H152.89C152.84 16.158 152.793 16.1381 152.758 16.1034C152.724 16.0687 152.704 16.0219 152.703 15.973V7.29323C152.704 7.24433 152.724 7.19765 152.759 7.16299C152.793 7.12834 152.84 7.10842 152.89 7.10742H156.265C158.627 7.10742 159.793 8.3392 159.793 9.94105C159.808 10.5776 159.592 11.1982 159.186 11.6907C158.779 12.1833 158.209 12.5153 157.577 12.6268L159.728 15.791ZM156.024 11.7372C157.881 11.7372 158.505 10.9731 158.505 9.94182C158.505 8.91057 157.881 8.14642 156.024 8.14642H153.934V11.7372H156.024Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M174.242 6.96207H174.522C174.547 6.96048 174.572 6.96419 174.595 6.97297C174.619 6.98174 174.64 6.99538 174.658 7.01296C174.675 7.03054 174.689 7.05167 174.698 7.07493C174.707 7.0982 174.711 7.12307 174.709 7.14788V15.9739C174.711 15.9987 174.707 16.0236 174.698 16.0469C174.689 16.0701 174.675 16.0913 174.658 16.1088C174.64 16.1264 174.619 16.1401 174.595 16.1488C174.572 16.1576 174.547 16.1613 174.522 16.1597H173.664C173.639 16.1613 173.613 16.1576 173.59 16.1488C173.567 16.1401 173.545 16.1264 173.528 16.1088C173.51 16.0913 173.496 16.0701 173.487 16.0469C173.478 16.0236 173.475 15.9987 173.476 15.9739V9.70821L170.019 14.6748C170.007 14.6993 169.989 14.7201 169.966 14.7347C169.943 14.7493 169.917 14.7571 169.889 14.7571C169.862 14.7571 169.836 14.7493 169.813 14.7347C169.79 14.7201 169.772 14.6993 169.76 14.6748L166.303 9.70821V15.9732C166.305 15.998 166.301 16.0228 166.292 16.0461C166.284 16.0694 166.27 16.0905 166.252 16.1081C166.234 16.1257 166.213 16.1393 166.19 16.1481C166.166 16.1568 166.141 16.1606 166.116 16.159H165.258C165.233 16.1606 165.208 16.1568 165.184 16.1481C165.161 16.1393 165.14 16.1257 165.122 16.1081C165.104 16.0905 165.09 16.0694 165.082 16.0461C165.073 16.0228 165.069 15.998 165.071 15.9732V7.14711C165.069 7.12229 165.073 7.09743 165.082 7.07416C165.09 7.0509 165.104 7.02977 165.122 7.01219C165.14 6.9946 165.161 6.98097 165.184 6.9722C165.208 6.96342 165.233 6.9597 165.258 6.9613H165.535C165.581 6.96146 165.627 6.97308 165.668 6.99511C165.709 7.01713 165.743 7.04888 165.769 7.08749L169.888 12.7958L174.011 7.08749C174.035 7.04907 174.068 7.01734 174.108 6.99527C174.148 6.9732 174.193 6.96151 174.239 6.9613",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M188.578 7.29323V15.9722C188.577 16.0212 188.557 16.068 188.522 16.1027C188.488 16.1374 188.44 16.1572 188.391 16.158H187.533C187.483 16.1572 187.436 16.1374 187.401 16.1027C187.366 16.068 187.346 16.0212 187.346 15.9722V12.0183H181.668V15.9722C181.667 16.0212 181.647 16.068 181.612 16.1027C181.578 16.1374 181.53 16.1572 181.481 16.158H180.623C180.573 16.1572 180.526 16.1374 180.491 16.1027C180.456 16.068 180.436 16.0212 180.436 15.9722V7.29323C180.436 7.2442 180.456 7.1974 180.491 7.16273C180.526 7.12805 180.573 7.10822 180.623 7.10742H181.481C181.53 7.10822 181.578 7.12805 181.612 7.16273C181.647 7.1974 181.667 7.2442 181.668 7.29323V10.98H187.346V7.29323C187.346 7.2442 187.366 7.1974 187.401 7.16273C187.436 7.12805 187.483 7.10822 187.533 7.10742H188.391C188.44 7.10822 188.488 7.12805 188.522 7.16273C188.557 7.1974 188.577 7.2442 188.578 7.29323Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M203.167 11.6335C203.158 12.5442 202.878 13.432 202.361 14.1849C201.845 14.9379 201.116 15.5225 200.266 15.865C199.415 16.2075 198.482 16.2926 197.583 16.1096C196.684 15.9266 195.859 15.4837 195.213 14.8366C194.568 14.1896 194.129 13.3673 193.953 12.4735C193.777 11.5796 193.872 10.6541 194.225 9.81351C194.579 8.97292 195.175 8.25486 195.938 7.74975C196.702 7.24465 197.599 6.9751 198.517 6.97506C199.134 6.96645 199.746 7.0814 200.317 7.31303C200.888 7.54465 201.406 7.88819 201.84 8.3231C202.274 8.758 202.615 9.27533 202.843 9.84414C203.071 10.4129 203.181 11.0215 203.167 11.6335V11.6335ZM201.877 11.6335C201.877 9.48971 200.468 8.01328 198.517 8.01328C196.566 8.01328 195.157 9.48971 195.157 11.6335C195.157 13.7773 196.566 15.2537 198.517 15.2537C200.468 15.2537 201.877 13.7773 201.877 11.6335Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M214.912 15.3048V15.9722C214.914 15.997 214.91 16.0219 214.901 16.0451C214.892 16.0684 214.879 16.0895 214.861 16.1071C214.843 16.1247 214.822 16.1383 214.798 16.1471C214.775 16.1559 214.75 16.1596 214.725 16.158H208.644C208.595 16.1572 208.548 16.1374 208.513 16.1027C208.478 16.068 208.458 16.0212 208.457 15.9722V7.29323C208.458 7.2442 208.478 7.1974 208.513 7.16273C208.548 7.12805 208.595 7.10822 208.644 7.10742H209.502C209.552 7.10842 209.599 7.12834 209.633 7.16299C209.668 7.19765 209.688 7.24433 209.689 7.29323V15.119H214.727C214.752 15.1174 214.777 15.1211 214.801 15.1299C214.824 15.1387 214.846 15.1523 214.863 15.1699C214.881 15.1875 214.895 15.2086 214.904 15.2319C214.912 15.2551 214.916 15.28 214.915 15.3048",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M226.762 15.3052V15.9725C226.763 15.9973 226.759 16.0222 226.751 16.0455C226.742 16.0687 226.728 16.0899 226.71 16.1075C226.693 16.125 226.671 16.1387 226.648 16.1474C226.624 16.1562 226.599 16.1599 226.574 16.1583H220.008C219.958 16.1575 219.911 16.1377 219.876 16.103C219.841 16.0684 219.821 16.0216 219.82 15.9725V7.29359C219.821 7.24456 219.841 7.19776 219.876 7.16309C219.911 7.12841 219.958 7.10858 220.008 7.10778H226.425C226.45 7.10619 226.475 7.10991 226.499 7.11868C226.522 7.12746 226.544 7.14109 226.561 7.15867C226.579 7.17625 226.593 7.19738 226.602 7.22065C226.61 7.24391 226.614 7.26878 226.613 7.29359V7.96097C226.614 7.98578 226.61 8.01065 226.602 8.03391C226.593 8.05718 226.579 8.0783 226.561 8.09589C226.544 8.11347 226.522 8.1271 226.499 8.13588C226.475 8.14465 226.45 8.14837 226.425 8.14678H221.051V10.9804H225.828C225.852 10.9789 225.877 10.9825 225.9 10.991C225.923 10.9996 225.944 11.0129 225.962 11.03C225.979 11.0472 225.993 11.0679 226.002 11.0907C226.011 11.1135 226.015 11.1379 226.014 11.1623V11.8336C226.016 11.8583 226.012 11.883 226.003 11.9061C225.994 11.9292 225.98 11.9502 225.963 11.9677C225.945 11.9852 225.924 11.9987 225.901 12.0075C225.877 12.0163 225.853 12.0201 225.828 12.0186H221.051V15.1194H226.575C226.6 15.1178 226.625 15.1215 226.649 15.1302C226.672 15.139 226.693 15.1527 226.711 15.1702C226.729 15.1878 226.742 15.209 226.751 15.2322C226.76 15.2555 226.764 15.2803 226.762 15.3052",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M101.01 24C97.8272 23.998 94.7753 22.7335 92.5237 20.4839C90.2721 18.2344 89.0049 15.1835 89 12.0008C89.0049 8.81788 90.2721 5.76688 92.5236 3.51709C94.7751 1.2673 97.8271 0.00244275 101.01 0C104.193 0.00244275 107.245 1.2673 109.496 3.51709C111.748 5.76688 113.015 8.81788 113.02 12.0008C113.015 15.1835 111.748 18.2344 109.496 20.4839C107.245 22.7335 104.193 23.998 101.01 24ZM101.01 0.923847C98.072 0.925882 95.2548 2.09328 93.1764 4.1699C91.0981 6.24652 89.9283 9.06277 89.9238 12.0008C89.9267 14.9391 91.096 17.7562 93.1747 19.8329C95.2535 21.9096 98.0716 23.0762 101.01 23.0762C103.948 23.0762 106.767 21.9096 108.845 19.8329C110.924 17.7562 112.093 14.9391 112.096 12.0008C112.092 9.06277 110.922 6.24652 108.844 4.1699C106.765 2.09328 103.948 0.925882 101.01 0.923847V0.923847Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M102.528 22.103C99.891 22.101 97.3626 21.0531 95.4973 19.1892C93.632 17.3254 92.5822 14.7978 92.5781 12.1609C92.5822 9.52399 93.632 6.99637 95.4973 5.13252C97.3626 3.26867 99.891 2.22079 102.528 2.21875C105.165 2.22079 107.693 3.26867 109.559 5.13252C111.424 6.99637 112.474 9.52399 112.478 12.1609C112.474 14.7978 111.424 17.3254 109.559 19.1892C107.693 21.0531 105.165 22.101 102.528 22.103ZM102.528 2.93628C100.081 2.93831 97.7357 3.91065 96.0052 5.63998C94.2747 7.36931 93.3008 9.71443 93.2972 12.1609C93.3012 14.6071 94.2753 16.9518 96.0058 18.6808C97.7362 20.4098 100.082 21.3819 102.528 21.3839C104.974 21.3819 107.32 20.4098 109.05 18.6808C110.781 16.9518 111.755 14.6071 111.759 12.1609C111.755 9.7147 110.781 7.36996 109.05 5.64096C107.32 3.91196 104.974 2.93985 102.528 2.93782V2.93628Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M104.046 20.2045C101.955 20.2029 99.9501 19.3719 98.4711 17.894C96.992 16.4161 96.1595 14.4119 96.1562 12.321C96.1595 10.2301 96.992 8.22586 98.4711 6.74794C99.9501 5.27003 101.955 4.43913 104.046 4.4375C106.137 4.43872 108.142 5.26949 109.621 6.74749C111.1 8.22549 111.933 10.23 111.936 12.321C111.932 14.4119 111.1 16.4161 109.621 17.894C108.142 19.3719 106.137 20.2029 104.046 20.2045V20.2045ZM104.046 4.95023C102.091 4.95145 100.216 5.7282 98.8331 7.11004C97.4501 8.49189 96.6718 10.3659 96.669 12.321C96.6722 14.2758 97.4507 16.1494 98.8337 17.5309C100.217 18.9124 102.091 19.689 104.046 19.6902C106.001 19.689 107.875 18.9124 109.258 17.5309C110.641 16.1494 111.42 14.2758 111.423 12.321C111.42 10.3659 110.642 8.49189 109.259 7.11004C107.876 5.7282 106.001 4.95145 104.046 4.95023V4.95023Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M105.566 18.3055C104.021 18.3043 102.54 17.6904 101.447 16.5984C100.354 15.5064 99.7388 14.0256 99.7363 12.4807C99.7384 10.9355 100.353 9.45427 101.446 8.36196C102.539 7.26965 104.021 6.65552 105.566 6.6543C107.111 6.65552 108.593 7.26965 109.685 8.36196C110.778 9.45427 111.393 10.9355 111.395 12.4807C111.393 14.0256 110.778 15.5064 109.685 16.5984C108.592 17.6904 107.111 18.3043 105.566 18.3055V18.3055ZM105.566 6.96225C104.102 6.96347 102.699 7.54515 101.664 8.57971C100.629 9.61427 100.046 11.0172 100.044 12.4807C100.047 13.9439 100.629 15.3464 101.664 16.3806C102.7 17.4149 104.103 17.9964 105.566 17.9976C107.029 17.9964 108.432 17.4149 109.467 16.3806C110.502 15.3464 111.085 13.9439 111.087 12.4807C111.085 11.0172 110.503 9.61427 109.468 8.57971C108.433 7.54515 107.029 6.96347 105.566 6.96225Z",fill:dt.color})]})}const useStyles$B=makeStyles()(dt=>({container:{display:"flex",justifyContent:"center",flexDirection:"row"},partnerLogo:{maxHeight:dt.spacing(3)},separator:{paddingLeft:dt.spacing(1),paddingRight:dt.spacing(1)}}));function PartnerLogo(dt){const{classes:ht}=useStyles$B();return jsxRuntimeExports.jsx("img",{src:dt.src,alt:"partner",className:ht.partnerLogo})}function PoweredByIcon(dt){const{classes:ht}=useStyles$B();return config$2.partnerLogo?jsxRuntimeExports.jsxs(Box$1,{className:ht.container,children:[jsxRuntimeExports.jsx(WormholeLogo,{color:dt.color}),jsxRuntimeExports.jsx(Typography$1,{component:"span",className:ht.separator,children:"&"}),jsxRuntimeExports.jsx(PartnerLogo,{src:config$2.partnerLogo})]}):jsxRuntimeExports.jsx(WormholeLogo,{color:dt.color})}const useStyles$A=makeStyles()(()=>({menuIcon:ICON,menu:{display:"flex",flexDirection:"column",gap:"8px",padding:"8px"},menuItem:{padding:"16px 0",textAlign:"left",cursor:"pointer","&:hover":{textDecoration:"underline"}}}));function Menu(){const{classes:dt}=useStyles$A(),ht=useTheme(),Dt=useDispatch(),[Cn,$n]=reactExports.useState(!1),Un=Fn=>{Dt(setRoute(Fn)),$n(!1)};return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:dt.menuIcon,onClick:()=>$n(!0),children:jsxRuntimeExports.jsx(MenuIcon,{})}),jsxRuntimeExports.jsx(Modal,{open:Cn,closable:!0,width:650,onClose:()=>$n(!1),children:jsxRuntimeExports.jsxs("div",{className:dt.menu,children:[jsxRuntimeExports.jsx(PoweredByIcon,{color:ht.palette.text.primary}),jsxRuntimeExports.jsx(Spacer,{height:8}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("bridge"),children:"Bridge"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("search"),children:"Resume transaction"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("faq"),children:"FAQs"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("terms"),children:"Terms of Use"})]})})]})}const useStyles$z=makeStyles()((dt,{showHamburgerMenu:ht,align:Dt})=>({container:{width:"100%",display:"flex",flexDirection:"column",gap:"8px",marginBottom:ht?"40px":"0px",[dt.breakpoints.down("sm")]:{marginBottom:"20px"}},header:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%"},left:{display:"flex",flexGrow:1,alignItems:"center",textAlign:Dt},arrowBack:{transform:"rotate(90deg)",marginRight:"16px",cursor:"pointer"},description:{fontWeight:"300",fontSize:"14px",opacity:"0.6",marginBottom:ht?"0px":"40px"}}));function PageHeader({back:dt,title:ht,align:Dt="left",description:Cn,showHamburgerMenu:$n=!0,testId:Un}){const{classes:Fn}=useStyles$z({showHamburgerMenu:$n,align:Dt}),Hn=useDispatch();function Gn(){Hn(setRoute("bridge"))}return jsxRuntimeExports.jsxs("div",{className:Fn.container,children:[jsxRuntimeExports.jsxs("div",{className:Fn.header,children:[jsxRuntimeExports.jsxs("div",{className:Fn.left,children:[dt&&jsxRuntimeExports.jsx(DownIcon,{className:Fn.arrowBack,fontSize:"large",onClick:Gn}),jsxRuntimeExports.jsx(Header$1,{text:ht,align:Dt,testId:Un})]}),$n?jsxRuntimeExports.jsx(Menu,{}):null]}),Cn&&jsxRuntimeExports.jsx("div",{className:Fn.description,children:Cn})]})}const WalletIcon$1=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M21 12C21 11.4033 20.7629 10.831 20.341 10.409C19.919 9.98705 19.3467 9.75 18.75 9.75H15C15 10.5456 14.6839 11.3087 14.1213 11.8713C13.5587 12.4339 12.7956 12.75 12 12.75C11.2044 12.75 10.4413 12.4339 9.87868 11.8713C9.31607 11.3087 9 10.5456 9 9.75H5.25C4.65326 9.75 4.08097 9.98705 3.65901 10.409C3.23705 10.831 3 11.4033 3 12M21 12V18C21 18.5967 20.7629 19.169 20.341 19.591C19.919 20.0129 19.3467 20.25 18.75 20.25H5.25C4.65326 20.25 4.08097 20.0129 3.65901 19.591C3.23705 19.169 3 18.5967 3 18V12M21 12V9M3 12V9M21 9C21 8.40326 20.7629 7.83097 20.341 7.40901C19.919 6.98705 19.3467 6.75 18.75 6.75H5.25C4.65326 6.75 4.08097 6.98705 3.65901 7.40901C3.23705 7.83097 3 8.40326 3 9M21 9V6C21 5.40326 20.7629 4.83097 20.341 4.40901C19.919 3.98705 19.3467 3.75 18.75 3.75H5.25C4.65326 3.75 4.08097 3.98705 3.65901 4.40901C3.23705 4.83097 3 5.40326 3 6V9",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Wallet"),useStyles$y=makeStyles()((dt,{size:ht})=>({container:{height:ht,width:ht,...CENTER},icon:{maxHeight:"100%",maxWidth:"100%"}}));function WalletIcon(dt){const ht=dt.height||32,{classes:Dt}=useStyles$y({size:ht}),{icon:Cn,name:$n}=dt;return jsxRuntimeExports.jsx("div",{className:Dt.container,children:Cn&&jsxRuntimeExports.jsx("img",{className:Dt.icon,src:Cn,alt:$n})})}function useEvent(dt){if(typeof window>"u")return dt;const ht=reactExports.useRef(null);return reactExports.useLayoutEffect(()=>{ht.current=dt}),reactExports.useCallback((...Dt)=>{var Cn;(Cn=ht.current)===null||Cn===void 0||Cn.call(ht,...Dt)},[])}const printedWarnings={};function warn(dt,ht){printedWarnings[dt]||(printedWarnings[dt]=!0,console.error("[material-ui-popup-state] WARNING",ht))}const initCoreState={isOpen:!1,setAnchorElUsed:!1,anchorEl:void 0,anchorPosition:void 0,hovered:!1,focused:!1,_openEventType:null,_childPopupState:null,_deferNextOpen:!1,_deferNextClose:!1};function usePopupState({parentPopupState:dt,popupId:ht,variant:Dt,disableAutoFocus:Cn}){const $n=reactExports.useRef(!0);reactExports.useEffect(()=>($n.current=!0,()=>{$n.current=!1}),[]);const[Un,Fn]=reactExports.useState(initCoreState),Hn=reactExports.useCallback(or=>{$n.current&&Fn(or)},[]),Gn=reactExports.useCallback(or=>Hn(sr=>({...sr,setAnchorElUsed:!0,anchorEl:or??void 0})),[]),Qn=useEvent(or=>(Un.isOpen?Wn(or):qn(or),Un)),qn=useEvent(or=>{const sr=or instanceof Element?void 0:or,vr=or instanceof Element?or:(or==null?void 0:or.currentTarget)instanceof Element?or.currentTarget:void 0;if((sr==null?void 0:sr.type)==="touchstart"){Hn(nr=>({...nr,_deferNextOpen:!0}));return}const hr=sr==null?void 0:sr.clientX,gr=sr==null?void 0:sr.clientY,ur=typeof hr=="number"&&typeof gr=="number"?{left:hr,top:gr}:void 0,_r=nr=>{if(!or&&!nr.setAnchorElUsed&&Dt!=="dialog"&&warn("missingEventOrAnchorEl","eventOrAnchorEl should be defined if setAnchorEl is not used"),dt){if(!dt.isOpen)return nr;setTimeout(()=>dt._setChildPopupState(dr))}const Sr={...nr,isOpen:!0,anchorPosition:ur,hovered:(sr==null?void 0:sr.type)==="mouseover"||nr.hovered,focused:(sr==null?void 0:sr.type)==="focus"||nr.focused,_openEventType:sr==null?void 0:sr.type};return sr!=null&&sr.currentTarget?nr.setAnchorElUsed||(Sr.anchorEl=sr==null?void 0:sr.currentTarget):vr&&(Sr.anchorEl=vr),Sr};Hn(nr=>nr._deferNextOpen?(setTimeout(()=>Hn(_r),0),{...nr,_deferNextOpen:!1}):_r(nr))}),er=or=>{const{_childPopupState:sr}=or;return setTimeout(()=>{sr==null||sr.close(),dt==null||dt._setChildPopupState(null)}),{...or,isOpen:!1,hovered:!1,focused:!1}},Wn=useEvent(or=>{const sr=or instanceof Element?void 0:or;if((sr==null?void 0:sr.type)==="touchstart"){Hn(vr=>({...vr,_deferNextClose:!0}));return}Hn(vr=>vr._deferNextClose?(setTimeout(()=>Hn(er),0),{...vr,_deferNextClose:!1}):er(vr))}),jn=reactExports.useCallback((or,sr)=>{or?qn(sr):Wn(sr)},[]),Zn=useEvent(or=>{const{relatedTarget:sr}=or;Hn(vr=>vr.hovered&&!(sr instanceof Element&&isElementInPopup(sr,dr))?vr.focused?{...vr,hovered:!1}:er(vr):vr)}),Xn=useEvent(or=>{if(!or)return;const{relatedTarget:sr}=or;Hn(vr=>vr.focused&&!(sr instanceof Element&&isElementInPopup(sr,dr))?vr.hovered?{...vr,focused:!1}:er(vr):vr)}),ar=reactExports.useCallback(or=>Hn(sr=>({...sr,_childPopupState:or})),[]),dr={...Un,setAnchorEl:Gn,popupId:ht,variant:Dt,open:qn,close:Wn,toggle:Qn,setOpen:jn,onBlur:Xn,onMouseLeave:Zn,disableAutoFocus:Cn??!!(Un.hovered||Un.focused),_setChildPopupState:ar};return dr}function controlAriaProps({isOpen:dt,popupId:ht,variant:Dt}){return{...Dt==="popover"?{"aria-haspopup":!0,"aria-controls":dt&&ht!=null?ht:void 0}:Dt==="popper"?{"aria-describedby":dt&&ht!=null?ht:void 0}:void 0}}function bindTrigger(dt){return{...controlAriaProps(dt),onClick:dt.open,onTouchStart:dt.open}}function bindPopover({isOpen:dt,anchorEl:ht,anchorPosition:Dt,close:Cn,popupId:$n,onMouseLeave:Un,disableAutoFocus:Fn,_openEventType:Hn}){return{id:$n,anchorEl:ht,anchorPosition:Dt,anchorReference:Hn==="contextmenu"?"anchorPosition":"anchorEl",open:dt,onClose:Cn,onMouseLeave:Un,...Fn&&{disableAutoFocus:!0,disableEnforceFocus:!0,disableRestoreFocus:!0}}}function getPopup(dt,{popupId:ht}){if(!ht)return null;const Dt=typeof dt.getRootNode=="function"?dt.getRootNode():document;return typeof Dt.getElementById=="function"?Dt.getElementById(ht):null}function isElementInPopup(dt,ht){const{anchorEl:Dt,_childPopupState:Cn}=ht;return isAncestor(Dt,dt)||isAncestor(getPopup(dt,ht),dt)||Cn!=null&&isElementInPopup(dt,Cn)}function isAncestor(dt,ht){if(!dt)return!1;for(;ht;){if(ht===dt)return!0;ht=ht.parentElement}return!1}function PopupState({children:dt,popupId:ht,variant:Dt,parentPopupState:Cn,disableAutoFocus:$n}){const Un=usePopupState({popupId:ht,variant:Dt,parentPopupState:Cn,disableAutoFocus:$n}),Fn=dt(Un);return Fn??null}PopupState.propTypes={children:PropTypes.func.isRequired,popupId:PropTypes.string,variant:PropTypes.oneOf(["popover","popper"]).isRequired,parentPopupState:PropTypes.object,disableAutoFocus:PropTypes.bool};const useStyles$x=makeStyles()((dt,{disabled:ht})=>({connectWallet:{display:"flex",alignItems:"center",justifyContent:"end",gap:"8px",padding:"8px 16px",borderRadius:"8px",backgroundColor:dt.palette.button.primary,cursor:ht?"not-allowed":"pointer",opacity:ht?.7:1},walletIcon:{width:"24px",height:"24px"},down:{marginRight:"-8px"},dropdown:{backgroundColor:dt.palette.popover.background,display:"flex",flexDirection:"column",gap:"8px",padding:"8px",width:"175px"},dropdownItem:{borderRadius:"8px",padding:"16px",cursor:"pointer","&:hover":{backgroundColor:dt.palette.popover.secondary}}}));function ExplorerLink$1({address:dt,href:ht,target:Dt="_blank",label:Cn="Transactions"}){const{classes:$n}=useStyles$x({disabled:!1}),Un=()=>window.open(ht.replace("{:address}",dt),Dt);return jsxRuntimeExports.jsx("div",{className:$n.dropdownItem,onClick:Un,children:Cn})}function ConnectWallet(dt){const{disabled:ht=!1,type:Dt}=dt,{classes:Cn}=useStyles$x({disabled:ht}),$n=useTheme(),Un=useDispatch(),Fn=useMediaQuery($n.breakpoints.down("sm")),Hn=useSelector(er=>er.wallet[Dt]),Gn=async er=>{ht||(er&&er.close(),Un(setWalletModal(Dt)))},Qn=async er=>{await copyTextToClipboard(Hn.address),er.close()},qn=async()=>{Un(disconnectWallet(Dt))};if(Hn&&Hn.address)return jsxRuntimeExports.jsx(PopupState,{variant:"popover",popupId:"demo-popup-popover",children:er=>{const{onClick:Wn,...jn}=bindTrigger(er),Zn=Xn=>{ht||Wn(Xn)};return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:Cn.connectWallet,onClick:Zn,...jn,children:[jsxRuntimeExports.jsx(WalletIcon,{name:Hn.name,icon:Hn.icon,height:24}),displayWalletAddress(Hn.type,Hn.address),!ht&&jsxRuntimeExports.jsx(DownIcon,{className:Cn.down})]}),jsxRuntimeExports.jsx(Popover$1,{...bindPopover(er),sx:{marginTop:1},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:Cn.dropdown,children:[jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:()=>Qn(er),children:"Copy address"}),config$2.explorer?jsxRuntimeExports.jsx(ExplorerLink$1,{address:Hn.address,href:config$2.explorer.href,target:config$2.explorer.target,label:config$2.explorer.label}):null,jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:()=>Gn(er),children:"Change wallet"}),jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:qn,children:"Disconnect"})]})})})]})}});{const er=jsxRuntimeExports.jsxs("div",{className:Cn.connectWallet,onClick:()=>Gn(),"data-testid":`${dt.side}-section-connect-wallet-button`,children:[jsxRuntimeExports.jsx(WalletIcon$1,{}),jsxRuntimeExports.jsx("div",{children:Fn?"Connect":"Connect wallet"})]});return ht?jsxRuntimeExports.jsx(Tooltip$1,{title:"Please select a network first",children:er}):er}}const useStyles$w=makeStyles()(dt=>({chainTile:{backgroundColor:dt.palette.card.secondary,borderRadius:"8px",padding:dt.spacing(1.5),display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",cursor:"pointer",textAlign:"center",gap:dt.spacing(1.5)},chainIcon:{width:"56px",height:"56px"},chainHeader:{fontSize:"16px",opacity:"60%"},chainName:{fontSize:"16px"},error:ERROR_BORDER(dt)}));function ChainTile(dt){var $n,Un;const{disabled:ht=!1}=dt,{classes:Dt}=useStyles$w(),Cn=Fn=>{ht||dt.onClick(Fn)};return jsxRuntimeExports.jsxs("div",{className:joinClass([Dt.chainTile,!!dt.error&&Dt.error]),onClick:Cn,children:[dt.chain?jsxRuntimeExports.jsx("div",{className:Dt.chainHeader,children:"Network"}):null,jsxRuntimeExports.jsx(TokenIcon,{icon:($n=dt.chain)==null?void 0:$n.icon,height:56}),jsxRuntimeExports.jsx("div",{className:Dt.chainName,children:((Un=dt.chain)==null?void 0:Un.displayName)||"Select network"})]})}function ValidationError(dt){const ht=useSelector(Fn=>Fn.transferInput.showValidationState),Dt=dt.validations.filter(Fn=>!!Fn),Cn=Dt.length>0,$n=Dt[0],Un=(dt.forceShow||ht)&&Cn;return jsxRuntimeExports.jsx(AlertBanner,{show:Un,content:$n,error:!0,margin:dt.margin})}const useStyles$v=makeStyles()((dt,{cursorStyle:ht})=>({inputField:{display:"flex",flexDirection:"column",justifyContent:"space-between",borderRadius:"8px",width:"100%",padding:"12px",cursor:"default"},editable:{backgroundColor:dt.palette.card.secondary},enabled:{cursor:ht||"pointer"},label:{fontSize:"14px",color:dt.palette.text.secondary,marginBottom:"4px"},content:{overflow:"hidden"},error:ERROR_BORDER(dt)}));function Input(dt){const{classes:ht}=useStyles$v({cursorStyle:dt.cursor}),Dt=[ht.inputField,!!dt.error&&ht.error,!!dt.editable&&ht.editable,!dt.disabled&&ht.enabled];return jsxRuntimeExports.jsxs("div",{className:joinClass(Dt),onClick:dt.onClick,children:[jsxRuntimeExports.jsx("div",{className:ht.label,children:dt.label}),jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})]})}const useStyles$u=makeStyles()(dt=>({select:{display:"flex",alignItems:"center",gap:"8px"},secondaryText:{opacity:"0.6",fontSize:"13px",[dt.breakpoints.down("sm")]:{display:"none"}}}));function Select(dt){const{classes:ht}=useStyles$u(),{selected:Dt}=dt,Cn=()=>{dt.editable&&!dt.disabled&&dt.onClick()};return jsxRuntimeExports.jsx(Input,{label:dt.label,error:dt.error,editable:dt.editable,disabled:dt.disabled,onClick:Cn,children:Dt?jsxRuntimeExports.jsxs("div",{className:ht.select,"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Dt.icon,height:24}),Dt.text,Dt.secondaryText&&jsxRuntimeExports.jsx("div",{className:ht.secondaryText,children:Dt.secondaryText})]}):dt.disabled?NO_INPUT:jsxRuntimeExports.jsxs("div",{className:ht.select,"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(TokenIcon,{height:24}),"Select"]})})}const useStyles$t=makeStyles()(dt=>({outerContainer:{display:"flex",flexDirection:"column"},container:{width:"100%",display:"flex",flexDirection:"column",gap:dt.spacing(1.5)},errorContainer:{width:"100%"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:dt.spacing(0,1.5),[dt.breakpoints.down("sm")]:{padding:"0"}},headerTitle:{fontSize:"16px",fontWeight:"bold"},content:{display:"grid",gridTemplateColumns:"158px 1fr",gridTemplateRows:"1fr",gridTemplateAreas:'"chain inputs"',width:"100%",maxWidth:"100%",[dt.breakpoints.down("sm")]:{gridTemplateColumns:"1fr !important",gridTemplateAreas:'"inputs" !important'}},chain:{gridArea:"chain"},inputs:{gridArea:"inputs",display:"flex",flexDirection:"column",gap:dt.spacing(1.5),width:"100%",paddingLeft:dt.spacing(1.5),[dt.breakpoints.down("sm")]:{paddingLeft:"0"}},chainRow:{display:"flex",flexDirection:"row",gap:dt.spacing(1.5)},chainSmall:{display:"block",width:"40%"},token:{width:"100%",[dt.breakpoints.down("sm")]:{width:"60%"}},amtRow:{display:"grid",gridTemplateColumns:"1fr 120px",gridTemplateRows:"1fr",gridTemplateAreas:'"amount balance"',maxWidth:"100%"},amount:{gridArea:"amount",overflow:"hidden"},balance:{gridArea:"balance",backgroundColor:"transparent"}}));function Inputs(dt){const{classes:ht}=useStyles$t(),{showValidationState:Dt,isTransactionInProgress:Cn}=useSelector(er=>er.transferInput),$n=dt.chain&&config$2.chains[dt.chain],Un=$n?{icon:$n.icon,text:$n.displayName}:void 0,Fn=useTheme(),Hn=useMediaQuery(Fn.breakpoints.down("sm")),Gn=reactExports.useMemo(()=>dt.balance&&dt.tokenPrice?getUSDFormat(Number.parseFloat(`${dt.balance}`)*dt.tokenPrice):"",[dt.tokenPrice,dt.balance]),Qn={source:"From",destination:"To"}[dt.side],qn=dt.side+"-section-select-network-button";return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:ht.errorContainer,children:[jsxRuntimeExports.jsxs("div",{className:ht.header,children:[jsxRuntimeExports.jsx("div",{className:ht.headerTitle,children:Qn}),jsxRuntimeExports.jsx(ConnectWallet,{side:dt.side,type:dt.wallet,disabled:Cn||!Un})]}),dt.walletError?jsxRuntimeExports.jsx(AlertBanner,{show:!!dt.walletError,content:dt.walletError,error:!0,margin:"12px 0 0 0"}):jsxRuntimeExports.jsx(ValidationError,{validations:dt.walletValidations,margin:"12px 0 0 0"})]}),jsxRuntimeExports.jsx(InputContainer,{children:jsxRuntimeExports.jsxs("div",{className:ht.outerContainer,children:[jsxRuntimeExports.jsxs("div",{className:ht.content,children:[!Hn&&jsxRuntimeExports.jsx("div",{className:ht.chain,"data-testid":qn,children:jsxRuntimeExports.jsx(ChainTile,{chain:$n,error:!!(Dt&&dt.chainValidation),onClick:dt.onChainClick,disabled:Cn})}),jsxRuntimeExports.jsxs("div",{className:ht.inputs,children:[jsxRuntimeExports.jsxs("div",{className:ht.chainRow,children:[Hn&&jsxRuntimeExports.jsx("div",{className:ht.chainSmall,children:jsxRuntimeExports.jsx(Select,{label:"Network",selected:Un,error:!!(Dt&&dt.chainValidation),onClick:dt.onChainClick,editable:!0,disabled:Cn})}),jsxRuntimeExports.jsx("div",{className:ht.token,children:dt.tokenInput})]}),jsxRuntimeExports.jsxs("div",{className:ht.amtRow,children:[jsxRuntimeExports.jsx("div",{className:ht.amount,children:dt.amountInput}),jsxRuntimeExports.jsx("div",{className:ht.balance,"data-testid":`${dt.side}-section-balance-text`,children:jsxRuntimeExports.jsx(Input,{label:"Balance",disabled:!0,children:jsxRuntimeExports.jsx("div",{children:dt.balance?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{children:dt.balance}),jsxRuntimeExports.jsx(Price,{children:Gn})]}):NO_INPUT})})})]})]})]}),jsxRuntimeExports.jsx(ValidationError,{validations:dt.inputValidations,margin:"12px 0 0 0"}),dt.warning&&dt.warning]})})]})}const useStyles$s=makeStyles()((dt,{align:ht})=>({input:{width:"100%",border:"none",backgroundImage:"none",backgroundColor:"transparent",background:"transparent",fontSize:"inherit",boxShadow:"none",webkitBoxShadow:"none",moxBoxShadow:"none",outline:"none",flexGrow:"1",textAlign:ht||"left"}})),NUMBER_FORMAT_REGEX=/^\d*\.?\d*$/,NUMBER_REPLACE_REGEX=/[^0-9.]/g;function InputTransparent(dt){const{classes:ht}=useStyles$s({align:dt.align}),Dt=$n=>{dt.type==="number"&&!NUMBER_FORMAT_REGEX.test($n.target.value)&&($n.target.value=$n.target.value.replace(NUMBER_REPLACE_REGEX,"")),dt.onChange&&dt.onChange($n)},Cn=$n=>{$n.key==="Enter"&&dt.onEnter&&dt.onEnter($n)};return jsxRuntimeExports.jsx("input",{ref:dt.inputRef,id:dt.id,className:ht.input,placeholder:dt.placeholder,min:dt.min,max:dt.max,step:dt.step,onChange:Dt,onKeyDown:Cn,readOnly:dt.disabled,value:dt.value,"data-testid":dt.testId})}function AmountInput(dt){const ht=reactExports.useRef(null),{showValidationState:Dt,validations:Cn,token:$n,isTransactionInProgress:Un}=useSelector(er=>er.transferInput),{usdPrices:{data:Fn}}=useSelector(er=>er.tokenPrices),Hn=Fn||{};function Gn(er){let Wn=er.target.value;const jn=Wn.indexOf(".");jn>0&&Wn.length-jn-8>0&&(Wn=toFixedDecimals(Wn,8)),dt.handleAmountChange(Wn)}const Qn=()=>{ht.current&&ht.current.focus()},qn=reactExports.useMemo(()=>{const er=getTokenPrice(Hn,config$2.tokens[$n])||0;if(er)return getUSDFormat(Number(dt.value)*er)},[dt.value,$n,Hn]);return jsxRuntimeExports.jsx(Input,{label:dt.label??"Amount",error:!!(Dt&&Cn.amount),editable:!0,disabled:!0,onClick:Qn,cursor:"text",children:$n?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(InputTransparent,{inputRef:ht,placeholder:"0.00",type:"number",min:0,step:.1,onChange:Gn,disabled:Un||dt.disabled,value:dt.value,testId:dt.side+"-section-amount-input"}),qn&&jsxRuntimeExports.jsx(Price,{children:qn})]}):jsxRuntimeExports.jsx("div",{children:NO_INPUT})})}var OpenInNew={},createSvgIcon={};const require$$0=getAugmentedNamespace(utils);var hasRequiredCreateSvgIcon;function requireCreateSvgIcon(){return hasRequiredCreateSvgIcon||(hasRequiredCreateSvgIcon=1,function(dt){"use client";Object.defineProperty(dt,"__esModule",{value:!0}),Object.defineProperty(dt,"default",{enumerable:!0,get:function(){return ht.createSvgIcon}});var ht=require$$0}(createSvgIcon)),createSvgIcon}var _interopRequireDefault$3=interopRequireDefaultExports;Object.defineProperty(OpenInNew,"__esModule",{value:!0});var default_1$3=OpenInNew.default=void 0,_createSvgIcon$3=_interopRequireDefault$3(requireCreateSvgIcon()),_jsxRuntime$3=jsxRuntimeExports,_default$3=(0,_createSvgIcon$3.default)((0,_jsxRuntime$3.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"OpenInNew");default_1$3=OpenInNew.default=_default$3;const WORMSCAN="https://wormholescan.io/#/",AVAILABLE_MARKETS_URL="https://portalbridge.com/docs/faqs/liquid-markets/",useStyles$r=makeStyles()((dt,{blendColor:ht})=>({anchor:{position:"relative",width:"100%"},scrollContainer:{width:"100%",height:"calc(100% - 48px)",overflowY:"scroll",overflowX:"hidden",padding:0},fadeOverlay:{position:"absolute",left:"0",right:"0",bottom:"0",height:"40px",zIndex:"5",backgroundImage:`linear-gradient(${ht+OPACITY[0]} 0%, ${ht+OPACITY[100]} 100%)`,pointerEvents:"none"},fadeOverlayTop:{position:"absolute",left:"0",right:"0",top:"0",height:"8px",zIndex:"5",backgroundImage:`linear-gradient(${ht+OPACITY[100]} 0%, ${ht+OPACITY[0]} 100%)`,pointerEvents:"none"},content:{padding:"8px 0 16px 0"}}));function Scroll(dt){const{classes:ht}=useStyles$r({blendColor:dt.blendColor});return jsxRuntimeExports.jsx("div",{className:ht.anchor,children:jsxRuntimeExports.jsxs("div",{className:ht.scrollContainer,style:{maxHeight:dt.height},children:[jsxRuntimeExports.jsx("div",{className:ht.fadeOverlayTop}),jsxRuntimeExports.jsx("div",{className:ht.fadeOverlay}),jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})]})})}const SearchIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M21.0008 21.0008L15.8038 15.8038M15.8038 15.8038C17.2104 14.3972 18.0006 12.4895 18.0006 10.5003C18.0006 8.51108 17.2104 6.60336 15.8038 5.19678C14.3972 3.79021 12.4895 3 10.5003 3C8.51108 3 6.60336 3.79021 5.19678 5.19678C3.79021 6.60336 3 8.51108 3 10.5003C3 12.4895 3.79021 14.3972 5.19678 15.8038C6.60336 17.2104 8.51108 18.0006 10.5003 18.0006C12.4895 18.0006 14.3972 17.2104 15.8038 15.8038V15.8038Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Search"),useStyles$q=makeStyles()(dt=>({searchContent:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},container:{width:"100%",padding:"16px",borderRadius:"8px",backgroundColor:dt.palette.card.secondary},input:{flexGrow:1},searchBorder:{border:`1px solid ${changeOpacity(dt.palette.divider,50)}`,borderRadius:"8px"},clickable:{cursor:"pointer"}}));function Search(dt){const{classes:ht}=useStyles$q(),Dt=reactExports.useRef(null),Cn=()=>{Dt.current&&Dt.current.focus()};return reactExports.useEffect(()=>{Cn()},[]),jsxRuntimeExports.jsx("div",{className:ht.searchBorder,children:jsxRuntimeExports.jsx("div",{className:ht.container,onClick:Cn,children:jsxRuntimeExports.jsxs("div",{className:ht.searchContent,children:[jsxRuntimeExports.jsx("div",{className:ht.input,children:jsxRuntimeExports.jsx(InputTransparent,{value:dt.value,inputRef:Dt,placeholder:dt.placeholder,onChange:dt.onChange,onEnter:dt.onSearch})}),jsxRuntimeExports.jsx("div",{onClick:dt.onSearch,className:dt.onSearch&&ht.clickable,children:jsxRuntimeExports.jsx(SearchIcon,{})})]})})})}const useStyles$p=makeStyles()(dt=>({tabs:{display:"flex",flexDirection:"row",justifyContext:"space-between"},tab:{flexGrow:1}}));function CustomTabPanel(dt){const{children:ht,value:Dt,index:Cn,...$n}=dt;return jsxRuntimeExports.jsx("div",{role:"tabpanel",hidden:Dt!==Cn,id:`simple-tabpanel-${Cn}`,"aria-labelledby":`simple-tab-${Cn}`,...$n,children:Dt===Cn&&jsxRuntimeExports.jsx(Box$1,{sx:{py:3},children:ht})})}function a11yProps(dt){return{id:`simple-tab-${dt}`,"aria-controls":`simple-tabpanel-${dt}`}}function BasicTabs(dt){const{tabs:ht}=dt,{classes:Dt}=useStyles$p(),Cn=useTheme(),[$n,Un]=reactExports.useState(0),Fn=(Hn,Gn)=>{Un(Gn)};return jsxRuntimeExports.jsxs(Box$1,{sx:{width:"100%"},children:[jsxRuntimeExports.jsx(Box$1,{sx:{borderBottom:1,borderColor:`${Cn.palette.divider}`},children:jsxRuntimeExports.jsx(Tabs$1,{value:$n,onChange:Fn,className:Dt.tabs,children:ht.map((Hn,Gn)=>reactExports.createElement(Tab$1,{label:Hn.label,...a11yProps(Gn),className:Dt.tab,key:`tab${Gn}`}))})}),ht.map((Hn,Gn)=>jsxRuntimeExports.jsx(CustomTabPanel,{value:$n,index:Gn,children:Hn.panel},`panel${Gn}`))]})}const useStyles$o=makeStyles()(dt=>({tokensContainer:{display:"flex",flexDirection:"column"},noResults:{...CENTER,minHeight:"72px"},tokenRow:{position:"relative",display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"16px 8px",transition:"background-color 0.4s",cursor:"pointer","&:hover":{backgroundColor:dt.palette.options.select},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},moreTokensRow:{textDecoration:"none",color:"inherit"},tokenRowLeft:{display:"flex",alignItems:"center",fontSize:"14px",gap:"8px",textAlign:"left"},tokenRowRight:{display:"flex",flexDirection:"column",alignItems:"right",textAlign:"right"},tokenRowBalanceText:{opacity:"60%",fontSize:"12px"},tokenRowBalance:{fontSize:"14px"},tokenRowAddressContainer:{width:"100%",position:"absolute",fontSize:"14px",display:"flex",justifyContent:"center",alignItems:"center"},tokenRowAddress:{width:"100px",textAlign:"left",opacity:"60%"},nativeChain:{opacity:"60%"},loading:{display:"flex",justifyContent:"center",alignItems:"center",height:"72px"},moreTokens:{textTransform:"none",marginTop:"66px",minHeight:"64px",minWidth:"193px",backgroundColor:dt.palette.button.primary},iconButton:{width:"32px",height:"32px",color:dt.palette.modal.background,backgroundColor:dt.palette.button.primaryText,"&:hover":{backgroundColor:dt.palette.button.primaryText},borderRadius:"100%"},iconOpenInNew:{width:"19px",height:"19px"},moreTokensLabel:{marginRight:"16px"},noWrap:{whiteSpace:"nowrap"}})),displayNativeChain=dt=>{const ht=config$2.chains[dt.nativeChain];return ht?ht.displayName:""};function DisplayTokens(dt){const{classes:ht}=useStyles$o(),Dt=useTheme(),{tokens:Cn,balances:$n,walletAddress:Un,chain:Fn,selectToken:Hn,loading:Gn,search:Qn,moreTokens:qn=()=>{}}=dt,er=jn=>!Fn||!Un?!1:!!(!$n||$n&&$n[jn]!==null),Wn=reactExports.useMemo(()=>sortTokens(Cn,Fn),[Cn,Fn]);return jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 375px)",blendColor:Dt.palette.modal.background,children:jsxRuntimeExports.jsx("div",{className:ht.tokensContainer,children:Wn.length>0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Wn.map(jn=>jsxRuntimeExports.jsxs("div",{className:ht.tokenRow,onClick:()=>Hn(jn.key),children:[jsxRuntimeExports.jsxs("div",{className:ht.tokenRowLeft,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:jn.icon,height:32}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{children:jn.symbol}),jsxRuntimeExports.jsx("div",{className:ht.nativeChain,children:displayNativeChain(jn)})]})]}),jsxRuntimeExports.jsxs("div",{className:ht.tokenRowRight,children:[jsxRuntimeExports.jsx("div",{className:ht.tokenRowBalanceText,children:"Balance"}),jsxRuntimeExports.jsx("div",{className:ht.tokenRowBalance,children:$n&&$n[jn.key]&&Un?jsxRuntimeExports.jsx("div",{children:$n[jn.key]}):er(jn.key)?jsxRuntimeExports.jsx(CircularProgress$1,{size:14}):jsxRuntimeExports.jsx("div",{children:NO_INPUT})})]}),jsxRuntimeExports.jsx("div",{className:ht.tokenRowAddressContainer,children:jsxRuntimeExports.jsxs("div",{className:ht.tokenRowAddress,children:[jsxRuntimeExports.jsx("div",{className:ht.noWrap,children:jn.nativeChain===Fn?"Native":"Wormhole Wrapped"}),jn.tokenId&&jsxRuntimeExports.jsx("div",{children:displayAddress(jn.tokenId.chain,jn.tokenId.address)})]})})]},jn.key)),config$2.moreTokens?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs(Button$2,{disableRipple:!0,className:ht.moreTokens,onClick:()=>config$2.moreTokens&&qn(config$2.moreTokens.href,config$2.moreTokens.target),children:[jsxRuntimeExports.jsx("span",{className:ht.moreTokensLabel,children:config$2.moreTokens.label}),jsxRuntimeExports.jsx(IconButton$1,{className:ht.iconButton,children:jsxRuntimeExports.jsx(default_1$3,{className:ht.iconOpenInNew})})]})})}):null]}):Gn?jsxRuntimeExports.jsx("div",{className:ht.loading,children:jsxRuntimeExports.jsx(CircularProgress$1,{size:24})}):jsxRuntimeExports.jsx("div",{className:ht.noResults,children:Qn?"No results":"No balances detected"})})})}function isGatewayNativeToken(dt){return dt.tokenId&&isGatewayChain(dt.tokenId.chain)}function TokensModal(dt){const ht=useTheme(),Dt=useDispatch(),{open:Cn,chain:$n,walletAddress:Un,type:Fn}=dt,Hn=useMediaQuery(ht.breakpoints.down("sm")),[Gn,Qn]=reactExports.useState(!1),[qn,er]=reactExports.useState(!1),[Wn,jn]=reactExports.useState([]),[Zn,Xn]=reactExports.useState(""),{balances:ar,supportedSourceTokens:dr,supportedDestTokens:or,allSupportedDestTokens:sr,fromChain:vr,toChain:hr}=useSelector(yr=>yr.transferInput),gr=reactExports.useMemo(()=>sr.filter(yr=>!isGatewayNativeToken(yr)),[sr]),ur=reactExports.useMemo(()=>(Fn==="source"?dr:or).filter(Ir=>!isGatewayNativeToken(Ir)),[Fn,dr,or]),_r=reactExports.useMemo(()=>accessChainBalances(ar,Un,$n),[$n,ar,Un]),nr=yr=>{if(yr){const Ir=yr.target.value.toLowerCase();Xn(Ir)}else Xn("")},Sr=(yr,Ir="_self")=>{let Pr=yr;vr&&(Pr=Pr.replace("{:sourceChain}",vr)),hr&&(Pr=Pr.replace("{:targetChain}",hr)),window.open(Pr.replace("&targetChain={:targetChain}",""),Ir)},Ar=reactExports.useMemo(()=>Zn?Wn.filter(yr=>yr.symbol.toLowerCase().includes(Zn)||yr.tokenId&&yr.tokenId.address.toLowerCase().includes(Zn)):Wn,[Wn,Zn]),tr=()=>{setTimeout(()=>Xn(""),500),dt.onClose()},Yn=yr=>{dt.onSelect(yr),tr()};reactExports.useEffect(()=>{er(!1)},[$n,Un]);const fr=reactExports.useCallback(async()=>{if(!Un||!$n)return;const yr=Date.now()-60*1e3*5;if(_r&&_r.balances&&_r.lastUpdated>yr){er(!0);return}const Ir=Fn==="dest"?gr:ur,Pr=Ir.find($r=>!$r.tokenId&&$r.nativeChain===$n),Br=Ir.filter($r=>!!$r.tokenId),rr=Br.reduce(($r,kr)=>kr.tokenId?[...$r,kr.tokenId]:$r,[]);let pr={};if(Pr){let $r=null;try{$r=await config$2.wh.getNativeBalance(Un,$n),pr={...pr,...formatBalance($n,Pr,$r)}}catch(kr){console.warn("Failed to fetch native balance",kr)}}try{const $r=await config$2.wh.getTokenBalances(Un,rr,$n);pr=rr.reduce((kr,Tr,Nr)=>({...kr,...formatBalance($n,Br[Nr],$r[Nr])}),pr)}catch($r){console.warn("Failed to fetch balances",$r)}Dt(setBalances({address:Un,chain:$n,balances:pr}))},[Un,$n,Dt,Fn,ur,_r,gr]);reactExports.useEffect(()=>{let yr=!0;if(!Un||!$n){jn(ur);return}return qn||(Qn(!0),fr().finally(()=>{yr&&(Qn(!1),er(!0))})),()=>{yr=!1}},[Un,ur,$n,Dt,fr,Fn,Cn,qn]),reactExports.useEffect(()=>{const yr=ur.filter(Ir=>{if(!Ir.tokenId&&Ir.nativeChain!==$n)return!1;const Pr=$n&&CCTPManual_CHAINS.includes($n);if(Ir.symbol==="USDC"&&Ir.nativeChain!==$n&&Pr)return!1;if(Ir.symbol==="tBTC"&&$n){if(isTBTCCanonicalChain($n)){if(Ir.nativeChain!==$n)return!1}else if(config$2.wh.toChainId(Ir.nativeChain)!==CHAIN_ID_ETH$1)return!1}if(Fn==="dest"||!_r)return!0;const Br=_r.balances[Ir.key];return Br!==null&&Br!=="0"});jn(yr)},[_r,$n,ur,Fn]);const Cr=[{label:"Available Tokens",panel:jsxRuntimeExports.jsx(DisplayTokens,{tokens:Ar,balances:_r==null?void 0:_r.balances,walletAddress:Un,chain:$n,selectToken:Yn,moreTokens:Sr,loading:Gn,search:Zn})},{label:"All Tokens",panel:jsxRuntimeExports.jsx(DisplayTokens,{tokens:Fn==="dest"?gr:ur,balances:_r==null?void 0:_r.balances,walletAddress:Un,chain:$n,selectToken:Yn,moreTokens:Sr,loading:Gn,search:Zn})}];return jsxRuntimeExports.jsxs(Modal,{open:Cn,closable:!0,width:500,onClose:tr,children:[jsxRuntimeExports.jsx(Header$1,{text:"Select asset",size:28}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsxs(Alert$1,{variant:"outlined",severity:"info",children:["You should always check for markets and liquidity before sending tokens."," ",jsxRuntimeExports.jsx(Link$1,{href:AVAILABLE_MARKETS_URL,target:"_blank",rel:"noopener noreferrer",children:"Click here to see available markets for wrapped tokens."})]}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Search,{placeholder:Hn?"Token symbol or address":"Search by name or contract address",onChange:nr}),jsxRuntimeExports.jsx(BasicTabs,{tabs:Cr})]})}const useStyles$n=makeStyles()((dt,{size:ht})=>({container:{position:"relative",height:ht,width:ht,...CENTER},icon:{maxHeight:"100%",maxWidth:"100%"},subIcon:{position:"absolute",bottom:`calc(${ht}px - ${dt.spacing(1)})`,left:`calc(${ht}px - ${dt.spacing(1)})`,width:dt.spacing(2),height:dt.spacing(2)},tooltip:{maxWidth:"270px",maxHeight:"104px",borderRadius:"4px",padding:"16px",gap:"10px",backgroundColor:dt.palette.card.background}}));function MoreNetworkIcon({height:dt,alt:ht,icon:Dt,showOpenInNewIcon:Cn=!0,description:$n}){const Un=dt||32,{classes:Fn}=useStyles$n({size:Un});return jsxRuntimeExports.jsxs("div",{className:Fn.container,children:[jsxRuntimeExports.jsx("img",{style:{maxHeight:"100%",maxWidth:"100%"},alt:ht,src:Dt}),Cn&&($n?jsxRuntimeExports.jsx(Tooltip$1,{arrow:!0,placement:"top-end",title:$n,classes:{tooltip:Fn.tooltip,tooltipArrow:Fn.tooltip},children:jsxRuntimeExports.jsx(default_1$3,{className:Fn.subIcon})}):jsxRuntimeExports.jsx(default_1$3,{className:Fn.subIcon}))]})}const useStyles$m=makeStyles()(dt=>({chainsContainer:{display:"grid",gridTemplateColumns:"repeat(auto-fill, 150px)",justifyContent:"space-between"},noResults:{...CENTER,minHeight:"130px"},chainTile:{width:"117px",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",margin:"12px 4px",padding:"16px",transition:"background-color 0.4s",cursor:"pointer",borderRadius:"8px","&:hover":{backgroundColor:dt.palette.options.select}},extraChainTile:{textDecoration:"none",color:"inherit"},chainIcon:{width:"48px",height:"48px"},chainText:{fontSize:"14px",marginTop:"16px"},disabled:{opacity:"40%",cursor:"not-allowed",clickEvent:"none"},subtitle:{opacity:"60%"}}));function ChainsModal(dt){var Wn;const{classes:ht}=useStyles$m(),Dt=useTheme(),Cn=dt.chains||config$2.chainsArr,[$n,Un]=reactExports.useState(),Fn=(jn,Zn,Xn)=>{var ar,dr;jn?(ar=dt.onMoreNetworkSelect)==null||ar.call(dt,jn,Zn,Xn):(dr=dt.onMoreNetworkSelect)==null||dr.call(dt,config$2.moreNetworks.href,Zn,Xn)},Hn=reactExports.useMemo(()=>{const jn=RouteOperator.allSupportedChains();return Cn.filter(Zn=>jn.includes(Zn.key))},[Cn]),Gn=jn=>{Un(jn==null?void 0:jn.target.value.toLowerCase())},Qn=jn=>jn==="wormchain"?!1:$n?config$2.chains[jn].displayName.toLowerCase().includes($n):!0,qn=()=>{setTimeout(()=>Un(void 0),500),dt.onClose()},er=jn=>{dt.onSelect(jn),qn()};return jsxRuntimeExports.jsxs(Modal,{open:dt.open,closable:!0,width:config$2.chainsArr.length>6?650:500,onClose:qn,children:[jsxRuntimeExports.jsx(Header$1,{text:dt.title,size:28}),jsxRuntimeExports.jsx("div",{className:ht.subtitle,children:"Select Network"}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Search,{placeholder:"Search networks",onChange:Gn}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 300px)",blendColor:Dt.palette.modal.background,children:Hn.length>0?jsxRuntimeExports.jsxs("div",{className:ht.chainsContainer,children:[Hn.map((jn,Zn)=>{const Xn=dt.isDisabled?dt.isDisabled(jn.key):!1;return Qn(jn.key)&&jsxRuntimeExports.jsxs("div",{className:joinClass([ht.chainTile,!!Xn&&ht.disabled]),onClick:()=>er(jn.key),children:[jsxRuntimeExports.jsx(TokenIcon,{icon:jn.icon,height:48}),jsxRuntimeExports.jsx("div",{className:ht.chainText,children:jn.displayName})]},Zn)}),(Wn=config$2.moreNetworks)==null?void 0:Wn.networks.map((jn,Zn)=>{var Xn;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.chainTile,ht.extraChainTile]),onClick:()=>{var ar;return Fn(jn.href||config$2.moreNetworks.href,jn.name||jn.label.toLocaleLowerCase().split(" ").join("_"),jn.target||((ar=config$2.moreNetworks)==null?void 0:ar.target))},children:[jsxRuntimeExports.jsx(MoreNetworkIcon,{icon:jn.icon,alt:jn.label,height:48,showOpenInNewIcon:jn.showOpenInNewIcon,description:jn.description||((Xn=config$2.moreNetworks)==null?void 0:Xn.description)}),jsxRuntimeExports.jsx("div",{className:ht.chainText,children:jn.label})]},Zn)})]}):jsxRuntimeExports.jsx("div",{className:ht.noResults,children:"No results"})})]})}function FromInputs(){const dt=useDispatch(),[ht,Dt]=reactExports.useState(!1),[Cn,$n]=reactExports.useState(!1),{toNativeToken:Un,relayerFee:Fn}=useSelector(yr=>yr.relay),Hn=useSelector(yr=>yr.porticoBridge),Gn=useSelector(yr=>yr.wallet.sending),{usdPrices:{data:Qn}}=useSelector(yr=>yr.tokenPrices),qn=Qn||{},{showValidationState:er,validations:Wn,route:jn,fromChain:Zn,toChain:Xn,balances:ar,token:dr,amount:or,isTransactionInProgress:sr,destToken:vr}=useSelector(yr=>yr.transferInput),hr=dr&&config$2.tokens[dr],gr=accessBalance(ar,Gn.address,Zn,dr)||void 0,ur=reactExports.useCallback(yr=>isDisabledChain(yr,Gn),[Gn]),_r=async yr=>{await selectFromChain(dt,yr,Gn)},nr=yr=>{dt(setToken(yr))},Sr=reactExports.useMemo(()=>{var Ir;if(!hr)return;const yr=(Ir=config$2.chains[hr.nativeChain])==null?void 0:Ir.displayName;return{icon:hr.icon,text:hr.symbol,secondaryText:`(${yr})`}},[hr]),Ar=jsxRuntimeExports.jsx(Select,{label:"Asset",testId:"source-section-select-asset-button",selected:Sr,error:!!(er&&Wn.token),onClick:()=>Dt(!0),disabled:!Zn||sr,editable:!0}),tr=reactExports.useCallback(async yr=>{dt(setAmount(typeof yr=="number"?`${yr}`:yr));const Ir=typeof yr=="number"?yr:Number.parseFloat(yr);if(!jn){dt(setReceiveAmount(`${yr}`));return}try{const Pr=isPorticoRoute(jn)?Hn:{toNativeToken:Un,relayerFee:Fn};dt(setFetchingReceiveAmount());const Br=await RouteOperator.computeReceiveAmount(jn,Ir,dr,vr,Zn,Xn,Pr);dt(setReceiveAmount(`${Br}`))}catch{dt(setReceiveAmountError("Error computing receive amount"))}},[dt,Un,Fn,jn,dr,vr,Xn,Zn,Hn]),Yn=reactExports.useCallback(tr,[jn,Un,Fn,dt,tr]);reactExports.useEffect(()=>{jn&&tr(or)},[jn,or,tr]);const fr=jsxRuntimeExports.jsx(AmountInput,{handleAmountChange:Yn,value:or,side:"source"}),Cr=(yr,Ir,Pr="_self")=>{const Br=hydrateHrefTemplate(yr,Ir);Br&&window.open(Br,Pr)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Inputs,{side:"source",wallet:TransferWallet.SENDING,walletValidations:[Wn.sendingWallet],walletError:Gn.error,inputValidations:[Wn.fromChain,Wn.token,Wn.amount],chain:Zn,chainValidation:Wn.fromChain,onChainClick:()=>$n(!0),tokenInput:Ar,amountInput:fr,balance:gr,tokenPrice:getTokenPrice(qn,config$2.tokens[dr])}),ht&&jsxRuntimeExports.jsx(TokensModal,{open:ht,chain:Zn,walletAddress:Gn.address,type:"source",onSelect:nr,onClose:()=>Dt(!1)}),jsxRuntimeExports.jsx(ChainsModal,{open:Cn,title:"Sending from",chains:config$2.chainsArr.filter(yr=>yr.key!==Xn&&!yr.disabledAsSource),onSelect:_r,onClose:()=>$n(!1),onMoreNetworkSelect:(yr,Ir,Pr)=>Cr(yr,Ir,Pr),isDisabled:ur})]})}const useStyles$l=makeStyles()(dt=>({associatedTokenWarning:{display:"flex",flexDirection:"column",alignItems:"start"},link:{textDecoration:"underline",opacity:"0.8",padding:"4px 0",cursor:"pointer","&:hover":{opacity:"1"}},disabled:{cursor:"not-allowed",opacity:"0.6","&:hover":{opacity:"0.6"}},inProgress:{marginRight:"8px"},error:{color:dt.palette.error[500],marginTop:"4px"}}));function AssociatedTokenWarning(dt){const{classes:ht}=useStyles$l(),[Dt,Cn]=reactExports.useState(!1),[$n,Un]=reactExports.useState(""),Fn=async()=>{if(!Dt){Cn(!0),Un("");try{await dt.createAssociatedTokenAccount(),Un("")}catch(Hn){Un("Encountered an error, please try again."),console.error(Hn)}finally{Cn(!1)}}};return jsxRuntimeExports.jsxs("div",{className:ht.associatedTokenWarning,children:["No associated token account exists for your wallet on Solana. You must create it before proceeding.",$n&&jsxRuntimeExports.jsx("div",{className:ht.error,children:$n}),jsxRuntimeExports.jsxs("div",{className:joinClass([ht.link,Dt&&ht.disabled]),onClick:Fn,children:[Dt&&jsxRuntimeExports.jsx(CircularProgress$1,{size:18,className:ht.inProgress}),"Create account"]})]})}function TokenWarnings(){const dt=useDispatch(),{toChain:ht,fromChain:Dt,token:Cn,destToken:$n,foreignAsset:Un,associatedTokenAddress:Fn,route:Hn}=useSelector(hr=>hr.transferInput),{receiving:Gn}=useSelector(hr=>hr.wallet),[Qn,qn]=reactExports.useState(!1),[er,Wn]=reactExports.useState(!1),jn=config$2.tokens[Cn],Zn=config$2.tokens[$n];reactExports.useEffect(()=>{let hr=!0;return(async()=>{if(!ht||!jn||!Hn){dt(setForeignAsset("")),qn(!1);return}const ur=getWrappedTokenId(jn);if(!ur)throw new Error("Could not retrieve target token info");const _r=await RouteOperator.getForeignAsset(Hn,ur,ht,Zn);hr&&(_r?(dt(setForeignAsset(_r)),qn(!1)):(dt(setForeignAsset("")),qn(!0)))})(),()=>{hr=!1}},[ht,jn,Hn,Zn,dt]);const Xn=reactExports.useCallback(async()=>{var ur;if(!Un||!jn)return qn(!1),!1;const hr=((ur=getTokenById({chain:"solana",address:Un}))==null?void 0:ur.tokenId)||getWrappedTokenId(jn),gr=await solanaContext().getAssociatedTokenAccount(hr,Gn.address);return gr?(dt(setAssociatedTokenAddress(gr.toString())),qn(!1),!0):(dt(setAssociatedTokenAddress("")),qn(!0),!1)},[Un,jn,Gn,dt]),ar=reactExports.useCallback(async()=>{var nr;if(!Gn.address||!Cn)throw new Error("Must fill in all fields before you can create a token account");if(!Un)throw new Error("The token must be registered on Solana before an associated token account can be created");const hr=((nr=getTokenById({chain:"solana",address:Un}))==null?void 0:nr.tokenId)||getWrappedTokenId(jn),gr=await solanaContext().createAssociatedTokenAccount(hr,Gn.address,"finalized");if(!gr)return;await signAndSendTransaction("solana",gr,TransferWallet.RECEIVING);let ur=!1,_r=0;return await new Promise(Sr=>{const Ar=setInterval(async()=>{ur||_r>20?(clearInterval(Ar),Sr(!0)):(ur=await Xn(),_r+=1)},1e3)})},[Cn,Gn,Un,jn,Xn]);reactExports.useEffect(()=>{const hr=!!config$2.cctpWarning,gr=(jn==null?void 0:jn.symbol)==="USDC"&&(Zn==null?void 0:Zn.symbol)==="USDC"&&(Zn==null?void 0:Zn.nativeChain)!==ht,ur=ht&&CCTPManual_CHAINS.includes(ht)&&Dt&&CCTPManual_CHAINS.includes(Dt),_r=hr&&gr&&ur;!ht||!Cn||!Gn.address||(ht==="solana"&&Un&&Hn!==Route.TBTC&&!isNttRoute(Hn)&&Xn(),_r?(qn(!0),Wn(!0)):(qn(!1),Wn(!1)))},[ht,Cn,Un,Gn,Fn,Xn,Hn,jn==null?void 0:jn.symbol,jn==null?void 0:jn.nativeChain,Zn==null?void 0:Zn.symbol,Zn==null?void 0:Zn.nativeChain,Dt]);const dr=jsxRuntimeExports.jsxs(Typography$1,{children:["This token is not registered, you must"," ",jsxRuntimeExports.jsx(Link$1,{target:"_blank",variant:"inherit",href:config$2.attestUrl,children:"register"})," ","it before you continue. Newly registered tokens will not have liquid markets."]}),or=jsxRuntimeExports.jsx(AssociatedTokenWarning,{createAssociatedTokenAccount:ar}),sr=jsxRuntimeExports.jsxs(Typography$1,{children:["This transaction will transfer wrapped USDC (wUSDC) to the destination chain. If you want to transfer native USDC on chains supported by Circle's CCTP, use the"," ",jsxRuntimeExports.jsx(Link$1,{target:"_blank",variant:"inherit",href:config$2.cctpWarning,children:"USDC Bridge"}),"."]});let vr;return Un?ht==="solana"&&Hn!==Route.Relay?vr=or:er&&(vr=sr):vr=dr,jsxRuntimeExports.jsx(AlertBanner,{show:Qn,content:vr,warning:!0,margin:"12px 0 0 0"})}function ToInputs(){const dt=useDispatch(),[ht,Dt]=reactExports.useState(!1),[Cn,$n]=reactExports.useState(!1),{showValidationState:Un,validations:Fn,fromChain:Hn,toChain:Gn,balances:Qn,destToken:qn,receiveAmount:er,route:Wn,isTransactionInProgress:jn}=useSelector(tr=>tr.transferInput),Zn=useSelector(tr=>tr.wallet.receiving),{usdPrices:{data:Xn}}=useSelector(tr=>tr.tokenPrices),ar=Xn||{},dr=accessBalance(Qn,Zn.address,Gn,qn)||void 0,or=config$2.tokens[qn],sr=tr=>{dt(setDestToken(tr))},vr=reactExports.useCallback(tr=>isDisabledChain(tr,Zn),[Zn]),hr=async tr=>{await selectToChain(dt,tr,Zn)},gr=reactExports.useMemo(()=>{var fr;if(!or)return;const tr=or.symbol,Yn=(fr=config$2.chains[or.nativeChain])==null?void 0:fr.displayName;return{icon:or.icon,text:tr,secondaryText:`(${Yn})`}},[or]),ur=jsxRuntimeExports.jsx(Select,{label:"Asset",testId:"destination-section-select-asset-button",selected:gr,error:!!(Un&&Fn.token),onClick:()=>Dt(!0),disabled:!Gn||jn,editable:!0}),_r=()=>{},nr=Wn&&isPorticoRoute(Wn)?"Expected Amount (-0.05%)":"Amount",Sr=jsxRuntimeExports.jsx(AmountInput,{handleAmountChange:_r,value:er.data||"",disabled:!0,label:nr,side:"destination"}),Ar=(tr,Yn,fr="_self")=>{const Cr=hydrateHrefTemplate(tr,Hn,Yn);Cr&&window.open(Cr,fr)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Inputs,{side:"destination",wallet:TransferWallet.RECEIVING,walletValidations:[Fn.receivingWallet],walletError:Zn.error,inputValidations:[Fn.toChain,Fn.destToken,Fn.relayerFee,Fn.receiveAmount],chain:Gn,chainValidation:Fn.toChain,onChainClick:()=>$n(!0),tokenInput:ur,amountInput:Sr,balance:dr,warning:jsxRuntimeExports.jsx(TokenWarnings,{}),tokenPrice:getTokenPrice(ar,config$2.tokens[qn])}),ht&&jsxRuntimeExports.jsx(TokensModal,{open:ht,chain:Gn,walletAddress:Zn.address,type:"dest",onSelect:sr,onClose:()=>Dt(!1)}),jsxRuntimeExports.jsx(ChainsModal,{open:Cn,title:"Sending to",chains:config$2.chainsArr.filter(tr=>tr.key!==Hn&&!tr.disabledAsDestination),onSelect:hr,onClose:()=>$n(!1),onMoreNetworkSelect:(tr,Yn,fr)=>Ar(tr,Yn,fr),isDisabled:vr})]})}const REMAINING_NOTIONAL_TOLERANCE=.98,GOVERNOR_API_BASE_URLS=[config$2.wormholeApi,...config$2.wormholeRpcHosts],useIsTransferLimited=()=>{const[dt,ht]=reactExports.useState(null),[Dt,Cn]=reactExports.useState(null),[$n,Un]=reactExports.useState(void 0),[Fn,Hn]=reactExports.useState(void 0),{fromChain:Gn,token:Qn,amount:qn}=useSelector(jn=>jn.transferInput),er=reactExports.useRef(!1);return reactExports.useEffect(()=>{let jn=!1;return(async()=>{if(!Qn||!Gn){Un(void 0);return}try{const Xn=config$2.tokens[Qn],ar=getWrappedTokenId(Xn),dr=config$2.wh.toChainId(ar.chain),or=utils$P.hexlify(await formatAssetAddress(dr,ar.address));jn||(Un(or),Hn(dr))}catch{jn||Un(void 0)}})(),()=>{jn=!0}},[Qn,Gn]),reactExports.useEffect(()=>{if(!er.current){let jn=!1;(async()=>{for(const Zn of GOVERNOR_API_BASE_URLS){try{const Xn=`${Zn}${Zn.endsWith("/")?"":"/"}v1/governor`,[ar,dr]=await Promise.all([axios$1.get(`${Xn}/token_list`),axios$1.get(`${Xn}/available_notional_by_chain`)]);if(!jn){ht((ar==null?void 0:ar.data)||null),Cn((dr==null?void 0:dr.data)||null);break}}catch(Xn){console.error(Xn)}if(jn)break}return()=>{jn=!0}})(),er.current=!0}},[]),reactExports.useMemo(()=>{if(!Gn||!Qn||!qn||!$n||!Fn)return{isLimited:!1};const jn=config$2.wh.toChainId(Gn);if(Qn&&Gn&&qn&&dt&&Dt){const Zn=dt.entries.find(Xn=>Xn.originChainId===Fn&&Xn.originAddress===$n);if(Zn){const Xn=Dt.entries.find(ar=>ar.chainId===jn);if(Xn){const ar=Zn.price*Number.parseFloat(qn),dr=ar>Xn.notionalLimit?"EXCEEDS_MAX_NOTIONAL":ar>Xn.bigTransactionSize*REMAINING_NOTIONAL_TOLERANCE?"EXCEEDS_LARGE_TRANSFER_LIMIT":ar>Xn.remainingAvailableNotional*REMAINING_NOTIONAL_TOLERANCE?"EXCEEDS_REMAINING_NOTIONAL":void 0;return{isLimited:!!dr,reason:dr,limits:{chainId:jn,chainNotionalLimit:Xn.notionalLimit,chainRemainingAvailableNotional:Xn.remainingAvailableNotional,chainBigTransactionSize:Xn.bigTransactionSize,tokenPrice:Zn.price}}}}}return{isLimited:!1}},[Gn,Qn,$n,Fn,qn,dt,Dt])},ClockIcon=()=>jsxRuntimeExports.jsxs("svg",{width:"65",height:"64",viewBox:"0 0 65 64",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("rect",{x:"1.5",y:"1",width:"62",height:"62",rx:"31",fill:"#FFE8D7",fillOpacity:"0.1"}),jsxRuntimeExports.jsx("rect",{x:"1.5",y:"1",width:"62",height:"62",rx:"31",stroke:"#E48329",strokeWidth:"2"}),jsxRuntimeExports.jsx("path",{d:"M32.484 16C23.652 16 16.5 23.168 16.5 32C16.5 40.832 23.652 48 32.484 48C41.332 48 48.5 40.832 48.5 32C48.5 23.168 41.332 16 32.484 16ZM37.764 39.536L30.9 32.656V24H34.1V31.344L40.036 37.28L37.764 39.536Z",fill:"#E48329"})]}),useStyles$k=makeStyles()(dt=>({dialog:{zIndex:10},paper:{borderRadius:24,[dt.breakpoints.down("sm")]:{maxWidth:"100%",maxHeight:"100%",margin:0,borderRadius:0}},container:{position:"relative",width:"100%",margin:"0 auto",display:"flex",justifyContent:"center"},modal:{width:"100%",padding:32,position:"relative",maxHeight:"calc( 100vh - 80px )",[dt.breakpoints.down("sm")]:{padding:"24px 12px",maxHeight:"100%"}},close:{color:"#3C3D77",position:"absolute",top:"28px",right:"28px",cursor:"pointer",opacity:"70%",zIndex:"10",[dt.breakpoints.down("sm")]:{top:"12px",right:"20px"}},background:{background:dt.palette.modal.background},icon:{textAlign:"center",paddingTop:24,paddingBottom:24},title:{textAlign:"center",fontSize:24,fontWeight:600,lineHeight:"32px",paddingTop:24,paddingBottom:24,borderBottom:"1px solid #313266"},text:{fontSize:"16px",fontWeight:400,lineHeight:"24px",color:"#9495D6",paddingTop:24,paddingBottom:24},link:{color:"#D5D5EB",textDecorationLine:"underline"},orange:{color:"#E48329"},clock:{width:64,height:64},buttonContainer:{display:"flex",justifyContent:"space-between",marginTop:"24px",gap:10,[dt.breakpoints.down("sm")]:{flexDirection:"column"}}})),TransferLimitedWarning=dt=>{const{classes:ht}=useStyles$k(),{fromChain:Dt,token:Cn}=dt,[$n,Un]=React.useState(!0),Fn=useIsTransferLimited(),Hn=()=>{Un(!1)},Gn=()=>{Un(!1),setTimeout(()=>{window.scrollTo(0,document.body.scrollHeight)},500)};if(reactExports.useEffect(()=>{Un(!0)},[Dt,Cn]),Fn.isLimited&&Fn.reason&&Fn.limits){const Qn=config$2.wh.toChainName(Fn.limits.chainId);let qn,er;return Fn.reason==="EXCEEDS_MAX_NOTIONAL"||Fn.reason==="EXCEEDS_REMAINING_NOTIONAL"?(er=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take up to"," ",jsxRuntimeExports.jsx("span",{className:ht.orange,children:"24 hours"})," to complete"]}),qn=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take up to 24 hours to process as Wormhole has"," ","reached the daily limit for ",Qn,".",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),"This is a normal and temporary security feature by the Wormhole"," ","network.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("a",{href:GOVERNOR_WHITEPAPER_URL,target:"_blank",rel:"noreferrer",children:"Learn more"})," ","about this temporary security measure."]})):Fn.reason==="EXCEEDS_LARGE_TRANSFER_LIMIT"&&(er=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction requires"," ",jsxRuntimeExports.jsx("span",{className:ht.orange,children:"24 hours"})," to complete"]}),qn=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take 24 hours to process, as it exceeds the Wormhole network's temporary transaction limit of $",Fn.limits.chainBigTransactionSize," on ",Qn," for"," ","security reasons.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),"You may also split the transaction into smaller transactions less than"," ","$",Fn.limits.chainBigTransactionSize," each to avoid the"," ","24 hour security delay.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("a",{href:GOVERNOR_WHITEPAPER_URL,target:"_blank",rel:"noreferrer",children:"Learn more"})," ","about this temporary measure."]})),qn&&er?jsxRuntimeExports.jsx(Dialog$1,{open:$n,sx:{borderRadius:8},className:ht.dialog,classes:{paper:ht.paper},children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsx(CloseIcon,{sx:{fontSize:32},className:ht.close,onClick:Hn}),jsxRuntimeExports.jsxs("div",{className:ht.modal,children:[jsxRuntimeExports.jsx("div",{className:ht.icon,children:jsxRuntimeExports.jsx(ClockIcon,{})}),jsxRuntimeExports.jsx("div",{className:ht.title,children:er}),jsxRuntimeExports.jsx("div",{className:ht.text,children:qn}),jsxRuntimeExports.jsxs("div",{className:ht.buttonContainer,children:[jsxRuntimeExports.jsx(Button,{link:!0,onClick:Hn,children:"Cancel"}),jsxRuntimeExports.jsx(Button,{onClick:Gn,children:"Continue"})]})]})]})})}):null}return null},useStyles$j=makeStyles()((dt,{disabled:ht})=>({button:{borderRadius:"50%",width:"42px",height:"42px",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:dt.palette.card.background,boxShadow:dt.palette.card.elevation,opacity:ht?.5:1,cursor:ht?"default":"pointer",[dt.breakpoints.up("md")]:{marginBottom:"-40px"},zIndex:2}}));function SwapChains(){var Hn,Gn;const dt=useDispatch(),{isTransactionInProgress:ht,fromChain:Dt,toChain:Cn}=useSelector(Qn=>Qn.transferInput),$n=Dt&&!((Hn=config$2.chains[Dt])!=null&&Hn.disabledAsDestination)&&Cn&&!((Gn=config$2.chains[Cn])!=null&&Gn.disabledAsDestination),Un=()=>{$n&&(ht||(dt(swapChains()),dt(swapWallets())))},{classes:Fn}=useStyles$j({disabled:!$n});return jsxRuntimeExports.jsx("div",{className:Fn.button,onClick:Un,children:jsxRuntimeExports.jsxs("svg",{width:"21",height:"22",viewBox:"0 0 21 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M7.88281 18.4384L3.49031 14.0547",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M7.88281 3.5625L7.88281 18.4375",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M13.1153 3.5625L17.5078 7.94625",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M13.1172 18.4375L13.1172 3.5625",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"})]})})}const useStyles$i=makeStyles()(dt=>({menuIcon:ICON,menu:{display:"flex",[dt.breakpoints.down("md")]:{flexDirection:"column"},flexDirection:"row",gap:"8px",padding:"8px",width:"100%"},menuItem:{padding:"16px 0",textAlign:"center",fontSize:"14px",margin:"auto",cursor:"pointer","&:hover":{textDecoration:"underline"}}}));function itemAppender(dt,ht){const{order:Dt=dt.length,target:Cn="_black",href:$n,label:Un}=ht;return dt.splice(Dt,0,{label:Un,handleClick:()=>window.open($n,Cn)}),dt}function defaultMenuItems(dt){return[{label:"Resume Transaction",handleClick:()=>dt("search")},{label:"FAQs",handleClick:()=>dt("faq")},{label:"Terms of Use",handleClick:()=>dt("terms")}]}function FooterNavBar(){const{classes:dt}=useStyles$i(),ht=useDispatch(),Dt=reactExports.useCallback($n=>{ht(setRoute($n))},[ht]),Cn=config$2.menu.reduce(itemAppender,defaultMenuItems(Dt));return jsxRuntimeExports.jsx("div",{className:dt.menu,children:Cn.map(({label:$n,handleClick:Un},Fn)=>jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:Un,children:$n},`${$n.toLowerCase()}_${Fn}`))})}const FETCH_SWAP_INFO_INTERVAL=6e4,usePorticoSwapInfo=()=>{const dt=useDispatch(),{route:ht,token:Dt,destToken:Cn,toChain:$n,fromChain:Un,amount:Fn,isTransactionInProgress:Hn}=useSelector(Gn=>Gn.transferInput);reactExports.useEffect(()=>{if(!ht||!isPorticoRoute(ht)||!Dt||!Cn||!Un||!$n||Hn)return;let Gn=!1;return(async()=>{if(!await RouteOperator.isRouteSupported(ht,Dt,Cn,Fn,Un,$n)){dt(resetSwapAmounts());return}for(dt(setFetchingSwapAmounts());!Gn;){try{const Wn=await RouteOperator.getRoute(ht).computeSwapAmounts(Number.parseFloat(Fn),Dt,Cn,Un,$n);Gn||dt(setSwapAmounts(Wn))}catch{Gn||dt(setSwapAmountsError("Error computing swap amounts"))}await sleep(FETCH_SWAP_INFO_INTERVAL)}})(),()=>{Gn=!0}},[ht,Dt,Cn,$n,Un,Fn,Hn,dt])},FETCH_FEE_INTERVAL=6e4,usePorticoRelayerFee=()=>{const dt=useDispatch(),{route:ht,token:Dt,destToken:Cn,toChain:$n,fromChain:Un,isTransactionInProgress:Fn}=useSelector(Hn=>Hn.transferInput);reactExports.useEffect(()=>{if(!ht||!isPorticoRoute(ht)||!Dt||!Cn||!Un||!$n||Fn)return;let Hn=!1;return(async()=>{if(!await RouteOperator.isRouteSupported(ht,Dt,Cn,"0",Un,$n)){dt(resetRelayerFee());return}for(dt(setFetchingRelayerFee());!Hn;){try{const qn=await RouteOperator.getRelayerFee(ht,Un,$n,Dt,Cn);!Hn&&qn&&dt(setRelayerFee(qn.fee.toString()))}catch{Hn||dt(setRelayerFeeError("Error fetching relayer fee"))}await sleep(FETCH_FEE_INTERVAL)}})(),()=>{Hn=!0}},[ht,Dt,Cn,$n,Un,Fn,dt])},PRICES_FETCH_INTERVAL=6e4*5,COINGECKO_URL="https://api.coingecko.com/",COINGECKO_URL_PRO="https://pro-api.coingecko.com/",useFetchTokenPrices=()=>{const dt=useDispatch();reactExports.useEffect(()=>{let ht=!1;const Dt=new AbortController,Cn=Dt.signal,$n=Object.values(config$2.tokens).filter(Hn=>!!Hn.coinGeckoId).map(({coinGeckoId:Hn})=>Hn).join(","),Un=new Headers({"Content-Type":"application/json",...config$2.coinGeckoApiKey?{"x-cg-pro-api-key":config$2.coinGeckoApiKey}:{}});return(async()=>{for(;!ht;){try{const Gn=await(await fetch(`${config$2.coinGeckoApiKey?COINGECKO_URL_PRO:COINGECKO_URL}api/v3/simple/price?ids=${$n}&vs_currencies=usd${config$2.coinGeckoApiKey?`?x_cg_pro_api_key=${config$2.coinGeckoApiKey}`:""}`,{signal:Cn,headers:Un})).json();ht||dt(setPrices(Gn))}catch(Hn){ht||dt(setPricesError(`Error fetching token prices: ${Hn}`))}await sleep(PRICES_FETCH_INTERVAL)}})(),()=>{ht=!0,Dt.abort()}},[])};function formatDuration(dt){if(dt<60)return dt===1?`${dt} second`:`${dt} seconds`;if(dt<3600){const ht=Math.floor(dt/60);return ht===1?`${ht} minute`:`${ht} minutes`}else{const ht=Math.floor(dt/3600);return ht===1?`${ht} hour`:`${ht} hours`}}const NttInboundCapacityWarning=()=>{var Zn,Xn;const{fromChain:dt,toChain:ht,token:Dt,destToken:Cn,receiveAmount:$n}=useSelector(ar=>ar.transferInput),Un=$n.data||"0",[Fn,Hn]=reactExports.useState(void 0),[Gn,Qn]=reactExports.useState(0),qn=getNttGroupKey(config$2.tokens[Dt],config$2.tokens[Cn]),er=qn&&getNttManagerAddress(config$2.tokens[Cn],qn);if(reactExports.useEffect(()=>{if(!ht||!er||!dt)return;let ar=!0;return(async()=>{try{const or=new NttManual,sr=await or.getRateLimitDuration(ht,er);if(sr===0){ar&&(Hn(void 0),Qn(0));return}const vr=await or.getCurrentInboundCapacity(ht,er,dt);ar&&(Hn(vr?BigNumber$2.from(vr):void 0),Qn(sr))}catch(or){console.error("Failed to fetch capacity:",or),ar&&(Hn(void 0),Qn(0))}})(),()=>{ar=!1}},[ht,er,dt]),!reactExports.useMemo(()=>{if(!Cn||!Un||!ht||!Fn||!Gn||!dt||!qn)return!1;const ar=config$2.tokens[Cn];if(!ar||!isNttToken(ar))return!1;const dr=getTokenDecimals(config$2.wh.toChainId(ht),ar.tokenId),or=utils$P.parseUnits(Number(Un).toFixed(dr),dr),sr=Fn.mul(95).div(100);return or.gt(sr)},[Cn,Un,ht,qn])||!ht)return null;const jn=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:`Your transfer to ${((Zn=config$2.chains[ht])==null?void 0:Zn.displayName)||"UNKNOWN"} may be delayed due to rate limits set by ${((Xn=config$2.tokens[Cn])==null?void 0:Xn.symbol)||"UNKNOWN"}. If your transfer is delayed, you will need to return after ${formatDuration(Gn)} to complete the transfer. Please consider this before proceeding.`});return jsxRuntimeExports.jsx(AlertBanner,{show:!0,content:jn,warning:!0})},useStyles$h=makeStyles()(dt=>({spacer:{display:"flex",flexDirection:"column",gap:"16px",alignItems:"center",justifyContent:"center",width:"100%"},bridgeContent:{margin:"auto",maxWidth:"650px"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%"},poweredBy:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",marginTop:"24px"}}));function isSupportedToken(dt,ht){return dt?ht.some(Dt=>Dt.key===dt):!0}function Bridge(){const{classes:dt}=useStyles$h(),ht=useTheme(),Dt=useDispatch(),{showValidationState:Cn,validations:$n,fromChain:Un,toChain:Fn,token:Hn,destToken:Gn,route:Qn,isTransactionInProgress:qn,amount:er}=useSelector(nr=>nr.transferInput),{toNativeToken:Wn,relayerFee:jn}=useSelector(nr=>nr.relay),Zn=useSelector(nr=>nr.porticoBridge),{receiving:Xn}=useSelector(nr=>nr.wallet);useConfirmBeforeLeaving(qn),reactExports.useEffect(()=>{if(!Un||!Fn||!Xn.address)return;const nr=config$2.chains[Fn];config$2.wh.getNativeBalance(Xn.address,Fn).then(Sr=>{const Ar=config$2.tokens[nr.gasToken];if(!Ar)throw new Error("Could not get native gas token config");const tr=getTokenDecimals(toChainId$1(Ar.nativeChain),"native");Dt(setReceiverNativeBalance$1(toDecimals(Sr,tr,6)))})},[Un,Fn,Xn.address,Dt]),reactExports.useEffect(()=>{let nr=!0;return(async()=>{const Ar=await RouteOperator.allSupportedSourceTokens(config$2.tokens[Gn],Un,Fn);nr&&(Dt(setSupportedSourceTokens(Ar)),isSupportedToken(Hn,Ar)||Dt(setToken("")),Ar.length===1&&Hn===""&&Dt(setToken(Ar[0].key)))})(),()=>{nr=!1}},[Qn,Un,Gn,Dt]),reactExports.useEffect(()=>{(async()=>{var Yn,fr;let Sr=await RouteOperator.allSupportedDestTokens(config$2.tokens[Hn],Un,Fn);if(Hn){const Cr=Sr.filter(yr=>yr.nativeChain===Fn);Cr.length>0&&(Sr=Cr)}Dt(setSupportedDestTokens(Sr));const Ar=await RouteOperator.allSupportedDestTokens(void 0,Un,Fn);Dt(setAllSupportedDestTokens(Ar)),Fn&&Sr.length===1&&Dt(setDestToken(Sr[0].key));const tr=Sr.map(Cr=>Cr.symbol);if(Fn&&tr.every(Cr=>Cr===tr[0])&&["USDC","tBTC"].includes(tr[0])){const Cr=(Yn=Sr.find(yr=>{var Ir;return yr.symbol===tr[0]&&yr.nativeChain===((Ir=yr.tokenId)==null?void 0:Ir.chain)&&yr.nativeChain===Fn}))==null?void 0:Yn.key;Cr&&Dt(setDestToken(Cr))}if(Hn&&Gn===""&&Fn&&(!Qn||isPorticoRoute(Qn))){const Cr=(fr=config$2.tokens[Hn])==null?void 0:fr.symbol;if([...ETHBridge.SUPPORTED_TOKENS,...wstETHBridge.SUPPORTED_TOKENS].includes(Cr)){let Ir=getNativeVersionOfToken(Cr,Fn);if(!Ir){const Pr=getWrappedToken(config$2.tokens[Hn]);Ir=getNativeVersionOfToken(Pr.symbol,Fn)}Ir&&isSupportedToken(Ir,Sr)&&Dt(setDestToken(Ir))}}})()},[Qn,Hn,Un,Fn,Dt]),reactExports.useEffect(()=>{(async()=>{if(Qn)try{const Sr=isPorticoRoute(Qn)?Zn:{toNativeToken:Wn,relayerFee:jn};Dt(setFetchingReceiveAmount());const Ar=await RouteOperator.computeReceiveAmount(Qn,Number.parseFloat(er),Hn,Gn,Un,Fn,Sr);Dt(setReceiveAmount(Ar.toString()))}catch(Sr){Dt(setReceiveAmountError(Sr.message))}})()},[er,Wn,jn,Qn,Hn,Gn,Fn,Un,Zn,Dt]),usePorticoSwapInfo(),usePorticoRelayerFee(),useFetchTokenPrices(),useConnectToLastUsedWallet(),useValidate();const ar=isTransferValid($n),dr=!ar||qn,or=Fn?config$2.chains[Fn]:void 0,sr=or?config$2.tokens[or.gasToken]:void 0,vr=sr?getWrappedToken(sr):void 0,hr=vr&&Gn===vr.key,gr=Qn&&RouteOperator.getRoute(Qn).NATIVE_GAS_DROPOFF_SUPPORTED&&!hr,ur=!!Un&&!!Fn&&!!Hn&&!!Gn&&!!er,_r=getPageHeader();return jsxRuntimeExports.jsxs("div",{className:joinClass([dt.bridgeContent,dt.spacer]),children:[jsxRuntimeExports.jsx(PageHeader,{title:_r.text,align:_r.align,showHamburgerMenu:config$2.showHamburgerMenu}),jsxRuntimeExports.jsx(FromInputs,{}),jsxRuntimeExports.jsx(SwapChains,{}),jsxRuntimeExports.jsx(ToInputs,{}),jsxRuntimeExports.jsx(ValidationError,{forceShow:ur,validations:[$n.route],margin:"12px 0 0 0"}),jsxRuntimeExports.jsx(RouteOptions,{}),jsxRuntimeExports.jsx(Collapse$1,{in:ar&&Cn,children:jsxRuntimeExports.jsxs("div",{className:dt.spacer,children:[jsxRuntimeExports.jsx(Collapse$1,{in:gr,sx:gr?{}:{marginBottom:"-16px",transition:"margin 0.4s"},children:gr&&jsxRuntimeExports.jsx(GasSlider,{disabled:dr})}),jsxRuntimeExports.jsx(Preview,{collapsed:Cn?!ar:!0}),jsxRuntimeExports.jsx(TransferLimitedWarning,{fromChain:Un,token:Hn}),isNttRoute(Qn)&&jsxRuntimeExports.jsx(NttInboundCapacityWarning,{}),jsxRuntimeExports.jsx(Send,{valid:!!ar})]})}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx(FooterNavBar,{}),jsxRuntimeExports.jsx("div",{className:dt.poweredBy,children:jsxRuntimeExports.jsx(PoweredByIcon,{color:ht.palette.text.primary})})]})}const getPageHeader=()=>{const dt={text:"",align:"left"};return typeof config$2.pageHeader=="string"?{...dt,text:config$2.pageHeader}:{...dt,...config$2.pageHeader}},useStyles$g=makeStyles()(dt=>({container:{width:"100%",borderRadius:"8px",boxShadow:dt.palette.card.elevation},header:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px",cursor:"pointer",backgroundColor:dt.palette.card.background,backgroundOpacity:"80%",borderRadius:"8px",transition:"border-radius 0.4s"},title:{fontSize:"14px",fontWeight:"bold"},invert:{transform:"rotate(180deg)"},arrow:{width:"32px",height:"32px",transition:"transform 0.4s"},content:{padding:"16px",backgroundColor:dt.palette.card.background,borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px",fontWeight:"300"},open:{borderBottomLeftRadius:"0 !important",borderBottomRightRadius:"0 !important"}}));function Dropdown(dt){const{classes:ht}=useStyles$g(),Dt=()=>{dt.onToggle&&dt.onToggle(dt.id)};return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:joinClass([ht.header,!!dt.open&&ht.open]),onClick:Dt,children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("div",{className:ht.title,children:dt.title})}),jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!!dt.open&&ht.invert])})]}),jsxRuntimeExports.jsx(Collapse$1,{in:dt.open,children:jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})})]})}const useStyles$f=makeStyles()(dt=>({container:{width:"100%",maxWidth:"700px",display:"flex",flexDirection:"column",alignItems:"center",marginTop:"20px"},faqs:{display:"flex",flexDirection:"column",gap:"16px",width:"100%"},link:{color:dt.palette.text.primary,textDecoration:"underline",cursor:"pointer"}}));function FAQ(){const{classes:dt}=useStyles$f(),ht=[{title:"What is Wormhole Connect?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"Wormhole Connect is an open source frontend SDK that lets Web3 developers embed asset bridging directly into their apps or websites."})},{title:"What types of assets does Connect support?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Initially, Connect will only support bridging wrapped assets. This means that any native token bridged through Connect and the underlying Wormhole Token Bridge will be received as a Wormhole-wrapped token on the destination chain. In some cases, Wormhole minted tokens are the canonical representation on the chain (e.g. WETH on Solana is a Wormhole minted token, see",jsxRuntimeExports.jsx("a",{href:"https://github.com/wormhole-foundation/wormhole-token-list",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://github.com/wormhole-foundation/wormhole-token-list"}),") and in other cases Wormhole minted tokens can be swapped on the destination chain’s DEX(s) for whatever assets you need (e.g. USDCeth bridged from Ethereum to Avalanche can be swapped for native USDC on Trader Joe)."]})},{title:"Will Connect support native asset bridging?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Yes, Connect will soon surface multiple Wormhole-powered services (e.g. cross chain asset swaps) that enable other forms of bridging more suitable for certain use cases. Check"," ",jsxRuntimeExports.jsx("a",{href:"https://wormhole.com/connect",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://wormhole.com/connect"})," ","for updates on Connect support."]})},{title:"What chains and assets does Connect support?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Initially, Connect supports wrapped asset bridging of ETH, WETH, USDC, MATIC, WMATIC, BNB, WBNB, AVAX, WAVAX, FTM, WFTM, CELO, GLMR, WGLMR, AND SOL across Ethereum, Polygon, BSC, Avalanche, Celo, Moonbeam, Base, Solana and Sui. Connect will support other Wormhole-connected chains and assets in the future, see the full list of Connect supported chains on the"," ",jsxRuntimeExports.jsx("a",{href:"https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/chains.ts",target:"_blank",rel:"noreferrer",className:dt.link,children:"GitHub repository"})," ","and Wormhole supported chains at"," ",jsxRuntimeExports.jsx("a",{href:"https://wormhole.com/network",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://wormhole.com/network"}),"."]})},{title:"What is automatic relaying?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"On EVM-based chains, Connect lets users bridge assets while only having to pay gas on the source chain. The automatic relaying feature pays gas on behalf of users on the destination chain. Connect will support automatic relaying for other chains in the future."})},{title:"What is gas dropoff?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"Gas dropoff is a Connect feature that enables users to pay an additional fee on the source chain to request a small amount of native gas on the destination chain. For example, a user bridging USDC from Ethereum to Sui can pay a fee denominated in USDC from their sending wallet to receive some native SUI in their receiving wallet in addition to the USDC they are bridging over. Gas dropoff is currently supported on EVM-based chains and Sui, and will be supported on other chains in the future."})},{title:"Can I customize Connect inside my application?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Connect supports both light and dark modes and can optionally be fully customized. See the"," ",jsxRuntimeExports.jsx("a",{href:"https://www.npmjs.com/package/@wormhole-foundation/wormhole-connect",target:"_blank",rel:"noreferrer",className:dt.link,children:"NPM package readme"})," ","for more details."]})},{title:"Contact",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["If you have any further questions or require troubleshooting, please reach out to Wormhole's community managers on"," ",jsxRuntimeExports.jsx("a",{href:"https://discord.com/invite/wormholecrypto",target:"_blank",rel:"noreferrer",className:dt.link,children:"Discord"}),".",jsxRuntimeExports.jsx(AlertBanner,{show:!0,warning:!0,content:"Beware of scams. Admins will never DM or message you first.",margin:"16px 0 0 0"})]})}],[Dt,Cn]=reactExports.useState(void 0),$n=Un=>{Cn(Un===Dt?void 0:Un)};return jsxRuntimeExports.jsxs("div",{className:dt.container,children:[jsxRuntimeExports.jsx(PageHeader,{title:"FAQ",description:"This page collects and answers the most commonly asked questions.",showHamburgerMenu:config$2.showHamburgerMenu,back:!0}),jsxRuntimeExports.jsx("div",{className:dt.faqs,children:ht.map((Un,Fn)=>{const Hn=Fn+1;return jsxRuntimeExports.jsx(Dropdown,{title:Un.title,open:!!Dt&&Dt===Hn,onToggle:()=>$n(Hn),children:Un.content},Hn)})}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx(FooterNavBar,{})]})}var Launch={},_interopRequireDefault$2=interopRequireDefaultExports;Object.defineProperty(Launch,"__esModule",{value:!0});var default_1$2=Launch.default=void 0,_createSvgIcon$2=_interopRequireDefault$2(requireCreateSvgIcon()),_jsxRuntime$2=jsxRuntimeExports,_default$2=(0,_createSvgIcon$2.default)((0,_jsxRuntime$2.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"Launch");default_1$2=Launch.default=_default$2;const useStyles$e=makeStyles()(dt=>({row:{display:"flex",alignItems:"center",gap:"16px"},icon:{width:"24px",height:"24px"},chain:{display:"flex",alignItems:"center",gap:"8px"},link:{...LINK(dt),justifyContent:"center"}}));function ChainsTag(){const{classes:dt}=useStyles$e(),ht=useSelector(qn=>qn.redeem.txData),Dt=useSelector(qn=>qn.redeem.signedMessage),Cn=config$2.chains[ht.fromChain],$n=config$2.chains[ht.toChain],Un=ht.sendTx||(Dt==null?void 0:Dt.sendTx),Fn=ht.sequence||(Dt==null?void 0:Dt.sequence),Hn=ht.emitterAddress||(Dt==null?void 0:Dt.emitterAddress),Gn=Hn?stripHexPrefix(Hn):void 0,Qn=reactExports.useMemo(()=>{if(!ht)return;if(isEvmChain(Cn.id)&&Un)return`${WORMSCAN}tx/${Un}${config$2.isMainnet?"":"?network=TESTNET"}`;if(!Gn||!Fn)return;const qn=isGatewayChain(Cn.id)?CHAIN_ID_WORMCHAIN$1:Cn.id;return`${WORMSCAN}tx/${qn}/${Gn}/${Fn}${config$2.isMainnet?"":"?network=TESTNET"}`},[ht,Un,Gn,Fn,Cn.id]);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(InputContainer,{children:jsxRuntimeExports.jsxs("div",{className:dt.row,children:[jsxRuntimeExports.jsxs("div",{className:dt.chain,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Cn.icon,height:24}),jsxRuntimeExports.jsx("div",{children:Cn.displayName})]}),jsxRuntimeExports.jsx(ArrowRightIcon,{}),jsxRuntimeExports.jsxs("div",{className:dt.chain,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:$n.icon,height:24}),jsxRuntimeExports.jsx("div",{children:$n.displayName})]})]})}),ht&&Qn&&jsxRuntimeExports.jsxs("a",{className:dt.link,href:Qn,target:"_blank",rel:"noreferrer",children:[jsxRuntimeExports.jsx("div",{children:"View on Wormholescan"}),jsxRuntimeExports.jsx(default_1$2,{})]})]})}const useStyles$d=makeStyles()(dt=>({content:{marginLeft:"14px",minHeight:"40px",borderLeft:`1px solid ${dt.palette.primary[700]}`,padding:"8px 0 16px 32px",[dt.breakpoints.down("sm")]:{marginLeft:"0",borderLeft:"none",paddingLeft:"0"}},lineActive:{borderColor:dt.palette.success[400]},lineWarning:{borderColor:dt.palette.warning[400]},lineNone:{border:"none !important"}}));function StepperLabel$1(dt){const{classes:ht}=useStyles$d(),{index:Dt,activeStep:Cn,last:$n,children:Un,warning:Fn}=dt;return jsxRuntimeExports.jsx("div",{className:joinClass([ht.content,Cn>Dt&&(Fn?ht.lineWarning:ht.lineActive),!!$n&&ht.lineNone]),children:Cn>=Dt&&Un})}var Check={},_interopRequireDefault$1=interopRequireDefaultExports;Object.defineProperty(Check,"__esModule",{value:!0});var default_1$1=Check.default=void 0,_createSvgIcon$1=_interopRequireDefault$1(requireCreateSvgIcon()),_jsxRuntime$1=jsxRuntimeExports,_default$1=(0,_createSvgIcon$1.default)((0,_jsxRuntime$1.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check");default_1$1=Check.default=_default$1;var Warning={},_interopRequireDefault=interopRequireDefaultExports;Object.defineProperty(Warning,"__esModule",{value:!0});var default_1=Warning.default=void 0,_createSvgIcon=_interopRequireDefault(requireCreateSvgIcon()),_jsxRuntime=jsxRuntimeExports,_default=(0,_createSvgIcon.default)((0,_jsxRuntime.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");default_1=Warning.default=_default;const useStyles$c=makeStyles()(dt=>({label:{display:"flex",alignItems:"center"},textInactive:{color:`${dt.palette.text.primary}${OPACITY[30]} !important`},icon:{width:"32px",height:"32px",backgroundColor:dt.palette.card.background,borderRadius:"50%",border:`1px solid ${dt.palette.primary[500]}`,display:"flex",justifyContent:"center",alignItems:"center",fontSize:"16px",marginRight:"32px",[dt.breakpoints.down("sm")]:{margin:"0 8px 0 16px"}},filled:{backgroundColor:`${dt.palette.success[400]} !important`},iconActive:{border:`1px solid ${dt.palette.success[400]} !important`},iconWarning:{border:`1px solid ${dt.palette.warning[400]} !important`}}));function StepIcon(dt){const{active:ht,completed:Dt,filled:Cn,warning:$n}=dt,{classes:Un}=useStyles$c(),Fn=useTheme();return $n?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconWarning,!!Cn&&Un.filled]),children:jsxRuntimeExports.jsx(default_1,{htmlColor:Fn.palette.warning[500]})}):Dt?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconActive,!!Cn&&Un.filled]),children:jsxRuntimeExports.jsx(default_1$1,{htmlColor:Cn?"#fff":Fn.palette.success[500]})}):ht?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconActive]),children:dt.index}):jsxRuntimeExports.jsx("div",{className:Un.icon,children:dt.index})}function StepperLabel(dt){const{classes:ht}=useStyles$c(),{index:Dt,activeStep:Cn,filled:$n,children:Un,warning:Fn}=dt;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.label,Dt>Cn&&ht.textInactive]),children:[jsxRuntimeExports.jsx(StepIcon,{index:Dt,active:Dt===Cn,completed:Dt<Cn,filled:$n,warning:Fn}),Un]})}function Stepper(dt){const{steps:ht,activeStep:Dt}=dt,Cn=useTheme();return jsxRuntimeExports.jsx(Stack$1,{sx:{width:"100%"},children:ht.map(($n,Un)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(StepperLabel,{index:Un+1,activeStep:Dt,filled:Cn.palette.mode==="light",warning:$n.warningLabel,children:jsxRuntimeExports.jsx("div",{children:$n.label})}),jsxRuntimeExports.jsx(StepperLabel$1,{index:Un+1,activeStep:Dt,last:Un+1===ht.length,warning:$n.warningLine,children:$n.component})]},Un))})}const BorderLinearProgress=styled$1(LinearProgress$1)(({theme:dt})=>({borderRadius:5,[`&.${linearProgressClasses$1.colorPrimary}`]:{backgroundColor:dt.palette.card.secondary},[`& .${linearProgressClasses$1.bar}`]:{borderRadius:5,backgroundColor:dt.palette.success[300]}})),useStyles$b=makeStyles()(dt=>({confirmations:{display:"flex",flexDirection:"column",justifyContent:"center",gap:"8px",marginTop:"16px"},confirmationsText:{textAlign:"center"}}));function Confirmations(dt){const{classes:ht}=useStyles$b(),{chain:Dt,blockHeight:Cn}=dt,$n=config$2.chains[Dt],Un=Cn+$n.finalityThreshold,[Fn,Hn]=reactExports.useState(0),{route:Gn,isInvalidVaa:Qn}=useSelector(jn=>jn.redeem);reactExports.useEffect(()=>{if($n.finalityThreshold===0)return;let jn=!1;return(async()=>{for(;0<Un&&!jn;){const Xn=await getCurrentBlock(dt.chain);jn||(Hn(Xn),await new Promise(ar=>setTimeout(ar,1e3)))}})(),()=>{jn=!0}},[Un,dt.chain,$n.finalityThreshold]);const qn=Fn>Un?0:Un-Fn,er=$n.finalityThreshold-qn,Wn=$n.finalityThreshold===0?100:Math.floor(er/$n.finalityThreshold*100);return jsxRuntimeExports.jsxs("div",{className:ht.confirmations,children:[jsxRuntimeExports.jsx(BorderLinearProgress,{variant:"determinate",value:Wn,color:"secondary"}),jsxRuntimeExports.jsx("div",{className:ht.confirmationsText,children:Wn<100?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[er," / ",$n.finalityThreshold," Confirmations"]}):Gn?Qn?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["There are not enough valid signatures to repair the VAA ",jsxRuntimeExports.jsx("br",{})," ","Please reach out to Wormhole support on"," ",jsxRuntimeExports.jsx("a",{href:"https://discord.com/invite/wormholecrypto",target:"_blank",rel:"noreferrer",children:"Discord"})]}):RoutesConfig[Gn].pendingMessage:""})]})}const useStyles$a=makeStyles()(dt=>({link:{...LINK(dt),transform:"translateX(10px)"}}));function ExplorerLink(dt){const{classes:ht}=useStyles$a(),Dt=config$2.chains[dt.chain];let Cn;return dt.type==="tx"?Dt.key==="sui"?Cn=`${Dt.explorerUrl}txblock/${dt.txHash}`:Dt.key==="aptos"?Cn=`${Dt.explorerUrl}txn/${dt.txHash}`:Dt.key==="sei"?Cn=`${Dt.explorerUrl}transaction/${dt.txHash}`:Dt.key==="injective"?Cn=`${Dt.explorerUrl}transaction/${dt.txHash}`:Dt.key==="osmosis"?Cn=config$2.network==="testnet"?`${Dt.explorerUrl}txs/${dt.txHash}`:`${Dt.explorerUrl}transactions/${dt.txHash}`:Cn=`${Dt.explorerUrl}tx/${dt.txHash}`:dt.type==="address"&&(Dt.key==="aptos"?Cn=`${Dt.explorerUrl}account/${dt.address}`:Cn=`${Dt.explorerUrl}address/${dt.address}`),dt.type==="object"&&Dt.key==="sui"&&(Cn=`${Dt.explorerUrl}object/${dt.object}`),config$2.isMainnet||(Dt.key==="solana"&&(Cn+="?cluster=devnet"),Dt.key==="sui"&&(Cn+="?network=testnet"),Dt.key==="aptos"&&(Cn+="?network=testnet")),jsxRuntimeExports.jsxs("a",{className:ht.link,style:dt.styles,href:Cn,target:"_blank",rel:"noreferrer","data-testid":`${dt.side}-section-explorer-link`,children:[jsxRuntimeExports.jsx("div",{children:Dt.explorerName}),jsxRuntimeExports.jsx(default_1$2,{})]})}const useStyles$9=makeStyles()(dt=>({header:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:"8px",borderBottom:`0.5px solid ${dt.palette.divider}`,marginBottom:"8px"},left:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:"16px",gap:"8px"},chainIcon:{height:"32px",width:"32px"}}));function Header(dt){const{classes:ht}=useStyles$9(),Dt=config$2.chains[dt.chain];return jsxRuntimeExports.jsxs("div",{className:ht.header,children:[jsxRuntimeExports.jsxs("div",{className:ht.left,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Dt.icon,height:32}),jsxRuntimeExports.jsx("div",{children:displayAddress(dt.chain,dt.address)}),jsxRuntimeExports.jsx(WalletIcon$1,{})]}),dt.loading?jsxRuntimeExports.jsx(CircularProgress$1,{size:26}):dt.text?jsxRuntimeExports.jsx("div",{"data-testid":`${dt.side}-section-scan-link-error-message`,children:dt.text}):dt.txHash&&jsxRuntimeExports.jsx(ExplorerLink,{chain:dt.chain,type:"tx",txHash:dt.txHash,side:dt.side})]})}function SendFrom(){const{txData:dt,route:ht,signedMessage:Dt}=useSelector(Gn=>Gn.redeem),Cn=useSelector(Gn=>Gn.redeem.transferComplete),{usdPrices:{data:$n}}=useSelector(Gn=>Gn.tokenPrices),Un=$n||{},[Fn,Hn]=reactExports.useState([]);return reactExports.useEffect(()=>{!dt||!ht||RouteOperator.getTransferSourceInfo(ht,{txData:dt,tokenPrices:Un}).then(Gn=>Hn(Gn))},[dt,ht,$n]),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(InputContainer,{children:[jsxRuntimeExports.jsx(Header,{chain:dt.fromChain,address:dt.sender,txHash:dt.sendTx,side:"source"}),jsxRuntimeExports.jsx(RenderRows,{rows:Fn})]}),!Cn&&!Dt&&jsxRuntimeExports.jsx(Confirmations,{chain:dt.fromChain,blockHeight:dt.block})]})}const useStyles$8=makeStyles()(dt=>({walletRow:{position:"relative",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"16px 8px",transition:"background-color 0.4s",cursor:"pointer",fontSize:"16px","&:hover":{backgroundColor:dt.palette.options.select},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},walletRowLeft:{display:"flex",flexDirection:"row",alignItems:"center",gap:"16px"},context:{opacity:"0.6"},notInstalled:{opacity:"60%"},noResults:{...CENTER,minHeight:"72px",maxWidth:"350px",margin:"auto",flexDirection:"column",marginBottom:"10px",gap:"8px"},noResultsTitle:{fontSize:"20px",fontWeight:"600"}})),FAILED_TO_LOAD_ERR="Failed to load wallets. Please refresh and try again.";function WalletsModal(dt){const ht=useTheme(),{classes:Dt}=useStyles$8(ht),{chain:Cn,type:$n}=dt,Un=useDispatch(),{fromChain:Fn,toChain:Hn}=useSelector(or=>or.transferInput),[Gn,Qn]=reactExports.useState({state:"loading"}),[qn,er]=reactExports.useState(""),Wn=reactExports.useMemo(()=>{const or=config$2.chainsArr.map(sr=>sr.context);return new Set(or)},[]);reactExports.useEffect(()=>{let or=!1;async function sr(){const vr=Cn||($n===TransferWallet.SENDING?Fn:Hn),hr=config$2.chains[vr];return Wn.has(hr.context)?await getWalletOptions(hr):[]}return(async()=>{try{const vr=await sr();!or&&vr&&Qn({state:"result",options:vr})}catch{Qn({state:"error",error:FAILED_TO_LOAD_ERR})}})(),()=>{or=!0}},[Fn,Hn,dt.chain,Cn,$n,Wn]);const jn=or=>{if(!or)return;const sr=or.target.value.toLowerCase();er(sr)},Zn=async or=>{const sr=$n===TransferWallet.SENDING?Fn:Hn;Un(setWalletModal(!1)),dt.onClose&&dt.onClose(),await connectWallet(dt.type,sr,or,Un)},Xn=or=>{const sr=or.sort(gr=>gr.isReady?-1:1),vr=({name:gr,type:ur})=>gr.toLowerCase().includes(qn)||ur.toLowerCase().includes(qn);return(qn?sr.filter(vr):sr).map((gr,ur)=>{const _r=gr.isReady,nr=_r?()=>Zn(gr):()=>window.open(gr.wallet.getUrl());return jsxRuntimeExports.jsxs("div",{className:Dt.walletRow,onClick:nr,children:[jsxRuntimeExports.jsxs("div",{className:Dt.walletRowLeft,children:[jsxRuntimeExports.jsx(WalletIcon,{name:gr.name,icon:gr.icon,height:32}),jsxRuntimeExports.jsxs("div",{className:`${!_r&&Dt.notInstalled}`,children:[!_r&&"Install"," ",gr.name]})]}),jsxRuntimeExports.jsx("div",{className:Dt.context,children:gr.type.toUpperCase()})]},ur)})},ar=()=>{dt.onClose?dt.onClose():Un(setWalletModal(!1))},dr=()=>{if(Gn.state==="loading")return jsxRuntimeExports.jsx(CircularProgress$1,{});if(Gn.state==="error")return jsxRuntimeExports.jsx(AlertBanner,{show:!0,content:Gn.error,error:!0});if(Gn.state==="result"){const{options:or}=Gn;if(or.length>0)return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Search,{placeholder:"Search",onChange:jn}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 250px)",blendColor:ht.palette.modal.background,children:jsxRuntimeExports.jsx("div",{children:Xn(or)})})]})}return jsxRuntimeExports.jsxs("div",{className:Dt.noResults,children:[jsxRuntimeExports.jsx("div",{className:Dt.noResultsTitle,children:"No wallets detected"}),jsxRuntimeExports.jsx("div",{children:"Install a wallet extension to continue"})]})};return jsxRuntimeExports.jsxs(Modal,{open:!!dt.type,closable:!0,width:500,onClose:ar,children:[jsxRuntimeExports.jsx(Header$1,{text:"Connect wallet",size:28}),jsxRuntimeExports.jsx(Spacer,{height:16}),dr()]})}const InfoIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21508 0.913451 7.4078C0.00519941 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6934 24 14.3734 24 12C23.9969 8.81834 22.7317 5.76787 20.4819 3.51809C18.2321 1.26832 15.1817 0.00305488 12 0ZM12 22.1538C9.99176 22.1538 8.02862 21.5583 6.35883 20.4426C4.68904 19.3269 3.38759 17.7411 2.61907 15.8857C1.85055 14.0303 1.64947 11.9887 2.04126 10.0191C2.43305 8.04943 3.40011 6.24019 4.82015 4.82015C6.24019 3.40011 8.04943 2.43305 10.0191 2.04126C11.9887 1.64947 14.0303 1.85055 15.8857 2.61907C17.7411 3.38759 19.3269 4.68903 20.4426 6.35882C21.5583 8.02861 22.1538 9.99176 22.1538 12C22.1508 14.692 21.08 17.2729 19.1765 19.1765C17.2729 21.08 14.692 22.1508 12 22.1538ZM13.8462 17.5385C13.8462 17.7833 13.7489 18.0181 13.5758 18.1912C13.4027 18.3643 13.1679 18.4615 12.9231 18.4615H12C11.7552 18.4615 11.5204 18.3643 11.3473 18.1912C11.1742 18.0181 11.0769 17.7833 11.0769 17.5385V12C10.8321 12 10.5973 11.9027 10.4242 11.7296C10.2511 11.5565 10.1538 11.3217 10.1538 11.0769C10.1538 10.8321 10.2511 10.5973 10.4242 10.4242C10.5973 10.2511 10.8321 10.1538 11.0769 10.1538H12C12.2448 10.1538 12.4796 10.2511 12.6527 10.4242C12.8258 10.5973 12.9231 10.8321 12.9231 11.0769V16.6154C13.1679 16.6154 13.4027 16.7126 13.5758 16.8857C13.7489 17.0589 13.8462 17.2936 13.8462 17.5385ZM10.3846 6.92308C10.3846 6.64922 10.4658 6.38152 10.618 6.15382C10.7701 5.92613 10.9864 5.74866 11.2394 5.64386C11.4924 5.53906 11.7708 5.51164 12.0394 5.56507C12.3079 5.61849 12.5547 5.75036 12.7483 5.944C12.9419 6.13765 13.0738 6.38436 13.1272 6.65295C13.1807 6.92154 13.1532 7.19994 13.0485 7.45294C12.9437 7.70595 12.7662 7.9222 12.5385 8.07434C12.3108 8.22649 12.0431 8.30769 11.7692 8.30769C11.402 8.30769 11.0498 8.16181 10.7902 7.90215C10.5305 7.64248 10.3846 7.2903 10.3846 6.92308Z",fill:"currentColor",fillOpacity:"0.9"}),"Info"),useStyles$7=makeStyles()(dt=>({flex:{display:"flex",alignItems:"center",marginLeft:"auto"},icon:{height:"14px",cursor:"pointer"}}));function SwitchToManualClaim({checked:dt,onChange:ht,disabled:Dt,title:Cn}){const{classes:$n}=useStyles$7();return jsxRuntimeExports.jsxs("div",{className:$n.flex,children:[!dt&&jsxRuntimeExports.jsx("span",{children:"Waiting for relayer. . ."}),jsxRuntimeExports.jsxs("div",{className:$n.flex,children:[jsxRuntimeExports.jsx("span",{children:"Switch to manual claim"}),jsxRuntimeExports.jsx(Tooltip$1,{title:Cn,arrow:!0,children:jsxRuntimeExports.jsx(InfoIcon,{className:$n.icon})}),jsxRuntimeExports.jsx(Switch,{checked:dt,onChange:Un=>ht(Un.target.checked),disabled:Dt})]})]})}function AssociatedTokenAlert(){const dt=useDispatch(),ht=useSelector(Un=>Un.redeem.txData),Dt=useSelector(Un=>Un.wallet.receiving),Cn=reactExports.useCallback(async()=>{const Un=config$2.tokens[ht.receivedTokenKey],Fn=(Un==null?void 0:Un.nativeChain)==="solana"?Un:getTokenById(ht.tokenId);if(!Fn)return;const Hn=getWrappedTokenId(Fn),Gn=await solanaContext().createAssociatedTokenAccount(Hn,Dt.address,"finalized");Gn&&(await signAndSendTransaction("solana",Gn,TransferWallet.RECEIVING),dt(setTxDetails({...ht,recipient:Dt.address})))},[ht,Dt.address,dt]),$n=jsxRuntimeExports.jsx(AssociatedTokenWarning,{createAssociatedTokenAccount:Cn});return jsxRuntimeExports.jsx(AlertBanner,{warning:!0,show:!!Dt.address,content:$n})}function SendTo(){const dt=useDispatch(),{redeemTx:ht,transferComplete:Dt,route:Cn,signedMessage:$n}=useSelector(yr=>yr.redeem),Un=useSelector(yr=>yr.redeem.txData),Fn=useSelector(yr=>yr.wallet.receiving),Hn=useSelector(yr=>yr.redeem.transferDestInfo),{usdPrices:{data:Gn}}=useSelector(yr=>yr.tokenPrices),Qn=Gn||{},[qn,er]=reactExports.useState(""),[Wn,jn]=reactExports.useState(!1),Zn=()=>{gr(!0)},Xn=reactExports.useCallback(()=>{if(!Un)return;const yr=Fn.address.toLowerCase(),Ir=Fn.currentAddress.toLowerCase(),Pr=Un.recipient.toLowerCase();return yr===Ir&&yr===Pr},[Fn,Un]),ar=reactExports.useCallback(yr=>{jn(yr)},[]),[dr,or]=reactExports.useState(!1),[sr,vr]=reactExports.useState(Xn()),[hr,gr]=reactExports.useState(!1),ur=reactExports.useCallback(async()=>{if(Cn){if(ht)return ht;if($n&&Cn){const yr=await RouteOperator.tryFetchRedeemTx(Cn,$n);if(yr)return dt(setRedeemTx(yr)),yr}}},[ht,Cn,$n,dt]);reactExports.useEffect(()=>{if(!Un||!Cn)return;(async()=>{let Ir;try{Ir=await ur()}catch(Br){console.error(`could not fetch redeem event:
524
+ `),indeterminate2Keyframe)),LinearProgress=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiLinearProgress"}),{className:$n,color:Un="primary",value:Fn,valueBuffer:Hn,variant:Gn="indeterminate"}=Cn,Qn=_objectWithoutPropertiesLoose(Cn,_excluded$h),qn=_extends({},Cn,{color:Un,variant:Gn}),er=useUtilityClasses$e(qn),Wn=useTheme(),jn={},Zn={bar1:{},bar2:{}};if((Gn==="determinate"||Gn==="buffer")&&Fn!==void 0){jn["aria-valuenow"]=Math.round(Fn),jn["aria-valuemin"]=0,jn["aria-valuemax"]=100;let Xn=Fn-100;Wn.direction==="rtl"&&(Xn=-Xn),Zn.bar1.transform=`translateX(${Xn}%)`}if(Gn==="buffer"&&Hn!==void 0){let Xn=(Hn||0)-100;Wn.direction==="rtl"&&(Xn=-Xn),Zn.bar2.transform=`translateX(${Xn}%)`}return jsxRuntimeExports.jsxs(LinearProgressRoot,_extends({className:clsx(er.root,$n),ownerState:qn,role:"progressbar"},jn,{ref:Dt},Qn,{children:[Gn==="buffer"?jsxRuntimeExports.jsx(LinearProgressDashed,{className:er.dashed,ownerState:qn}):null,jsxRuntimeExports.jsx(LinearProgressBar1,{className:er.bar1,ownerState:qn,style:Zn.bar1}),Gn==="determinate"?null:jsxRuntimeExports.jsx(LinearProgressBar2,{className:er.bar2,ownerState:qn,style:Zn.bar2})]}))}),LinearProgress$1=LinearProgress;function getLinkUtilityClass(dt){return generateUtilityClass("MuiLink",dt)}const linkClasses=generateUtilityClasses("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),linkClasses$1=linkClasses,colorTransformations={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},transformDeprecatedColors=dt=>colorTransformations[dt]||dt,getTextDecoration=({theme:dt,ownerState:ht})=>{const Dt=transformDeprecatedColors(ht.color),Cn=getPath(dt,`palette.${Dt}`,!1)||ht.color,$n=getPath(dt,`palette.${Dt}Channel`);return"vars"in dt&&$n?`rgba(${$n} / 0.4)`:alpha(Cn,.4)},getTextDecoration$1=getTextDecoration,_excluded$g=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],useUtilityClasses$d=dt=>{const{classes:ht,component:Dt,focusVisible:Cn,underline:$n}=dt,Un={root:["root",`underline${capitalize$1($n)}`,Dt==="button"&&"button",Cn&&"focusVisible"]};return composeClasses(Un,getLinkUtilityClass,ht)},LinkRoot=styled$1(Typography$1,{name:"MuiLink",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,ht[`underline${capitalize$1(Dt.underline)}`],Dt.component==="button"&&ht.button]}})(({theme:dt,ownerState:ht})=>_extends({},ht.underline==="none"&&{textDecoration:"none"},ht.underline==="hover"&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},ht.underline==="always"&&_extends({textDecoration:"underline"},ht.color!=="inherit"&&{textDecorationColor:getTextDecoration$1({theme:dt,ownerState:ht})},{"&:hover":{textDecorationColor:"inherit"}}),ht.component==="button"&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${linkClasses$1.focusVisible}`]:{outline:"auto"}})),Link=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiLink"}),{className:$n,color:Un="primary",component:Fn="a",onBlur:Hn,onFocus:Gn,TypographyClasses:Qn,underline:qn="always",variant:er="inherit",sx:Wn}=Cn,jn=_objectWithoutPropertiesLoose(Cn,_excluded$g),{isFocusVisibleRef:Zn,onBlur:Xn,onFocus:ar,ref:dr}=useIsFocusVisible(),[or,sr]=reactExports.useState(!1),vr=useForkRef(Dt,dr),hr=nr=>{Xn(nr),Zn.current===!1&&sr(!1),Hn&&Hn(nr)},gr=nr=>{ar(nr),Zn.current===!0&&sr(!0),Gn&&Gn(nr)},ur=_extends({},Cn,{color:Un,component:Fn,focusVisible:or,underline:qn,variant:er}),_r=useUtilityClasses$d(ur);return jsxRuntimeExports.jsx(LinkRoot,_extends({color:Un,className:clsx(_r.root,$n),classes:Qn,component:Fn,onBlur:hr,onFocus:gr,ref:vr,ownerState:ur,variant:er,sx:[...Object.keys(colorTransformations).includes(Un)?[]:[{color:Un}],...Array.isArray(Wn)?Wn:[Wn]]},jn))}),Link$1=Link,ListContext=reactExports.createContext({}),ListContext$1=ListContext;function getListUtilityClass(dt){return generateUtilityClass("MuiList",dt)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);const _excluded$f=["children","className","component","dense","disablePadding","subheader"],useUtilityClasses$c=dt=>{const{classes:ht,disablePadding:Dt,dense:Cn,subheader:$n}=dt;return composeClasses({root:["root",!Dt&&"padding",Cn&&"dense",$n&&"subheader"]},getListUtilityClass,ht)},ListRoot=styled$1("ul",{name:"MuiList",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,!Dt.disablePadding&&ht.padding,Dt.dense&&ht.dense,Dt.subheader&&ht.subheader]}})(({ownerState:dt})=>_extends({listStyle:"none",margin:0,padding:0,position:"relative"},!dt.disablePadding&&{paddingTop:8,paddingBottom:8},dt.subheader&&{paddingTop:0})),List=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiList"}),{children:$n,className:Un,component:Fn="ul",dense:Hn=!1,disablePadding:Gn=!1,subheader:Qn}=Cn,qn=_objectWithoutPropertiesLoose(Cn,_excluded$f),er=reactExports.useMemo(()=>({dense:Hn}),[Hn]),Wn=_extends({},Cn,{component:Fn,dense:Hn,disablePadding:Gn}),jn=useUtilityClasses$c(Wn);return jsxRuntimeExports.jsx(ListContext$1.Provider,{value:er,children:jsxRuntimeExports.jsxs(ListRoot,_extends({as:Fn,className:clsx(jn.root,Un),ref:Dt,ownerState:Wn},qn,{children:[Qn,$n]}))})}),List$1=List,listItemIconClasses=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),listItemIconClasses$1=listItemIconClasses,listItemTextClasses=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),listItemTextClasses$1=listItemTextClasses,_excluded$e=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function nextItem$1(dt,ht,Dt){return dt===ht?dt.firstChild:ht&&ht.nextElementSibling?ht.nextElementSibling:Dt?null:dt.firstChild}function previousItem$1(dt,ht,Dt){return dt===ht?Dt?dt.firstChild:dt.lastChild:ht&&ht.previousElementSibling?ht.previousElementSibling:Dt?null:dt.lastChild}function textCriteriaMatches(dt,ht){if(ht===void 0)return!0;let Dt=dt.innerText;return Dt===void 0&&(Dt=dt.textContent),Dt=Dt.trim().toLowerCase(),Dt.length===0?!1:ht.repeating?Dt[0]===ht.keys[0]:Dt.indexOf(ht.keys.join(""))===0}function moveFocus$1(dt,ht,Dt,Cn,$n,Un){let Fn=!1,Hn=$n(dt,ht,ht?Dt:!1);for(;Hn;){if(Hn===dt.firstChild){if(Fn)return!1;Fn=!0}const Gn=Cn?!1:Hn.disabled||Hn.getAttribute("aria-disabled")==="true";if(!Hn.hasAttribute("tabindex")||!textCriteriaMatches(Hn,Un)||Gn)Hn=$n(dt,Hn,Dt);else return Hn.focus(),!0}return!1}const MenuList=reactExports.forwardRef(function dt(ht,Dt){const{actions:Cn,autoFocus:$n=!1,autoFocusItem:Un=!1,children:Fn,className:Hn,disabledItemsFocusable:Gn=!1,disableListWrap:Qn=!1,onKeyDown:qn,variant:er="selectedMenu"}=ht,Wn=_objectWithoutPropertiesLoose(ht,_excluded$e),jn=reactExports.useRef(null),Zn=reactExports.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});useEnhancedEffect$1(()=>{$n&&jn.current.focus()},[$n]),reactExports.useImperativeHandle(Cn,()=>({adjustStyleForScrollbar:(sr,vr)=>{const hr=!jn.current.style.width;if(sr.clientHeight<jn.current.clientHeight&&hr){const gr=`${getScrollbarSize(ownerDocument(sr))}px`;jn.current.style[vr.direction==="rtl"?"paddingLeft":"paddingRight"]=gr,jn.current.style.width=`calc(100% + ${gr})`}return jn.current}}),[]);const Xn=sr=>{const vr=jn.current,hr=sr.key,gr=ownerDocument(vr).activeElement;if(hr==="ArrowDown")sr.preventDefault(),moveFocus$1(vr,gr,Qn,Gn,nextItem$1);else if(hr==="ArrowUp")sr.preventDefault(),moveFocus$1(vr,gr,Qn,Gn,previousItem$1);else if(hr==="Home")sr.preventDefault(),moveFocus$1(vr,null,Qn,Gn,nextItem$1);else if(hr==="End")sr.preventDefault(),moveFocus$1(vr,null,Qn,Gn,previousItem$1);else if(hr.length===1){const ur=Zn.current,_r=hr.toLowerCase(),nr=performance.now();ur.keys.length>0&&(nr-ur.lastTime>500?(ur.keys=[],ur.repeating=!0,ur.previousKeyMatched=!0):ur.repeating&&_r!==ur.keys[0]&&(ur.repeating=!1)),ur.lastTime=nr,ur.keys.push(_r);const Sr=gr&&!ur.repeating&&textCriteriaMatches(gr,ur);ur.previousKeyMatched&&(Sr||moveFocus$1(vr,gr,!1,Gn,nextItem$1,ur))?sr.preventDefault():ur.previousKeyMatched=!1}qn&&qn(sr)},ar=useForkRef(jn,Dt);let dr=-1;reactExports.Children.forEach(Fn,(sr,vr)=>{if(!reactExports.isValidElement(sr)){dr===vr&&(dr+=1,dr>=Fn.length&&(dr=-1));return}sr.props.disabled||(er==="selectedMenu"&&sr.props.selected||dr===-1)&&(dr=vr),dr===vr&&(sr.props.disabled||sr.props.muiSkipListHighlight||sr.type.muiSkipListHighlight)&&(dr+=1,dr>=Fn.length&&(dr=-1))});const or=reactExports.Children.map(Fn,(sr,vr)=>{if(vr===dr){const hr={};return Un&&(hr.autoFocus=!0),sr.props.tabIndex===void 0&&er==="selectedMenu"&&(hr.tabIndex=0),reactExports.cloneElement(sr,hr)}return sr});return jsxRuntimeExports.jsx(List$1,_extends({role:"menu",ref:ar,className:Hn,onKeyDown:Xn,tabIndex:$n?0:-1},Wn,{children:or}))}),MenuList$1=MenuList;function getPopoverUtilityClass(dt){return generateUtilityClass("MuiPopover",dt)}generateUtilityClasses("MuiPopover",["root","paper"]);const _excluded$d=["onEntering"],_excluded2$2=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","slots","slotProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps","disableScrollLock"],_excluded3=["slotProps"];function getOffsetTop(dt,ht){let Dt=0;return typeof ht=="number"?Dt=ht:ht==="center"?Dt=dt.height/2:ht==="bottom"&&(Dt=dt.height),Dt}function getOffsetLeft(dt,ht){let Dt=0;return typeof ht=="number"?Dt=ht:ht==="center"?Dt=dt.width/2:ht==="right"&&(Dt=dt.width),Dt}function getTransformOriginValue(dt){return[dt.horizontal,dt.vertical].map(ht=>typeof ht=="number"?`${ht}px`:ht).join(" ")}function resolveAnchorEl(dt){return typeof dt=="function"?dt():dt}const useUtilityClasses$b=dt=>{const{classes:ht}=dt;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,ht)},PopoverRoot=styled$1(Modal$2,{name:"MuiPopover",slot:"Root",overridesResolver:(dt,ht)=>ht.root})({}),PopoverPaper=styled$1(Paper$1,{name:"MuiPopover",slot:"Paper",overridesResolver:(dt,ht)=>ht.paper})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),Popover=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un;const Fn=useThemeProps({props:ht,name:"MuiPopover"}),{action:Hn,anchorEl:Gn,anchorOrigin:Qn={vertical:"top",horizontal:"left"},anchorPosition:qn,anchorReference:er="anchorEl",children:Wn,className:jn,container:Zn,elevation:Xn=8,marginThreshold:ar=16,open:dr,PaperProps:or={},slots:sr,slotProps:vr,transformOrigin:hr={vertical:"top",horizontal:"left"},TransitionComponent:gr=Grow$1,transitionDuration:ur="auto",TransitionProps:{onEntering:_r}={},disableScrollLock:nr=!1}=Fn,Sr=_objectWithoutPropertiesLoose(Fn.TransitionProps,_excluded$d),Ar=_objectWithoutPropertiesLoose(Fn,_excluded2$2),tr=(Cn=vr==null?void 0:vr.paper)!=null?Cn:or,Yn=reactExports.useRef(),fr=useForkRef(Yn,tr.ref),Cr=_extends({},Fn,{anchorOrigin:Qn,anchorReference:er,elevation:Xn,marginThreshold:ar,externalPaperSlotProps:tr,transformOrigin:hr,TransitionComponent:gr,transitionDuration:ur,TransitionProps:Sr}),yr=useUtilityClasses$b(Cr),Ir=reactExports.useCallback(()=>{if(er==="anchorPosition")return qn;const ls=resolveAnchorEl(Gn),Ss=(ls&&ls.nodeType===1?ls:ownerDocument(Yn.current).body).getBoundingClientRect();return{top:Ss.top+getOffsetTop(Ss,Qn.vertical),left:Ss.left+getOffsetLeft(Ss,Qn.horizontal)}},[Gn,Qn.horizontal,Qn.vertical,qn,er]),Pr=reactExports.useCallback(ls=>({vertical:getOffsetTop(ls,hr.vertical),horizontal:getOffsetLeft(ls,hr.horizontal)}),[hr.horizontal,hr.vertical]),Br=reactExports.useCallback(ls=>{const Ao={width:ls.offsetWidth,height:ls.offsetHeight},Ss=Pr(Ao);if(er==="none")return{top:null,left:null,transformOrigin:getTransformOriginValue(Ss)};const mo=Ir();let Bo=mo.top-Ss.vertical,To=mo.left-Ss.horizontal;const Do=Bo+Ao.height,zr=To+Ao.width,na=ownerWindow(resolveAnchorEl(Gn)),Fo=na.innerHeight-ar,os=na.innerWidth-ar;if(ar!==null&&Bo<ar){const ns=Bo-ar;Bo-=ns,Ss.vertical+=ns}else if(ar!==null&&Do>Fo){const ns=Do-Fo;Bo-=ns,Ss.vertical+=ns}if(ar!==null&&To<ar){const ns=To-ar;To-=ns,Ss.horizontal+=ns}else if(zr>os){const ns=zr-os;To-=ns,Ss.horizontal+=ns}return{top:`${Math.round(Bo)}px`,left:`${Math.round(To)}px`,transformOrigin:getTransformOriginValue(Ss)}},[Gn,er,Ir,Pr,ar]),[rr,pr]=reactExports.useState(dr),$r=reactExports.useCallback(()=>{const ls=Yn.current;if(!ls)return;const Ao=Br(ls);Ao.top!==null&&(ls.style.top=Ao.top),Ao.left!==null&&(ls.style.left=Ao.left),ls.style.transformOrigin=Ao.transformOrigin,pr(!0)},[Br]);reactExports.useEffect(()=>(nr&&window.addEventListener("scroll",$r),()=>window.removeEventListener("scroll",$r)),[Gn,nr,$r]);const kr=(ls,Ao)=>{_r&&_r(ls,Ao),$r()},Tr=()=>{pr(!1)};reactExports.useEffect(()=>{dr&&$r()}),reactExports.useImperativeHandle(Hn,()=>dr?{updatePosition:()=>{$r()}}:null,[dr,$r]),reactExports.useEffect(()=>{if(!dr)return;const ls=debounce$1(()=>{$r()}),Ao=ownerWindow(Gn);return Ao.addEventListener("resize",ls),()=>{ls.clear(),Ao.removeEventListener("resize",ls)}},[Gn,dr,$r]);let Nr=ur;ur==="auto"&&!gr.muiSupportAuto&&(Nr=void 0);const Yr=Zn||(Gn?ownerDocument(resolveAnchorEl(Gn)).body:void 0),to=($n=sr==null?void 0:sr.root)!=null?$n:PopoverRoot,po=(Un=sr==null?void 0:sr.paper)!=null?Un:PopoverPaper,So=useSlotProps({elementType:po,externalSlotProps:_extends({},tr,{style:rr?tr.style:_extends({},tr.style,{opacity:0})}),additionalProps:{elevation:Xn,ref:fr},ownerState:Cr,className:clsx(yr.paper,tr==null?void 0:tr.className)}),Jo=useSlotProps({elementType:to,externalSlotProps:(vr==null?void 0:vr.root)||{},externalForwardedProps:Ar,additionalProps:{ref:Dt,slotProps:{backdrop:{invisible:!0}},container:Yr,open:dr},ownerState:Cr,className:clsx(yr.root,jn)}),{slotProps:Zo}=Jo,Vo=_objectWithoutPropertiesLoose(Jo,_excluded3);return jsxRuntimeExports.jsx(to,_extends({},Vo,!isHostComponent(to)&&{slotProps:Zo,disableScrollLock:nr},{children:jsxRuntimeExports.jsx(gr,_extends({appear:!0,in:dr,onEntering:kr,onExited:Tr,timeout:Nr},Sr,{children:jsxRuntimeExports.jsx(po,_extends({},So,{children:Wn}))}))}))}),Popover$1=Popover;function getMenuUtilityClass(dt){return generateUtilityClass("MuiMenu",dt)}generateUtilityClasses("MuiMenu",["root","paper","list"]);const _excluded$c=["onEntering"],_excluded2$1=["autoFocus","children","className","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant","slots","slotProps"],RTL_ORIGIN={vertical:"top",horizontal:"right"},LTR_ORIGIN={vertical:"top",horizontal:"left"},useUtilityClasses$a=dt=>{const{classes:ht}=dt;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,ht)},MenuRoot=styled$1(Popover$1,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiMenu",slot:"Root",overridesResolver:(dt,ht)=>ht.root})({}),MenuPaper=styled$1(PopoverPaper,{name:"MuiMenu",slot:"Paper",overridesResolver:(dt,ht)=>ht.paper})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),MenuMenuList=styled$1(MenuList$1,{name:"MuiMenu",slot:"List",overridesResolver:(dt,ht)=>ht.list})({outline:0}),Menu$1=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n;const Un=useThemeProps({props:ht,name:"MuiMenu"}),{autoFocus:Fn=!0,children:Hn,className:Gn,disableAutoFocusItem:Qn=!1,MenuListProps:qn={},onClose:er,open:Wn,PaperProps:jn={},PopoverClasses:Zn,transitionDuration:Xn="auto",TransitionProps:{onEntering:ar}={},variant:dr="selectedMenu",slots:or={},slotProps:sr={}}=Un,vr=_objectWithoutPropertiesLoose(Un.TransitionProps,_excluded$c),hr=_objectWithoutPropertiesLoose(Un,_excluded2$1),gr=useTheme(),ur=gr.direction==="rtl",_r=_extends({},Un,{autoFocus:Fn,disableAutoFocusItem:Qn,MenuListProps:qn,onEntering:ar,PaperProps:jn,transitionDuration:Xn,TransitionProps:vr,variant:dr}),nr=useUtilityClasses$a(_r),Sr=Fn&&!Qn&&Wn,Ar=reactExports.useRef(null),tr=(Br,rr)=>{Ar.current&&Ar.current.adjustStyleForScrollbar(Br,gr),ar&&ar(Br,rr)},Yn=Br=>{Br.key==="Tab"&&(Br.preventDefault(),er&&er(Br,"tabKeyDown"))};let fr=-1;reactExports.Children.map(Hn,(Br,rr)=>{reactExports.isValidElement(Br)&&(Br.props.disabled||(dr==="selectedMenu"&&Br.props.selected||fr===-1)&&(fr=rr))});const Cr=(Cn=or.paper)!=null?Cn:MenuPaper,yr=($n=sr.paper)!=null?$n:jn,Ir=useSlotProps({elementType:or.root,externalSlotProps:sr.root,ownerState:_r,className:[nr.root,Gn]}),Pr=useSlotProps({elementType:Cr,externalSlotProps:yr,ownerState:_r,className:nr.paper});return jsxRuntimeExports.jsx(MenuRoot,_extends({onClose:er,anchorOrigin:{vertical:"bottom",horizontal:ur?"right":"left"},transformOrigin:ur?RTL_ORIGIN:LTR_ORIGIN,slots:{paper:Cr,root:or.root},slotProps:{root:Ir,paper:Pr},open:Wn,ref:Dt,transitionDuration:Xn,TransitionProps:_extends({onEntering:tr},vr),ownerState:_r},hr,{classes:Zn,children:jsxRuntimeExports.jsx(MenuMenuList,_extends({onKeyDown:Yn,actions:Ar,autoFocus:Fn&&(fr===-1||Qn),autoFocusItem:Sr,variant:dr},qn,{className:clsx(nr.list,qn.className),children:Hn}))}))}),Menu$2=Menu$1;function getMenuItemUtilityClass(dt){return generateUtilityClass("MuiMenuItem",dt)}const menuItemClasses=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),menuItemClasses$1=menuItemClasses,_excluded$b=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],overridesResolver=(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.dense&&ht.dense,Dt.divider&&ht.divider,!Dt.disableGutters&&ht.gutters]},useUtilityClasses$9=dt=>{const{disabled:ht,dense:Dt,divider:Cn,disableGutters:$n,selected:Un,classes:Fn}=dt,Gn=composeClasses({root:["root",Dt&&"dense",ht&&"disabled",!$n&&"gutters",Cn&&"divider",Un&&"selected"]},getMenuItemUtilityClass,Fn);return _extends({},Fn,Gn)},MenuItemRoot=styled$1(ButtonBase$1,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver})(({theme:dt,ownerState:ht})=>_extends({},dt.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!ht.disableGutters&&{paddingLeft:16,paddingRight:16},ht.divider&&{borderBottom:`1px solid ${(dt.vars||dt).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(dt.vars||dt).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${menuItemClasses$1.selected}`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / ${dt.vars.palette.action.selectedOpacity})`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity),[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / calc(${dt.vars.palette.action.selectedOpacity} + ${dt.vars.palette.action.focusOpacity}))`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity+dt.palette.action.focusOpacity)}},[`&.${menuItemClasses$1.selected}:hover`]:{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / calc(${dt.vars.palette.action.selectedOpacity} + ${dt.vars.palette.action.hoverOpacity}))`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity+dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:dt.vars?`rgba(${dt.vars.palette.primary.mainChannel} / ${dt.vars.palette.action.selectedOpacity})`:alpha(dt.palette.primary.main,dt.palette.action.selectedOpacity)}},[`&.${menuItemClasses$1.focusVisible}`]:{backgroundColor:(dt.vars||dt).palette.action.focus},[`&.${menuItemClasses$1.disabled}`]:{opacity:(dt.vars||dt).palette.action.disabledOpacity},[`& + .${dividerClasses$1.root}`]:{marginTop:dt.spacing(1),marginBottom:dt.spacing(1)},[`& + .${dividerClasses$1.inset}`]:{marginLeft:52},[`& .${listItemTextClasses$1.root}`]:{marginTop:0,marginBottom:0},[`& .${listItemTextClasses$1.inset}`]:{paddingLeft:36},[`& .${listItemIconClasses$1.root}`]:{minWidth:36}},!ht.dense&&{[dt.breakpoints.up("sm")]:{minHeight:"auto"}},ht.dense&&_extends({minHeight:32,paddingTop:4,paddingBottom:4},dt.typography.body2,{[`& .${listItemIconClasses$1.root} svg`]:{fontSize:"1.25rem"}}))),MenuItem=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiMenuItem"}),{autoFocus:$n=!1,component:Un="li",dense:Fn=!1,divider:Hn=!1,disableGutters:Gn=!1,focusVisibleClassName:Qn,role:qn="menuitem",tabIndex:er,className:Wn}=Cn,jn=_objectWithoutPropertiesLoose(Cn,_excluded$b),Zn=reactExports.useContext(ListContext$1),Xn=reactExports.useMemo(()=>({dense:Fn||Zn.dense||!1,disableGutters:Gn}),[Zn.dense,Fn,Gn]),ar=reactExports.useRef(null);useEnhancedEffect$1(()=>{$n&&ar.current&&ar.current.focus()},[$n]);const dr=_extends({},Cn,{dense:Xn.dense,divider:Hn,disableGutters:Gn}),or=useUtilityClasses$9(Cn),sr=useForkRef(ar,Dt);let vr;return Cn.disabled||(vr=er!==void 0?er:-1),jsxRuntimeExports.jsx(ListContext$1.Provider,{value:Xn,children:jsxRuntimeExports.jsx(MenuItemRoot,_extends({ref:sr,role:qn,tabIndex:vr,component:Un,focusVisibleClassName:clsx(or.focusVisible,Qn),className:clsx(or.root,Wn)},jn,{ownerState:dr,classes:or}))})}),MenuItem$1=MenuItem;function getNativeSelectUtilityClasses(dt){return generateUtilityClass("MuiNativeSelect",dt)}const nativeSelectClasses=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),nativeSelectClasses$1=nativeSelectClasses,_excluded$a=["className","disabled","error","IconComponent","inputRef","variant"],useUtilityClasses$8=dt=>{const{classes:ht,variant:Dt,disabled:Cn,multiple:$n,open:Un,error:Fn}=dt,Hn={select:["select",Dt,Cn&&"disabled",$n&&"multiple",Fn&&"error"],icon:["icon",`icon${capitalize$1(Dt)}`,Un&&"iconOpen",Cn&&"disabled"]};return composeClasses(Hn,getNativeSelectUtilityClasses,ht)},nativeSelectSelectStyles=({ownerState:dt,theme:ht})=>_extends({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":_extends({},ht.vars?{backgroundColor:`rgba(${ht.vars.palette.common.onBackgroundChannel} / 0.05)`}:{backgroundColor:ht.palette.mode==="light"?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"},[`&.${nativeSelectClasses$1.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(ht.vars||ht).palette.background.paper},"&&&":{paddingRight:24,minWidth:16}},dt.variant==="filled"&&{"&&&":{paddingRight:32}},dt.variant==="outlined"&&{borderRadius:(ht.vars||ht).shape.borderRadius,"&:focus":{borderRadius:(ht.vars||ht).shape.borderRadius},"&&&":{paddingRight:32}}),NativeSelectSelect=styled$1("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.select,ht[Dt.variant],Dt.error&&ht.error,{[`&.${nativeSelectClasses$1.multiple}`]:ht.multiple}]}})(nativeSelectSelectStyles),nativeSelectIconStyles=({ownerState:dt,theme:ht})=>_extends({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(ht.vars||ht).palette.action.active,[`&.${nativeSelectClasses$1.disabled}`]:{color:(ht.vars||ht).palette.action.disabled}},dt.open&&{transform:"rotate(180deg)"},dt.variant==="filled"&&{right:7},dt.variant==="outlined"&&{right:7}),NativeSelectIcon=styled$1("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.icon,Dt.variant&&ht[`icon${capitalize$1(Dt.variant)}`],Dt.open&&ht.iconOpen]}})(nativeSelectIconStyles),NativeSelectInput=reactExports.forwardRef(function dt(ht,Dt){const{className:Cn,disabled:$n,error:Un,IconComponent:Fn,inputRef:Hn,variant:Gn="standard"}=ht,Qn=_objectWithoutPropertiesLoose(ht,_excluded$a),qn=_extends({},ht,{disabled:$n,variant:Gn,error:Un}),er=useUtilityClasses$8(qn);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(NativeSelectSelect,_extends({ownerState:qn,className:clsx(er.select,Cn),disabled:$n,ref:Hn||Dt},Qn)),ht.multiple?null:jsxRuntimeExports.jsx(NativeSelectIcon,{as:Fn,ownerState:qn,className:er.icon})]})}),NativeSelectInput$1=NativeSelectInput;var _span$1;const _excluded$9=["children","classes","className","label","notched"],NotchedOutlineRoot$1=styled$1("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),NotchedOutlineLegend=styled$1("legend")(({ownerState:dt,theme:ht})=>_extends({float:"unset",width:"auto",overflow:"hidden"},!dt.withLabel&&{padding:0,lineHeight:"11px",transition:ht.transitions.create("width",{duration:150,easing:ht.transitions.easing.easeOut})},dt.withLabel&&_extends({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:ht.transitions.create("max-width",{duration:50,easing:ht.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},dt.notched&&{maxWidth:"100%",transition:ht.transitions.create("max-width",{duration:100,easing:ht.transitions.easing.easeOut,delay:50})})));function NotchedOutline(dt){const{className:ht,label:Dt,notched:Cn}=dt,$n=_objectWithoutPropertiesLoose(dt,_excluded$9),Un=Dt!=null&&Dt!=="",Fn=_extends({},dt,{notched:Cn,withLabel:Un});return jsxRuntimeExports.jsx(NotchedOutlineRoot$1,_extends({"aria-hidden":!0,className:ht,ownerState:Fn},$n,{children:jsxRuntimeExports.jsx(NotchedOutlineLegend,{ownerState:Fn,children:Un?jsxRuntimeExports.jsx("span",{children:Dt}):_span$1||(_span$1=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"}))})}))}const _excluded$8=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],useUtilityClasses$7=dt=>{const{classes:ht}=dt,Cn=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,ht);return _extends({},ht,Cn)},OutlinedInputRoot=styled$1(InputBaseRoot,{shouldForwardProp:dt=>rootShouldForwardProp(dt)||dt==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(({theme:dt,ownerState:ht})=>{const Dt=dt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return _extends({position:"relative",borderRadius:(dt.vars||dt).shape.borderRadius,[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.text.primary},"@media (hover: none)":{[`&:hover .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:dt.vars?`rgba(${dt.vars.palette.common.onBackgroundChannel} / 0.23)`:Dt}},[`&.${outlinedInputClasses$1.focused} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette[ht.color].main,borderWidth:2},[`&.${outlinedInputClasses$1.error} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.error.main},[`&.${outlinedInputClasses$1.disabled} .${outlinedInputClasses$1.notchedOutline}`]:{borderColor:(dt.vars||dt).palette.action.disabled}},ht.startAdornment&&{paddingLeft:14},ht.endAdornment&&{paddingRight:14},ht.multiline&&_extends({padding:"16.5px 14px"},ht.size==="small"&&{padding:"8.5px 14px"}))}),NotchedOutlineRoot=styled$1(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:(dt,ht)=>ht.notchedOutline})(({theme:dt})=>{const ht=dt.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:dt.vars?`rgba(${dt.vars.palette.common.onBackgroundChannel} / 0.23)`:ht}}),OutlinedInputInput=styled$1(InputBaseComponent,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(({theme:dt,ownerState:ht})=>_extends({padding:"16.5px 14px"},!dt.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:dt.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:dt.palette.mode==="light"?null:"#fff",caretColor:dt.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},dt.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[dt.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},ht.size==="small"&&{padding:"8.5px 14px"},ht.multiline&&{padding:0},ht.startAdornment&&{paddingLeft:0},ht.endAdornment&&{paddingRight:0})),OutlinedInput=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un,Fn,Hn;const Gn=useThemeProps({props:ht,name:"MuiOutlinedInput"}),{components:Qn={},fullWidth:qn=!1,inputComponent:er="input",label:Wn,multiline:jn=!1,notched:Zn,slots:Xn={},type:ar="text"}=Gn,dr=_objectWithoutPropertiesLoose(Gn,_excluded$8),or=useUtilityClasses$7(Gn),sr=useFormControl(),vr=formControlState({props:Gn,muiFormControl:sr,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),hr=_extends({},Gn,{color:vr.color||"primary",disabled:vr.disabled,error:vr.error,focused:vr.focused,formControl:sr,fullWidth:qn,hiddenLabel:vr.hiddenLabel,multiline:jn,size:vr.size,type:ar}),gr=(Cn=($n=Xn.root)!=null?$n:Qn.Root)!=null?Cn:OutlinedInputRoot,ur=(Un=(Fn=Xn.input)!=null?Fn:Qn.Input)!=null?Un:OutlinedInputInput;return jsxRuntimeExports.jsx(InputBase$1,_extends({slots:{root:gr,input:ur},renderSuffix:_r=>jsxRuntimeExports.jsx(NotchedOutlineRoot,{ownerState:hr,className:or.notchedOutline,label:Wn!=null&&Wn!==""&&vr.required?Hn||(Hn=jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[Wn," ","*"]})):Wn,notched:typeof Zn<"u"?Zn:!!(_r.startAdornment||_r.filled||_r.focused)}),fullWidth:qn,inputComponent:er,multiline:jn,ref:Dt,type:ar},dr,{classes:_extends({},or,{notchedOutline:null})}))});OutlinedInput.muiName="Input";const OutlinedInput$1=OutlinedInput;function getSelectUtilityClasses(dt){return generateUtilityClass("MuiSelect",dt)}const selectClasses=generateUtilityClasses("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),selectClasses$1=selectClasses;var _span;const _excluded$7=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],SelectSelect=styled$1("div",{name:"MuiSelect",slot:"Select",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[{[`&.${selectClasses$1.select}`]:ht.select},{[`&.${selectClasses$1.select}`]:ht[Dt.variant]},{[`&.${selectClasses$1.error}`]:ht.error},{[`&.${selectClasses$1.multiple}`]:ht.multiple}]}})(nativeSelectSelectStyles,{[`&.${selectClasses$1.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),SelectIcon=styled$1("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.icon,Dt.variant&&ht[`icon${capitalize$1(Dt.variant)}`],Dt.open&&ht.iconOpen]}})(nativeSelectIconStyles),SelectNativeInput=styled$1("input",{shouldForwardProp:dt=>slotShouldForwardProp(dt)&&dt!=="classes",name:"MuiSelect",slot:"NativeInput",overridesResolver:(dt,ht)=>ht.nativeInput})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function areEqualValues(dt,ht){return typeof ht=="object"&&ht!==null?dt===ht:String(dt)===String(ht)}function isEmpty(dt){return dt==null||typeof dt=="string"&&!dt.trim()}const useUtilityClasses$6=dt=>{const{classes:ht,variant:Dt,disabled:Cn,multiple:$n,open:Un,error:Fn}=dt,Hn={select:["select",Dt,Cn&&"disabled",$n&&"multiple",Fn&&"error"],icon:["icon",`icon${capitalize$1(Dt)}`,Un&&"iconOpen",Cn&&"disabled"],nativeInput:["nativeInput"]};return composeClasses(Hn,getSelectUtilityClasses,ht)},SelectInput=reactExports.forwardRef(function dt(ht,Dt){const{"aria-describedby":Cn,"aria-label":$n,autoFocus:Un,autoWidth:Fn,children:Hn,className:Gn,defaultOpen:Qn,defaultValue:qn,disabled:er,displayEmpty:Wn,error:jn=!1,IconComponent:Zn,inputRef:Xn,labelId:ar,MenuProps:dr={},multiple:or,name:sr,onBlur:vr,onChange:hr,onClose:gr,onFocus:ur,onOpen:_r,open:nr,readOnly:Sr,renderValue:Ar,SelectDisplayProps:tr={},tabIndex:Yn,value:fr,variant:Cr="standard"}=ht,yr=_objectWithoutPropertiesLoose(ht,_excluded$7),[Ir,Pr]=useControlled({controlled:fr,default:qn,name:"Select"}),[Br,rr]=useControlled({controlled:nr,default:Qn,name:"Select"}),pr=reactExports.useRef(null),$r=reactExports.useRef(null),[kr,Tr]=reactExports.useState(null),{current:Nr}=reactExports.useRef(nr!=null),[Yr,to]=reactExports.useState(),po=useForkRef(Dt,Xn),So=reactExports.useCallback(Wo=>{$r.current=Wo,Wo&&Tr(Wo)},[]),Jo=kr==null?void 0:kr.parentNode;reactExports.useImperativeHandle(po,()=>({focus:()=>{$r.current.focus()},node:pr.current,value:Ir}),[Ir]),reactExports.useEffect(()=>{Qn&&Br&&kr&&!Nr&&(to(Fn?null:Jo.clientWidth),$r.current.focus())},[kr,Fn]),reactExports.useEffect(()=>{Un&&$r.current.focus()},[Un]),reactExports.useEffect(()=>{if(!ar)return;const Wo=ownerDocument($r.current).getElementById(ar);if(Wo){const as=()=>{getSelection().isCollapsed&&$r.current.focus()};return Wo.addEventListener("click",as),()=>{Wo.removeEventListener("click",as)}}},[ar]);const Zo=(Wo,as)=>{Wo?_r&&_r(as):gr&&gr(as),Nr||(to(Fn?null:Jo.clientWidth),rr(Wo))},Vo=Wo=>{Wo.button===0&&(Wo.preventDefault(),$r.current.focus(),Zo(!0,Wo))},ls=Wo=>{Zo(!1,Wo)},Ao=reactExports.Children.toArray(Hn),Ss=Wo=>{const as=Ao.find(Bs=>Bs.props.value===Wo.target.value);as!==void 0&&(Pr(as.props.value),hr&&hr(Wo,as))},mo=Wo=>as=>{let Bs;if(as.currentTarget.hasAttribute("tabindex")){if(or){Bs=Array.isArray(Ir)?Ir.slice():[];const ys=Ir.indexOf(Wo.props.value);ys===-1?Bs.push(Wo.props.value):Bs.splice(ys,1)}else Bs=Wo.props.value;if(Wo.props.onClick&&Wo.props.onClick(as),Ir!==Bs&&(Pr(Bs),hr)){const ys=as.nativeEvent||as,Qs=new ys.constructor(ys.type,ys);Object.defineProperty(Qs,"target",{writable:!0,value:{value:Bs,name:sr}}),hr(Qs,Wo)}or||Zo(!1,as)}},Bo=Wo=>{Sr||[" ","ArrowUp","ArrowDown","Enter"].indexOf(Wo.key)!==-1&&(Wo.preventDefault(),Zo(!0,Wo))},To=kr!==null&&Br,Do=Wo=>{!To&&vr&&(Object.defineProperty(Wo,"target",{writable:!0,value:{value:Ir,name:sr}}),vr(Wo))};delete yr["aria-invalid"];let zr,na;const Fo=[];let os=!1;(isFilled({value:Ir})||Wn)&&(Ar?zr=Ar(Ir):os=!0);const ns=Ao.map(Wo=>{if(!reactExports.isValidElement(Wo))return null;let as;if(or){if(!Array.isArray(Ir))throw new Error(formatMuiErrorMessage(2));as=Ir.some(Bs=>areEqualValues(Bs,Wo.props.value)),as&&os&&Fo.push(Wo.props.children)}else as=areEqualValues(Ir,Wo.props.value),as&&os&&(na=Wo.props.children);return reactExports.cloneElement(Wo,{"aria-selected":as?"true":"false",onClick:mo(Wo),onKeyUp:Bs=>{Bs.key===" "&&Bs.preventDefault(),Wo.props.onKeyUp&&Wo.props.onKeyUp(Bs)},role:"option",selected:as,value:void 0,"data-value":Wo.props.value})});os&&(or?Fo.length===0?zr=null:zr=Fo.reduce((Wo,as,Bs)=>(Wo.push(as),Bs<Fo.length-1&&Wo.push(", "),Wo),[]):zr=na);let xa=Yr;!Fn&&Nr&&kr&&(xa=Jo.clientWidth);let Ts;typeof Yn<"u"?Ts=Yn:Ts=er?null:0;const Mo=tr.id||(sr?`mui-component-select-${sr}`:void 0),yo=_extends({},ht,{variant:Cr,value:Ir,open:To,error:jn}),Po=useUtilityClasses$6(yo);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsx(SelectSelect,_extends({ref:So,tabIndex:Ts,role:"button","aria-disabled":er?"true":void 0,"aria-expanded":To?"true":"false","aria-haspopup":"listbox","aria-label":$n,"aria-labelledby":[ar,Mo].filter(Boolean).join(" ")||void 0,"aria-describedby":Cn,onKeyDown:Bo,onMouseDown:er||Sr?null:Vo,onBlur:Do,onFocus:ur},tr,{ownerState:yo,className:clsx(tr.className,Po.select,Gn),id:Mo,children:isEmpty(zr)?_span||(_span=jsxRuntimeExports.jsx("span",{className:"notranslate",children:"​"})):zr})),jsxRuntimeExports.jsx(SelectNativeInput,_extends({"aria-invalid":jn,value:Array.isArray(Ir)?Ir.join(","):Ir,name:sr,ref:pr,"aria-hidden":!0,onChange:Ss,tabIndex:-1,disabled:er,className:Po.nativeInput,autoFocus:Un,ownerState:yo},yr)),jsxRuntimeExports.jsx(SelectIcon,{as:Zn,className:Po.icon,ownerState:yo}),jsxRuntimeExports.jsx(Menu$2,_extends({id:`menu-${sr||""}`,anchorEl:Jo,open:To,onClose:ls,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},dr,{MenuListProps:_extends({"aria-labelledby":ar,role:"listbox",disableListWrap:!0},dr.MenuListProps),PaperProps:_extends({},dr.PaperProps,{style:_extends({minWidth:xa},dr.PaperProps!=null?dr.PaperProps.style:null)}),children:ns}))]})}),SelectInput$1=SelectInput,_excluded$6=["autoWidth","children","classes","className","defaultOpen","displayEmpty","IconComponent","id","input","inputProps","label","labelId","MenuProps","multiple","native","onClose","onOpen","open","renderValue","SelectDisplayProps","variant"],_excluded2=["root"],useUtilityClasses$5=dt=>{const{classes:ht}=dt;return ht},styledRootConfig={name:"MuiSelect",overridesResolver:(dt,ht)=>ht.root,shouldForwardProp:dt=>rootShouldForwardProp(dt)&&dt!=="variant",slot:"Root"},StyledInput=styled$1(Input$2,styledRootConfig)(""),StyledOutlinedInput=styled$1(OutlinedInput$1,styledRootConfig)(""),StyledFilledInput=styled$1(FilledInput$1,styledRootConfig)(""),Select$1=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({name:"MuiSelect",props:ht}),{autoWidth:$n=!1,children:Un,classes:Fn={},className:Hn,defaultOpen:Gn=!1,displayEmpty:Qn=!1,IconComponent:qn=ArrowDropDownIcon,id:er,input:Wn,inputProps:jn,label:Zn,labelId:Xn,MenuProps:ar,multiple:dr=!1,native:or=!1,onClose:sr,onOpen:vr,open:hr,renderValue:gr,SelectDisplayProps:ur,variant:_r="outlined"}=Cn,nr=_objectWithoutPropertiesLoose(Cn,_excluded$6),Sr=or?NativeSelectInput$1:SelectInput$1,Ar=useFormControl(),tr=formControlState({props:Cn,muiFormControl:Ar,states:["variant","error"]}),Yn=tr.variant||_r,fr=_extends({},Cn,{variant:Yn,classes:Fn}),Cr=useUtilityClasses$5(fr),yr=_objectWithoutPropertiesLoose(Cr,_excluded2),Ir=Wn||{standard:jsxRuntimeExports.jsx(StyledInput,{ownerState:fr}),outlined:jsxRuntimeExports.jsx(StyledOutlinedInput,{label:Zn,ownerState:fr}),filled:jsxRuntimeExports.jsx(StyledFilledInput,{ownerState:fr})}[Yn],Pr=useForkRef(Dt,Ir.ref);return jsxRuntimeExports.jsx(reactExports.Fragment,{children:reactExports.cloneElement(Ir,_extends({inputComponent:Sr,inputProps:_extends({children:Un,error:tr.error,IconComponent:qn,variant:Yn,type:void 0,multiple:dr},or?{id:er}:{autoWidth:$n,defaultOpen:Gn,displayEmpty:Qn,labelId:Xn,MenuProps:ar,onClose:sr,onOpen:vr,open:hr,renderValue:gr,SelectDisplayProps:_extends({id:er},ur)},jn,{classes:jn?deepmerge(yr,jn.classes):yr},Wn?Wn.props.inputProps:{})},dr&&or&&Yn==="outlined"?{notched:!0}:{},{ref:Pr,className:clsx(Ir.props.className,Hn,Cr.root)},!Wn&&{variant:Yn},nr))})});Select$1.muiName="Select";const Select$2=Select$1;function getTooltipUtilityClass(dt){return generateUtilityClass("MuiTooltip",dt)}const tooltipClasses=generateUtilityClasses("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]),tooltipClasses$1=tooltipClasses,_excluded$5=["arrow","children","classes","components","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractive","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","slotProps","slots","title","TransitionComponent","TransitionProps"];function round(dt){return Math.round(dt*1e5)/1e5}const useUtilityClasses$4=dt=>{const{classes:ht,disableInteractive:Dt,arrow:Cn,touch:$n,placement:Un}=dt,Fn={popper:["popper",!Dt&&"popperInteractive",Cn&&"popperArrow"],tooltip:["tooltip",Cn&&"tooltipArrow",$n&&"touch",`tooltipPlacement${capitalize$1(Un.split("-")[0])}`],arrow:["arrow"]};return composeClasses(Fn,getTooltipUtilityClass,ht)},TooltipPopper=styled$1(Popper$1,{name:"MuiTooltip",slot:"Popper",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.popper,!Dt.disableInteractive&&ht.popperInteractive,Dt.arrow&&ht.popperArrow,!Dt.open&&ht.popperClose]}})(({theme:dt,ownerState:ht,open:Dt})=>_extends({zIndex:(dt.vars||dt).zIndex.tooltip,pointerEvents:"none"},!ht.disableInteractive&&{pointerEvents:"auto"},!Dt&&{pointerEvents:"none"},ht.arrow&&{[`&[data-popper-placement*="bottom"] .${tooltipClasses$1.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${tooltipClasses$1.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${tooltipClasses$1.arrow}`]:_extends({},ht.isRtl?{right:0,marginRight:"-0.71em"}:{left:0,marginLeft:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}}),[`&[data-popper-placement*="left"] .${tooltipClasses$1.arrow}`]:_extends({},ht.isRtl?{left:0,marginLeft:"-0.71em"}:{right:0,marginRight:"-0.71em"},{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}})})),TooltipTooltip=styled$1("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.tooltip,Dt.touch&&ht.touch,Dt.arrow&&ht.tooltipArrow,ht[`tooltipPlacement${capitalize$1(Dt.placement.split("-")[0])}`]]}})(({theme:dt,ownerState:ht})=>_extends({backgroundColor:dt.vars?dt.vars.palette.Tooltip.bg:alpha(dt.palette.grey[700],.92),borderRadius:(dt.vars||dt).shape.borderRadius,color:(dt.vars||dt).palette.common.white,fontFamily:dt.typography.fontFamily,padding:"4px 8px",fontSize:dt.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:dt.typography.fontWeightMedium},ht.arrow&&{position:"relative",margin:0},ht.touch&&{padding:"8px 16px",fontSize:dt.typography.pxToRem(14),lineHeight:`${round(16/14)}em`,fontWeight:dt.typography.fontWeightRegular},{[`.${tooltipClasses$1.popper}[data-popper-placement*="left"] &`]:_extends({transformOrigin:"right center"},ht.isRtl?_extends({marginLeft:"14px"},ht.touch&&{marginLeft:"24px"}):_extends({marginRight:"14px"},ht.touch&&{marginRight:"24px"})),[`.${tooltipClasses$1.popper}[data-popper-placement*="right"] &`]:_extends({transformOrigin:"left center"},ht.isRtl?_extends({marginRight:"14px"},ht.touch&&{marginRight:"24px"}):_extends({marginLeft:"14px"},ht.touch&&{marginLeft:"24px"})),[`.${tooltipClasses$1.popper}[data-popper-placement*="top"] &`]:_extends({transformOrigin:"center bottom",marginBottom:"14px"},ht.touch&&{marginBottom:"24px"}),[`.${tooltipClasses$1.popper}[data-popper-placement*="bottom"] &`]:_extends({transformOrigin:"center top",marginTop:"14px"},ht.touch&&{marginTop:"24px"})})),TooltipArrow=styled$1("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(dt,ht)=>ht.arrow})(({theme:dt})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:dt.vars?dt.vars.palette.Tooltip.bg:alpha(dt.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}));let hystersisOpen=!1,hystersisTimer=null,cursorPosition={x:0,y:0};function composeEventHandler(dt,ht){return Dt=>{ht&&ht(Dt),dt(Dt)}}const Tooltip=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n,Un,Fn,Hn,Gn,Qn,qn,er,Wn,jn,Zn,Xn,ar,dr,or,sr,vr,hr;const gr=useThemeProps({props:ht,name:"MuiTooltip"}),{arrow:ur=!1,children:_r,components:nr={},componentsProps:Sr={},describeChild:Ar=!1,disableFocusListener:tr=!1,disableHoverListener:Yn=!1,disableInteractive:fr=!1,disableTouchListener:Cr=!1,enterDelay:yr=100,enterNextDelay:Ir=0,enterTouchDelay:Pr=700,followCursor:Br=!1,id:rr,leaveDelay:pr=0,leaveTouchDelay:$r=1500,onClose:kr,onOpen:Tr,open:Nr,placement:Yr="bottom",PopperComponent:to,PopperProps:po={},slotProps:So={},slots:Jo={},title:Zo,TransitionComponent:Vo=Grow$1,TransitionProps:ls}=gr,Ao=_objectWithoutPropertiesLoose(gr,_excluded$5),Ss=reactExports.isValidElement(_r)?_r:jsxRuntimeExports.jsx("span",{children:_r}),mo=useTheme(),Bo=mo.direction==="rtl",[To,Do]=reactExports.useState(),[zr,na]=reactExports.useState(null),Fo=reactExports.useRef(!1),os=fr||Br,ns=reactExports.useRef(),xa=reactExports.useRef(),Ts=reactExports.useRef(),Mo=reactExports.useRef(),[yo,Po]=useControlled({controlled:Nr,default:!1,name:"Tooltip",state:"open"});let Wo=yo;const as=useId(rr),Bs=reactExports.useRef(),ys=reactExports.useCallback(()=>{Bs.current!==void 0&&(document.body.style.WebkitUserSelect=Bs.current,Bs.current=void 0),clearTimeout(Mo.current)},[]);reactExports.useEffect(()=>()=>{clearTimeout(ns.current),clearTimeout(xa.current),clearTimeout(Ts.current),ys()},[ys]);const Qs=$a=>{clearTimeout(hystersisTimer),hystersisOpen=!0,Po(!0),Tr&&!Wo&&Tr($a)},tu=useEventCallback($a=>{clearTimeout(hystersisTimer),hystersisTimer=setTimeout(()=>{hystersisOpen=!1},800+pr),Po(!1),kr&&Wo&&kr($a),clearTimeout(ns.current),ns.current=setTimeout(()=>{Fo.current=!1},mo.transitions.duration.shortest)}),Ns=$a=>{Fo.current&&$a.type!=="touchstart"||(To&&To.removeAttribute("title"),clearTimeout(xa.current),clearTimeout(Ts.current),yr||hystersisOpen&&Ir?xa.current=setTimeout(()=>{Qs($a)},hystersisOpen?Ir:yr):Qs($a))},Or=$a=>{clearTimeout(xa.current),clearTimeout(Ts.current),Ts.current=setTimeout(()=>{tu($a)},pr)},{isFocusVisibleRef:Qr,onBlur:xr,onFocus:Jr,ref:eo}=useIsFocusVisible(),[,Fr]=reactExports.useState(!1),qr=$a=>{xr($a),Qr.current===!1&&(Fr(!1),Or($a))},Co=$a=>{To||Do($a.currentTarget),Jr($a),Qr.current===!0&&(Fr(!0),Ns($a))},Ls=$a=>{Fo.current=!0;const ps=Ss.props;ps.onTouchStart&&ps.onTouchStart($a)},ds=Ns,nu=Or,du=$a=>{Ls($a),clearTimeout(Ts.current),clearTimeout(ns.current),ys(),Bs.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",Mo.current=setTimeout(()=>{document.body.style.WebkitUserSelect=Bs.current,Ns($a)},Pr)},mu=$a=>{Ss.props.onTouchEnd&&Ss.props.onTouchEnd($a),ys(),clearTimeout(Ts.current),Ts.current=setTimeout(()=>{tu($a)},$r)};reactExports.useEffect(()=>{if(!Wo)return;function $a(ps){(ps.key==="Escape"||ps.key==="Esc")&&tu(ps)}return document.addEventListener("keydown",$a),()=>{document.removeEventListener("keydown",$a)}},[tu,Wo]);const Cl=useForkRef(Ss.ref,eo,Do,Dt);!Zo&&Zo!==0&&(Wo=!1);const ru=reactExports.useRef(),gu=$a=>{const ps=Ss.props;ps.onMouseMove&&ps.onMouseMove($a),cursorPosition={x:$a.clientX,y:$a.clientY},ru.current&&ru.current.update()},ba={},ga=typeof Zo=="string";Ar?(ba.title=!Wo&&ga&&!Yn?Zo:null,ba["aria-describedby"]=Wo?as:null):(ba["aria-label"]=ga?Zo:null,ba["aria-labelledby"]=Wo&&!ga?as:null);const _a=_extends({},ba,Ao,Ss.props,{className:clsx(Ao.className,Ss.props.className),onTouchStart:Ls,ref:Cl},Br?{onMouseMove:gu}:{}),Ro={};Cr||(_a.onTouchStart=du,_a.onTouchEnd=mu),Yn||(_a.onMouseOver=composeEventHandler(ds,_a.onMouseOver),_a.onMouseLeave=composeEventHandler(nu,_a.onMouseLeave),os||(Ro.onMouseOver=ds,Ro.onMouseLeave=nu)),tr||(_a.onFocus=composeEventHandler(Co,_a.onFocus),_a.onBlur=composeEventHandler(qr,_a.onBlur),os||(Ro.onFocus=Co,Ro.onBlur=qr));const ts=reactExports.useMemo(()=>{var $a;let ps=[{name:"arrow",enabled:!!zr,options:{element:zr,padding:4}}];return($a=po.popperOptions)!=null&&$a.modifiers&&(ps=ps.concat(po.popperOptions.modifiers)),_extends({},po.popperOptions,{modifiers:ps})},[zr,po]),ks=_extends({},gr,{isRtl:Bo,arrow:ur,disableInteractive:os,placement:Yr,PopperComponentProp:to,touch:Fo.current}),Xs=useUtilityClasses$4(ks),_o=(Cn=($n=Jo.popper)!=null?$n:nr.Popper)!=null?Cn:TooltipPopper,Js=(Un=(Fn=(Hn=Jo.transition)!=null?Hn:nr.Transition)!=null?Fn:Vo)!=null?Un:Grow$1,_i=(Gn=(Qn=Jo.tooltip)!=null?Qn:nr.Tooltip)!=null?Gn:TooltipTooltip,ro=(qn=(er=Jo.arrow)!=null?er:nr.Arrow)!=null?qn:TooltipArrow,uo=appendOwnerState(_o,_extends({},po,(Wn=So.popper)!=null?Wn:Sr.popper,{className:clsx(Xs.popper,po==null?void 0:po.className,(jn=(Zn=So.popper)!=null?Zn:Sr.popper)==null?void 0:jn.className)}),ks),bo=appendOwnerState(Js,_extends({},ls,(Xn=So.transition)!=null?Xn:Sr.transition),ks),$o=appendOwnerState(_i,_extends({},(ar=So.tooltip)!=null?ar:Sr.tooltip,{className:clsx(Xs.tooltip,(dr=(or=So.tooltip)!=null?or:Sr.tooltip)==null?void 0:dr.className)}),ks),Ho=appendOwnerState(ro,_extends({},(sr=So.arrow)!=null?sr:Sr.arrow,{className:clsx(Xs.arrow,(vr=(hr=So.arrow)!=null?hr:Sr.arrow)==null?void 0:vr.className)}),ks);return jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[reactExports.cloneElement(Ss,_a),jsxRuntimeExports.jsx(_o,_extends({as:to??Popper$1,placement:Yr,anchorEl:Br?{getBoundingClientRect:()=>({top:cursorPosition.y,left:cursorPosition.x,right:cursorPosition.x,bottom:cursorPosition.y,width:0,height:0})}:To,popperRef:ru,open:To?Wo:!1,id:as,transition:!0},Ro,uo,{popperOptions:ts,children:({TransitionProps:$a})=>jsxRuntimeExports.jsx(Js,_extends({timeout:mo.transitions.duration.shorter},$a,bo,{children:jsxRuntimeExports.jsxs(_i,_extends({},$o,{children:[Zo,ur?jsxRuntimeExports.jsx(ro,_extends({},Ho,{ref:na})):null]}))}))}))]})}),Tooltip$1=Tooltip;function getSwitchUtilityClass(dt){return generateUtilityClass("MuiSwitch",dt)}const switchClasses=generateUtilityClasses("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),switchClasses$1=switchClasses,_excluded$4=["className","color","edge","size","sx"],useUtilityClasses$3=dt=>{const{classes:ht,edge:Dt,size:Cn,color:$n,checked:Un,disabled:Fn}=dt,Hn={root:["root",Dt&&`edge${capitalize$1(Dt)}`,`size${capitalize$1(Cn)}`],switchBase:["switchBase",`color${capitalize$1($n)}`,Un&&"checked",Fn&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},Gn=composeClasses(Hn,getSwitchUtilityClass,ht);return _extends({},ht,Gn)},SwitchRoot=styled$1("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.edge&&ht[`edge${capitalize$1(Dt.edge)}`],ht[`size${capitalize$1(Dt.size)}`]]}})(({ownerState:dt})=>_extends({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"}},dt.edge==="start"&&{marginLeft:-8},dt.edge==="end"&&{marginRight:-8},dt.size==="small"&&{width:40,height:24,padding:7,[`& .${switchClasses$1.thumb}`]:{width:16,height:16},[`& .${switchClasses$1.switchBase}`]:{padding:4,[`&.${switchClasses$1.checked}`]:{transform:"translateX(16px)"}}})),SwitchSwitchBase=styled$1(SwitchBase$1,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.switchBase,{[`& .${switchClasses$1.input}`]:ht.input},Dt.color!=="default"&&ht[`color${capitalize$1(Dt.color)}`]]}})(({theme:dt})=>({position:"absolute",top:0,left:0,zIndex:1,color:dt.vars?dt.vars.palette.Switch.defaultColor:`${dt.palette.mode==="light"?dt.palette.common.white:dt.palette.grey[300]}`,transition:dt.transitions.create(["left","transform"],{duration:dt.transitions.duration.shortest}),[`&.${switchClasses$1.checked}`]:{transform:"translateX(20px)"},[`&.${switchClasses$1.disabled}`]:{color:dt.vars?dt.vars.palette.Switch.defaultDisabledColor:`${dt.palette.mode==="light"?dt.palette.grey[100]:dt.palette.grey[600]}`},[`&.${switchClasses$1.checked} + .${switchClasses$1.track}`]:{opacity:.5},[`&.${switchClasses$1.disabled} + .${switchClasses$1.track}`]:{opacity:dt.vars?dt.vars.opacity.switchTrackDisabled:`${dt.palette.mode==="light"?.12:.2}`},[`& .${switchClasses$1.input}`]:{left:"-100%",width:"300%"}}),({theme:dt,ownerState:ht})=>_extends({"&:hover":{backgroundColor:dt.vars?`rgba(${dt.vars.palette.action.activeChannel} / ${dt.vars.palette.action.hoverOpacity})`:alpha(dt.palette.action.active,dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},ht.color!=="default"&&{[`&.${switchClasses$1.checked}`]:{color:(dt.vars||dt).palette[ht.color].main,"&:hover":{backgroundColor:dt.vars?`rgba(${dt.vars.palette[ht.color].mainChannel} / ${dt.vars.palette.action.hoverOpacity})`:alpha(dt.palette[ht.color].main,dt.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${switchClasses$1.disabled}`]:{color:dt.vars?dt.vars.palette.Switch[`${ht.color}DisabledColor`]:`${dt.palette.mode==="light"?lighten(dt.palette[ht.color].main,.62):darken(dt.palette[ht.color].main,.55)}`}},[`&.${switchClasses$1.checked} + .${switchClasses$1.track}`]:{backgroundColor:(dt.vars||dt).palette[ht.color].main}})),SwitchTrack=styled$1("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(dt,ht)=>ht.track})(({theme:dt})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:dt.transitions.create(["opacity","background-color"],{duration:dt.transitions.duration.shortest}),backgroundColor:dt.vars?dt.vars.palette.common.onBackground:`${dt.palette.mode==="light"?dt.palette.common.black:dt.palette.common.white}`,opacity:dt.vars?dt.vars.opacity.switchTrack:`${dt.palette.mode==="light"?.38:.3}`})),SwitchThumb=styled$1("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(dt,ht)=>ht.thumb})(({theme:dt})=>({boxShadow:(dt.vars||dt).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"})),Switch$1=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiSwitch"}),{className:$n,color:Un="primary",edge:Fn=!1,size:Hn="medium",sx:Gn}=Cn,Qn=_objectWithoutPropertiesLoose(Cn,_excluded$4),qn=_extends({},Cn,{color:Un,edge:Fn,size:Hn}),er=useUtilityClasses$3(qn),Wn=jsxRuntimeExports.jsx(SwitchThumb,{className:er.thumb,ownerState:qn});return jsxRuntimeExports.jsxs(SwitchRoot,{className:clsx(er.root,$n),sx:Gn,ownerState:qn,children:[jsxRuntimeExports.jsx(SwitchSwitchBase,_extends({type:"checkbox",icon:Wn,checkedIcon:Wn,ref:Dt,ownerState:qn},Qn,{classes:_extends({},er,{root:er.switchBase})})),jsxRuntimeExports.jsx(SwitchTrack,{className:er.track,ownerState:qn})]})}),MuiSwitch=Switch$1;function getTabUtilityClass(dt){return generateUtilityClass("MuiTab",dt)}const tabClasses=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","iconWrapper"]),tabClasses$1=tabClasses,_excluded$3=["className","disabled","disableFocusRipple","fullWidth","icon","iconPosition","indicator","label","onChange","onClick","onFocus","selected","selectionFollowsFocus","textColor","value","wrapped"],useUtilityClasses$2=dt=>{const{classes:ht,textColor:Dt,fullWidth:Cn,wrapped:$n,icon:Un,label:Fn,selected:Hn,disabled:Gn}=dt,Qn={root:["root",Un&&Fn&&"labelIcon",`textColor${capitalize$1(Dt)}`,Cn&&"fullWidth",$n&&"wrapped",Hn&&"selected",Gn&&"disabled"],iconWrapper:["iconWrapper"]};return composeClasses(Qn,getTabUtilityClass,ht)},TabRoot=styled$1(ButtonBase$1,{name:"MuiTab",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.label&&Dt.icon&&ht.labelIcon,ht[`textColor${capitalize$1(Dt.textColor)}`],Dt.fullWidth&&ht.fullWidth,Dt.wrapped&&ht.wrapped]}})(({theme:dt,ownerState:ht})=>_extends({},dt.typography.button,{maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center"},ht.label&&{flexDirection:ht.iconPosition==="top"||ht.iconPosition==="bottom"?"column":"row"},{lineHeight:1.25},ht.icon&&ht.label&&{minHeight:72,paddingTop:9,paddingBottom:9,[`& > .${tabClasses$1.iconWrapper}`]:_extends({},ht.iconPosition==="top"&&{marginBottom:6},ht.iconPosition==="bottom"&&{marginTop:6},ht.iconPosition==="start"&&{marginRight:dt.spacing(1)},ht.iconPosition==="end"&&{marginLeft:dt.spacing(1)})},ht.textColor==="inherit"&&{color:"inherit",opacity:.6,[`&.${tabClasses$1.selected}`]:{opacity:1},[`&.${tabClasses$1.disabled}`]:{opacity:(dt.vars||dt).palette.action.disabledOpacity}},ht.textColor==="primary"&&{color:(dt.vars||dt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(dt.vars||dt).palette.primary.main},[`&.${tabClasses$1.disabled}`]:{color:(dt.vars||dt).palette.text.disabled}},ht.textColor==="secondary"&&{color:(dt.vars||dt).palette.text.secondary,[`&.${tabClasses$1.selected}`]:{color:(dt.vars||dt).palette.secondary.main},[`&.${tabClasses$1.disabled}`]:{color:(dt.vars||dt).palette.text.disabled}},ht.fullWidth&&{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"},ht.wrapped&&{fontSize:dt.typography.pxToRem(12)})),Tab=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiTab"}),{className:$n,disabled:Un=!1,disableFocusRipple:Fn=!1,fullWidth:Hn,icon:Gn,iconPosition:Qn="top",indicator:qn,label:er,onChange:Wn,onClick:jn,onFocus:Zn,selected:Xn,selectionFollowsFocus:ar,textColor:dr="inherit",value:or,wrapped:sr=!1}=Cn,vr=_objectWithoutPropertiesLoose(Cn,_excluded$3),hr=_extends({},Cn,{disabled:Un,disableFocusRipple:Fn,selected:Xn,icon:!!Gn,iconPosition:Qn,label:!!er,fullWidth:Hn,textColor:dr,wrapped:sr}),gr=useUtilityClasses$2(hr),ur=Gn&&er&&reactExports.isValidElement(Gn)?reactExports.cloneElement(Gn,{className:clsx(gr.iconWrapper,Gn.props.className)}):Gn,_r=Sr=>{!Xn&&Wn&&Wn(Sr,or),jn&&jn(Sr)},nr=Sr=>{ar&&!Xn&&Wn&&Wn(Sr,or),Zn&&Zn(Sr)};return jsxRuntimeExports.jsxs(TabRoot,_extends({focusRipple:!Fn,className:clsx(gr.root,$n),ref:Dt,role:"tab","aria-selected":Xn,disabled:Un,onClick:_r,onFocus:nr,ownerState:hr,tabIndex:Xn?0:-1},vr,{children:[Qn==="top"||Qn==="start"?jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[ur,er]}):jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[er,ur]}),qn]}))}),Tab$1=Tab,KeyboardArrowLeft=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),KeyboardArrowRight=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function easeInOutSin(dt){return(1+Math.sin(Math.PI*dt-Math.PI/2))/2}function animate(dt,ht,Dt,Cn={},$n=()=>{}){const{ease:Un=easeInOutSin,duration:Fn=300}=Cn;let Hn=null;const Gn=ht[dt];let Qn=!1;const qn=()=>{Qn=!0},er=Wn=>{if(Qn){$n(new Error("Animation cancelled"));return}Hn===null&&(Hn=Wn);const jn=Math.min(1,(Wn-Hn)/Fn);if(ht[dt]=Un(jn)*(Dt-Gn)+Gn,jn>=1){requestAnimationFrame(()=>{$n(null)});return}requestAnimationFrame(er)};return Gn===Dt?($n(new Error("Element already at target position")),qn):(requestAnimationFrame(er),qn)}const _excluded$2=["onChange"],styles={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll"};function ScrollbarSize(dt){const{onChange:ht}=dt,Dt=_objectWithoutPropertiesLoose(dt,_excluded$2),Cn=reactExports.useRef(),$n=reactExports.useRef(null),Un=()=>{Cn.current=$n.current.offsetHeight-$n.current.clientHeight};return useEnhancedEffect$1(()=>{const Fn=debounce$1(()=>{const Gn=Cn.current;Un(),Gn!==Cn.current&&ht(Cn.current)}),Hn=ownerWindow($n.current);return Hn.addEventListener("resize",Fn),()=>{Fn.clear(),Hn.removeEventListener("resize",Fn)}},[ht]),reactExports.useEffect(()=>{Un(),ht(Cn.current)},[ht]),jsxRuntimeExports.jsx("div",_extends({style:styles,ref:$n},Dt))}function getTabScrollButtonUtilityClass(dt){return generateUtilityClass("MuiTabScrollButton",dt)}const tabScrollButtonClasses=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),tabScrollButtonClasses$1=tabScrollButtonClasses,_excluded$1=["className","slots","slotProps","direction","orientation","disabled"],useUtilityClasses$1=dt=>{const{classes:ht,orientation:Dt,disabled:Cn}=dt;return composeClasses({root:["root",Dt,Cn&&"disabled"]},getTabScrollButtonUtilityClass,ht)},TabScrollButtonRoot=styled$1(ButtonBase$1,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.root,Dt.orientation&&ht[Dt.orientation]]}})(({ownerState:dt})=>_extends({width:40,flexShrink:0,opacity:.8,[`&.${tabScrollButtonClasses$1.disabled}`]:{opacity:0}},dt.orientation==="vertical"&&{width:"100%",height:40,"& svg":{transform:`rotate(${dt.isRtl?-90:90}deg)`}})),TabScrollButton=reactExports.forwardRef(function dt(ht,Dt){var Cn,$n;const Un=useThemeProps({props:ht,name:"MuiTabScrollButton"}),{className:Fn,slots:Hn={},slotProps:Gn={},direction:Qn}=Un,qn=_objectWithoutPropertiesLoose(Un,_excluded$1),Wn=useTheme().direction==="rtl",jn=_extends({isRtl:Wn},Un),Zn=useUtilityClasses$1(jn),Xn=(Cn=Hn.StartScrollButtonIcon)!=null?Cn:KeyboardArrowLeft,ar=($n=Hn.EndScrollButtonIcon)!=null?$n:KeyboardArrowRight,dr=useSlotProps({elementType:Xn,externalSlotProps:Gn.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:jn}),or=useSlotProps({elementType:ar,externalSlotProps:Gn.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:jn});return jsxRuntimeExports.jsx(TabScrollButtonRoot,_extends({component:"div",className:clsx(Zn.root,Fn),ref:Dt,role:null,ownerState:jn,tabIndex:null},qn,{children:Qn==="left"?jsxRuntimeExports.jsx(Xn,_extends({},dr)):jsxRuntimeExports.jsx(ar,_extends({},or))}))}),TabScrollButton$1=TabScrollButton;function getTabsUtilityClass(dt){return generateUtilityClass("MuiTabs",dt)}const tabsClasses=generateUtilityClasses("MuiTabs",["root","vertical","flexContainer","flexContainerVertical","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),tabsClasses$1=tabsClasses,_excluded=["aria-label","aria-labelledby","action","centered","children","className","component","allowScrollButtonsMobile","indicatorColor","onChange","orientation","ScrollButtonComponent","scrollButtons","selectionFollowsFocus","slots","slotProps","TabIndicatorProps","TabScrollButtonProps","textColor","value","variant","visibleScrollbar"],nextItem=(dt,ht)=>dt===ht?dt.firstChild:ht&&ht.nextElementSibling?ht.nextElementSibling:dt.firstChild,previousItem=(dt,ht)=>dt===ht?dt.lastChild:ht&&ht.previousElementSibling?ht.previousElementSibling:dt.lastChild,moveFocus=(dt,ht,Dt)=>{let Cn=!1,$n=Dt(dt,ht);for(;$n;){if($n===dt.firstChild){if(Cn)return;Cn=!0}const Un=$n.disabled||$n.getAttribute("aria-disabled")==="true";if(!$n.hasAttribute("tabindex")||Un)$n=Dt(dt,$n);else{$n.focus();return}}},useUtilityClasses=dt=>{const{vertical:ht,fixed:Dt,hideScrollbar:Cn,scrollableX:$n,scrollableY:Un,centered:Fn,scrollButtonsHideMobile:Hn,classes:Gn}=dt;return composeClasses({root:["root",ht&&"vertical"],scroller:["scroller",Dt&&"fixed",Cn&&"hideScrollbar",$n&&"scrollableX",Un&&"scrollableY"],flexContainer:["flexContainer",ht&&"flexContainerVertical",Fn&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",Hn&&"scrollButtonsHideMobile"],scrollableX:[$n&&"scrollableX"],hideScrollbar:[Cn&&"hideScrollbar"]},getTabsUtilityClass,Gn)},TabsRoot=styled$1("div",{name:"MuiTabs",slot:"Root",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[{[`& .${tabsClasses$1.scrollButtons}`]:ht.scrollButtons},{[`& .${tabsClasses$1.scrollButtons}`]:Dt.scrollButtonsHideMobile&&ht.scrollButtonsHideMobile},ht.root,Dt.vertical&&ht.vertical]}})(({ownerState:dt,theme:ht})=>_extends({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex"},dt.vertical&&{flexDirection:"column"},dt.scrollButtonsHideMobile&&{[`& .${tabsClasses$1.scrollButtons}`]:{[ht.breakpoints.down("sm")]:{display:"none"}}})),TabsScroller=styled$1("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.scroller,Dt.fixed&&ht.fixed,Dt.hideScrollbar&&ht.hideScrollbar,Dt.scrollableX&&ht.scrollableX,Dt.scrollableY&&ht.scrollableY]}})(({ownerState:dt})=>_extends({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap"},dt.fixed&&{overflowX:"hidden",width:"100%"},dt.hideScrollbar&&{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}},dt.scrollableX&&{overflowX:"auto",overflowY:"hidden"},dt.scrollableY&&{overflowY:"auto",overflowX:"hidden"})),FlexContainer=styled$1("div",{name:"MuiTabs",slot:"FlexContainer",overridesResolver:(dt,ht)=>{const{ownerState:Dt}=dt;return[ht.flexContainer,Dt.vertical&&ht.flexContainerVertical,Dt.centered&&ht.centered]}})(({ownerState:dt})=>_extends({display:"flex"},dt.vertical&&{flexDirection:"column"},dt.centered&&{justifyContent:"center"})),TabsIndicator=styled$1("span",{name:"MuiTabs",slot:"Indicator",overridesResolver:(dt,ht)=>ht.indicator})(({ownerState:dt,theme:ht})=>_extends({position:"absolute",height:2,bottom:0,width:"100%",transition:ht.transitions.create()},dt.indicatorColor==="primary"&&{backgroundColor:(ht.vars||ht).palette.primary.main},dt.indicatorColor==="secondary"&&{backgroundColor:(ht.vars||ht).palette.secondary.main},dt.vertical&&{height:"100%",width:2,right:0})),TabsScrollbarSize=styled$1(ScrollbarSize,{name:"MuiTabs",slot:"ScrollbarSize"})({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),defaultIndicatorStyle={},Tabs=reactExports.forwardRef(function dt(ht,Dt){const Cn=useThemeProps({props:ht,name:"MuiTabs"}),$n=useTheme(),Un=$n.direction==="rtl",{"aria-label":Fn,"aria-labelledby":Hn,action:Gn,centered:Qn=!1,children:qn,className:er,component:Wn="div",allowScrollButtonsMobile:jn=!1,indicatorColor:Zn="primary",onChange:Xn,orientation:ar="horizontal",ScrollButtonComponent:dr=TabScrollButton$1,scrollButtons:or="auto",selectionFollowsFocus:sr,slots:vr={},slotProps:hr={},TabIndicatorProps:gr={},TabScrollButtonProps:ur={},textColor:_r="primary",value:nr,variant:Sr="standard",visibleScrollbar:Ar=!1}=Cn,tr=_objectWithoutPropertiesLoose(Cn,_excluded),Yn=Sr==="scrollable",fr=ar==="vertical",Cr=fr?"scrollTop":"scrollLeft",yr=fr?"top":"left",Ir=fr?"bottom":"right",Pr=fr?"clientHeight":"clientWidth",Br=fr?"height":"width",rr=_extends({},Cn,{component:Wn,allowScrollButtonsMobile:jn,indicatorColor:Zn,orientation:ar,vertical:fr,scrollButtons:or,textColor:_r,variant:Sr,visibleScrollbar:Ar,fixed:!Yn,hideScrollbar:Yn&&!Ar,scrollableX:Yn&&!fr,scrollableY:Yn&&fr,centered:Qn&&!Yn,scrollButtonsHideMobile:!jn}),pr=useUtilityClasses(rr),$r=useSlotProps({elementType:vr.StartScrollButtonIcon,externalSlotProps:hr.startScrollButtonIcon,ownerState:rr}),kr=useSlotProps({elementType:vr.EndScrollButtonIcon,externalSlotProps:hr.endScrollButtonIcon,ownerState:rr}),[Tr,Nr]=reactExports.useState(!1),[Yr,to]=reactExports.useState(defaultIndicatorStyle),[po,So]=reactExports.useState(!1),[Jo,Zo]=reactExports.useState(!1),[Vo,ls]=reactExports.useState(!1),[Ao,Ss]=reactExports.useState({overflow:"hidden",scrollbarWidth:0}),mo=new Map,Bo=reactExports.useRef(null),To=reactExports.useRef(null),Do=()=>{const tu=Bo.current;let Ns;if(tu){const Qr=tu.getBoundingClientRect();Ns={clientWidth:tu.clientWidth,scrollLeft:tu.scrollLeft,scrollTop:tu.scrollTop,scrollLeftNormalized:getNormalizedScrollLeft(tu,$n.direction),scrollWidth:tu.scrollWidth,top:Qr.top,bottom:Qr.bottom,left:Qr.left,right:Qr.right}}let Or;if(tu&&nr!==!1){const Qr=To.current.children;if(Qr.length>0){const xr=Qr[mo.get(nr)];Or=xr?xr.getBoundingClientRect():null}}return{tabsMeta:Ns,tabMeta:Or}},zr=useEventCallback(()=>{const{tabsMeta:tu,tabMeta:Ns}=Do();let Or=0,Qr;if(fr)Qr="top",Ns&&tu&&(Or=Ns.top-tu.top+tu.scrollTop);else if(Qr=Un?"right":"left",Ns&&tu){const Jr=Un?tu.scrollLeftNormalized+tu.clientWidth-tu.scrollWidth:tu.scrollLeft;Or=(Un?-1:1)*(Ns[Qr]-tu[Qr]+Jr)}const xr={[Qr]:Or,[Br]:Ns?Ns[Br]:0};if(isNaN(Yr[Qr])||isNaN(Yr[Br]))to(xr);else{const Jr=Math.abs(Yr[Qr]-xr[Qr]),eo=Math.abs(Yr[Br]-xr[Br]);(Jr>=1||eo>=1)&&to(xr)}}),na=(tu,{animation:Ns=!0}={})=>{Ns?animate(Cr,Bo.current,tu,{duration:$n.transitions.duration.standard}):Bo.current[Cr]=tu},Fo=tu=>{let Ns=Bo.current[Cr];fr?Ns+=tu:(Ns+=tu*(Un?-1:1),Ns*=Un&&detectScrollType()==="reverse"?-1:1),na(Ns)},os=()=>{const tu=Bo.current[Pr];let Ns=0;const Or=Array.from(To.current.children);for(let Qr=0;Qr<Or.length;Qr+=1){const xr=Or[Qr];if(Ns+xr[Pr]>tu){Qr===0&&(Ns=tu);break}Ns+=xr[Pr]}return Ns},ns=()=>{Fo(-1*os())},xa=()=>{Fo(os())},Ts=reactExports.useCallback(tu=>{Ss({overflow:null,scrollbarWidth:tu})},[]),Mo=()=>{const tu={};tu.scrollbarSizeListener=Yn?jsxRuntimeExports.jsx(TabsScrollbarSize,{onChange:Ts,className:clsx(pr.scrollableX,pr.hideScrollbar)}):null;const Or=Yn&&(or==="auto"&&(po||Jo)||or===!0);return tu.scrollButtonStart=Or?jsxRuntimeExports.jsx(dr,_extends({slots:{StartScrollButtonIcon:vr.StartScrollButtonIcon},slotProps:{startScrollButtonIcon:$r},orientation:ar,direction:Un?"right":"left",onClick:ns,disabled:!po},ur,{className:clsx(pr.scrollButtons,ur.className)})):null,tu.scrollButtonEnd=Or?jsxRuntimeExports.jsx(dr,_extends({slots:{EndScrollButtonIcon:vr.EndScrollButtonIcon},slotProps:{endScrollButtonIcon:kr},orientation:ar,direction:Un?"left":"right",onClick:xa,disabled:!Jo},ur,{className:clsx(pr.scrollButtons,ur.className)})):null,tu},yo=useEventCallback(tu=>{const{tabsMeta:Ns,tabMeta:Or}=Do();if(!(!Or||!Ns)){if(Or[yr]<Ns[yr]){const Qr=Ns[Cr]+(Or[yr]-Ns[yr]);na(Qr,{animation:tu})}else if(Or[Ir]>Ns[Ir]){const Qr=Ns[Cr]+(Or[Ir]-Ns[Ir]);na(Qr,{animation:tu})}}}),Po=useEventCallback(()=>{Yn&&or!==!1&&ls(!Vo)});reactExports.useEffect(()=>{const tu=debounce$1(()=>{Bo.current&&zr()}),Ns=ownerWindow(Bo.current);Ns.addEventListener("resize",tu);let Or;return typeof ResizeObserver<"u"&&(Or=new ResizeObserver(tu),Array.from(To.current.children).forEach(Qr=>{Or.observe(Qr)})),()=>{tu.clear(),Ns.removeEventListener("resize",tu),Or&&Or.disconnect()}},[zr]),reactExports.useEffect(()=>{const tu=Array.from(To.current.children),Ns=tu.length;if(typeof IntersectionObserver<"u"&&Ns>0&&Yn&&or!==!1){const Or=tu[0],Qr=tu[Ns-1],xr={root:Bo.current,threshold:.99},Jr=Co=>{So(!Co[0].isIntersecting)},eo=new IntersectionObserver(Jr,xr);eo.observe(Or);const Fr=Co=>{Zo(!Co[0].isIntersecting)},qr=new IntersectionObserver(Fr,xr);return qr.observe(Qr),()=>{eo.disconnect(),qr.disconnect()}}},[Yn,or,Vo,qn==null?void 0:qn.length]),reactExports.useEffect(()=>{Nr(!0)},[]),reactExports.useEffect(()=>{zr()}),reactExports.useEffect(()=>{yo(defaultIndicatorStyle!==Yr)},[yo,Yr]),reactExports.useImperativeHandle(Gn,()=>({updateIndicator:zr,updateScrollButtons:Po}),[zr,Po]);const Wo=jsxRuntimeExports.jsx(TabsIndicator,_extends({},gr,{className:clsx(pr.indicator,gr.className),ownerState:rr,style:_extends({},Yr,gr.style)}));let as=0;const Bs=reactExports.Children.map(qn,tu=>{if(!reactExports.isValidElement(tu))return null;const Ns=tu.props.value===void 0?as:tu.props.value;mo.set(Ns,as);const Or=Ns===nr;return as+=1,reactExports.cloneElement(tu,_extends({fullWidth:Sr==="fullWidth",indicator:Or&&!Tr&&Wo,selected:Or,selectionFollowsFocus:sr,onChange:Xn,textColor:_r,value:Ns},as===1&&nr===!1&&!tu.props.tabIndex?{tabIndex:0}:{}))}),ys=tu=>{const Ns=To.current,Or=ownerDocument(Ns).activeElement;if(Or.getAttribute("role")!=="tab")return;let xr=ar==="horizontal"?"ArrowLeft":"ArrowUp",Jr=ar==="horizontal"?"ArrowRight":"ArrowDown";switch(ar==="horizontal"&&Un&&(xr="ArrowRight",Jr="ArrowLeft"),tu.key){case xr:tu.preventDefault(),moveFocus(Ns,Or,previousItem);break;case Jr:tu.preventDefault(),moveFocus(Ns,Or,nextItem);break;case"Home":tu.preventDefault(),moveFocus(Ns,null,nextItem);break;case"End":tu.preventDefault(),moveFocus(Ns,null,previousItem);break}},Qs=Mo();return jsxRuntimeExports.jsxs(TabsRoot,_extends({className:clsx(pr.root,er),ownerState:rr,ref:Dt,as:Wn},tr,{children:[Qs.scrollButtonStart,Qs.scrollbarSizeListener,jsxRuntimeExports.jsxs(TabsScroller,{className:pr.scroller,ownerState:rr,style:{overflow:Ao.overflow,[fr?`margin${Un?"Left":"Right"}`:"marginBottom"]:Ar?void 0:-Ao.scrollbarWidth},ref:Bo,children:[jsxRuntimeExports.jsx(FlexContainer,{"aria-label":Fn,"aria-labelledby":Hn,"aria-orientation":ar==="vertical"?"vertical":null,className:pr.flexContainer,ownerState:rr,onKeyDown:ys,ref:To,role:"tablist",children:Bs}),Tr&&Wo]}),Qs.scrollButtonEnd]}))}),Tabs$1=Tabs,DownIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M7 9L12 14L17 9",fill:"none",stroke:"currentColor",strokeOpacity:"0.9",strokeLinecap:"round",strokeLinejoin:"round"}),"Down"),Switch=styled$1(MuiSwitch)(({theme:dt})=>({width:40,height:20,padding:0,"& .MuiSwitch-switchBase":{padding:2,"&.Mui-checked":{color:"#fff","& + .MuiSwitch-track":{opacity:1,backgroundColor:dt.palette.success[400]}}},"& .MuiSwitch-thumb":{boxShadow:"0px 0px 3px rgba(0, 0, 0, 0.75)",width:16,height:16},"& .MuiSwitch-track":{borderRadius:10,opacity:1,backgroundColor:dt.palette.button.primary,boxSizing:"border-box"}})),useStyles$M=makeStyles()(dt=>({container:{width:"100%",borderRadius:"8px",boxShadow:dt.palette.card.elevation},header:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px",backgroundColor:dt.palette.card.background,backgroundOpacity:"80%",borderRadius:"8px",transition:"border-radius 0.4s"},title:{fontSize:"14px",fontWeight:"bold"},description:{fontSize:"14px",opacity:"80%"},invert:{transform:"rotate(180deg)"},arrow:{width:"32px",height:"32px",transition:"transform 0.4s"},controlled:{cursor:"default !important"},banner:{borderBottomRightRadius:"8px",borderBottomLeftRadius:"8px",backgroundColor:dt.palette.info[500],padding:"8px 16px",display:"flex",flexDirection:"row",transition:"border-radius 0.1s 0.3s"},open:{transition:"border-radius 0s 0s",borderBottomLeftRadius:"0 !important",borderBottomRightRadius:"0 !important"},disabled:{opacity:"70%",cursor:"not-allowed !important"},link:{...LINK(dt),margin:"0 0 0 4px"},collapseControl:{cursor:"pointer"}}));var CollapseControlStyle=(dt=>(dt[dt.None=1]="None",dt[dt.Arrow=2]="Arrow",dt[dt.Switch=3]="Switch",dt))(CollapseControlStyle||{});function DownControl(dt){const{classes:ht}=useStyles$M();return jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!dt.collapsed&&ht.invert])})}function getControlComponent(dt,ht){switch(dt){case 1:return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{});case 2:return jsxRuntimeExports.jsx(DownControl,{collapsed:ht});case 3:return jsxRuntimeExports.jsx(Switch,{checked:!ht});default:return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}}function BridgeCollapse(dt){const{classes:ht}=useStyles$M(),{onCollapseChange:Dt,disabled:Cn,startClosed:$n}=dt,[Un,Fn]=React.useState($n||!1),Hn=reactExports.useCallback(()=>{Cn||Fn(er=>(Dt&&Dt(!er),!er))},[Cn,Dt]);reactExports.useEffect(()=>{Fn($n||!1)},[$n]);const Gn=dt.controlStyle||2,Qn=dt.controlled?dt.value||!1:Un,qn=getControlComponent(Gn,Qn);return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:joinClass([ht.header,(!!dt.banner||!Qn)&&ht.open,!!Cn&&ht.disabled]),children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:ht.title,children:dt.title}),dt.description&&jsxRuntimeExports.jsx("div",{className:ht.description,children:dt.description})]}),jsxRuntimeExports.jsx("div",{onClick:Hn,className:ht.collapseControl,children:qn})]}),dt.banner&&jsxRuntimeExports.jsx("div",{className:joinClass([ht.banner,(dt.disableCollapse||!Qn)&&ht.open]),children:dt.banner}),jsxRuntimeExports.jsx(Collapse$1,{in:dt.disableCollapse||!Qn,unmountOnExit:!0,children:dt.children})]})}const ArrowRightIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M4 12H20M20 12L13 5M20 12L13 19",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),"ArrowRight"),useStyles$L=makeStyles()(dt=>({options:{backgroundColor:dt.palette.card.background,borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},option:{width:"100%",borderRadius:"0",backgroundColor:dt.palette.card.background,"&:last-child":{borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px"},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},optionContent:{padding:"16px"},optionContentEnabled:{"&:hover":{backgroundColor:dt.palette.options.hover}},arrow:{position:"absolute",right:"0",height:"100%",display:"flex",justifyContent:"center"},invert:{transform:"rotate(180deg)"},active:{backgroundColor:`${dt.palette.options.select} !important`}}));function Options(dt){const{classes:ht}=useStyles$L(),Dt=Cn=>dt.collapsable&&dt.collapsed&&dt.active!==Cn;return jsxRuntimeExports.jsx("div",{className:ht.options,children:dt.children.map((Cn,$n)=>jsxRuntimeExports.jsx(Collapse$1,{in:!Dt(Cn.key),className:joinClass([ht.option,dt.active===Cn.key&&ht.active]),unmountOnExit:!0,children:jsxRuntimeExports.jsx("div",{className:joinClass([ht.optionContent,!Cn.disabled&&ht.optionContentEnabled]),onClick:()=>dt.onSelect(Cn.key),style:{cursor:dt.children.length>0?"pointer":"default"},children:Cn.child})},$n))})}const useStyles$K=makeStyles()(()=>({price:{fontSize:"10px"},alignRight:{textAlign:"right"}})),Price=({children:dt,textAlign:ht="left"})=>{const{classes:Dt}=useStyles$K();return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:dt!=null&&dt.length?jsxRuntimeExports.jsx("div",{className:`${Dt.price}`,style:{textAlign:ht},children:dt}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})},useStyles$J=makeStyles()(dt=>({link:{...LINK(dt),margin:"0 0 0 4px"},tag:{padding:"4px 8px",borderRadius:"8px",display:"flex",alignItems:"center",gap:"8px",[dt.breakpoints.down("sm")]:{padding:"4px 0",backgroundColor:"transparent !important"}},filled:{backgroundColor:dt.palette.card.secondary},tagIcon:{[dt.breakpoints.down("sm")]:{display:"none"}},route:{[dt.breakpoints.up("sm")]:{display:"grid",gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",gridTemplateAreas:'"path fees"'},[dt.breakpoints.down("sm")]:{display:"flex",flexDirection:"column"},width:"100%",maxWidth:"100%",fontSize:"14px"},disabled:{color:"grey",cursor:"default"},routeLeft:{gridArea:"path",display:"flex",flexDirection:"column"},routeTitle:{display:"flex",[dt.breakpoints.down("sm")]:{flexDirection:"column"},[dt.breakpoints.up("sm")]:{flexDirection:"row"},alignItems:"center",gap:"8px",fontSize:"14px",fontWeight:"600",marginBottom:"8px",whiteSpace:"nowrap"},routePath:{display:"flex",alignItems:"center",gap:"8px",[dt.breakpoints.down("sm")]:{gap:"4px",alignContent:"center"}},routeRight:{gridArea:"fees",display:"flex",flexDirection:"column",justifyContent:"space-around",alignItems:"flex-end",padding:"4px 0",height:"100%"},routeAmt:{opacity:"0.6",fontSize:"12px"},multiLineChip:{[dt.breakpoints.down("sm")]:{height:"auto","& .MuiChip-label":{display:"block",whiteSpace:"normal",textAlign:"center",maxWidth:"256px"}}}}));function Banner(dt){const{classes:ht}=useStyles$J(),Dt=dt.text||"This route provided by",Cn=useSelector(Un=>Un.transferInput.route),$n=Cn&&(dt.route||RoutesConfig[Cn]);return $n?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Dt,jsxRuntimeExports.jsx("a",{href:$n.link,target:"_blank",className:ht.link,rel:"noreferrer",children:$n.providedBy})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}function Tag(dt){const{classes:ht}=useStyles$J(),Dt=dt.height||20;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.tag,!!dt.colorFilled&&ht.filled]),children:[jsxRuntimeExports.jsx("div",{style:{height:Dt,width:Dt},className:ht.tagIcon,children:dt.icon}),dt.text]})}const getEstimatedTime=dt=>{if(!dt)return;const ht=chainIdToChain(config$2.wh.toChainId(dt)),Dt=finalityThreshold.get(ht);if(!(typeof Dt>"u"))return Dt===0?"Instantly":millisToMinutesAndSeconds(blockTime(ht)*Dt)};function RouteOption(dt){const{classes:ht}=useStyles$J(),Dt=useTheme(),Cn=useMediaQuery(Dt.breakpoints.down("sm")),{token:$n,destToken:Un,amount:Fn,toChain:Hn,fromChain:Gn}=useSelector(Ar=>Ar.transferInput),{toNativeToken:Qn,relayerFee:qn}=useSelector(Ar=>Ar.relay),{usdPrices:{data:er}}=useSelector(Ar=>Ar.tokenPrices),Wn=er||{},jn=useSelector(Ar=>Ar.porticoBridge),[Zn,Xn]=reactExports.useState(void 0),[ar,dr]=reactExports.useState(void 0),[or,sr]=reactExports.useState(void 0);reactExports.useEffect(()=>{let Ar=!1;async function tr(){try{const Yn=isPorticoRoute(dt.route.route)?jn:{toNativeToken:Qn,relayerFee:qn},fr=await RouteOperator.computeReceiveAmountWithFees(dt.route.route,Number.parseFloat(Fn),$n,Un,Gn,Hn,Yn);Ar||(Xn(Number.parseFloat(toFixedDecimals(`${fr}`,6))),dr(calculateUSDPrice(fr,Wn,config$2.tokens[Un])),sr(getEstimatedTime(Gn)))}catch{Ar||(Xn(0),dr(""),sr(getEstimatedTime(Gn)))}}return tr(),()=>{Ar=!0}},[dt.route,Fn,Qn,qn,$n,Un,Hn,Gn,jn,er]);const vr=config$2.tokens[$n],hr=vr&&jsxRuntimeExports.jsx(TokenIcon,{icon:vr.icon,height:20}),gr=config$2.tokens[Un],ur=gr&&jsxRuntimeExports.jsx(TokenIcon,{icon:gr.icon,height:20}),_r=dt.route.route,nr=reactExports.useMemo(()=>RouteOperator.getRoute(_r),[_r]),Sr=reactExports.useMemo(()=>nr.AUTOMATIC_DEPOSIT||Hn&&(isGatewayChain(Hn)||Hn==="sei")||isPorticoRoute(nr.TYPE),[nr,Hn]);return vr&&gr&&jsxRuntimeExports.jsx(Tooltip$1,{title:dt.disabled?"Not enough funds on the source chain for automatic redemption":"",children:jsxRuntimeExports.jsxs("div",{className:`${ht.route} ${dt.disabled?ht.disabled:""}`,"data-testid":`route-option-${dt.route.route}`,children:[jsxRuntimeExports.jsxs("div",{className:ht.routeLeft,children:[jsxRuntimeExports.jsxs("div",{className:ht.routeTitle,children:[dt.route.name,Sr?jsxRuntimeExports.jsx(Chip$1,{label:"Receive tokens automatically",color:"success",variant:"outlined",size:"small",className:ht.multiLineChip}):jsxRuntimeExports.jsx(Chip$1,{label:"Approve transfer with destination wallet",color:"warning",variant:"outlined",size:"small",className:ht.multiLineChip})]}),jsxRuntimeExports.jsxs("div",{className:ht.routePath,children:[jsxRuntimeExports.jsx(Tag,{icon:hr,text:getDisplayName(vr),colorFilled:!0}),jsxRuntimeExports.jsx(ArrowRightIcon,{fontSize:Cn?"inherit":void 0}),jsxRuntimeExports.jsx(Tag,{icon:dt.route.icon(),text:dt.route.routePath||dt.route.providedBy}),jsxRuntimeExports.jsx(ArrowRightIcon,{fontSize:Cn?"inherit":void 0}),jsxRuntimeExports.jsx(Tag,{icon:ur,text:getDisplayName(gr),colorFilled:!0})]})]}),jsxRuntimeExports.jsx("div",{className:ht.routeRight,children:dt.disabled?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{children:"Transfer amount too low"})}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{children:[Zn," ",getDisplayName(config$2.tokens[Un]),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:ar})]}),jsxRuntimeExports.jsx("div",{className:ht.routeAmt,children:"after fees"}),typeof or<"u"&&jsxRuntimeExports.jsxs("div",{className:ht.routeAmt,children:["Estimated time: ",or]})]})})]})})}function RouteOptions(){const dt=useDispatch(),{isTransactionInProgress:ht,route:Dt,routeStates:Cn,token:$n,destToken:Un,fromChain:Fn,toChain:Hn,amount:Gn}=useSelector(Wn=>Wn.transferInput),Qn=reactExports.useCallback(Wn=>{if(Cn&&Cn.some(jn=>jn.name===Wn)){const jn=Cn.find(Zn=>Zn.name===Wn);jn!=null&&jn.available&&dt(setTransferRoute(Wn))}},[Cn,dt]),[qn]=o(Gn,500);reactExports.useEffect(()=>{let Wn=!0;return!Fn||!Hn||!$n||!Un?void 0:((async()=>{const Zn=[];for(const Xn of config$2.routes){const ar=Xn,dr=await RouteOperator.isRouteAvailable(ar,$n,Un,qn,Fn,Hn),or=await RouteOperator.isRouteSupported(ar,$n,Un,qn,Fn,Hn);Zn.push({name:ar,supported:or,available:dr})}Wn&&dt(setRoutes(Zn))})(),()=>{Wn=!1})},[dt,$n,Un,qn,Fn,Hn]);const er=reactExports.useMemo(()=>Cn?Cn.filter(jn=>jn.supported):[],[Cn]);return er&&er.length>0?jsxRuntimeExports.jsx(BridgeCollapse,{title:"Route",disabled:ht,banner:jsxRuntimeExports.jsx(Banner,{}),disableCollapse:!0,startClosed:!1,onCollapseChange:()=>{},controlStyle:CollapseControlStyle.None,children:jsxRuntimeExports.jsx(Options,{active:Dt,onSelect:Qn,collapsable:!0,collapsed:!1,children:er.map(({name:Wn,available:jn})=>({key:Wn,disabled:!jn,child:jsxRuntimeExports.jsx(RouteOption,{disabled:!jn,route:RoutesConfig[Wn]})}))})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}const useStyles$I=makeStyles()(()=>({container:{display:"flex",flexDirection:"column",gap:"8px",width:"100%"},amounts:{display:"flex",justifyContent:"space-between",alignItems:"center"},amountDisplay:{display:"flex",alignItems:"center",gap:"8px"}}));function label(dt,ht,Dt,Cn){return jsxRuntimeExports.jsxs("div",{children:[toFixedDecimals(`${dt}`,4)," ",ht,jsxRuntimeExports.jsx("br",{}),toFixedDecimals(`${Dt}`,4)," ",Cn]})}const PrettoSlider=styled$1(Slider$1)(({color1:dt,color2:ht})=>({color:dt,height:8,"& .MuiSlider-rail":{height:"4px",backgroundColor:ht},"& .MuiSlider-track":{height:"6px"},"& .MuiSlider-thumb":{height:28,width:28,backgroundColor:"#fff"}}));function formatAmount(dt){if(!dt)return 0;let ht=toFixedDecimals(`${dt}`,6);return dt<1e-6&&(ht="0"),Number.parseFloat(ht)}const INITIAL_STATE={disabled:!1,min:0,max:0,nativeGas:0,nativeGasPrice:"",token:formatAmount(),tokenPrice:"",swapAmt:0,conversionRate:void 0};function GasSlider(dt){const{classes:ht}=useStyles$I(),Dt=useDispatch(),{token:Cn,toChain:$n,amount:Un,route:Fn,destToken:Hn}=useSelector(Yn=>Yn.transferInput),[Gn]=o(Un,500),{maxSwapAmt:Qn,relayerFee:qn}=useSelector(Yn=>Yn.relay),er=reactExports.useMemo(()=>Number.parseFloat(Gn)-(qn||0),[Gn,qn]),{receiving:Wn}=useSelector(Yn=>Yn.wallet),{usdPrices:{data:jn}}=useSelector(Yn=>Yn.tokenPrices),Zn=jn||{},Xn=config$2.chains[$n],ar=config$2.tokens[Cn],dr=config$2.tokens[Hn],or=config$2.tokens[Xn.gasToken],[sr,vr]=reactExports.useState(INITIAL_STATE),[hr]=o(sr.swapAmt,500),[gr,ur]=reactExports.useState(dt.disabled);reactExports.useEffect(()=>{if(!er||er===0||!Qn||!Fn||!RouteOperator.getRoute(Fn).NATIVE_GAS_DROPOFF_SUPPORTED||!$n||!ar)return;let Yn=er&&Qn&&Math.max(Math.min(Qn,er),0);if(Yn){const Cr=RouteOperator.getRoute(Fn).getMinSendAmount(getWrappedTokenId(ar),$n,{toNativeToken:Yn,relayerFee:qn}),yr=Math.max(Cr-er-(qn||0),0);Yn=Math.max(Math.min(Qn,er-yr),0)}const fr=er-sr.swapAmt;Yn===0&&ur(!0),vr(Cr=>({...Cr,disabled:er<=0||Yn===0,token:formatAmount(fr),tokenPrice:calculateUSDPrice(formatAmount(fr),Zn,config$2.tokens[Cn]),max:formatAmount(Yn)}))},[qn,Qn,er,Fn,sr.swapAmt,jn,Cn,$n]),reactExports.useEffect(()=>{if(!$n||!ar||!Fn||!RouteOperator.getRoute(Fn).NATIVE_GAS_DROPOFF_SUPPORTED||!Wn.address||!dr)return;let Yn=!1;return(async()=>{var rr;const fr=dr.tokenId;try{const pr=await RouteOperator.maxSwapAmount(Fn,$n,fr,Wn.address);if(Yn)return;if(!pr){Dt(setMaxSwapAmt(void 0));return}const $r=getTokenDecimals(config$2.wh.toChainId($n),fr),kr=toDecimals(pr,$r,6);Dt(setMaxSwapAmt(Number.parseFloat(kr)))}catch(pr){if(Yn)return;if((rr=pr.message)!=null&&rr.includes("swap rate not set"))Fn===Route.CCTPRelay?Dt(setTransferRoute(Route.CCTPManual)):Dt(setTransferRoute(Route.Bridge));else throw pr}const{gasToken:Cr}=config$2.chains[$n],yr=await getConversion(Cn,Cr);if(Yn)return;const Ir=await RouteOperator.minSwapAmountNative(Fn,$n,fr,Wn.address),Pr=Number.parseFloat(toDecimals(Ir,getTokenDecimals(config$2.wh.toChainId($n),"native")));if(Yn)return;const Br=yr?Pr/yr:0;vr(pr=>({...pr,conversionRate:yr,min:Br}))})(),()=>{Yn=!0}},[ar,dr,Wn,$n,Fn,Cn,Hn,Dt]);function _r(Yn){const{children:fr,...Cr}=Yn;return jsxRuntimeExports.jsxs(SliderThumb,{...Cr,children:[fr,jsxRuntimeExports.jsx(TokenIcon,{icon:or.icon,height:16})]})}const nr=Yn=>{ur(Yn),Yn&&(vr(fr=>({...fr,swapAmt:0,nativeGas:0,nativeGasPrice:"",token:formatAmount(er),tokenPrice:calculateUSDPrice(formatAmount(er),Zn,config$2.tokens[Cn])})),Dt(setReceiveNativeAmt(0)))},Sr=Yn=>{if(!er||!sr.conversionRate)return;const fr=Yn.target.value<sr.min?0:Yn.target.value,Cr=fr*sr.conversionRate,yr=er-fr,Ir=fr,Pr={nativeGas:formatAmount(Cr),nativeGasPrice:calculateUSDPrice(formatAmount(Cr),Zn,or),token:formatAmount(yr),tokenPrice:calculateUSDPrice(formatAmount(yr),Zn,config$2.tokens[Cn]),swapAmt:formatAmount(Ir)};vr(Br=>({...Br,...Pr}))};reactExports.useEffect(()=>{let Yn=!1;return(async()=>{if(!dr||!ar||!Fn||!Wn.address)return;Dt(setToNativeToken(hr));const fr=dr.tokenId,Cr=getTokenDecimals(config$2.wh.toChainId($n),fr),yr=parseUnits(`${hr}`,Cr),Ir=await RouteOperator.nativeTokenAmount(Fn,$n,fr,yr,Wn.address);if(Yn)return;const Pr=getTokenDecimals(config$2.wh.toChainId($n),"native"),Br=Number.parseFloat(toDecimals(Ir.toString(),Pr,6));Dt(setReceiveNativeAmt(Br)),vr(rr=>({...rr,nativeGas:Br,nativeGasPrice:calculateUSDPrice(Br,Zn,or),token:formatAmount(er-hr),tokenPrice:calculateUSDPrice(formatAmount(er-hr),Zn,config$2.tokens[Cn])}))})(),()=>{Yn=!0}},[hr,Dt,or,Wn.address,ar,dr,$n,Fn,er,jn,Cn]);const Ar="white",tr=!dt.disabled&&!!Fn&&jsxRuntimeExports.jsx(Banner,{text:"This feature provided by",route:RoutesConfig[Fn]});return jsxRuntimeExports.jsx(BridgeCollapse,{title:"Native gas",banner:tr,disabled:dt.disabled||sr.disabled,startClosed:dt.disabled,controlStyle:CollapseControlStyle.Switch,controlled:!0,value:gr,onCollapseChange:nr,children:jsxRuntimeExports.jsx(InputContainer,{styles:{width:"100%",borderTopRightRadius:"0px",borderTopLeftRadius:"0px",boxShadow:"none"},children:ar&&or&&Xn?jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{children:["Would you like to receive some native gas token (",getDisplayName(or),")?"]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PrettoSlider,{slots:{thumb:_r},"aria-label":"Native gas conversion amount",defaultValue:0,value:sr.swapAmt,color1:or.color??Ar,color2:ar.color??Ar,step:1e-6,min:0,max:sr.max,valueLabelFormat:()=>label(sr.nativeGas,getDisplayName(or),sr.token,getDisplayName(config$2.tokens[Cn])),valueLabelDisplay:"auto",onChange:Sr,marks:sr.min?[{value:sr.min,label:"Min"}]:void 0}),jsxRuntimeExports.jsxs("div",{className:ht.amounts,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.amountDisplay,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:or.icon,height:16}),jsxRuntimeExports.jsxs("div",{children:[sr.nativeGas," ",getDisplayName(or)]})]}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:sr.nativeGasPrice})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.amountDisplay,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:ar.icon,height:16}),sr.token," ",getDisplayName(ar)]}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:sr.tokenPrice})]})]})]})]}):jsxRuntimeExports.jsx("div",{})})})}const useStyles$H=makeStyles()(dt=>({row:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:"4px 0"},rowTitle:{fontSize:"14px",opacity:"70%"},arrow:{height:"24px",marginLeft:"8px",transition:"transform 0.4s"},invert:{transform:"rotate(180deg)"},subrow:{marginLeft:"16px"},subrowText:{fontSize:"14px"}}));function RenderRows(dt){const{classes:ht}=useStyles$H(),[Dt,Cn]=React.useState(!0),$n=()=>Cn(Un=>!Un);return jsxRuntimeExports.jsx("div",{children:dt.rows.map((Un,Fn)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:ht.row,style:{cursor:Un.rows?"pointer":"default"},onClick:()=>Un.rows&&$n(),children:[jsxRuntimeExports.jsxs("div",{className:ht.row,children:[jsxRuntimeExports.jsx("span",{className:ht.rowTitle,children:Un.title}),Un.rows&&jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!Dt&&ht.invert])})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:`${dt.small&&ht.subrowText}`,children:Un.value}),jsxRuntimeExports.jsx(Price,{textAlign:"right",children:Un.valueUSD})]})]}),jsxRuntimeExports.jsx("div",{children:Un.rows&&jsxRuntimeExports.jsx(Collapse$1,{in:!Dt,children:jsxRuntimeExports.jsx("div",{className:ht.subrow,children:jsxRuntimeExports.jsx(RenderRows,{rows:Un.rows,small:!0})})})})]},Fn))})}const defaultPrices={};function Preview(dt){const ht=useDispatch(),Dt=useTheme(),[Cn,$n]=React.useState({rows:[]}),{token:Un,destToken:Fn,amount:Hn,fromChain:Gn,toChain:Qn,route:qn,receiveAmount:er,gasEst:Wn}=useSelector(sr=>sr.transferInput),{toNativeToken:jn,receiveNativeAmt:Zn,relayerFee:Xn}=useSelector(sr=>sr.relay),ar=useSelector(sr=>sr.porticoBridge),{usdPrices:{data:dr}}=useSelector(sr=>sr.tokenPrices),or=dr||defaultPrices;return reactExports.useEffect(()=>{(async()=>{if(!Gn||!qn)return;const vr=Qn&&config$2.chains[Gn],hr=Qn&&config$2.chains[Qn],gr=Un&&config$2.tokens[Un],ur=Fn&&config$2.tokens[Fn];if(!gr||!ur||!vr||!hr)return;const _r=isPorticoRoute(qn)?ar:{toNativeToken:jn,receiveNativeAmt:Zn,relayerFee:Xn},nr=await RouteOperator.getPreview(qn,gr,ur,Number.parseFloat(Hn),Gn,Qn,Wn.send,Wn.claim,er.data||"",or,_r);$n({rows:nr})})()},[Un,Fn,Hn,Gn,Qn,qn,er,jn,Zn,ar,Wn,ht,Xn,or]),reactExports.useEffect(()=>{(async()=>{if(!(!Un||!Gn||!Qn||!qn||!RouteOperator.getRoute(qn).AUTOMATIC_DEPOSIT))try{if(!(Un&&config$2.tokens[Un]))return;const gr=await RouteOperator.getRelayerFee(qn,Gn,Qn,Un,Fn);if(gr===null)return;const{fee:ur,feeToken:_r}=gr,nr=getTokenDecimals(toChainId$1(Gn),_r),Sr=Number.parseFloat(toDecimals(ur,nr,6));ht(setRelayerFee$1(Sr))}catch(hr){if(hr.message===TokenNotSupportedForRelayError.MESSAGE||hr.message===TokenNotRegisteredError.MESSAGE)qn===Route.CCTPRelay?ht(setTransferRoute(Route.CCTPManual)):ht(setTransferRoute(Route.Bridge));else throw hr}})()},[qn,Un,Fn,Qn,Gn,ht]),jsxRuntimeExports.jsx(BridgeCollapse,{title:"Preview",disabled:dt.collapsed,controlled:!0,value:dt.collapsed,controlStyle:CollapseControlStyle.None,children:jsxRuntimeExports.jsx(InputContainer,{styles:{boxShadow:"none",borderTopLeftRadius:"0",borderTopRightRadius:"0"},bg:Dt.palette.options.select,children:jsxRuntimeExports.jsx(RenderRows,{rows:Cn.rows})})})}const useStyles$G=makeStyles()(dt=>({button:{width:"100%",backgroundColor:dt.palette.button.primary,color:dt.palette.button.primaryText,borderRadius:"8px",display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 64px",cursor:"pointer",textAlign:"center"},disabled:{cursor:"not-allowed",clickEvents:"none",backgroundColor:dt.palette.button.disabled+" !important",color:dt.palette.button.disabledText+" !important"},elevated:{boxShadow:dt.palette.card.elevation},action:{backgroundColor:dt.palette.button.action,color:dt.palette.button.actionText},link:{backgroundColor:"transparent"}}));function Button(dt){const{classes:ht}=useStyles$G(),Dt=Cn=>{dt.onClick&&!dt.disabled&&dt.onClick(Cn)};return jsxRuntimeExports.jsx("div",{className:joinClass([ht.button,!!dt.elevated&&ht.elevated,!!dt.action&&ht.action,!!dt.link&&ht.link,!!dt.disabled&&ht.disabled]),onClick:Dt,"data-testid":dt.testId,children:dt.children})}const AlertIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12.0003 9.99993V13.7499M2.69731 17.1259C1.83131 18.6259 2.91431 20.4999 4.64531 20.4999H19.3553C21.0853 20.4999 22.1683 18.6259 21.3033 17.1259L13.9493 4.37793C13.0833 2.87793 10.9173 2.87793 10.0513 4.37793L2.69731 17.1259ZM12.0003 16.7499H12.0073V16.7579H12.0003V16.7499Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Alert"),useStyles$F=makeStyles()(dt=>({base:{width:"100%",padding:"8px",display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",gap:"10px",borderRadius:"8px"},error:{backgroundColor:dt.palette.error[500]+OPACITY[25]},warning:{backgroundColor:dt.palette.warning[500]+OPACITY[25]}}));function AlertBanner(dt){const{classes:ht}=useStyles$F();return jsxRuntimeExports.jsx(Collapse$1,{in:dt.show&&!!dt.content,unmountOnExit:!0,children:jsxRuntimeExports.jsxs("div",{className:joinClass([ht.base,!!dt.warning&&ht.warning,!!dt.error&&ht.error]),style:{margin:dt.margin||0},"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(AlertIcon,{}),dt.content]})})}const useStyles$E=makeStyles()(dt=>({body:{width:"100%"},tosDisclaimer:{display:"flex",flexDirection:"row",marginBottom:10,marginLeft:16,fontSize:"12px"},link:{...LINK(dt),margin:"0 0 0 4px"}}));function Send(dt){const{classes:ht}=useStyles$E(),Dt=useDispatch(),Cn=useSelector(Ir=>Ir.transferInput),{showValidationState:$n,validations:Un,fromChain:Fn,toChain:Hn,token:Gn,destToken:Qn,amount:qn,route:er,isTransactionInProgress:Wn,foreignAsset:jn,associatedTokenAddress:Zn}=Cn,[Xn]=o(qn,500),ar=useSelector(Ir=>Ir.wallet),{sending:dr,receiving:or}=ar,sr=useSelector(Ir=>Ir.relay),{toNativeToken:vr,relayerFee:hr}=sr,gr=useSelector(Ir=>Ir.porticoBridge),[ur,_r]=reactExports.useState(dr.currentAddress.toLowerCase()===dr.address.toLowerCase()),[nr,Sr]=reactExports.useState(""),Ar=validateSolanaTokenAccount(Hn,jn,Zn,er);async function tr(){var Pr;if(Sr(""),await validate({transferInput:Cn,relay:sr,wallet:ar,portico:gr},Dt),!(!isTransferValid(Un)||!er)){Dt(setIsTransactionInProgress(!0));try{const Br=config$2.chains[Fn];if((Br==null?void 0:Br.context)===Context.ETH){const Nr=Br.chainId;if(typeof Nr!="number")throw new Error("invalid evm chain ID");await switchChain(Nr,TransferWallet.SENDING),registerWalletSigner(Fn,TransferWallet.SENDING)}(Br==null?void 0:Br.context)===Context.COSMOS&&await switchChain(Br.chainId,TransferWallet.SENDING);const pr=config$2.tokens[Gn].tokenId,$r=isPorticoRoute(er)?gr:{toNativeToken:vr},kr=await RouteOperator.send(er,pr||"native",`${qn}`,Fn,dr.address,Hn,or.address,Qn,$r);let Tr;for(;Tr===void 0;){try{Tr=await RouteOperator.getMessage(er,kr,Fn,!0)}catch(Nr){console.error(Nr)}Tr===void 0&&await sleep(3e3)}Dt(setIsTransactionInProgress(!1)),Dt(setSendTx(kr)),Dt(setTxDetails(Tr)),Dt(setRoute$1(er)),Dt(setRoute("redeem")),Sr("")}catch(Br){console.error(Br),Dt(setIsTransactionInProgress(!1)),Sr((Br==null?void 0:Br.message)===INSUFFICIENT_ALLOWANCE?"Error due to insufficient token allowance, please try again":(Br==null?void 0:Br.message)===SWAP_ERROR?SWAP_ERROR:(Br==null?void 0:Br.message)===NotEnoughCapacityError.MESSAGE?`This transfer would be rate-limited due to high volume on ${(Pr=config$2.chains[Cn.fromChain])==null?void 0:Pr.displayName}, please try again later`:(Br==null?void 0:Br.message)===ContractIsPausedError.MESSAGE||(Br==null?void 0:Br.message)===DestinationContractIsPausedError.MESSAGE?Br.message:(Br==null?void 0:Br.message)===UnsupportedContractAbiVersion.MESSAGE?"Unsupported contract ABI version":(Br==null?void 0:Br.message)===InsufficientFundsForGasError.MESSAGE?InsufficientFundsForGasError.MESSAGE:"Error with transfer, please try again")}}}const Yn=reactExports.useCallback(async()=>{const Ir=config$2.tokens[Gn];if(!er||!Ir)return;const Pr=Ir.tokenId,Br=await estimateSendGas(er,Pr||"native",(Xn||0).toString(),Fn,dr.address,Hn,or.address,{relayerFee:hr,toNativeToken:vr});Dt(setSendingGasEst(Br))},[Gn,Xn,Fn,dr,Hn,or,vr,hr,Dt,er]),fr=Wn||!!Ar||config$2.previewMode,Cr=reactExports.useCallback(async()=>{if(!er||!Hn)return;const Ir=await estimateClaimGas(er,Hn,void 0);Dt(setClaimGasEst(Ir))},[Hn,er,Dt]);reactExports.useEffect(()=>{isTransferValid(Un)&&(Yn(),Cr())},[Un,Cr,Yn]),reactExports.useEffect(()=>{_r(dr.currentAddress.toLowerCase()===dr.address.toLowerCase())},[dr]);const yr=reactExports.useMemo(()=>{if(!er)return!1;const Ir=RouteOperator.getRoute(er);return!(Ir.AUTOMATIC_DEPOSIT||Hn&&isGatewayChain(Hn)||Hn==="sei"||isPorticoRoute(Ir.TYPE))},[er,Hn]);return jsxRuntimeExports.jsxs("div",{className:ht.body,children:[!!dt.valid&&jsxRuntimeExports.jsx(AlertBanner,{show:$n&&!!dt.valid&&yr,content:"This transfer requires two transactions: one on the source chain and one on the destination chain. You will need gas on the destination chain.",warning:!0,margin:"0 0 16px 0"}),jsxRuntimeExports.jsx(AlertBanner,{show:!!nr,content:nr,error:!0,margin:"0 0 16px 0",testId:"send-error-message"}),dt.valid&&!ur?jsxRuntimeExports.jsxs(Button,{disabled:!0,elevated:!0,children:["Connect to ",displayWalletAddress(dr.type,dr.address)]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:ht.tosDisclaimer,children:["By proceeding, you agree to the",jsxRuntimeExports.jsx("span",{className:ht.link,onClick:()=>Dt(setRoute("terms")),rel:"noreferrer",children:"Terms of Use"})]}),jsxRuntimeExports.jsx(Button,{onClick:tr,action:dt.valid,disabled:fr,testId:"approve-button",elevated:!0,children:Wn?jsxRuntimeExports.jsx(CircularProgress$1,{size:22}):"Approve and proceed with transaction"})]})]})}const useStyles$D=makeStyles()((dt,{align:ht,fontSize:Dt})=>({title:{fontSize:`${Dt}px`,width:"100%",textAlign:ht,fontFamily:dt.palette.font.header,[dt.breakpoints.down("sm")]:{fontSize:"24px"}}}));function Header$1(dt){const ht={align:dt.align||"center",fontSize:dt.size||42},{classes:Dt}=useStyles$D(ht);return jsxRuntimeExports.jsx("div",{className:Dt.title,"data-test-id":dt.testId,children:dt.text})}const MenuIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M3.75 6.75H20.25M3.75 12H20.25M12 17.25H20.25",fill:"none",stroke:"currentColor",strokeOpacity:"0.6",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Menu"),CloseIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12 0C5.38338 0 0 5.38338 0 12C0 18.6166 5.38338 24 12 24C18.6166 24 24 18.6166 24 12C24 5.38338 18.6166 0 12 0ZM12 1.84615C17.6188 1.84615 22.1538 6.38123 22.1538 12C22.1538 17.6188 17.6188 22.1538 12 22.1538C6.38123 22.1538 1.84615 17.6188 1.84615 12C1.84615 6.38123 6.38123 1.84615 12 1.84615ZM8.51077 7.18154L7.18154 8.51077L10.6745 12L7.18338 15.4892L8.51262 16.8185L12 13.3265L15.4892 16.8157L16.8185 15.4892L13.3265 12L16.8157 8.51077L15.4892 7.18154L12 10.6745L8.51077 7.18338V7.18154Z",fill:"currentColor",fillOpacity:"0.9"}),"Close"),useStyles$C=makeStyles()((dt,{width:ht})=>({dialog:{zIndex:10},container:{position:"relative",width:"100%",margin:"0 auto",display:"flex",justifyContent:"center"},modal:{width:"100%",maxWidth:`${ht}px`,margin:"40px auto",padding:"24px",textAlign:"center",position:"relative",[dt.breakpoints.down("sm")]:{margin:"20px auto",padding:"24px 12px"},maxHeight:"calc( 100vh - 80px )"},close:{position:"absolute",top:"28px",right:"28px",cursor:"pointer",opacity:"70%",zIndex:"10",[dt.breakpoints.down("sm")]:{top:"12px",right:"20px"}},background:{background:dt.palette.modal.background}}));function Modal({open:dt,width:ht,closable:Dt,children:Cn,onClose:$n}){const{classes:Un}=useStyles$C({width:ht}),Fn=reactExports.useCallback(Hn=>{Hn.stopPropagation()},[]);return reactExports.useEffect(()=>{const Hn=Gn=>{(Gn.keyCode===27||Gn.which===27)&&$n()};return document.addEventListener("keyup",Hn),()=>{document.removeEventListener("keyup",Hn)}},[]),jsxRuntimeExports.jsx(Dialog$1,{open:dt,sx:{borderRadius:8},className:Un.dialog,fullWidth:!0,fullScreen:!0,children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:Un.container,onClick:$n,children:[Dt&&jsxRuntimeExports.jsx(CloseIcon,{sx:{fontSize:32},className:Un.close,onClick:$n}),jsxRuntimeExports.jsx("div",{className:Un.modal,onClick:Fn,children:Cn})]})})})}function Spacer(dt){return jsxRuntimeExports.jsx("div",{style:{height:`${dt.height||24}px`}})}function WormholeLogo(dt){return jsxRuntimeExports.jsxs("svg",{width:"227",height:"24",viewBox:"0 0 227 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M1.23295 17V6.81818H4.6733C5.47206 6.81818 6.125 6.96236 6.6321 7.25071C7.14252 7.53575 7.52036 7.92188 7.76562 8.40909C8.01089 8.89631 8.13352 9.43987 8.13352 10.0398C8.13352 10.6397 8.01089 11.1849 7.76562 11.6754C7.52367 12.166 7.14915 12.5571 6.64205 12.8487C6.13494 13.1371 5.48532 13.2812 4.69318 13.2812H2.22727V12.1875H4.65341C5.20028 12.1875 5.63944 12.093 5.97088 11.9041C6.30232 11.7152 6.54261 11.46 6.69176 11.1385C6.84422 10.8137 6.92045 10.4474 6.92045 10.0398C6.92045 9.6321 6.84422 9.26752 6.69176 8.94602C6.54261 8.62453 6.30066 8.37263 5.96591 8.19034C5.63116 8.00473 5.18703 7.91193 4.63352 7.91193H2.46591V17H1.23295ZM12.9808 17.1591C12.2914 17.1591 11.6866 16.995 11.1662 16.6669C10.6491 16.3388 10.2448 15.8797 9.95312 15.2898C9.66477 14.6998 9.5206 14.0104 9.5206 13.2216C9.5206 12.4261 9.66477 11.7318 9.95312 11.1385C10.2448 10.5452 10.6491 10.0845 11.1662 9.75639C11.6866 9.42827 12.2914 9.2642 12.9808 9.2642C13.6702 9.2642 14.2734 9.42827 14.7905 9.75639C15.3108 10.0845 15.7152 10.5452 16.0036 11.1385C16.2952 11.7318 16.4411 12.4261 16.4411 13.2216C16.4411 14.0104 16.2952 14.6998 16.0036 15.2898C15.7152 15.8797 15.3108 16.3388 14.7905 16.6669C14.2734 16.995 13.6702 17.1591 12.9808 17.1591ZM12.9808 16.1051C13.5045 16.1051 13.9354 15.9709 14.2734 15.7024C14.6115 15.4339 14.8617 15.081 15.0241 14.6435C15.1866 14.206 15.2678 13.732 15.2678 13.2216C15.2678 12.7112 15.1866 12.2356 15.0241 11.7947C14.8617 11.3539 14.6115 10.9976 14.2734 10.7259C13.9354 10.4541 13.5045 10.3182 12.9808 10.3182C12.4571 10.3182 12.0263 10.4541 11.6882 10.7259C11.3501 10.9976 11.0999 11.3539 10.9375 11.7947C10.7751 12.2356 10.6939 12.7112 10.6939 13.2216C10.6939 13.732 10.7751 14.206 10.9375 14.6435C11.0999 15.081 11.3501 15.4339 11.6882 15.7024C12.0263 15.9709 12.4571 16.1051 12.9808 16.1051ZM19.7024 17L17.3757 9.36364H18.6087L20.2592 15.2102H20.3388L21.9695 9.36364H23.2223L24.8331 15.1903H24.9126L26.5632 9.36364H27.7962L25.4695 17H24.3161L22.6456 11.1335H22.5263L20.8558 17H19.7024ZM32.2892 17.1591C31.5534 17.1591 30.9187 16.9967 30.3851 16.6719C29.8548 16.3438 29.4455 15.8864 29.1571 15.2997C28.8721 14.7098 28.7296 14.0237 28.7296 13.2415C28.7296 12.4593 28.8721 11.7699 29.1571 11.1733C29.4455 10.5734 29.8465 10.1061 30.3603 9.77131C30.8773 9.43324 31.4805 9.2642 32.1699 9.2642C32.5676 9.2642 32.9604 9.33049 33.3482 9.46307C33.736 9.59564 34.089 9.81108 34.4071 10.1094C34.7253 10.4044 34.9789 10.7955 35.1678 11.2827C35.3567 11.7699 35.4512 12.3698 35.4512 13.0824V13.5795H29.5648V12.5653H34.258C34.258 12.1345 34.1718 11.75 33.9995 11.4119C33.8304 11.0739 33.5885 10.8071 33.2736 10.6115C32.9621 10.416 32.5942 10.3182 32.1699 10.3182C31.7026 10.3182 31.2982 10.4342 30.9569 10.6662C30.6188 10.8949 30.3586 11.1932 30.1763 11.5611C29.994 11.929 29.9029 12.3234 29.9029 12.7443V13.4205C29.9029 13.9972 30.0023 14.486 30.2012 14.8871C30.4033 15.2848 30.6834 15.5881 31.0414 15.7969C31.3993 16.0024 31.8153 16.1051 32.2892 16.1051C32.5975 16.1051 32.8759 16.062 33.1245 15.9759C33.3764 15.8864 33.5935 15.7538 33.7757 15.5781C33.958 15.3991 34.0989 15.1771 34.1983 14.9119L35.3319 15.2301C35.2125 15.6146 35.012 15.9527 34.7303 16.2443C34.4486 16.5327 34.1006 16.758 33.6863 16.9205C33.272 17.0795 32.8063 17.1591 32.2892 17.1591ZM37.236 17V9.36364H38.3695V10.517H38.449C38.5882 10.1392 38.8401 9.83262 39.2047 9.5973C39.5693 9.36198 39.9803 9.24432 40.4377 9.24432C40.5239 9.24432 40.6316 9.24597 40.7608 9.24929C40.8901 9.2526 40.9879 9.25758 41.0542 9.2642V10.4574C41.0144 10.4474 40.9232 10.4325 40.7807 10.4126C40.6415 10.3894 40.494 10.3778 40.3382 10.3778C39.967 10.3778 39.6356 10.4557 39.3439 10.6115C39.0556 10.764 38.8269 10.9761 38.6578 11.2479C38.4921 11.5163 38.4093 11.8229 38.4093 12.1676V17H37.236ZM45.4142 17.1591C44.6784 17.1591 44.0437 16.9967 43.5101 16.6719C42.9798 16.3438 42.5705 15.8864 42.2821 15.2997C41.9971 14.7098 41.8546 14.0237 41.8546 13.2415C41.8546 12.4593 41.9971 11.7699 42.2821 11.1733C42.5705 10.5734 42.9715 10.1061 43.4853 9.77131C44.0023 9.43324 44.6055 9.2642 45.2949 9.2642C45.6926 9.2642 46.0854 9.33049 46.4732 9.46307C46.861 9.59564 47.214 9.81108 47.5321 10.1094C47.8503 10.4044 48.1039 10.7955 48.2928 11.2827C48.4817 11.7699 48.5762 12.3698 48.5762 13.0824V13.5795H42.6898V12.5653H47.383C47.383 12.1345 47.2968 11.75 47.1245 11.4119C46.9554 11.0739 46.7135 10.8071 46.3986 10.6115C46.0871 10.416 45.7192 10.3182 45.2949 10.3182C44.8276 10.3182 44.4232 10.4342 44.0819 10.6662C43.7438 10.8949 43.4836 11.1932 43.3013 11.5611C43.119 11.929 43.0279 12.3234 43.0279 12.7443V13.4205C43.0279 13.9972 43.1273 14.486 43.3262 14.8871C43.5283 15.2848 43.8084 15.5881 44.1664 15.7969C44.5243 16.0024 44.9403 16.1051 45.4142 16.1051C45.7225 16.1051 46.0009 16.062 46.2495 15.9759C46.5014 15.8864 46.7185 15.7538 46.9007 15.5781C47.083 15.3991 47.2239 15.1771 47.3233 14.9119L48.4569 15.2301C48.3375 15.6146 48.137 15.9527 47.8553 16.2443C47.5736 16.5327 47.2256 16.758 46.8113 16.9205C46.397 17.0795 45.9313 17.1591 45.4142 17.1591ZM53.2445 17.1591C52.6081 17.1591 52.0463 16.9983 51.5591 16.6768C51.0719 16.352 50.6908 15.8946 50.4157 15.3047C50.1406 14.7114 50.003 14.0104 50.003 13.2017C50.003 12.3996 50.1406 11.7036 50.4157 11.1136C50.6908 10.5237 51.0736 10.0679 51.5641 9.74645C52.0546 9.42495 52.6214 9.2642 53.2644 9.2642C53.7615 9.2642 54.1543 9.34706 54.4426 9.51278C54.7343 9.67519 54.9564 9.8608 55.1088 10.0696C55.2646 10.2751 55.3856 10.4441 55.4718 10.5767H55.5712V6.81818H56.7445V17H55.611V15.8267H55.4718C55.3856 15.9659 55.263 16.1416 55.1039 16.3537C54.9448 16.5625 54.7177 16.7498 54.4228 16.9155C54.1278 17.0779 53.735 17.1591 53.2445 17.1591ZM53.4036 16.1051C53.8742 16.1051 54.272 15.9825 54.5968 15.7372C54.9216 15.4886 55.1685 15.1456 55.3375 14.7081C55.5066 14.2673 55.5911 13.7585 55.5911 13.1818C55.5911 12.6117 55.5082 12.1129 55.3425 11.6854C55.1768 11.2545 54.9315 10.9197 54.6067 10.6811C54.2819 10.4392 53.8809 10.3182 53.4036 10.3182C52.9064 10.3182 52.4921 10.4458 52.1607 10.701C51.8326 10.9529 51.5856 11.2959 51.4199 11.7301C51.2575 12.161 51.1763 12.6449 51.1763 13.1818C51.1763 13.7254 51.2592 14.2192 51.4249 14.6634C51.5939 15.1042 51.8425 15.4555 52.1706 15.7173C52.5021 15.9759 52.9131 16.1051 53.4036 16.1051ZM63.1529 17V6.81818H66.7125C67.4218 6.81818 68.0068 6.94081 68.4675 7.18608C68.9282 7.42803 69.2712 7.7545 69.4966 8.16548C69.722 8.57315 69.8347 9.02557 69.8347 9.52273C69.8347 9.96023 69.7568 10.3215 69.601 10.6065C69.4486 10.8916 69.2464 11.117 68.9945 11.2827C68.7459 11.4484 68.4758 11.571 68.1841 11.6506V11.75C68.4957 11.7699 68.8089 11.8793 69.1238 12.0781C69.4386 12.277 69.7021 12.562 69.9142 12.9332C70.1264 13.3045 70.2324 13.7585 70.2324 14.2955C70.2324 14.8059 70.1164 15.2649 69.8844 15.6726C69.6524 16.0803 69.2862 16.4034 68.7857 16.642C68.2852 16.8807 67.6339 17 66.8319 17H63.1529ZM64.3858 15.9062H66.8319C67.6373 15.9062 68.209 15.7505 68.5471 15.4389C68.8884 15.1241 69.0591 14.7429 69.0591 14.2955C69.0591 13.9508 68.9713 13.6326 68.7956 13.3409C68.62 13.0459 68.3697 12.8106 68.0449 12.6349C67.7201 12.456 67.3356 12.3665 66.8915 12.3665H64.3858V15.9062ZM64.3858 11.2926H66.6728C67.044 11.2926 67.3787 11.2197 67.677 11.0739C67.9786 10.928 68.2173 10.7225 68.3929 10.4574C68.5719 10.1922 68.6614 9.88068 68.6614 9.52273C68.6614 9.07528 68.5056 8.69579 68.1941 8.38423C67.8825 8.06937 67.3887 7.91193 66.7125 7.91193H64.3858V11.2926ZM72.8549 19.8636C72.6561 19.8636 72.4788 19.8471 72.323 19.8139C72.1672 19.7841 72.0595 19.7543 71.9998 19.7244L72.2981 18.6903C72.5832 18.7633 72.835 18.7898 73.0538 18.7699C73.2725 18.75 73.4664 18.6522 73.6355 18.4766C73.8078 18.3042 73.9653 18.0241 74.1078 17.6364L74.3265 17.0398L71.5027 9.36364H72.7754L74.8833 15.4489H74.9629L77.0708 9.36364H78.3436L75.1021 18.1136C74.9563 18.508 74.7756 18.8345 74.5602 19.093C74.3448 19.3549 74.0945 19.5488 73.8095 19.6747C73.5278 19.8007 73.2096 19.8636 72.8549 19.8636Z",fill:dt.color,fillOpacity:"0.6"}),jsxRuntimeExports.jsx("path",{d:"M133.698 7.32755L130.547 16.1698C130.533 16.2126 130.504 16.2492 130.466 16.2741C130.429 16.2989 130.383 16.3104 130.338 16.3069H130.099C130.054 16.3087 130.009 16.2965 129.971 16.2719C129.933 16.2474 129.903 16.2117 129.886 16.1698L127.524 9.96839L125.166 16.1698C125.15 16.2118 125.121 16.2476 125.084 16.2723C125.046 16.2969 125.001 16.309 124.956 16.3069H124.714C124.669 16.3094 124.624 16.2974 124.586 16.2727C124.549 16.248 124.52 16.212 124.505 16.1698L121.354 7.33064C121.305 7.19361 121.358 7.10844 121.492 7.10844H122.467C122.513 7.10384 122.559 7.1149 122.598 7.13982C122.636 7.16473 122.665 7.202 122.68 7.24548L124.926 13.9401L127.21 7.80911C127.226 7.76689 127.255 7.7309 127.294 7.70629C127.332 7.68168 127.377 7.6697 127.423 7.67207H127.628C127.673 7.66981 127.717 7.68189 127.755 7.70654C127.793 7.73119 127.821 7.76713 127.837 7.80911L130.188 13.9401L132.382 7.24548C132.397 7.202 132.426 7.16473 132.464 7.13982C132.503 7.1149 132.549 7.10384 132.595 7.10844H133.556C133.694 7.10844 133.746 7.19361 133.698 7.32755",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M147.413 11.6335C147.404 12.5442 147.124 13.432 146.608 14.1849C146.091 14.9379 145.362 15.5225 144.512 15.865C143.661 16.2075 142.728 16.2926 141.829 16.1096C140.93 15.9266 140.105 15.4837 139.46 14.8366C138.814 14.1896 138.375 13.3673 138.199 12.4735C138.024 11.5796 138.118 10.6541 138.471 9.81351C138.825 8.97292 139.421 8.25486 140.184 7.74975C140.948 7.24465 141.845 6.9751 142.763 6.97506C143.38 6.96645 143.992 7.0814 144.563 7.31303C145.134 7.54465 145.652 7.88819 146.086 8.3231C146.52 8.758 146.861 9.27533 147.089 9.84414C147.317 10.4129 147.427 11.0215 147.413 11.6335V11.6335ZM146.123 11.6335C146.123 9.48971 144.714 8.01328 142.763 8.01328C140.812 8.01328 139.403 9.48971 139.403 11.6335C139.403 13.7773 140.812 15.2537 142.763 15.2537C144.714 15.2537 146.123 13.7773 146.123 11.6335Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M159.728 15.791C159.758 15.8251 159.776 15.8674 159.781 15.9122C159.786 15.9571 159.777 16.0023 159.756 16.0421C159.734 16.0818 159.701 16.1142 159.661 16.1349C159.62 16.1556 159.575 16.1636 159.53 16.158H158.651C158.623 16.1571 158.595 16.1493 158.57 16.1351C158.545 16.1209 158.524 16.1008 158.509 16.0767L156.304 12.7754H153.935V15.973C153.934 16.022 153.915 16.069 153.88 16.1037C153.845 16.1384 153.797 16.1582 153.748 16.1588H152.89C152.84 16.158 152.793 16.1381 152.758 16.1034C152.724 16.0687 152.704 16.0219 152.703 15.973V7.29323C152.704 7.24433 152.724 7.19765 152.759 7.16299C152.793 7.12834 152.84 7.10842 152.89 7.10742H156.265C158.627 7.10742 159.793 8.3392 159.793 9.94105C159.808 10.5776 159.592 11.1982 159.186 11.6907C158.779 12.1833 158.209 12.5153 157.577 12.6268L159.728 15.791ZM156.024 11.7372C157.881 11.7372 158.505 10.9731 158.505 9.94182C158.505 8.91057 157.881 8.14642 156.024 8.14642H153.934V11.7372H156.024Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M174.242 6.96207H174.522C174.547 6.96048 174.572 6.96419 174.595 6.97297C174.619 6.98174 174.64 6.99538 174.658 7.01296C174.675 7.03054 174.689 7.05167 174.698 7.07493C174.707 7.0982 174.711 7.12307 174.709 7.14788V15.9739C174.711 15.9987 174.707 16.0236 174.698 16.0469C174.689 16.0701 174.675 16.0913 174.658 16.1088C174.64 16.1264 174.619 16.1401 174.595 16.1488C174.572 16.1576 174.547 16.1613 174.522 16.1597H173.664C173.639 16.1613 173.613 16.1576 173.59 16.1488C173.567 16.1401 173.545 16.1264 173.528 16.1088C173.51 16.0913 173.496 16.0701 173.487 16.0469C173.478 16.0236 173.475 15.9987 173.476 15.9739V9.70821L170.019 14.6748C170.007 14.6993 169.989 14.7201 169.966 14.7347C169.943 14.7493 169.917 14.7571 169.889 14.7571C169.862 14.7571 169.836 14.7493 169.813 14.7347C169.79 14.7201 169.772 14.6993 169.76 14.6748L166.303 9.70821V15.9732C166.305 15.998 166.301 16.0228 166.292 16.0461C166.284 16.0694 166.27 16.0905 166.252 16.1081C166.234 16.1257 166.213 16.1393 166.19 16.1481C166.166 16.1568 166.141 16.1606 166.116 16.159H165.258C165.233 16.1606 165.208 16.1568 165.184 16.1481C165.161 16.1393 165.14 16.1257 165.122 16.1081C165.104 16.0905 165.09 16.0694 165.082 16.0461C165.073 16.0228 165.069 15.998 165.071 15.9732V7.14711C165.069 7.12229 165.073 7.09743 165.082 7.07416C165.09 7.0509 165.104 7.02977 165.122 7.01219C165.14 6.9946 165.161 6.98097 165.184 6.9722C165.208 6.96342 165.233 6.9597 165.258 6.9613H165.535C165.581 6.96146 165.627 6.97308 165.668 6.99511C165.709 7.01713 165.743 7.04888 165.769 7.08749L169.888 12.7958L174.011 7.08749C174.035 7.04907 174.068 7.01734 174.108 6.99527C174.148 6.9732 174.193 6.96151 174.239 6.9613",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M188.578 7.29323V15.9722C188.577 16.0212 188.557 16.068 188.522 16.1027C188.488 16.1374 188.44 16.1572 188.391 16.158H187.533C187.483 16.1572 187.436 16.1374 187.401 16.1027C187.366 16.068 187.346 16.0212 187.346 15.9722V12.0183H181.668V15.9722C181.667 16.0212 181.647 16.068 181.612 16.1027C181.578 16.1374 181.53 16.1572 181.481 16.158H180.623C180.573 16.1572 180.526 16.1374 180.491 16.1027C180.456 16.068 180.436 16.0212 180.436 15.9722V7.29323C180.436 7.2442 180.456 7.1974 180.491 7.16273C180.526 7.12805 180.573 7.10822 180.623 7.10742H181.481C181.53 7.10822 181.578 7.12805 181.612 7.16273C181.647 7.1974 181.667 7.2442 181.668 7.29323V10.98H187.346V7.29323C187.346 7.2442 187.366 7.1974 187.401 7.16273C187.436 7.12805 187.483 7.10822 187.533 7.10742H188.391C188.44 7.10822 188.488 7.12805 188.522 7.16273C188.557 7.1974 188.577 7.2442 188.578 7.29323Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M203.167 11.6335C203.158 12.5442 202.878 13.432 202.361 14.1849C201.845 14.9379 201.116 15.5225 200.266 15.865C199.415 16.2075 198.482 16.2926 197.583 16.1096C196.684 15.9266 195.859 15.4837 195.213 14.8366C194.568 14.1896 194.129 13.3673 193.953 12.4735C193.777 11.5796 193.872 10.6541 194.225 9.81351C194.579 8.97292 195.175 8.25486 195.938 7.74975C196.702 7.24465 197.599 6.9751 198.517 6.97506C199.134 6.96645 199.746 7.0814 200.317 7.31303C200.888 7.54465 201.406 7.88819 201.84 8.3231C202.274 8.758 202.615 9.27533 202.843 9.84414C203.071 10.4129 203.181 11.0215 203.167 11.6335V11.6335ZM201.877 11.6335C201.877 9.48971 200.468 8.01328 198.517 8.01328C196.566 8.01328 195.157 9.48971 195.157 11.6335C195.157 13.7773 196.566 15.2537 198.517 15.2537C200.468 15.2537 201.877 13.7773 201.877 11.6335Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M214.912 15.3048V15.9722C214.914 15.997 214.91 16.0219 214.901 16.0451C214.892 16.0684 214.879 16.0895 214.861 16.1071C214.843 16.1247 214.822 16.1383 214.798 16.1471C214.775 16.1559 214.75 16.1596 214.725 16.158H208.644C208.595 16.1572 208.548 16.1374 208.513 16.1027C208.478 16.068 208.458 16.0212 208.457 15.9722V7.29323C208.458 7.2442 208.478 7.1974 208.513 7.16273C208.548 7.12805 208.595 7.10822 208.644 7.10742H209.502C209.552 7.10842 209.599 7.12834 209.633 7.16299C209.668 7.19765 209.688 7.24433 209.689 7.29323V15.119H214.727C214.752 15.1174 214.777 15.1211 214.801 15.1299C214.824 15.1387 214.846 15.1523 214.863 15.1699C214.881 15.1875 214.895 15.2086 214.904 15.2319C214.912 15.2551 214.916 15.28 214.915 15.3048",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M226.762 15.3052V15.9725C226.763 15.9973 226.759 16.0222 226.751 16.0455C226.742 16.0687 226.728 16.0899 226.71 16.1075C226.693 16.125 226.671 16.1387 226.648 16.1474C226.624 16.1562 226.599 16.1599 226.574 16.1583H220.008C219.958 16.1575 219.911 16.1377 219.876 16.103C219.841 16.0684 219.821 16.0216 219.82 15.9725V7.29359C219.821 7.24456 219.841 7.19776 219.876 7.16309C219.911 7.12841 219.958 7.10858 220.008 7.10778H226.425C226.45 7.10619 226.475 7.10991 226.499 7.11868C226.522 7.12746 226.544 7.14109 226.561 7.15867C226.579 7.17625 226.593 7.19738 226.602 7.22065C226.61 7.24391 226.614 7.26878 226.613 7.29359V7.96097C226.614 7.98578 226.61 8.01065 226.602 8.03391C226.593 8.05718 226.579 8.0783 226.561 8.09589C226.544 8.11347 226.522 8.1271 226.499 8.13588C226.475 8.14465 226.45 8.14837 226.425 8.14678H221.051V10.9804H225.828C225.852 10.9789 225.877 10.9825 225.9 10.991C225.923 10.9996 225.944 11.0129 225.962 11.03C225.979 11.0472 225.993 11.0679 226.002 11.0907C226.011 11.1135 226.015 11.1379 226.014 11.1623V11.8336C226.016 11.8583 226.012 11.883 226.003 11.9061C225.994 11.9292 225.98 11.9502 225.963 11.9677C225.945 11.9852 225.924 11.9987 225.901 12.0075C225.877 12.0163 225.853 12.0201 225.828 12.0186H221.051V15.1194H226.575C226.6 15.1178 226.625 15.1215 226.649 15.1302C226.672 15.139 226.693 15.1527 226.711 15.1702C226.729 15.1878 226.742 15.209 226.751 15.2322C226.76 15.2555 226.764 15.2803 226.762 15.3052",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M101.01 24C97.8272 23.998 94.7753 22.7335 92.5237 20.4839C90.2721 18.2344 89.0049 15.1835 89 12.0008C89.0049 8.81788 90.2721 5.76688 92.5236 3.51709C94.7751 1.2673 97.8271 0.00244275 101.01 0C104.193 0.00244275 107.245 1.2673 109.496 3.51709C111.748 5.76688 113.015 8.81788 113.02 12.0008C113.015 15.1835 111.748 18.2344 109.496 20.4839C107.245 22.7335 104.193 23.998 101.01 24ZM101.01 0.923847C98.072 0.925882 95.2548 2.09328 93.1764 4.1699C91.0981 6.24652 89.9283 9.06277 89.9238 12.0008C89.9267 14.9391 91.096 17.7562 93.1747 19.8329C95.2535 21.9096 98.0716 23.0762 101.01 23.0762C103.948 23.0762 106.767 21.9096 108.845 19.8329C110.924 17.7562 112.093 14.9391 112.096 12.0008C112.092 9.06277 110.922 6.24652 108.844 4.1699C106.765 2.09328 103.948 0.925882 101.01 0.923847V0.923847Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M102.528 22.103C99.891 22.101 97.3626 21.0531 95.4973 19.1892C93.632 17.3254 92.5822 14.7978 92.5781 12.1609C92.5822 9.52399 93.632 6.99637 95.4973 5.13252C97.3626 3.26867 99.891 2.22079 102.528 2.21875C105.165 2.22079 107.693 3.26867 109.559 5.13252C111.424 6.99637 112.474 9.52399 112.478 12.1609C112.474 14.7978 111.424 17.3254 109.559 19.1892C107.693 21.0531 105.165 22.101 102.528 22.103ZM102.528 2.93628C100.081 2.93831 97.7357 3.91065 96.0052 5.63998C94.2747 7.36931 93.3008 9.71443 93.2972 12.1609C93.3012 14.6071 94.2753 16.9518 96.0058 18.6808C97.7362 20.4098 100.082 21.3819 102.528 21.3839C104.974 21.3819 107.32 20.4098 109.05 18.6808C110.781 16.9518 111.755 14.6071 111.759 12.1609C111.755 9.7147 110.781 7.36996 109.05 5.64096C107.32 3.91196 104.974 2.93985 102.528 2.93782V2.93628Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M104.046 20.2045C101.955 20.2029 99.9501 19.3719 98.4711 17.894C96.992 16.4161 96.1595 14.4119 96.1562 12.321C96.1595 10.2301 96.992 8.22586 98.4711 6.74794C99.9501 5.27003 101.955 4.43913 104.046 4.4375C106.137 4.43872 108.142 5.26949 109.621 6.74749C111.1 8.22549 111.933 10.23 111.936 12.321C111.932 14.4119 111.1 16.4161 109.621 17.894C108.142 19.3719 106.137 20.2029 104.046 20.2045V20.2045ZM104.046 4.95023C102.091 4.95145 100.216 5.7282 98.8331 7.11004C97.4501 8.49189 96.6718 10.3659 96.669 12.321C96.6722 14.2758 97.4507 16.1494 98.8337 17.5309C100.217 18.9124 102.091 19.689 104.046 19.6902C106.001 19.689 107.875 18.9124 109.258 17.5309C110.641 16.1494 111.42 14.2758 111.423 12.321C111.42 10.3659 110.642 8.49189 109.259 7.11004C107.876 5.7282 106.001 4.95145 104.046 4.95023V4.95023Z",fill:dt.color}),jsxRuntimeExports.jsx("path",{d:"M105.566 18.3055C104.021 18.3043 102.54 17.6904 101.447 16.5984C100.354 15.5064 99.7388 14.0256 99.7363 12.4807C99.7384 10.9355 100.353 9.45427 101.446 8.36196C102.539 7.26965 104.021 6.65552 105.566 6.6543C107.111 6.65552 108.593 7.26965 109.685 8.36196C110.778 9.45427 111.393 10.9355 111.395 12.4807C111.393 14.0256 110.778 15.5064 109.685 16.5984C108.592 17.6904 107.111 18.3043 105.566 18.3055V18.3055ZM105.566 6.96225C104.102 6.96347 102.699 7.54515 101.664 8.57971C100.629 9.61427 100.046 11.0172 100.044 12.4807C100.047 13.9439 100.629 15.3464 101.664 16.3806C102.7 17.4149 104.103 17.9964 105.566 17.9976C107.029 17.9964 108.432 17.4149 109.467 16.3806C110.502 15.3464 111.085 13.9439 111.087 12.4807C111.085 11.0172 110.503 9.61427 109.468 8.57971C108.433 7.54515 107.029 6.96347 105.566 6.96225Z",fill:dt.color})]})}const useStyles$B=makeStyles()(dt=>({container:{display:"flex",justifyContent:"center",flexDirection:"row"},partnerLogo:{maxHeight:dt.spacing(3)},separator:{paddingLeft:dt.spacing(1),paddingRight:dt.spacing(1)}}));function PartnerLogo(dt){const{classes:ht}=useStyles$B();return jsxRuntimeExports.jsx("img",{src:dt.src,alt:"partner",className:ht.partnerLogo})}function PoweredByIcon(dt){const{classes:ht}=useStyles$B();return config$2.partnerLogo?jsxRuntimeExports.jsxs(Box$1,{className:ht.container,children:[jsxRuntimeExports.jsx(WormholeLogo,{color:dt.color}),jsxRuntimeExports.jsx(Typography$1,{component:"span",className:ht.separator,children:"&"}),jsxRuntimeExports.jsx(PartnerLogo,{src:config$2.partnerLogo})]}):jsxRuntimeExports.jsx(WormholeLogo,{color:dt.color})}const useStyles$A=makeStyles()(()=>({menuIcon:ICON,menu:{display:"flex",flexDirection:"column",gap:"8px",padding:"8px"},menuItem:{padding:"16px 0",textAlign:"left",cursor:"pointer","&:hover":{textDecoration:"underline"}}}));function Menu(){const{classes:dt}=useStyles$A(),ht=useTheme(),Dt=useDispatch(),[Cn,$n]=reactExports.useState(!1),Un=Fn=>{Dt(setRoute(Fn)),$n(!1)};return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:dt.menuIcon,onClick:()=>$n(!0),children:jsxRuntimeExports.jsx(MenuIcon,{})}),jsxRuntimeExports.jsx(Modal,{open:Cn,closable:!0,width:650,onClose:()=>$n(!1),children:jsxRuntimeExports.jsxs("div",{className:dt.menu,children:[jsxRuntimeExports.jsx(PoweredByIcon,{color:ht.palette.text.primary}),jsxRuntimeExports.jsx(Spacer,{height:8}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("bridge"),children:"Bridge"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("search"),children:"Resume transaction"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("faq"),children:"FAQs"}),jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:()=>Un("terms"),children:"Terms of Use"})]})})]})}const useStyles$z=makeStyles()((dt,{showHamburgerMenu:ht,align:Dt})=>({container:{width:"100%",display:"flex",flexDirection:"column",gap:"8px",marginBottom:ht?"40px":"0px",[dt.breakpoints.down("sm")]:{marginBottom:"20px"}},header:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%"},left:{display:"flex",flexGrow:1,alignItems:"center",textAlign:Dt},arrowBack:{transform:"rotate(90deg)",marginRight:"16px",cursor:"pointer"},description:{fontWeight:"300",fontSize:"14px",opacity:"0.6",marginBottom:ht?"0px":"40px"}}));function PageHeader({back:dt,title:ht,align:Dt="left",description:Cn,showHamburgerMenu:$n=!0,testId:Un}){const{classes:Fn}=useStyles$z({showHamburgerMenu:$n,align:Dt}),Hn=useDispatch();function Gn(){Hn(setRoute("bridge"))}return jsxRuntimeExports.jsxs("div",{className:Fn.container,children:[jsxRuntimeExports.jsxs("div",{className:Fn.header,children:[jsxRuntimeExports.jsxs("div",{className:Fn.left,children:[dt&&jsxRuntimeExports.jsx(DownIcon,{className:Fn.arrowBack,fontSize:"large",onClick:Gn}),jsxRuntimeExports.jsx(Header$1,{text:ht,align:Dt,testId:Un})]}),$n?jsxRuntimeExports.jsx(Menu,{}):null]}),Cn&&jsxRuntimeExports.jsx("div",{className:Fn.description,children:Cn})]})}const WalletIcon$1=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M21 12C21 11.4033 20.7629 10.831 20.341 10.409C19.919 9.98705 19.3467 9.75 18.75 9.75H15C15 10.5456 14.6839 11.3087 14.1213 11.8713C13.5587 12.4339 12.7956 12.75 12 12.75C11.2044 12.75 10.4413 12.4339 9.87868 11.8713C9.31607 11.3087 9 10.5456 9 9.75H5.25C4.65326 9.75 4.08097 9.98705 3.65901 10.409C3.23705 10.831 3 11.4033 3 12M21 12V18C21 18.5967 20.7629 19.169 20.341 19.591C19.919 20.0129 19.3467 20.25 18.75 20.25H5.25C4.65326 20.25 4.08097 20.0129 3.65901 19.591C3.23705 19.169 3 18.5967 3 18V12M21 12V9M3 12V9M21 9C21 8.40326 20.7629 7.83097 20.341 7.40901C19.919 6.98705 19.3467 6.75 18.75 6.75H5.25C4.65326 6.75 4.08097 6.98705 3.65901 7.40901C3.23705 7.83097 3 8.40326 3 9M21 9V6C21 5.40326 20.7629 4.83097 20.341 4.40901C19.919 3.98705 19.3467 3.75 18.75 3.75H5.25C4.65326 3.75 4.08097 3.98705 3.65901 4.40901C3.23705 4.83097 3 5.40326 3 6V9",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Wallet"),useStyles$y=makeStyles()((dt,{size:ht})=>({container:{height:ht,width:ht,...CENTER},icon:{maxHeight:"100%",maxWidth:"100%"}}));function WalletIcon(dt){const ht=dt.height||32,{classes:Dt}=useStyles$y({size:ht}),{icon:Cn,name:$n}=dt;return jsxRuntimeExports.jsx("div",{className:Dt.container,children:Cn&&jsxRuntimeExports.jsx("img",{className:Dt.icon,src:Cn,alt:$n})})}function useEvent(dt){if(typeof window>"u")return dt;const ht=reactExports.useRef(null);return reactExports.useLayoutEffect(()=>{ht.current=dt}),reactExports.useCallback((...Dt)=>{var Cn;(Cn=ht.current)===null||Cn===void 0||Cn.call(ht,...Dt)},[])}const printedWarnings={};function warn(dt,ht){printedWarnings[dt]||(printedWarnings[dt]=!0,console.error("[material-ui-popup-state] WARNING",ht))}const initCoreState={isOpen:!1,setAnchorElUsed:!1,anchorEl:void 0,anchorPosition:void 0,hovered:!1,focused:!1,_openEventType:null,_childPopupState:null,_deferNextOpen:!1,_deferNextClose:!1};function usePopupState({parentPopupState:dt,popupId:ht,variant:Dt,disableAutoFocus:Cn}){const $n=reactExports.useRef(!0);reactExports.useEffect(()=>($n.current=!0,()=>{$n.current=!1}),[]);const[Un,Fn]=reactExports.useState(initCoreState),Hn=reactExports.useCallback(or=>{$n.current&&Fn(or)},[]),Gn=reactExports.useCallback(or=>Hn(sr=>({...sr,setAnchorElUsed:!0,anchorEl:or??void 0})),[]),Qn=useEvent(or=>(Un.isOpen?Wn(or):qn(or),Un)),qn=useEvent(or=>{const sr=or instanceof Element?void 0:or,vr=or instanceof Element?or:(or==null?void 0:or.currentTarget)instanceof Element?or.currentTarget:void 0;if((sr==null?void 0:sr.type)==="touchstart"){Hn(nr=>({...nr,_deferNextOpen:!0}));return}const hr=sr==null?void 0:sr.clientX,gr=sr==null?void 0:sr.clientY,ur=typeof hr=="number"&&typeof gr=="number"?{left:hr,top:gr}:void 0,_r=nr=>{if(!or&&!nr.setAnchorElUsed&&Dt!=="dialog"&&warn("missingEventOrAnchorEl","eventOrAnchorEl should be defined if setAnchorEl is not used"),dt){if(!dt.isOpen)return nr;setTimeout(()=>dt._setChildPopupState(dr))}const Sr={...nr,isOpen:!0,anchorPosition:ur,hovered:(sr==null?void 0:sr.type)==="mouseover"||nr.hovered,focused:(sr==null?void 0:sr.type)==="focus"||nr.focused,_openEventType:sr==null?void 0:sr.type};return sr!=null&&sr.currentTarget?nr.setAnchorElUsed||(Sr.anchorEl=sr==null?void 0:sr.currentTarget):vr&&(Sr.anchorEl=vr),Sr};Hn(nr=>nr._deferNextOpen?(setTimeout(()=>Hn(_r),0),{...nr,_deferNextOpen:!1}):_r(nr))}),er=or=>{const{_childPopupState:sr}=or;return setTimeout(()=>{sr==null||sr.close(),dt==null||dt._setChildPopupState(null)}),{...or,isOpen:!1,hovered:!1,focused:!1}},Wn=useEvent(or=>{const sr=or instanceof Element?void 0:or;if((sr==null?void 0:sr.type)==="touchstart"){Hn(vr=>({...vr,_deferNextClose:!0}));return}Hn(vr=>vr._deferNextClose?(setTimeout(()=>Hn(er),0),{...vr,_deferNextClose:!1}):er(vr))}),jn=reactExports.useCallback((or,sr)=>{or?qn(sr):Wn(sr)},[]),Zn=useEvent(or=>{const{relatedTarget:sr}=or;Hn(vr=>vr.hovered&&!(sr instanceof Element&&isElementInPopup(sr,dr))?vr.focused?{...vr,hovered:!1}:er(vr):vr)}),Xn=useEvent(or=>{if(!or)return;const{relatedTarget:sr}=or;Hn(vr=>vr.focused&&!(sr instanceof Element&&isElementInPopup(sr,dr))?vr.hovered?{...vr,focused:!1}:er(vr):vr)}),ar=reactExports.useCallback(or=>Hn(sr=>({...sr,_childPopupState:or})),[]),dr={...Un,setAnchorEl:Gn,popupId:ht,variant:Dt,open:qn,close:Wn,toggle:Qn,setOpen:jn,onBlur:Xn,onMouseLeave:Zn,disableAutoFocus:Cn??!!(Un.hovered||Un.focused),_setChildPopupState:ar};return dr}function controlAriaProps({isOpen:dt,popupId:ht,variant:Dt}){return{...Dt==="popover"?{"aria-haspopup":!0,"aria-controls":dt&&ht!=null?ht:void 0}:Dt==="popper"?{"aria-describedby":dt&&ht!=null?ht:void 0}:void 0}}function bindTrigger(dt){return{...controlAriaProps(dt),onClick:dt.open,onTouchStart:dt.open}}function bindPopover({isOpen:dt,anchorEl:ht,anchorPosition:Dt,close:Cn,popupId:$n,onMouseLeave:Un,disableAutoFocus:Fn,_openEventType:Hn}){return{id:$n,anchorEl:ht,anchorPosition:Dt,anchorReference:Hn==="contextmenu"?"anchorPosition":"anchorEl",open:dt,onClose:Cn,onMouseLeave:Un,...Fn&&{disableAutoFocus:!0,disableEnforceFocus:!0,disableRestoreFocus:!0}}}function getPopup(dt,{popupId:ht}){if(!ht)return null;const Dt=typeof dt.getRootNode=="function"?dt.getRootNode():document;return typeof Dt.getElementById=="function"?Dt.getElementById(ht):null}function isElementInPopup(dt,ht){const{anchorEl:Dt,_childPopupState:Cn}=ht;return isAncestor(Dt,dt)||isAncestor(getPopup(dt,ht),dt)||Cn!=null&&isElementInPopup(dt,Cn)}function isAncestor(dt,ht){if(!dt)return!1;for(;ht;){if(ht===dt)return!0;ht=ht.parentElement}return!1}function PopupState({children:dt,popupId:ht,variant:Dt,parentPopupState:Cn,disableAutoFocus:$n}){const Un=usePopupState({popupId:ht,variant:Dt,parentPopupState:Cn,disableAutoFocus:$n}),Fn=dt(Un);return Fn??null}PopupState.propTypes={children:PropTypes.func.isRequired,popupId:PropTypes.string,variant:PropTypes.oneOf(["popover","popper"]).isRequired,parentPopupState:PropTypes.object,disableAutoFocus:PropTypes.bool};const useStyles$x=makeStyles()((dt,{disabled:ht})=>({connectWallet:{display:"flex",alignItems:"center",justifyContent:"end",gap:"8px",padding:"8px 16px",borderRadius:"8px",backgroundColor:dt.palette.button.primary,cursor:ht?"not-allowed":"pointer",opacity:ht?.7:1},walletIcon:{width:"24px",height:"24px"},down:{marginRight:"-8px"},dropdown:{backgroundColor:dt.palette.popover.background,display:"flex",flexDirection:"column",gap:"8px",padding:"8px",width:"175px"},dropdownItem:{borderRadius:"8px",padding:"16px",cursor:"pointer","&:hover":{backgroundColor:dt.palette.popover.secondary}}}));function ExplorerLink$1({address:dt,href:ht,target:Dt="_blank",label:Cn="Transactions"}){const{classes:$n}=useStyles$x({disabled:!1}),Un=()=>window.open(ht.replace("{:address}",dt),Dt);return jsxRuntimeExports.jsx("div",{className:$n.dropdownItem,onClick:Un,children:Cn})}function ConnectWallet(dt){const{disabled:ht=!1,type:Dt}=dt,{classes:Cn}=useStyles$x({disabled:ht}),$n=useTheme(),Un=useDispatch(),Fn=useMediaQuery($n.breakpoints.down("sm")),Hn=useSelector(er=>er.wallet[Dt]),Gn=async er=>{ht||(er&&er.close(),Un(setWalletModal(Dt)))},Qn=async er=>{await copyTextToClipboard(Hn.address),er.close()},qn=async()=>{Un(disconnectWallet(Dt))};if(Hn&&Hn.address)return jsxRuntimeExports.jsx(PopupState,{variant:"popover",popupId:"demo-popup-popover",children:er=>{const{onClick:Wn,...jn}=bindTrigger(er),Zn=Xn=>{ht||Wn(Xn)};return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:Cn.connectWallet,onClick:Zn,...jn,children:[jsxRuntimeExports.jsx(WalletIcon,{name:Hn.name,icon:Hn.icon,height:24}),displayWalletAddress(Hn.type,Hn.address),!ht&&jsxRuntimeExports.jsx(DownIcon,{className:Cn.down})]}),jsxRuntimeExports.jsx(Popover$1,{...bindPopover(er),sx:{marginTop:1},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:Cn.dropdown,children:[jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:()=>Qn(er),children:"Copy address"}),config$2.explorer?jsxRuntimeExports.jsx(ExplorerLink$1,{address:Hn.address,href:config$2.explorer.href,target:config$2.explorer.target,label:config$2.explorer.label}):null,jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:()=>Gn(er),children:"Change wallet"}),jsxRuntimeExports.jsx("div",{className:Cn.dropdownItem,onClick:qn,children:"Disconnect"})]})})})]})}});{const er=jsxRuntimeExports.jsxs("div",{className:Cn.connectWallet,onClick:()=>Gn(),"data-testid":`${dt.side}-section-connect-wallet-button`,children:[jsxRuntimeExports.jsx(WalletIcon$1,{}),jsxRuntimeExports.jsx("div",{children:Fn?"Connect":"Connect wallet"})]});return ht?jsxRuntimeExports.jsx(Tooltip$1,{title:"Please select a network first",children:er}):er}}const useStyles$w=makeStyles()(dt=>({chainTile:{backgroundColor:dt.palette.card.secondary,borderRadius:"8px",padding:dt.spacing(1.5),display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",cursor:"pointer",textAlign:"center",gap:dt.spacing(1.5)},chainIcon:{width:"56px",height:"56px"},chainHeader:{fontSize:"16px",opacity:"60%"},chainName:{fontSize:"16px"},error:ERROR_BORDER(dt)}));function ChainTile(dt){var $n,Un;const{disabled:ht=!1}=dt,{classes:Dt}=useStyles$w(),Cn=Fn=>{ht||dt.onClick(Fn)};return jsxRuntimeExports.jsxs("div",{className:joinClass([Dt.chainTile,!!dt.error&&Dt.error]),onClick:Cn,children:[dt.chain?jsxRuntimeExports.jsx("div",{className:Dt.chainHeader,children:"Network"}):null,jsxRuntimeExports.jsx(TokenIcon,{icon:($n=dt.chain)==null?void 0:$n.icon,height:56}),jsxRuntimeExports.jsx("div",{className:Dt.chainName,children:((Un=dt.chain)==null?void 0:Un.displayName)||"Select network"})]})}function ValidationError(dt){const ht=useSelector(Fn=>Fn.transferInput.showValidationState),Dt=dt.validations.filter(Fn=>!!Fn),Cn=Dt.length>0,$n=Dt[0],Un=(dt.forceShow||ht)&&Cn;return jsxRuntimeExports.jsx(AlertBanner,{show:Un,content:$n,error:!0,margin:dt.margin})}const useStyles$v=makeStyles()((dt,{cursorStyle:ht})=>({inputField:{display:"flex",flexDirection:"column",justifyContent:"space-between",borderRadius:"8px",width:"100%",padding:"12px",cursor:"default"},editable:{backgroundColor:dt.palette.card.secondary},enabled:{cursor:ht||"pointer"},label:{fontSize:"14px",color:dt.palette.text.secondary,marginBottom:"4px"},content:{overflow:"hidden"},error:ERROR_BORDER(dt)}));function Input(dt){const{classes:ht}=useStyles$v({cursorStyle:dt.cursor}),Dt=[ht.inputField,!!dt.error&&ht.error,!!dt.editable&&ht.editable,!dt.disabled&&ht.enabled];return jsxRuntimeExports.jsxs("div",{className:joinClass(Dt),onClick:dt.onClick,children:[jsxRuntimeExports.jsx("div",{className:ht.label,children:dt.label}),jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})]})}const useStyles$u=makeStyles()(dt=>({select:{display:"flex",alignItems:"center",gap:"8px"},secondaryText:{opacity:"0.6",fontSize:"13px",[dt.breakpoints.down("sm")]:{display:"none"}}}));function Select(dt){const{classes:ht}=useStyles$u(),{selected:Dt}=dt,Cn=()=>{dt.editable&&!dt.disabled&&dt.onClick()};return jsxRuntimeExports.jsx(Input,{label:dt.label,error:dt.error,editable:dt.editable,disabled:dt.disabled,onClick:Cn,children:Dt?jsxRuntimeExports.jsxs("div",{className:ht.select,"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Dt.icon,height:24}),Dt.text,Dt.secondaryText&&jsxRuntimeExports.jsx("div",{className:ht.secondaryText,children:Dt.secondaryText})]}):dt.disabled?NO_INPUT:jsxRuntimeExports.jsxs("div",{className:ht.select,"data-testid":dt.testId,children:[jsxRuntimeExports.jsx(TokenIcon,{height:24}),"Select"]})})}const useStyles$t=makeStyles()(dt=>({outerContainer:{display:"flex",flexDirection:"column"},container:{width:"100%",display:"flex",flexDirection:"column",gap:dt.spacing(1.5)},errorContainer:{width:"100%"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:dt.spacing(0,1.5),[dt.breakpoints.down("sm")]:{padding:"0"}},headerTitle:{fontSize:"16px",fontWeight:"bold"},content:{display:"grid",gridTemplateColumns:"158px 1fr",gridTemplateRows:"1fr",gridTemplateAreas:'"chain inputs"',width:"100%",maxWidth:"100%",[dt.breakpoints.down("sm")]:{gridTemplateColumns:"1fr !important",gridTemplateAreas:'"inputs" !important'}},chain:{gridArea:"chain"},inputs:{gridArea:"inputs",display:"flex",flexDirection:"column",gap:dt.spacing(1.5),width:"100%",paddingLeft:dt.spacing(1.5),[dt.breakpoints.down("sm")]:{paddingLeft:"0"}},chainRow:{display:"flex",flexDirection:"row",gap:dt.spacing(1.5)},chainSmall:{display:"block",width:"40%"},token:{width:"100%",[dt.breakpoints.down("sm")]:{width:"60%"}},amtRow:{display:"grid",gridTemplateColumns:"1fr 120px",gridTemplateRows:"1fr",gridTemplateAreas:'"amount balance"',maxWidth:"100%"},amount:{gridArea:"amount",overflow:"hidden"},balance:{gridArea:"balance",backgroundColor:"transparent"}}));function Inputs(dt){const{classes:ht}=useStyles$t(),{showValidationState:Dt,isTransactionInProgress:Cn}=useSelector(er=>er.transferInput),$n=dt.chain&&config$2.chains[dt.chain],Un=$n?{icon:$n.icon,text:$n.displayName}:void 0,Fn=useTheme(),Hn=useMediaQuery(Fn.breakpoints.down("sm")),Gn=reactExports.useMemo(()=>dt.balance&&dt.tokenPrice?getUSDFormat(Number.parseFloat(`${dt.balance}`)*dt.tokenPrice):"",[dt.tokenPrice,dt.balance]),Qn={source:"From",destination:"To"}[dt.side],qn=dt.side+"-section-select-network-button";return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:ht.errorContainer,children:[jsxRuntimeExports.jsxs("div",{className:ht.header,children:[jsxRuntimeExports.jsx("div",{className:ht.headerTitle,children:Qn}),jsxRuntimeExports.jsx(ConnectWallet,{side:dt.side,type:dt.wallet,disabled:Cn||!Un})]}),dt.walletError?jsxRuntimeExports.jsx(AlertBanner,{show:!!dt.walletError,content:dt.walletError,error:!0,margin:"12px 0 0 0"}):jsxRuntimeExports.jsx(ValidationError,{validations:dt.walletValidations,margin:"12px 0 0 0"})]}),jsxRuntimeExports.jsx(InputContainer,{children:jsxRuntimeExports.jsxs("div",{className:ht.outerContainer,children:[jsxRuntimeExports.jsxs("div",{className:ht.content,children:[!Hn&&jsxRuntimeExports.jsx("div",{className:ht.chain,"data-testid":qn,children:jsxRuntimeExports.jsx(ChainTile,{chain:$n,error:!!(Dt&&dt.chainValidation),onClick:dt.onChainClick,disabled:Cn})}),jsxRuntimeExports.jsxs("div",{className:ht.inputs,children:[jsxRuntimeExports.jsxs("div",{className:ht.chainRow,children:[Hn&&jsxRuntimeExports.jsx("div",{className:ht.chainSmall,children:jsxRuntimeExports.jsx(Select,{label:"Network",selected:Un,error:!!(Dt&&dt.chainValidation),onClick:dt.onChainClick,editable:!0,disabled:Cn})}),jsxRuntimeExports.jsx("div",{className:ht.token,children:dt.tokenInput})]}),jsxRuntimeExports.jsxs("div",{className:ht.amtRow,children:[jsxRuntimeExports.jsx("div",{className:ht.amount,children:dt.amountInput}),jsxRuntimeExports.jsx("div",{className:ht.balance,"data-testid":`${dt.side}-section-balance-text`,children:jsxRuntimeExports.jsx(Input,{label:"Balance",disabled:!0,children:jsxRuntimeExports.jsx("div",{children:dt.balance?jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{children:dt.balance}),jsxRuntimeExports.jsx(Price,{children:Gn})]}):NO_INPUT})})})]})]})]}),jsxRuntimeExports.jsx(ValidationError,{validations:dt.inputValidations,margin:"12px 0 0 0"}),dt.warning&&dt.warning]})})]})}const useStyles$s=makeStyles()((dt,{align:ht})=>({input:{width:"100%",border:"none",backgroundImage:"none",backgroundColor:"transparent",background:"transparent",fontSize:"inherit",boxShadow:"none",webkitBoxShadow:"none",moxBoxShadow:"none",outline:"none",flexGrow:"1",textAlign:ht||"left"}})),NUMBER_FORMAT_REGEX=/^\d*\.?\d*$/,NUMBER_REPLACE_REGEX=/[^0-9.]/g;function InputTransparent(dt){const{classes:ht}=useStyles$s({align:dt.align}),Dt=$n=>{dt.type==="number"&&!NUMBER_FORMAT_REGEX.test($n.target.value)&&($n.target.value=$n.target.value.replace(NUMBER_REPLACE_REGEX,"")),dt.onChange&&dt.onChange($n)},Cn=$n=>{$n.key==="Enter"&&dt.onEnter&&dt.onEnter($n)};return jsxRuntimeExports.jsx("input",{ref:dt.inputRef,id:dt.id,className:ht.input,placeholder:dt.placeholder,min:dt.min,max:dt.max,step:dt.step,onChange:Dt,onKeyDown:Cn,readOnly:dt.disabled,value:dt.value,"data-testid":dt.testId})}function AmountInput(dt){const ht=reactExports.useRef(null),{showValidationState:Dt,validations:Cn,token:$n,isTransactionInProgress:Un}=useSelector(er=>er.transferInput),{usdPrices:{data:Fn}}=useSelector(er=>er.tokenPrices),Hn=Fn||{};function Gn(er){let Wn=er.target.value;const jn=Wn.indexOf(".");jn>0&&Wn.length-jn-8>0&&(Wn=toFixedDecimals(Wn,8)),dt.handleAmountChange(Wn)}const Qn=()=>{ht.current&&ht.current.focus()},qn=reactExports.useMemo(()=>{const er=getTokenPrice(Hn,config$2.tokens[$n])||0;if(er)return getUSDFormat(Number(dt.value)*er)},[dt.value,$n,Hn]);return jsxRuntimeExports.jsx(Input,{label:dt.label??"Amount",error:!!(Dt&&Cn.amount),editable:!0,disabled:!0,onClick:Qn,cursor:"text",children:$n?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(InputTransparent,{inputRef:ht,placeholder:"0.00",type:"number",min:0,step:.1,onChange:Gn,disabled:Un||dt.disabled,value:dt.value,testId:dt.side+"-section-amount-input"}),qn&&jsxRuntimeExports.jsx(Price,{children:qn})]}):jsxRuntimeExports.jsx("div",{children:NO_INPUT})})}var OpenInNew={},createSvgIcon={};const require$$0=getAugmentedNamespace(utils);var hasRequiredCreateSvgIcon;function requireCreateSvgIcon(){return hasRequiredCreateSvgIcon||(hasRequiredCreateSvgIcon=1,function(dt){"use client";Object.defineProperty(dt,"__esModule",{value:!0}),Object.defineProperty(dt,"default",{enumerable:!0,get:function(){return ht.createSvgIcon}});var ht=require$$0}(createSvgIcon)),createSvgIcon}var _interopRequireDefault$3=interopRequireDefaultExports;Object.defineProperty(OpenInNew,"__esModule",{value:!0});var default_1$3=OpenInNew.default=void 0,_createSvgIcon$3=_interopRequireDefault$3(requireCreateSvgIcon()),_jsxRuntime$3=jsxRuntimeExports,_default$3=(0,_createSvgIcon$3.default)((0,_jsxRuntime$3.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"OpenInNew");default_1$3=OpenInNew.default=_default$3;const WORMSCAN="https://wormholescan.io/#/",AVAILABLE_MARKETS_URL="https://portalbridge.com/docs/faqs/liquid-markets/",useStyles$r=makeStyles()((dt,{blendColor:ht})=>({anchor:{position:"relative",width:"100%"},scrollContainer:{width:"100%",height:"calc(100% - 48px)",overflowY:"scroll",overflowX:"hidden",padding:0},fadeOverlay:{position:"absolute",left:"0",right:"0",bottom:"0",height:"40px",zIndex:"5",backgroundImage:`linear-gradient(${ht+OPACITY[0]} 0%, ${ht+OPACITY[100]} 100%)`,pointerEvents:"none"},fadeOverlayTop:{position:"absolute",left:"0",right:"0",top:"0",height:"8px",zIndex:"5",backgroundImage:`linear-gradient(${ht+OPACITY[100]} 0%, ${ht+OPACITY[0]} 100%)`,pointerEvents:"none"},content:{padding:"8px 0 16px 0"}}));function Scroll(dt){const{classes:ht}=useStyles$r({blendColor:dt.blendColor});return jsxRuntimeExports.jsx("div",{className:ht.anchor,children:jsxRuntimeExports.jsxs("div",{className:ht.scrollContainer,style:{maxHeight:dt.height},children:[jsxRuntimeExports.jsx("div",{className:ht.fadeOverlayTop}),jsxRuntimeExports.jsx("div",{className:ht.fadeOverlay}),jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})]})})}const SearchIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M21.0008 21.0008L15.8038 15.8038M15.8038 15.8038C17.2104 14.3972 18.0006 12.4895 18.0006 10.5003C18.0006 8.51108 17.2104 6.60336 15.8038 5.19678C14.3972 3.79021 12.4895 3 10.5003 3C8.51108 3 6.60336 3.79021 5.19678 5.19678C3.79021 6.60336 3 8.51108 3 10.5003C3 12.4895 3.79021 14.3972 5.19678 15.8038C6.60336 17.2104 8.51108 18.0006 10.5003 18.0006C12.4895 18.0006 14.3972 17.2104 15.8038 15.8038V15.8038Z",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),"Search"),useStyles$q=makeStyles()(dt=>({searchContent:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between"},container:{width:"100%",padding:"16px",borderRadius:"8px",backgroundColor:dt.palette.card.secondary},input:{flexGrow:1},searchBorder:{border:`1px solid ${changeOpacity(dt.palette.divider,50)}`,borderRadius:"8px"},clickable:{cursor:"pointer"}}));function Search(dt){const{classes:ht}=useStyles$q(),Dt=reactExports.useRef(null),Cn=()=>{Dt.current&&Dt.current.focus()};return reactExports.useEffect(()=>{Cn()},[]),jsxRuntimeExports.jsx("div",{className:ht.searchBorder,children:jsxRuntimeExports.jsx("div",{className:ht.container,onClick:Cn,children:jsxRuntimeExports.jsxs("div",{className:ht.searchContent,children:[jsxRuntimeExports.jsx("div",{className:ht.input,children:jsxRuntimeExports.jsx(InputTransparent,{value:dt.value,inputRef:Dt,placeholder:dt.placeholder,onChange:dt.onChange,onEnter:dt.onSearch})}),jsxRuntimeExports.jsx("div",{onClick:dt.onSearch,className:dt.onSearch&&ht.clickable,children:jsxRuntimeExports.jsx(SearchIcon,{})})]})})})}const useStyles$p=makeStyles()(dt=>({tabs:{display:"flex",flexDirection:"row",justifyContext:"space-between"},tab:{flexGrow:1}}));function CustomTabPanel(dt){const{children:ht,value:Dt,index:Cn,...$n}=dt;return jsxRuntimeExports.jsx("div",{role:"tabpanel",hidden:Dt!==Cn,id:`simple-tabpanel-${Cn}`,"aria-labelledby":`simple-tab-${Cn}`,...$n,children:Dt===Cn&&jsxRuntimeExports.jsx(Box$1,{sx:{py:3},children:ht})})}function a11yProps(dt){return{id:`simple-tab-${dt}`,"aria-controls":`simple-tabpanel-${dt}`}}function BasicTabs(dt){const{tabs:ht}=dt,{classes:Dt}=useStyles$p(),Cn=useTheme(),[$n,Un]=reactExports.useState(0),Fn=(Hn,Gn)=>{Un(Gn)};return jsxRuntimeExports.jsxs(Box$1,{sx:{width:"100%"},children:[jsxRuntimeExports.jsx(Box$1,{sx:{borderBottom:1,borderColor:`${Cn.palette.divider}`},children:jsxRuntimeExports.jsx(Tabs$1,{value:$n,onChange:Fn,className:Dt.tabs,children:ht.map((Hn,Gn)=>reactExports.createElement(Tab$1,{label:Hn.label,...a11yProps(Gn),className:Dt.tab,key:`tab${Gn}`}))})}),ht.map((Hn,Gn)=>jsxRuntimeExports.jsx(CustomTabPanel,{value:$n,index:Gn,children:Hn.panel},`panel${Gn}`))]})}const useGetTokenBalances=(dt,ht,Dt)=>{const[Cn,$n]=reactExports.useState(!1),[Un,Fn]=reactExports.useState({}),Hn=useSelector(Qn=>Qn.transferInput.balances),Gn=useDispatch();return reactExports.useEffect(()=>{if($n(!0),Fn({}),!dt||!ht||!config$2.chains[ht]||Dt.length===0){$n(!1);return}const Qn=config$2.chains[ht];if(!Qn){$n(!1);return}let qn=!0;return(async()=>{const Wn={},jn=[],Zn=Date.now(),Xn=Zn-5*60*1e3;let ar=!1;for(const dr of Dt){const or=accessBalance(Hn,dt,ht,dr.key);if(or&&or.lastUpdated>Xn)Wn[dr.key]=or;else if(dr.key===Qn.gasToken)try{const sr=await config$2.wh.getNativeBalance(dt,ht,dr.key);Wn[dr.key]={balance:formatBalance(ht,dr,sr),lastUpdated:Zn},ar=!0}catch(sr){console.error("Failed to get native balance",sr)}else dr.tokenId&&jn.push(dr)}if(jn.length>0)try{(await config$2.wh.getTokenBalances(dt,jn.map(or=>or.tokenId),ht)).forEach((or,sr)=>{const vr=jn[sr];Wn[vr.key]={balance:formatBalance(ht,vr,or),lastUpdated:Zn}}),ar=!0}catch(dr){console.error("Failed to get token balances",dr)}qn&&($n(!1),Fn(Wn),ar&&Gn(updateBalances({address:dt,chain:ht,balances:Wn})))})(),()=>{qn=!1}},[Hn,dt,ht,Dt]),{isFetching:Cn,balances:Un}},useStyles$o=makeStyles()(dt=>({tokensContainer:{display:"flex",flexDirection:"column"},noResults:{...CENTER,minHeight:"72px"},tokenRow:{position:"relative",display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"16px 8px",transition:"background-color 0.4s",cursor:"pointer","&:hover":{backgroundColor:dt.palette.options.select},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},moreTokensRow:{textDecoration:"none",color:"inherit"},tokenRowLeft:{display:"flex",alignItems:"center",fontSize:"14px",gap:"8px",textAlign:"left"},tokenRowRight:{display:"flex",flexDirection:"column",alignItems:"right",textAlign:"right"},tokenRowBalanceText:{opacity:"60%",fontSize:"12px"},tokenRowBalance:{fontSize:"14px"},tokenRowAddressContainer:{width:"100%",position:"absolute",fontSize:"14px",display:"flex",justifyContent:"center",alignItems:"center"},tokenRowAddress:{width:"100px",textAlign:"left",opacity:"60%"},nativeChain:{opacity:"60%"},loading:{display:"flex",justifyContent:"center",alignItems:"center",height:"72px"},moreTokens:{textTransform:"none",marginTop:"66px",minHeight:"64px",minWidth:"193px",backgroundColor:dt.palette.button.primary},iconButton:{width:"32px",height:"32px",color:dt.palette.modal.background,backgroundColor:dt.palette.button.primaryText,"&:hover":{backgroundColor:dt.palette.button.primaryText},borderRadius:"100%"},iconOpenInNew:{width:"19px",height:"19px"},moreTokensLabel:{marginRight:"16px"},noWrap:{whiteSpace:"nowrap"}})),displayNativeChain=dt=>{const ht=config$2.chains[dt.nativeChain];return ht?ht.displayName:""};function DisplayTokens(dt){const{classes:ht}=useStyles$o(),Dt=useTheme(),{tokens:Cn,balances:$n,walletAddress:Un,chain:Fn,selectToken:Hn,loading:Gn,search:Qn,moreTokens:qn=()=>{}}=dt,er=jn=>{var Zn;return!Fn||!Un?!1:((Zn=$n[jn])==null?void 0:Zn.balance)!==null},Wn=reactExports.useMemo(()=>sortTokens(Cn,Fn),[Cn,Fn]);return jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 375px)",blendColor:Dt.palette.modal.background,children:jsxRuntimeExports.jsx("div",{className:ht.tokensContainer,children:Wn.length>0?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Wn.map(jn=>{var Zn;return jsxRuntimeExports.jsxs("div",{className:ht.tokenRow,onClick:()=>Hn(jn.key),children:[jsxRuntimeExports.jsxs("div",{className:ht.tokenRowLeft,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:jn.icon,height:32}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{children:jn.symbol}),jsxRuntimeExports.jsx("div",{className:ht.nativeChain,children:displayNativeChain(jn)})]})]}),jsxRuntimeExports.jsxs("div",{className:ht.tokenRowRight,children:[jsxRuntimeExports.jsx("div",{className:ht.tokenRowBalanceText,children:"Balance"}),jsxRuntimeExports.jsx("div",{className:ht.tokenRowBalance,children:(Zn=$n[jn.key])!=null&&Zn.balance&&Un?jsxRuntimeExports.jsx("div",{children:$n[jn.key].balance}):er(jn.key)?jsxRuntimeExports.jsx(CircularProgress$1,{size:14}):jsxRuntimeExports.jsx("div",{children:NO_INPUT})})]}),jsxRuntimeExports.jsx("div",{className:ht.tokenRowAddressContainer,children:jsxRuntimeExports.jsxs("div",{className:ht.tokenRowAddress,children:[jsxRuntimeExports.jsx("div",{className:ht.noWrap,children:jn.nativeChain===Fn?"Native":"Wormhole Wrapped"}),jn.tokenId&&jsxRuntimeExports.jsx("div",{children:displayAddress(jn.tokenId.chain,jn.tokenId.address)})]})})]},jn.key)}),config$2.moreTokens?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs(Button$2,{disableRipple:!0,className:ht.moreTokens,onClick:()=>config$2.moreTokens&&qn(config$2.moreTokens.href,config$2.moreTokens.target),children:[jsxRuntimeExports.jsx("span",{className:ht.moreTokensLabel,children:config$2.moreTokens.label}),jsxRuntimeExports.jsx(IconButton$1,{className:ht.iconButton,children:jsxRuntimeExports.jsx(default_1$3,{className:ht.iconOpenInNew})})]})})}):null]}):Gn?jsxRuntimeExports.jsx("div",{className:ht.loading,children:jsxRuntimeExports.jsx(CircularProgress$1,{size:24})}):jsxRuntimeExports.jsx("div",{className:ht.noResults,children:Qn?"No results":"No balances detected"})})})}function isGatewayNativeToken(dt){return dt.tokenId&&isGatewayChain(dt.tokenId.chain)}function TokensModal(dt){const ht=useTheme(),{open:Dt,chain:Cn,walletAddress:$n,type:Un}=dt,Fn=useMediaQuery(ht.breakpoints.down("sm")),[Hn,Gn]=reactExports.useState([]),[Qn,qn]=reactExports.useState(""),{supportedSourceTokens:er,supportedDestTokens:Wn,allSupportedDestTokens:jn,fromChain:Zn,toChain:Xn}=useSelector(Ar=>Ar.transferInput),ar=reactExports.useMemo(()=>jn.filter(Ar=>!isGatewayNativeToken(Ar)),[jn]),dr=reactExports.useMemo(()=>(Un==="source"?er:Wn).filter(tr=>!isGatewayNativeToken(tr)),[Un,er,Wn]),or=Un==="dest"?ar:dr,{isFetching:sr,balances:vr}=useGetTokenBalances($n||"",Cn,or),hr=Ar=>{if(Ar){const tr=Ar.target.value.toLowerCase();qn(tr)}else qn("")},gr=(Ar,tr="_self")=>{let Yn=Ar;Zn&&(Yn=Yn.replace("{:sourceChain}",Zn)),Xn&&(Yn=Yn.replace("{:targetChain}",Xn)),window.open(Yn.replace("&targetChain={:targetChain}",""),tr)},ur=reactExports.useMemo(()=>Qn?Hn.filter(Ar=>Ar.symbol.toLowerCase().includes(Qn)||Ar.tokenId&&Ar.tokenId.address.toLowerCase().includes(Qn)):Hn,[Hn,Qn]),_r=()=>{setTimeout(()=>qn(""),500),dt.onClose()},nr=Ar=>{dt.onSelect(Ar),_r()};reactExports.useEffect(()=>{const Ar=dr.filter(tr=>{if(!tr.tokenId&&tr.nativeChain!==Cn)return!1;const Yn=Cn&&CCTPManual_CHAINS.includes(Cn);if(tr.symbol==="USDC"&&tr.nativeChain!==Cn&&Yn)return!1;if(tr.symbol==="tBTC"&&Cn){if(isTBTCCanonicalChain(Cn)){if(tr.nativeChain!==Cn)return!1}else if(config$2.wh.toChainId(tr.nativeChain)!==CHAIN_ID_ETH$1)return!1}if(Un==="dest"||!vr[tr.key])return!0;const{balance:fr}=vr[tr.key];return fr!==null&&fr!=="0"});Gn(Ar)},[vr,Cn,dr,Un]);const Sr=[{label:"Available Tokens",panel:jsxRuntimeExports.jsx(DisplayTokens,{tokens:ur,balances:vr,walletAddress:$n,chain:Cn,selectToken:nr,moreTokens:gr,loading:sr,search:Qn})},{label:"All Tokens",panel:jsxRuntimeExports.jsx(DisplayTokens,{tokens:Un==="dest"?ar:dr,balances:vr,walletAddress:$n,chain:Cn,selectToken:nr,moreTokens:gr,loading:sr,search:Qn})}];return jsxRuntimeExports.jsxs(Modal,{open:Dt,closable:!0,width:500,onClose:_r,children:[jsxRuntimeExports.jsx(Header$1,{text:"Select asset",size:28}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsxs(Alert$1,{variant:"outlined",severity:"info",children:["You should always check for markets and liquidity before sending tokens."," ",jsxRuntimeExports.jsx(Link$1,{href:AVAILABLE_MARKETS_URL,target:"_blank",rel:"noopener noreferrer",children:"Click here to see available markets for wrapped tokens."})]}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Search,{placeholder:Fn?"Token symbol or address":"Search by name or contract address",onChange:hr}),jsxRuntimeExports.jsx(BasicTabs,{tabs:Sr})]})}const useStyles$n=makeStyles()((dt,{size:ht})=>({container:{position:"relative",height:ht,width:ht,...CENTER},icon:{maxHeight:"100%",maxWidth:"100%"},subIcon:{position:"absolute",bottom:`calc(${ht}px - ${dt.spacing(1)})`,left:`calc(${ht}px - ${dt.spacing(1)})`,width:dt.spacing(2),height:dt.spacing(2)},tooltip:{maxWidth:"270px",maxHeight:"104px",borderRadius:"4px",padding:"16px",gap:"10px",backgroundColor:dt.palette.card.background}}));function MoreNetworkIcon({height:dt,alt:ht,icon:Dt,showOpenInNewIcon:Cn=!0,description:$n}){const Un=dt||32,{classes:Fn}=useStyles$n({size:Un});return jsxRuntimeExports.jsxs("div",{className:Fn.container,children:[jsxRuntimeExports.jsx("img",{style:{maxHeight:"100%",maxWidth:"100%"},alt:ht,src:Dt}),Cn&&($n?jsxRuntimeExports.jsx(Tooltip$1,{arrow:!0,placement:"top-end",title:$n,classes:{tooltip:Fn.tooltip,tooltipArrow:Fn.tooltip},children:jsxRuntimeExports.jsx(default_1$3,{className:Fn.subIcon})}):jsxRuntimeExports.jsx(default_1$3,{className:Fn.subIcon}))]})}const useStyles$m=makeStyles()(dt=>({chainsContainer:{display:"grid",gridTemplateColumns:"repeat(auto-fill, 150px)",justifyContent:"space-between"},noResults:{...CENTER,minHeight:"130px"},chainTile:{width:"117px",display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center",margin:"12px 4px",padding:"16px",transition:"background-color 0.4s",cursor:"pointer",borderRadius:"8px","&:hover":{backgroundColor:dt.palette.options.select}},extraChainTile:{textDecoration:"none",color:"inherit"},chainIcon:{width:"48px",height:"48px"},chainText:{fontSize:"14px",marginTop:"16px"},disabled:{opacity:"40%",cursor:"not-allowed",clickEvent:"none"},subtitle:{opacity:"60%"}}));function ChainsModal(dt){var Wn;const{classes:ht}=useStyles$m(),Dt=useTheme(),Cn=dt.chains||config$2.chainsArr,[$n,Un]=reactExports.useState(),Fn=(jn,Zn,Xn)=>{var ar,dr;jn?(ar=dt.onMoreNetworkSelect)==null||ar.call(dt,jn,Zn,Xn):(dr=dt.onMoreNetworkSelect)==null||dr.call(dt,config$2.moreNetworks.href,Zn,Xn)},Hn=reactExports.useMemo(()=>{const jn=RouteOperator.allSupportedChains();return Cn.filter(Zn=>jn.includes(Zn.key))},[Cn]),Gn=jn=>{Un(jn==null?void 0:jn.target.value.toLowerCase())},Qn=jn=>jn==="wormchain"?!1:$n?config$2.chains[jn].displayName.toLowerCase().includes($n):!0,qn=()=>{setTimeout(()=>Un(void 0),500),dt.onClose()},er=jn=>{dt.onSelect(jn),qn()};return jsxRuntimeExports.jsxs(Modal,{open:dt.open,closable:!0,width:config$2.chainsArr.length>6?650:500,onClose:qn,children:[jsxRuntimeExports.jsx(Header$1,{text:dt.title,size:28}),jsxRuntimeExports.jsx("div",{className:ht.subtitle,children:"Select Network"}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Search,{placeholder:"Search networks",onChange:Gn}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 300px)",blendColor:Dt.palette.modal.background,children:Hn.length>0?jsxRuntimeExports.jsxs("div",{className:ht.chainsContainer,children:[Hn.map((jn,Zn)=>{const Xn=dt.isDisabled?dt.isDisabled(jn.key):!1;return Qn(jn.key)&&jsxRuntimeExports.jsxs("div",{className:joinClass([ht.chainTile,!!Xn&&ht.disabled]),onClick:()=>er(jn.key),children:[jsxRuntimeExports.jsx(TokenIcon,{icon:jn.icon,height:48}),jsxRuntimeExports.jsx("div",{className:ht.chainText,children:jn.displayName})]},Zn)}),(Wn=config$2.moreNetworks)==null?void 0:Wn.networks.map((jn,Zn)=>{var Xn;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.chainTile,ht.extraChainTile]),onClick:()=>{var ar;return Fn(jn.href||config$2.moreNetworks.href,jn.name||jn.label.toLocaleLowerCase().split(" ").join("_"),jn.target||((ar=config$2.moreNetworks)==null?void 0:ar.target))},children:[jsxRuntimeExports.jsx(MoreNetworkIcon,{icon:jn.icon,alt:jn.label,height:48,showOpenInNewIcon:jn.showOpenInNewIcon,description:jn.description||((Xn=config$2.moreNetworks)==null?void 0:Xn.description)}),jsxRuntimeExports.jsx("div",{className:ht.chainText,children:jn.label})]},Zn)})]}):jsxRuntimeExports.jsx("div",{className:ht.noResults,children:"No results"})})]})}function FromInputs(){var yr;const dt=useDispatch(),[ht,Dt]=reactExports.useState(!1),[Cn,$n]=reactExports.useState(!1),{toNativeToken:Un,relayerFee:Fn}=useSelector(Ir=>Ir.relay),Hn=useSelector(Ir=>Ir.porticoBridge),Gn=useSelector(Ir=>Ir.wallet.sending),{usdPrices:{data:Qn}}=useSelector(Ir=>Ir.tokenPrices),qn=Qn||{},{showValidationState:er,validations:Wn,route:jn,fromChain:Zn,toChain:Xn,token:ar,amount:dr,isTransactionInProgress:or,destToken:sr}=useSelector(Ir=>Ir.transferInput),vr=ar&&config$2.tokens[ar],hr=reactExports.useMemo(()=>vr?[vr]:[],[vr]),{balances:gr}=useGetTokenBalances(Gn.address,Zn,hr),ur=reactExports.useCallback(Ir=>isDisabledChain(Ir,Gn),[Gn]),_r=async Ir=>{await selectFromChain(dt,Ir,Gn)},nr=Ir=>{dt(setToken(Ir))},Sr=reactExports.useMemo(()=>{var Pr;if(!vr)return;const Ir=(Pr=config$2.chains[vr.nativeChain])==null?void 0:Pr.displayName;return{icon:vr.icon,text:vr.symbol,secondaryText:`(${Ir})`}},[vr]),Ar=jsxRuntimeExports.jsx(Select,{label:"Asset",testId:"source-section-select-asset-button",selected:Sr,error:!!(er&&Wn.token),onClick:()=>Dt(!0),disabled:!Zn||or,editable:!0}),tr=reactExports.useCallback(async Ir=>{dt(setAmount(typeof Ir=="number"?`${Ir}`:Ir));const Pr=typeof Ir=="number"?Ir:Number.parseFloat(Ir);if(!jn){dt(setReceiveAmount(`${Ir}`));return}try{const Br=isPorticoRoute(jn)?Hn:{toNativeToken:Un,relayerFee:Fn};dt(setFetchingReceiveAmount());const rr=await RouteOperator.computeReceiveAmount(jn,Pr,ar,sr,Zn,Xn,Br);dt(setReceiveAmount(`${rr}`))}catch{dt(setReceiveAmountError("Error computing receive amount"))}},[dt,Un,Fn,jn,ar,sr,Xn,Zn,Hn]),Yn=reactExports.useCallback(tr,[jn,Un,Fn,dt,tr]);reactExports.useEffect(()=>{jn&&tr(dr)},[jn,dr,tr]);const fr=jsxRuntimeExports.jsx(AmountInput,{handleAmountChange:Yn,value:dr,side:"source"}),Cr=(Ir,Pr,Br="_self")=>{const rr=hydrateHrefTemplate(Ir,Pr);rr&&window.open(rr,Br)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Inputs,{side:"source",wallet:TransferWallet.SENDING,walletValidations:[Wn.sendingWallet],walletError:Gn.error,inputValidations:[Wn.fromChain,Wn.token,Wn.amount],chain:Zn,chainValidation:Wn.fromChain,onChainClick:()=>$n(!0),tokenInput:Ar,amountInput:fr,balance:((yr=gr[ar])==null?void 0:yr.balance)||void 0,tokenPrice:getTokenPrice(qn,config$2.tokens[ar])}),ht&&jsxRuntimeExports.jsx(TokensModal,{open:ht,chain:Zn,walletAddress:Gn.address,type:"source",onSelect:nr,onClose:()=>Dt(!1)}),jsxRuntimeExports.jsx(ChainsModal,{open:Cn,title:"Sending from",chains:config$2.chainsArr.filter(Ir=>Ir.key!==Xn&&!Ir.disabledAsSource),onSelect:_r,onClose:()=>$n(!1),onMoreNetworkSelect:(Ir,Pr,Br)=>Cr(Ir,Pr,Br),isDisabled:ur})]})}const useStyles$l=makeStyles()(dt=>({associatedTokenWarning:{display:"flex",flexDirection:"column",alignItems:"start"},link:{textDecoration:"underline",opacity:"0.8",padding:"4px 0",cursor:"pointer","&:hover":{opacity:"1"}},disabled:{cursor:"not-allowed",opacity:"0.6","&:hover":{opacity:"0.6"}},inProgress:{marginRight:"8px"},error:{color:dt.palette.error[500],marginTop:"4px"}}));function AssociatedTokenWarning(dt){const{classes:ht}=useStyles$l(),[Dt,Cn]=reactExports.useState(!1),[$n,Un]=reactExports.useState(""),Fn=async()=>{if(!Dt){Cn(!0),Un("");try{await dt.createAssociatedTokenAccount(),Un("")}catch(Hn){Un("Encountered an error, please try again."),console.error(Hn)}finally{Cn(!1)}}};return jsxRuntimeExports.jsxs("div",{className:ht.associatedTokenWarning,children:["No associated token account exists for your wallet on Solana. You must create it before proceeding.",$n&&jsxRuntimeExports.jsx("div",{className:ht.error,children:$n}),jsxRuntimeExports.jsxs("div",{className:joinClass([ht.link,Dt&&ht.disabled]),onClick:Fn,children:[Dt&&jsxRuntimeExports.jsx(CircularProgress$1,{size:18,className:ht.inProgress}),"Create account"]})]})}function TokenWarnings(){const dt=useDispatch(),{toChain:ht,fromChain:Dt,token:Cn,destToken:$n,foreignAsset:Un,associatedTokenAddress:Fn,route:Hn}=useSelector(hr=>hr.transferInput),{receiving:Gn}=useSelector(hr=>hr.wallet),[Qn,qn]=reactExports.useState(!1),[er,Wn]=reactExports.useState(!1),jn=config$2.tokens[Cn],Zn=config$2.tokens[$n];reactExports.useEffect(()=>{let hr=!0;return(async()=>{if(!ht||!jn||!Hn){dt(setForeignAsset("")),qn(!1);return}const ur=getWrappedTokenId(jn);if(!ur)throw new Error("Could not retrieve target token info");const _r=await RouteOperator.getForeignAsset(Hn,ur,ht,Zn);hr&&(_r?(dt(setForeignAsset(_r)),qn(!1)):(dt(setForeignAsset("")),qn(!0)))})(),()=>{hr=!1}},[ht,jn,Hn,Zn,dt]);const Xn=reactExports.useCallback(async()=>{var ur;if(!Un||!jn)return qn(!1),!1;const hr=((ur=getTokenById({chain:"solana",address:Un}))==null?void 0:ur.tokenId)||getWrappedTokenId(jn),gr=await solanaContext().getAssociatedTokenAccount(hr,Gn.address);return gr?(dt(setAssociatedTokenAddress(gr.toString())),qn(!1),!0):(dt(setAssociatedTokenAddress("")),qn(!0),!1)},[Un,jn,Gn,dt]),ar=reactExports.useCallback(async()=>{var nr;if(!Gn.address||!Cn)throw new Error("Must fill in all fields before you can create a token account");if(!Un)throw new Error("The token must be registered on Solana before an associated token account can be created");const hr=((nr=getTokenById({chain:"solana",address:Un}))==null?void 0:nr.tokenId)||getWrappedTokenId(jn),gr=await solanaContext().createAssociatedTokenAccount(hr,Gn.address,"finalized");if(!gr)return;await signAndSendTransaction("solana",gr,TransferWallet.RECEIVING);let ur=!1,_r=0;return await new Promise(Sr=>{const Ar=setInterval(async()=>{ur||_r>20?(clearInterval(Ar),Sr(!0)):(ur=await Xn(),_r+=1)},1e3)})},[Cn,Gn,Un,jn,Xn]);reactExports.useEffect(()=>{const hr=!!config$2.cctpWarning,gr=(jn==null?void 0:jn.symbol)==="USDC"&&(Zn==null?void 0:Zn.symbol)==="USDC"&&(Zn==null?void 0:Zn.nativeChain)!==ht,ur=ht&&CCTPManual_CHAINS.includes(ht)&&Dt&&CCTPManual_CHAINS.includes(Dt),_r=hr&&gr&&ur;!ht||!Cn||!Gn.address||(ht==="solana"&&Un&&Hn!==Route.TBTC&&!isNttRoute(Hn)&&Xn(),_r?(qn(!0),Wn(!0)):(qn(!1),Wn(!1)))},[ht,Cn,Un,Gn,Fn,Xn,Hn,jn==null?void 0:jn.symbol,jn==null?void 0:jn.nativeChain,Zn==null?void 0:Zn.symbol,Zn==null?void 0:Zn.nativeChain,Dt]);const dr=jsxRuntimeExports.jsxs(Typography$1,{children:["This token is not registered, you must"," ",jsxRuntimeExports.jsx(Link$1,{target:"_blank",variant:"inherit",href:config$2.attestUrl,children:"register"})," ","it before you continue. Newly registered tokens will not have liquid markets."]}),or=jsxRuntimeExports.jsx(AssociatedTokenWarning,{createAssociatedTokenAccount:ar}),sr=jsxRuntimeExports.jsxs(Typography$1,{children:["This transaction will transfer wrapped USDC (wUSDC) to the destination chain. If you want to transfer native USDC on chains supported by Circle's CCTP, use the"," ",jsxRuntimeExports.jsx(Link$1,{target:"_blank",variant:"inherit",href:config$2.cctpWarning,children:"USDC Bridge"}),"."]});let vr;return Un?ht==="solana"&&Hn!==Route.Relay?vr=or:er&&(vr=sr):vr=dr,jsxRuntimeExports.jsx(AlertBanner,{show:Qn,content:vr,warning:!0,margin:"12px 0 0 0"})}function ToInputs(){var tr;const dt=useDispatch(),[ht,Dt]=reactExports.useState(!1),[Cn,$n]=reactExports.useState(!1),{showValidationState:Un,validations:Fn,fromChain:Hn,toChain:Gn,destToken:Qn,receiveAmount:qn,route:er,isTransactionInProgress:Wn}=useSelector(Yn=>Yn.transferInput),jn=useSelector(Yn=>Yn.wallet.receiving),{usdPrices:{data:Zn}}=useSelector(Yn=>Yn.tokenPrices),Xn=Zn||{},ar=config$2.tokens[Qn],dr=reactExports.useMemo(()=>ar?[ar]:[],[ar]),{balances:or}=useGetTokenBalances(jn.address,Gn,dr),sr=Yn=>{dt(setDestToken(Yn))},vr=reactExports.useCallback(Yn=>isDisabledChain(Yn,jn),[jn]),hr=async Yn=>{await selectToChain(dt,Yn,jn)},gr=reactExports.useMemo(()=>{var Cr;if(!ar)return;const Yn=ar.symbol,fr=(Cr=config$2.chains[ar.nativeChain])==null?void 0:Cr.displayName;return{icon:ar.icon,text:Yn,secondaryText:`(${fr})`}},[ar]),ur=jsxRuntimeExports.jsx(Select,{label:"Asset",testId:"destination-section-select-asset-button",selected:gr,error:!!(Un&&Fn.token),onClick:()=>Dt(!0),disabled:!Gn||Wn,editable:!0}),_r=()=>{},nr=er&&isPorticoRoute(er)?"Expected Amount (-0.05%)":"Amount",Sr=jsxRuntimeExports.jsx(AmountInput,{handleAmountChange:_r,value:qn.data||"",disabled:!0,label:nr,side:"destination"}),Ar=(Yn,fr,Cr="_self")=>{const yr=hydrateHrefTemplate(Yn,Hn,fr);yr&&window.open(yr,Cr)};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Inputs,{side:"destination",wallet:TransferWallet.RECEIVING,walletValidations:[Fn.receivingWallet],walletError:jn.error,inputValidations:[Fn.toChain,Fn.destToken,Fn.relayerFee,Fn.receiveAmount],chain:Gn,chainValidation:Fn.toChain,onChainClick:()=>$n(!0),tokenInput:ur,amountInput:Sr,balance:((tr=or[Qn])==null?void 0:tr.balance)||void 0,warning:jsxRuntimeExports.jsx(TokenWarnings,{}),tokenPrice:getTokenPrice(Xn,config$2.tokens[Qn])}),ht&&jsxRuntimeExports.jsx(TokensModal,{open:ht,chain:Gn,walletAddress:jn.address,type:"dest",onSelect:sr,onClose:()=>Dt(!1)}),jsxRuntimeExports.jsx(ChainsModal,{open:Cn,title:"Sending to",chains:config$2.chainsArr.filter(Yn=>Yn.key!==Hn&&!Yn.disabledAsDestination),onSelect:hr,onClose:()=>$n(!1),onMoreNetworkSelect:(Yn,fr,Cr)=>Ar(Yn,fr,Cr),isDisabled:vr})]})}const REMAINING_NOTIONAL_TOLERANCE=.98,GOVERNOR_API_BASE_URLS=[config$2.wormholeApi,...config$2.wormholeRpcHosts],useIsTransferLimited=()=>{const[dt,ht]=reactExports.useState(null),[Dt,Cn]=reactExports.useState(null),[$n,Un]=reactExports.useState(void 0),[Fn,Hn]=reactExports.useState(void 0),{fromChain:Gn,token:Qn,amount:qn}=useSelector(jn=>jn.transferInput),er=reactExports.useRef(!1);return reactExports.useEffect(()=>{let jn=!1;return(async()=>{if(!Qn||!Gn){Un(void 0);return}try{const Xn=config$2.tokens[Qn],ar=getWrappedTokenId(Xn),dr=config$2.wh.toChainId(ar.chain),or=utils$P.hexlify(await formatAssetAddress(dr,ar.address));jn||(Un(or),Hn(dr))}catch{jn||Un(void 0)}})(),()=>{jn=!0}},[Qn,Gn]),reactExports.useEffect(()=>{if(!er.current){let jn=!1;(async()=>{for(const Zn of GOVERNOR_API_BASE_URLS){try{const Xn=`${Zn}${Zn.endsWith("/")?"":"/"}v1/governor`,[ar,dr]=await Promise.all([axios$1.get(`${Xn}/token_list`),axios$1.get(`${Xn}/available_notional_by_chain`)]);if(!jn){ht((ar==null?void 0:ar.data)||null),Cn((dr==null?void 0:dr.data)||null);break}}catch(Xn){console.error(Xn)}if(jn)break}return()=>{jn=!0}})(),er.current=!0}},[]),reactExports.useMemo(()=>{if(!Gn||!Qn||!qn||!$n||!Fn)return{isLimited:!1};const jn=config$2.wh.toChainId(Gn);if(Qn&&Gn&&qn&&dt&&Dt){const Zn=dt.entries.find(Xn=>Xn.originChainId===Fn&&Xn.originAddress===$n);if(Zn){const Xn=Dt.entries.find(ar=>ar.chainId===jn);if(Xn){const ar=Zn.price*Number.parseFloat(qn),dr=ar>Xn.notionalLimit?"EXCEEDS_MAX_NOTIONAL":ar>Xn.bigTransactionSize*REMAINING_NOTIONAL_TOLERANCE?"EXCEEDS_LARGE_TRANSFER_LIMIT":ar>Xn.remainingAvailableNotional*REMAINING_NOTIONAL_TOLERANCE?"EXCEEDS_REMAINING_NOTIONAL":void 0;return{isLimited:!!dr,reason:dr,limits:{chainId:jn,chainNotionalLimit:Xn.notionalLimit,chainRemainingAvailableNotional:Xn.remainingAvailableNotional,chainBigTransactionSize:Xn.bigTransactionSize,tokenPrice:Zn.price}}}}}return{isLimited:!1}},[Gn,Qn,$n,Fn,qn,dt,Dt])},ClockIcon=()=>jsxRuntimeExports.jsxs("svg",{width:"65",height:"64",viewBox:"0 0 65 64",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("rect",{x:"1.5",y:"1",width:"62",height:"62",rx:"31",fill:"#FFE8D7",fillOpacity:"0.1"}),jsxRuntimeExports.jsx("rect",{x:"1.5",y:"1",width:"62",height:"62",rx:"31",stroke:"#E48329",strokeWidth:"2"}),jsxRuntimeExports.jsx("path",{d:"M32.484 16C23.652 16 16.5 23.168 16.5 32C16.5 40.832 23.652 48 32.484 48C41.332 48 48.5 40.832 48.5 32C48.5 23.168 41.332 16 32.484 16ZM37.764 39.536L30.9 32.656V24H34.1V31.344L40.036 37.28L37.764 39.536Z",fill:"#E48329"})]}),useStyles$k=makeStyles()(dt=>({dialog:{zIndex:10},paper:{borderRadius:24,[dt.breakpoints.down("sm")]:{maxWidth:"100%",maxHeight:"100%",margin:0,borderRadius:0}},container:{position:"relative",width:"100%",margin:"0 auto",display:"flex",justifyContent:"center"},modal:{width:"100%",padding:32,position:"relative",maxHeight:"calc( 100vh - 80px )",[dt.breakpoints.down("sm")]:{padding:"24px 12px",maxHeight:"100%"}},close:{color:"#3C3D77",position:"absolute",top:"28px",right:"28px",cursor:"pointer",opacity:"70%",zIndex:"10",[dt.breakpoints.down("sm")]:{top:"12px",right:"20px"}},background:{background:dt.palette.modal.background},icon:{textAlign:"center",paddingTop:24,paddingBottom:24},title:{textAlign:"center",fontSize:24,fontWeight:600,lineHeight:"32px",paddingTop:24,paddingBottom:24,borderBottom:"1px solid #313266"},text:{fontSize:"16px",fontWeight:400,lineHeight:"24px",color:"#9495D6",paddingTop:24,paddingBottom:24},link:{color:"#D5D5EB",textDecorationLine:"underline"},orange:{color:"#E48329"},clock:{width:64,height:64},buttonContainer:{display:"flex",justifyContent:"space-between",marginTop:"24px",gap:10,[dt.breakpoints.down("sm")]:{flexDirection:"column"}}})),TransferLimitedWarning=dt=>{const{classes:ht}=useStyles$k(),{fromChain:Dt,token:Cn}=dt,[$n,Un]=React.useState(!0),Fn=useIsTransferLimited(),Hn=()=>{Un(!1)},Gn=()=>{Un(!1),setTimeout(()=>{window.scrollTo(0,document.body.scrollHeight)},500)};if(reactExports.useEffect(()=>{Un(!0)},[Dt,Cn]),Fn.isLimited&&Fn.reason&&Fn.limits){const Qn=config$2.wh.toChainName(Fn.limits.chainId);let qn,er;return Fn.reason==="EXCEEDS_MAX_NOTIONAL"||Fn.reason==="EXCEEDS_REMAINING_NOTIONAL"?(er=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take up to"," ",jsxRuntimeExports.jsx("span",{className:ht.orange,children:"24 hours"})," to complete"]}),qn=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take up to 24 hours to process as Wormhole has"," ","reached the daily limit for ",Qn,".",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),"This is a normal and temporary security feature by the Wormhole"," ","network.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("a",{href:GOVERNOR_WHITEPAPER_URL,target:"_blank",rel:"noreferrer",children:"Learn more"})," ","about this temporary security measure."]})):Fn.reason==="EXCEEDS_LARGE_TRANSFER_LIMIT"&&(er=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction requires"," ",jsxRuntimeExports.jsx("span",{className:ht.orange,children:"24 hours"})," to complete"]}),qn=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["This transaction will take 24 hours to process, as it exceeds the Wormhole network's temporary transaction limit of $",Fn.limits.chainBigTransactionSize," on ",Qn," for"," ","security reasons.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),"You may also split the transaction into smaller transactions less than"," ","$",Fn.limits.chainBigTransactionSize," each to avoid the"," ","24 hour security delay.",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("a",{href:GOVERNOR_WHITEPAPER_URL,target:"_blank",rel:"noreferrer",children:"Learn more"})," ","about this temporary measure."]})),qn&&er?jsxRuntimeExports.jsx(Dialog$1,{open:$n,sx:{borderRadius:8},className:ht.dialog,classes:{paper:ht.paper},children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsx(CloseIcon,{sx:{fontSize:32},className:ht.close,onClick:Hn}),jsxRuntimeExports.jsxs("div",{className:ht.modal,children:[jsxRuntimeExports.jsx("div",{className:ht.icon,children:jsxRuntimeExports.jsx(ClockIcon,{})}),jsxRuntimeExports.jsx("div",{className:ht.title,children:er}),jsxRuntimeExports.jsx("div",{className:ht.text,children:qn}),jsxRuntimeExports.jsxs("div",{className:ht.buttonContainer,children:[jsxRuntimeExports.jsx(Button,{link:!0,onClick:Hn,children:"Cancel"}),jsxRuntimeExports.jsx(Button,{onClick:Gn,children:"Continue"})]})]})]})})}):null}return null},useStyles$j=makeStyles()((dt,{disabled:ht})=>({button:{borderRadius:"50%",width:"42px",height:"42px",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:dt.palette.card.background,boxShadow:dt.palette.card.elevation,opacity:ht?.5:1,cursor:ht?"default":"pointer",[dt.breakpoints.up("md")]:{marginBottom:"-40px"},zIndex:2}}));function SwapChains(){var Hn,Gn;const dt=useDispatch(),{isTransactionInProgress:ht,fromChain:Dt,toChain:Cn}=useSelector(Qn=>Qn.transferInput),$n=Dt&&!((Hn=config$2.chains[Dt])!=null&&Hn.disabledAsDestination)&&Cn&&!((Gn=config$2.chains[Cn])!=null&&Gn.disabledAsDestination),Un=()=>{$n&&(ht||(dt(swapChains()),dt(swapWallets())))},{classes:Fn}=useStyles$j({disabled:!$n});return jsxRuntimeExports.jsx("div",{className:Fn.button,onClick:Un,children:jsxRuntimeExports.jsxs("svg",{width:"21",height:"22",viewBox:"0 0 21 22",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("path",{d:"M7.88281 18.4384L3.49031 14.0547",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M7.88281 3.5625L7.88281 18.4375",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M13.1153 3.5625L17.5078 7.94625",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"}),jsxRuntimeExports.jsx("path",{d:"M13.1172 18.4375L13.1172 3.5625",stroke:"currentColor",strokeWidth:"1.5",strokeMiterlimit:"10",strokeLinecap:"round",strokeLinejoin:"round"})]})})}const useStyles$i=makeStyles()(dt=>({menuIcon:ICON,menu:{display:"flex",[dt.breakpoints.down("md")]:{flexDirection:"column"},flexDirection:"row",gap:"8px",padding:"8px",width:"100%"},menuItem:{padding:"16px 0",textAlign:"center",fontSize:"14px",margin:"auto",cursor:"pointer","&:hover":{textDecoration:"underline"}}}));function itemAppender(dt,ht){const{order:Dt=dt.length,target:Cn="_black",href:$n,label:Un}=ht;return dt.splice(Dt,0,{label:Un,handleClick:()=>window.open($n,Cn)}),dt}function defaultMenuItems(dt){return[{label:"Resume Transaction",handleClick:()=>dt("search")},{label:"FAQs",handleClick:()=>dt("faq")},{label:"Terms of Use",handleClick:()=>dt("terms")}]}function FooterNavBar(){const{classes:dt}=useStyles$i(),ht=useDispatch(),Dt=reactExports.useCallback($n=>{ht(setRoute($n))},[ht]),Cn=config$2.menu.reduce(itemAppender,defaultMenuItems(Dt));return jsxRuntimeExports.jsx("div",{className:dt.menu,children:Cn.map(({label:$n,handleClick:Un},Fn)=>jsxRuntimeExports.jsx("div",{className:dt.menuItem,onClick:Un,children:$n},`${$n.toLowerCase()}_${Fn}`))})}const FETCH_SWAP_INFO_INTERVAL=6e4,usePorticoSwapInfo=()=>{const dt=useDispatch(),{route:ht,token:Dt,destToken:Cn,toChain:$n,fromChain:Un,amount:Fn,isTransactionInProgress:Hn}=useSelector(Gn=>Gn.transferInput);reactExports.useEffect(()=>{if(!ht||!isPorticoRoute(ht)||!Dt||!Cn||!Un||!$n||Hn)return;let Gn=!1;return(async()=>{if(!await RouteOperator.isRouteSupported(ht,Dt,Cn,Fn,Un,$n)){dt(resetSwapAmounts());return}for(dt(setFetchingSwapAmounts());!Gn;){try{const Wn=await RouteOperator.getRoute(ht).computeSwapAmounts(Number.parseFloat(Fn),Dt,Cn,Un,$n);Gn||dt(setSwapAmounts(Wn))}catch{Gn||dt(setSwapAmountsError("Error computing swap amounts"))}await sleep(FETCH_SWAP_INFO_INTERVAL)}})(),()=>{Gn=!0}},[ht,Dt,Cn,$n,Un,Fn,Hn,dt])},FETCH_FEE_INTERVAL=6e4,usePorticoRelayerFee=()=>{const dt=useDispatch(),{route:ht,token:Dt,destToken:Cn,toChain:$n,fromChain:Un,isTransactionInProgress:Fn}=useSelector(Hn=>Hn.transferInput);reactExports.useEffect(()=>{if(!ht||!isPorticoRoute(ht)||!Dt||!Cn||!Un||!$n||Fn)return;let Hn=!1;return(async()=>{if(!await RouteOperator.isRouteSupported(ht,Dt,Cn,"0",Un,$n)){dt(resetRelayerFee());return}for(dt(setFetchingRelayerFee());!Hn;){try{const qn=await RouteOperator.getRelayerFee(ht,Un,$n,Dt,Cn);!Hn&&qn&&dt(setRelayerFee(qn.fee.toString()))}catch{Hn||dt(setRelayerFeeError("Error fetching relayer fee"))}await sleep(FETCH_FEE_INTERVAL)}})(),()=>{Hn=!0}},[ht,Dt,Cn,$n,Un,Fn,dt])},PRICES_FETCH_INTERVAL=6e4*5,COINGECKO_URL="https://api.coingecko.com/",COINGECKO_URL_PRO="https://pro-api.coingecko.com/",useFetchTokenPrices=()=>{const dt=useDispatch();reactExports.useEffect(()=>{let ht=!1;const Dt=new AbortController,Cn=Dt.signal,$n=Object.values(config$2.tokens).filter(Hn=>!!Hn.coinGeckoId).map(({coinGeckoId:Hn})=>Hn).join(","),Un=new Headers({"Content-Type":"application/json",...config$2.coinGeckoApiKey?{"x-cg-pro-api-key":config$2.coinGeckoApiKey}:{}});return(async()=>{for(;!ht;){try{const Gn=await(await fetch(`${config$2.coinGeckoApiKey?COINGECKO_URL_PRO:COINGECKO_URL}api/v3/simple/price?ids=${$n}&vs_currencies=usd${config$2.coinGeckoApiKey?`?x_cg_pro_api_key=${config$2.coinGeckoApiKey}`:""}`,{signal:Cn,headers:Un})).json();ht||dt(setPrices(Gn))}catch(Hn){ht||dt(setPricesError(`Error fetching token prices: ${Hn}`))}await sleep(PRICES_FETCH_INTERVAL)}})(),()=>{ht=!0,Dt.abort()}},[])};function formatDuration(dt){if(dt<60)return dt===1?`${dt} second`:`${dt} seconds`;if(dt<3600){const ht=Math.floor(dt/60);return ht===1?`${ht} minute`:`${ht} minutes`}else{const ht=Math.floor(dt/3600);return ht===1?`${ht} hour`:`${ht} hours`}}const NttInboundCapacityWarning=()=>{var Zn,Xn;const{fromChain:dt,toChain:ht,token:Dt,destToken:Cn,receiveAmount:$n}=useSelector(ar=>ar.transferInput),Un=$n.data||"0",[Fn,Hn]=reactExports.useState(void 0),[Gn,Qn]=reactExports.useState(0),qn=getNttGroupKey(config$2.tokens[Dt],config$2.tokens[Cn]),er=qn&&getNttManagerAddress(config$2.tokens[Cn],qn);if(reactExports.useEffect(()=>{if(!ht||!er||!dt)return;let ar=!0;return(async()=>{try{const or=new NttManual,sr=await or.getRateLimitDuration(ht,er);if(sr===0){ar&&(Hn(void 0),Qn(0));return}const vr=await or.getCurrentInboundCapacity(ht,er,dt);ar&&(Hn(vr?BigNumber$2.from(vr):void 0),Qn(sr))}catch(or){console.error("Failed to fetch capacity:",or),ar&&(Hn(void 0),Qn(0))}})(),()=>{ar=!1}},[ht,er,dt]),!reactExports.useMemo(()=>{if(!Cn||!Un||!ht||!Fn||!Gn||!dt||!qn)return!1;const ar=config$2.tokens[Cn];if(!ar||!isNttToken(ar))return!1;const dr=getTokenDecimals(config$2.wh.toChainId(ht),ar.tokenId),or=utils$P.parseUnits(Number(Un).toFixed(dr),dr),sr=Fn.mul(95).div(100);return or.gt(sr)},[Cn,Un,ht,qn])||!ht)return null;const jn=jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:`Your transfer to ${((Zn=config$2.chains[ht])==null?void 0:Zn.displayName)||"UNKNOWN"} may be delayed due to rate limits set by ${((Xn=config$2.tokens[Cn])==null?void 0:Xn.symbol)||"UNKNOWN"}. If your transfer is delayed, you will need to return after ${formatDuration(Gn)} to complete the transfer. Please consider this before proceeding.`});return jsxRuntimeExports.jsx(AlertBanner,{show:!0,content:jn,warning:!0})},useStyles$h=makeStyles()(dt=>({spacer:{display:"flex",flexDirection:"column",gap:"16px",alignItems:"center",justifyContent:"center",width:"100%"},bridgeContent:{margin:"auto",maxWidth:"650px"},header:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%"},poweredBy:{display:"flex",flexDirection:"column",alignItems:"center",gap:"8px",marginTop:"24px"}}));function isSupportedToken(dt,ht){return dt?ht.some(Dt=>Dt.key===dt):!0}function Bridge(){const{classes:dt}=useStyles$h(),ht=useTheme(),Dt=useDispatch(),{showValidationState:Cn,validations:$n,fromChain:Un,toChain:Fn,token:Hn,destToken:Gn,route:Qn,isTransactionInProgress:qn,amount:er}=useSelector(nr=>nr.transferInput),{toNativeToken:Wn,relayerFee:jn}=useSelector(nr=>nr.relay),Zn=useSelector(nr=>nr.porticoBridge),{receiving:Xn}=useSelector(nr=>nr.wallet);useConfirmBeforeLeaving(qn),reactExports.useEffect(()=>{if(!Un||!Fn||!Xn.address)return;const nr=config$2.chains[Fn];config$2.wh.getNativeBalance(Xn.address,Fn).then(Sr=>{const Ar=config$2.tokens[nr.gasToken];if(!Ar)throw new Error("Could not get native gas token config");const tr=getTokenDecimals(toChainId$1(Ar.nativeChain),"native");Dt(setReceiverNativeBalance$1(toDecimals(Sr,tr,6)))})},[Un,Fn,Xn.address,Dt]),reactExports.useEffect(()=>{let nr=!0;return(async()=>{const Ar=await RouteOperator.allSupportedSourceTokens(config$2.tokens[Gn],Un,Fn);nr&&(Dt(setSupportedSourceTokens(Ar)),isSupportedToken(Hn,Ar)||Dt(setToken("")),Ar.length===1&&Hn===""&&Dt(setToken(Ar[0].key)))})(),()=>{nr=!1}},[Qn,Un,Gn,Dt]),reactExports.useEffect(()=>{(async()=>{var Yn,fr;let Sr=await RouteOperator.allSupportedDestTokens(config$2.tokens[Hn],Un,Fn);if(Hn){const Cr=Sr.filter(yr=>yr.nativeChain===Fn);Cr.length>0&&(Sr=Cr)}Dt(setSupportedDestTokens(Sr));const Ar=await RouteOperator.allSupportedDestTokens(void 0,Un,Fn);Dt(setAllSupportedDestTokens(Ar)),Fn&&Sr.length===1&&Dt(setDestToken(Sr[0].key));const tr=Sr.map(Cr=>Cr.symbol);if(Fn&&tr.every(Cr=>Cr===tr[0])&&["USDC","tBTC"].includes(tr[0])){const Cr=(Yn=Sr.find(yr=>{var Ir;return yr.symbol===tr[0]&&yr.nativeChain===((Ir=yr.tokenId)==null?void 0:Ir.chain)&&yr.nativeChain===Fn}))==null?void 0:Yn.key;Cr&&Dt(setDestToken(Cr))}if(Hn&&Gn===""&&Fn&&(!Qn||isPorticoRoute(Qn))){const Cr=(fr=config$2.tokens[Hn])==null?void 0:fr.symbol;if([...ETHBridge.SUPPORTED_TOKENS,...wstETHBridge.SUPPORTED_TOKENS].includes(Cr)){let Ir=getNativeVersionOfToken(Cr,Fn);if(!Ir){const Pr=getWrappedToken(config$2.tokens[Hn]);Ir=getNativeVersionOfToken(Pr.symbol,Fn)}Ir&&isSupportedToken(Ir,Sr)&&Dt(setDestToken(Ir))}}})()},[Qn,Hn,Un,Fn,Dt]),reactExports.useEffect(()=>{(async()=>{if(Qn)try{const Sr=isPorticoRoute(Qn)?Zn:{toNativeToken:Wn,relayerFee:jn};Dt(setFetchingReceiveAmount());const Ar=await RouteOperator.computeReceiveAmount(Qn,Number.parseFloat(er),Hn,Gn,Un,Fn,Sr);Dt(setReceiveAmount(Ar.toString()))}catch(Sr){Dt(setReceiveAmountError(Sr.message))}})()},[er,Wn,jn,Qn,Hn,Gn,Fn,Un,Zn,Dt]),usePorticoSwapInfo(),usePorticoRelayerFee(),useFetchTokenPrices(),useConnectToLastUsedWallet(),useValidate();const ar=isTransferValid($n),dr=!ar||qn,or=Fn?config$2.chains[Fn]:void 0,sr=or?config$2.tokens[or.gasToken]:void 0,vr=sr?getWrappedToken(sr):void 0,hr=vr&&Gn===vr.key,gr=Qn&&RouteOperator.getRoute(Qn).NATIVE_GAS_DROPOFF_SUPPORTED&&!hr,ur=!!Un&&!!Fn&&!!Hn&&!!Gn&&!!er,_r=getPageHeader();return jsxRuntimeExports.jsxs("div",{className:joinClass([dt.bridgeContent,dt.spacer]),children:[jsxRuntimeExports.jsx(PageHeader,{title:_r.text,align:_r.align,showHamburgerMenu:config$2.showHamburgerMenu}),jsxRuntimeExports.jsx(FromInputs,{}),jsxRuntimeExports.jsx(SwapChains,{}),jsxRuntimeExports.jsx(ToInputs,{}),jsxRuntimeExports.jsx(ValidationError,{forceShow:ur,validations:[$n.route],margin:"12px 0 0 0"}),jsxRuntimeExports.jsx(RouteOptions,{}),jsxRuntimeExports.jsx(Collapse$1,{in:ar&&Cn,children:jsxRuntimeExports.jsxs("div",{className:dt.spacer,children:[jsxRuntimeExports.jsx(Collapse$1,{in:gr,sx:gr?{}:{marginBottom:"-16px",transition:"margin 0.4s"},children:gr&&jsxRuntimeExports.jsx(GasSlider,{disabled:dr})}),jsxRuntimeExports.jsx(Preview,{collapsed:Cn?!ar:!0}),jsxRuntimeExports.jsx(TransferLimitedWarning,{fromChain:Un,token:Hn}),isNttRoute(Qn)&&jsxRuntimeExports.jsx(NttInboundCapacityWarning,{}),jsxRuntimeExports.jsx(Send,{valid:!!ar})]})}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx(FooterNavBar,{}),jsxRuntimeExports.jsx("div",{className:dt.poweredBy,children:jsxRuntimeExports.jsx(PoweredByIcon,{color:ht.palette.text.primary})})]})}const getPageHeader=()=>{const dt={text:"",align:"left"};return typeof config$2.pageHeader=="string"?{...dt,text:config$2.pageHeader}:{...dt,...config$2.pageHeader}},useStyles$g=makeStyles()(dt=>({container:{width:"100%",borderRadius:"8px",boxShadow:dt.palette.card.elevation},header:{width:"100%",display:"flex",justifyContent:"space-between",alignItems:"center",padding:"16px",cursor:"pointer",backgroundColor:dt.palette.card.background,backgroundOpacity:"80%",borderRadius:"8px",transition:"border-radius 0.4s"},title:{fontSize:"14px",fontWeight:"bold"},invert:{transform:"rotate(180deg)"},arrow:{width:"32px",height:"32px",transition:"transform 0.4s"},content:{padding:"16px",backgroundColor:dt.palette.card.background,borderBottomLeftRadius:"8px",borderBottomRightRadius:"8px",fontWeight:"300"},open:{borderBottomLeftRadius:"0 !important",borderBottomRightRadius:"0 !important"}}));function Dropdown(dt){const{classes:ht}=useStyles$g(),Dt=()=>{dt.onToggle&&dt.onToggle(dt.id)};return jsxRuntimeExports.jsxs("div",{className:ht.container,children:[jsxRuntimeExports.jsxs("div",{className:joinClass([ht.header,!!dt.open&&ht.open]),onClick:Dt,children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("div",{className:ht.title,children:dt.title})}),jsxRuntimeExports.jsx(DownIcon,{className:joinClass([ht.arrow,!!dt.open&&ht.invert])})]}),jsxRuntimeExports.jsx(Collapse$1,{in:dt.open,children:jsxRuntimeExports.jsx("div",{className:ht.content,children:dt.children})})]})}const useStyles$f=makeStyles()(dt=>({container:{width:"100%",maxWidth:"700px",display:"flex",flexDirection:"column",alignItems:"center",marginTop:"20px"},faqs:{display:"flex",flexDirection:"column",gap:"16px",width:"100%"},link:{color:dt.palette.text.primary,textDecoration:"underline",cursor:"pointer"}}));function FAQ(){const{classes:dt}=useStyles$f(),ht=[{title:"What is Wormhole Connect?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"Wormhole Connect is an open source frontend SDK that lets Web3 developers embed asset bridging directly into their apps or websites."})},{title:"What types of assets does Connect support?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Initially, Connect will only support bridging wrapped assets. This means that any native token bridged through Connect and the underlying Wormhole Token Bridge will be received as a Wormhole-wrapped token on the destination chain. In some cases, Wormhole minted tokens are the canonical representation on the chain (e.g. WETH on Solana is a Wormhole minted token, see",jsxRuntimeExports.jsx("a",{href:"https://github.com/wormhole-foundation/wormhole-token-list",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://github.com/wormhole-foundation/wormhole-token-list"}),") and in other cases Wormhole minted tokens can be swapped on the destination chain’s DEX(s) for whatever assets you need (e.g. USDCeth bridged from Ethereum to Avalanche can be swapped for native USDC on Trader Joe)."]})},{title:"Will Connect support native asset bridging?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Yes, Connect will soon surface multiple Wormhole-powered services (e.g. cross chain asset swaps) that enable other forms of bridging more suitable for certain use cases. Check"," ",jsxRuntimeExports.jsx("a",{href:"https://wormhole.com/connect",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://wormhole.com/connect"})," ","for updates on Connect support."]})},{title:"What chains and assets does Connect support?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Initially, Connect supports wrapped asset bridging of ETH, WETH, USDC, MATIC, WMATIC, BNB, WBNB, AVAX, WAVAX, FTM, WFTM, CELO, GLMR, WGLMR, AND SOL across Ethereum, Polygon, BSC, Avalanche, Celo, Moonbeam, Base, Solana and Sui. Connect will support other Wormhole-connected chains and assets in the future, see the full list of Connect supported chains on the"," ",jsxRuntimeExports.jsx("a",{href:"https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/chains.ts",target:"_blank",rel:"noreferrer",className:dt.link,children:"GitHub repository"})," ","and Wormhole supported chains at"," ",jsxRuntimeExports.jsx("a",{href:"https://wormhole.com/network",target:"_blank",rel:"noreferrer",className:dt.link,children:"https://wormhole.com/network"}),"."]})},{title:"What is automatic relaying?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"On EVM-based chains, Connect lets users bridge assets while only having to pay gas on the source chain. The automatic relaying feature pays gas on behalf of users on the destination chain. Connect will support automatic relaying for other chains in the future."})},{title:"What is gas dropoff?",content:jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:"Gas dropoff is a Connect feature that enables users to pay an additional fee on the source chain to request a small amount of native gas on the destination chain. For example, a user bridging USDC from Ethereum to Sui can pay a fee denominated in USDC from their sending wallet to receive some native SUI in their receiving wallet in addition to the USDC they are bridging over. Gas dropoff is currently supported on EVM-based chains and Sui, and will be supported on other chains in the future."})},{title:"Can I customize Connect inside my application?",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["Connect supports both light and dark modes and can optionally be fully customized. See the"," ",jsxRuntimeExports.jsx("a",{href:"https://www.npmjs.com/package/@wormhole-foundation/wormhole-connect",target:"_blank",rel:"noreferrer",className:dt.link,children:"NPM package readme"})," ","for more details."]})},{title:"Contact",content:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["If you have any further questions or require troubleshooting, please reach out to Wormhole's community managers on"," ",jsxRuntimeExports.jsx("a",{href:"https://discord.com/invite/wormholecrypto",target:"_blank",rel:"noreferrer",className:dt.link,children:"Discord"}),".",jsxRuntimeExports.jsx(AlertBanner,{show:!0,warning:!0,content:"Beware of scams. Admins will never DM or message you first.",margin:"16px 0 0 0"})]})}],[Dt,Cn]=reactExports.useState(void 0),$n=Un=>{Cn(Un===Dt?void 0:Un)};return jsxRuntimeExports.jsxs("div",{className:dt.container,children:[jsxRuntimeExports.jsx(PageHeader,{title:"FAQ",description:"This page collects and answers the most commonly asked questions.",showHamburgerMenu:config$2.showHamburgerMenu,back:!0}),jsxRuntimeExports.jsx("div",{className:dt.faqs,children:ht.map((Un,Fn)=>{const Hn=Fn+1;return jsxRuntimeExports.jsx(Dropdown,{title:Un.title,open:!!Dt&&Dt===Hn,onToggle:()=>$n(Hn),children:Un.content},Hn)})}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx(FooterNavBar,{})]})}var Launch={},_interopRequireDefault$2=interopRequireDefaultExports;Object.defineProperty(Launch,"__esModule",{value:!0});var default_1$2=Launch.default=void 0,_createSvgIcon$2=_interopRequireDefault$2(requireCreateSvgIcon()),_jsxRuntime$2=jsxRuntimeExports,_default$2=(0,_createSvgIcon$2.default)((0,_jsxRuntime$2.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"Launch");default_1$2=Launch.default=_default$2;const useStyles$e=makeStyles()(dt=>({row:{display:"flex",alignItems:"center",gap:"16px"},icon:{width:"24px",height:"24px"},chain:{display:"flex",alignItems:"center",gap:"8px"},link:{...LINK(dt),justifyContent:"center"}}));function ChainsTag(){const{classes:dt}=useStyles$e(),ht=useSelector(qn=>qn.redeem.txData),Dt=useSelector(qn=>qn.redeem.signedMessage),Cn=config$2.chains[ht.fromChain],$n=config$2.chains[ht.toChain],Un=ht.sendTx||(Dt==null?void 0:Dt.sendTx),Fn=ht.sequence||(Dt==null?void 0:Dt.sequence),Hn=ht.emitterAddress||(Dt==null?void 0:Dt.emitterAddress),Gn=Hn?stripHexPrefix(Hn):void 0,Qn=reactExports.useMemo(()=>{if(!ht)return;if(isEvmChain(Cn.id)&&Un)return`${WORMSCAN}tx/${Un}${config$2.isMainnet?"":"?network=TESTNET"}`;if(!Gn||!Fn)return;const qn=isGatewayChain(Cn.id)?CHAIN_ID_WORMCHAIN$1:Cn.id;return`${WORMSCAN}tx/${qn}/${Gn}/${Fn}${config$2.isMainnet?"":"?network=TESTNET"}`},[ht,Un,Gn,Fn,Cn.id]);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(InputContainer,{children:jsxRuntimeExports.jsxs("div",{className:dt.row,children:[jsxRuntimeExports.jsxs("div",{className:dt.chain,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Cn.icon,height:24}),jsxRuntimeExports.jsx("div",{children:Cn.displayName})]}),jsxRuntimeExports.jsx(ArrowRightIcon,{}),jsxRuntimeExports.jsxs("div",{className:dt.chain,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:$n.icon,height:24}),jsxRuntimeExports.jsx("div",{children:$n.displayName})]})]})}),ht&&Qn&&jsxRuntimeExports.jsxs("a",{className:dt.link,href:Qn,target:"_blank",rel:"noreferrer",children:[jsxRuntimeExports.jsx("div",{children:"View on Wormholescan"}),jsxRuntimeExports.jsx(default_1$2,{})]})]})}const useStyles$d=makeStyles()(dt=>({content:{marginLeft:"14px",minHeight:"40px",borderLeft:`1px solid ${dt.palette.primary[700]}`,padding:"8px 0 16px 32px",[dt.breakpoints.down("sm")]:{marginLeft:"0",borderLeft:"none",paddingLeft:"0"}},lineActive:{borderColor:dt.palette.success[400]},lineWarning:{borderColor:dt.palette.warning[400]},lineNone:{border:"none !important"}}));function StepperLabel$1(dt){const{classes:ht}=useStyles$d(),{index:Dt,activeStep:Cn,last:$n,children:Un,warning:Fn}=dt;return jsxRuntimeExports.jsx("div",{className:joinClass([ht.content,Cn>Dt&&(Fn?ht.lineWarning:ht.lineActive),!!$n&&ht.lineNone]),children:Cn>=Dt&&Un})}var Check={},_interopRequireDefault$1=interopRequireDefaultExports;Object.defineProperty(Check,"__esModule",{value:!0});var default_1$1=Check.default=void 0,_createSvgIcon$1=_interopRequireDefault$1(requireCreateSvgIcon()),_jsxRuntime$1=jsxRuntimeExports,_default$1=(0,_createSvgIcon$1.default)((0,_jsxRuntime$1.jsx)("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"Check");default_1$1=Check.default=_default$1;var Warning={},_interopRequireDefault=interopRequireDefaultExports;Object.defineProperty(Warning,"__esModule",{value:!0});var default_1=Warning.default=void 0,_createSvgIcon=_interopRequireDefault(requireCreateSvgIcon()),_jsxRuntime=jsxRuntimeExports,_default=(0,_createSvgIcon.default)((0,_jsxRuntime.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");default_1=Warning.default=_default;const useStyles$c=makeStyles()(dt=>({label:{display:"flex",alignItems:"center"},textInactive:{color:`${dt.palette.text.primary}${OPACITY[30]} !important`},icon:{width:"32px",height:"32px",backgroundColor:dt.palette.card.background,borderRadius:"50%",border:`1px solid ${dt.palette.primary[500]}`,display:"flex",justifyContent:"center",alignItems:"center",fontSize:"16px",marginRight:"32px",[dt.breakpoints.down("sm")]:{margin:"0 8px 0 16px"}},filled:{backgroundColor:`${dt.palette.success[400]} !important`},iconActive:{border:`1px solid ${dt.palette.success[400]} !important`},iconWarning:{border:`1px solid ${dt.palette.warning[400]} !important`}}));function StepIcon(dt){const{active:ht,completed:Dt,filled:Cn,warning:$n}=dt,{classes:Un}=useStyles$c(),Fn=useTheme();return $n?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconWarning,!!Cn&&Un.filled]),children:jsxRuntimeExports.jsx(default_1,{htmlColor:Fn.palette.warning[500]})}):Dt?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconActive,!!Cn&&Un.filled]),children:jsxRuntimeExports.jsx(default_1$1,{htmlColor:Cn?"#fff":Fn.palette.success[500]})}):ht?jsxRuntimeExports.jsx("div",{className:joinClass([Un.icon,Un.iconActive]),children:dt.index}):jsxRuntimeExports.jsx("div",{className:Un.icon,children:dt.index})}function StepperLabel(dt){const{classes:ht}=useStyles$c(),{index:Dt,activeStep:Cn,filled:$n,children:Un,warning:Fn}=dt;return jsxRuntimeExports.jsxs("div",{className:joinClass([ht.label,Dt>Cn&&ht.textInactive]),children:[jsxRuntimeExports.jsx(StepIcon,{index:Dt,active:Dt===Cn,completed:Dt<Cn,filled:$n,warning:Fn}),Un]})}function Stepper(dt){const{steps:ht,activeStep:Dt}=dt,Cn=useTheme();return jsxRuntimeExports.jsx(Stack$1,{sx:{width:"100%"},children:ht.map(($n,Un)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(StepperLabel,{index:Un+1,activeStep:Dt,filled:Cn.palette.mode==="light",warning:$n.warningLabel,children:jsxRuntimeExports.jsx("div",{children:$n.label})}),jsxRuntimeExports.jsx(StepperLabel$1,{index:Un+1,activeStep:Dt,last:Un+1===ht.length,warning:$n.warningLine,children:$n.component})]},Un))})}const BorderLinearProgress=styled$1(LinearProgress$1)(({theme:dt})=>({borderRadius:5,[`&.${linearProgressClasses$1.colorPrimary}`]:{backgroundColor:dt.palette.card.secondary},[`& .${linearProgressClasses$1.bar}`]:{borderRadius:5,backgroundColor:dt.palette.success[300]}})),useStyles$b=makeStyles()(dt=>({confirmations:{display:"flex",flexDirection:"column",justifyContent:"center",gap:"8px",marginTop:"16px"},confirmationsText:{textAlign:"center"}}));function Confirmations(dt){const{classes:ht}=useStyles$b(),{chain:Dt,blockHeight:Cn}=dt,$n=config$2.chains[Dt],Un=Cn+$n.finalityThreshold,[Fn,Hn]=reactExports.useState(0),{route:Gn,isInvalidVaa:Qn}=useSelector(jn=>jn.redeem);reactExports.useEffect(()=>{if($n.finalityThreshold===0)return;let jn=!1;return(async()=>{for(;0<Un&&!jn;){const Xn=await getCurrentBlock(dt.chain);jn||(Hn(Xn),await new Promise(ar=>setTimeout(ar,1e3)))}})(),()=>{jn=!0}},[Un,dt.chain,$n.finalityThreshold]);const qn=Fn>Un?0:Un-Fn,er=$n.finalityThreshold-qn,Wn=$n.finalityThreshold===0?100:Math.floor(er/$n.finalityThreshold*100);return jsxRuntimeExports.jsxs("div",{className:ht.confirmations,children:[jsxRuntimeExports.jsx(BorderLinearProgress,{variant:"determinate",value:Wn,color:"secondary"}),jsxRuntimeExports.jsx("div",{className:ht.confirmationsText,children:Wn<100?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[er," / ",$n.finalityThreshold," Confirmations"]}):Gn?Qn?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:["There are not enough valid signatures to repair the VAA ",jsxRuntimeExports.jsx("br",{})," ","Please reach out to Wormhole support on"," ",jsxRuntimeExports.jsx("a",{href:"https://discord.com/invite/wormholecrypto",target:"_blank",rel:"noreferrer",children:"Discord"})]}):RoutesConfig[Gn].pendingMessage:""})]})}const useStyles$a=makeStyles()(dt=>({link:{...LINK(dt),transform:"translateX(10px)"}}));function ExplorerLink(dt){const{classes:ht}=useStyles$a(),Dt=config$2.chains[dt.chain];let Cn;return dt.type==="tx"?Dt.key==="sui"?Cn=`${Dt.explorerUrl}txblock/${dt.txHash}`:Dt.key==="aptos"?Cn=`${Dt.explorerUrl}txn/${dt.txHash}`:Dt.key==="sei"?Cn=`${Dt.explorerUrl}transaction/${dt.txHash}`:Dt.key==="injective"?Cn=`${Dt.explorerUrl}transaction/${dt.txHash}`:Dt.key==="osmosis"?Cn=config$2.network==="testnet"?`${Dt.explorerUrl}txs/${dt.txHash}`:`${Dt.explorerUrl}transactions/${dt.txHash}`:Cn=`${Dt.explorerUrl}tx/${dt.txHash}`:dt.type==="address"&&(Dt.key==="aptos"?Cn=`${Dt.explorerUrl}account/${dt.address}`:Cn=`${Dt.explorerUrl}address/${dt.address}`),dt.type==="object"&&Dt.key==="sui"&&(Cn=`${Dt.explorerUrl}object/${dt.object}`),config$2.isMainnet||(Dt.key==="solana"&&(Cn+="?cluster=devnet"),Dt.key==="sui"&&(Cn+="?network=testnet"),Dt.key==="aptos"&&(Cn+="?network=testnet")),jsxRuntimeExports.jsxs("a",{className:ht.link,style:dt.styles,href:Cn,target:"_blank",rel:"noreferrer","data-testid":`${dt.side}-section-explorer-link`,children:[jsxRuntimeExports.jsx("div",{children:Dt.explorerName}),jsxRuntimeExports.jsx(default_1$2,{})]})}const useStyles$9=makeStyles()(dt=>({header:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingBottom:"8px",borderBottom:`0.5px solid ${dt.palette.divider}`,marginBottom:"8px"},left:{display:"flex",flexDirection:"row",alignItems:"center",fontSize:"16px",gap:"8px"},chainIcon:{height:"32px",width:"32px"}}));function Header(dt){const{classes:ht}=useStyles$9(),Dt=config$2.chains[dt.chain];return jsxRuntimeExports.jsxs("div",{className:ht.header,children:[jsxRuntimeExports.jsxs("div",{className:ht.left,children:[jsxRuntimeExports.jsx(TokenIcon,{icon:Dt.icon,height:32}),jsxRuntimeExports.jsx("div",{children:displayAddress(dt.chain,dt.address)}),jsxRuntimeExports.jsx(WalletIcon$1,{})]}),dt.loading?jsxRuntimeExports.jsx(CircularProgress$1,{size:26}):dt.text?jsxRuntimeExports.jsx("div",{"data-testid":`${dt.side}-section-scan-link-error-message`,children:dt.text}):dt.txHash&&jsxRuntimeExports.jsx(ExplorerLink,{chain:dt.chain,type:"tx",txHash:dt.txHash,side:dt.side})]})}function SendFrom(){const{txData:dt,route:ht,signedMessage:Dt}=useSelector(Gn=>Gn.redeem),Cn=useSelector(Gn=>Gn.redeem.transferComplete),{usdPrices:{data:$n}}=useSelector(Gn=>Gn.tokenPrices),Un=$n||{},[Fn,Hn]=reactExports.useState([]);return reactExports.useEffect(()=>{!dt||!ht||RouteOperator.getTransferSourceInfo(ht,{txData:dt,tokenPrices:Un}).then(Gn=>Hn(Gn))},[dt,ht,$n]),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(InputContainer,{children:[jsxRuntimeExports.jsx(Header,{chain:dt.fromChain,address:dt.sender,txHash:dt.sendTx,side:"source"}),jsxRuntimeExports.jsx(RenderRows,{rows:Fn})]}),!Cn&&!Dt&&jsxRuntimeExports.jsx(Confirmations,{chain:dt.fromChain,blockHeight:dt.block})]})}const useStyles$8=makeStyles()(dt=>({walletRow:{position:"relative",display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"16px 8px",transition:"background-color 0.4s",cursor:"pointer",fontSize:"16px","&:hover":{backgroundColor:dt.palette.options.select},"&:not(:last-child)":{borderBottom:`0.5px solid ${dt.palette.divider}`}},walletRowLeft:{display:"flex",flexDirection:"row",alignItems:"center",gap:"16px"},context:{opacity:"0.6"},notInstalled:{opacity:"60%"},noResults:{...CENTER,minHeight:"72px",maxWidth:"350px",margin:"auto",flexDirection:"column",marginBottom:"10px",gap:"8px"},noResultsTitle:{fontSize:"20px",fontWeight:"600"}})),FAILED_TO_LOAD_ERR="Failed to load wallets. Please refresh and try again.";function WalletsModal(dt){const ht=useTheme(),{classes:Dt}=useStyles$8(ht),{chain:Cn,type:$n}=dt,Un=useDispatch(),{fromChain:Fn,toChain:Hn}=useSelector(or=>or.transferInput),[Gn,Qn]=reactExports.useState({state:"loading"}),[qn,er]=reactExports.useState(""),Wn=reactExports.useMemo(()=>{const or=config$2.chainsArr.map(sr=>sr.context);return new Set(or)},[]);reactExports.useEffect(()=>{let or=!1;async function sr(){const vr=Cn||($n===TransferWallet.SENDING?Fn:Hn),hr=config$2.chains[vr];return Wn.has(hr.context)?await getWalletOptions(hr):[]}return(async()=>{try{const vr=await sr();!or&&vr&&Qn({state:"result",options:vr})}catch{Qn({state:"error",error:FAILED_TO_LOAD_ERR})}})(),()=>{or=!0}},[Fn,Hn,dt.chain,Cn,$n,Wn]);const jn=or=>{if(!or)return;const sr=or.target.value.toLowerCase();er(sr)},Zn=async or=>{const sr=$n===TransferWallet.SENDING?Fn:Hn;Un(setWalletModal(!1)),dt.onClose&&dt.onClose(),await connectWallet(dt.type,sr,or,Un)},Xn=or=>{const sr=or.sort(gr=>gr.isReady?-1:1),vr=({name:gr,type:ur})=>gr.toLowerCase().includes(qn)||ur.toLowerCase().includes(qn);return(qn?sr.filter(vr):sr).map((gr,ur)=>{const _r=gr.isReady,nr=_r?()=>Zn(gr):()=>window.open(gr.wallet.getUrl());return jsxRuntimeExports.jsxs("div",{className:Dt.walletRow,onClick:nr,children:[jsxRuntimeExports.jsxs("div",{className:Dt.walletRowLeft,children:[jsxRuntimeExports.jsx(WalletIcon,{name:gr.name,icon:gr.icon,height:32}),jsxRuntimeExports.jsxs("div",{className:`${!_r&&Dt.notInstalled}`,children:[!_r&&"Install"," ",gr.name]})]}),jsxRuntimeExports.jsx("div",{className:Dt.context,children:gr.type.toUpperCase()})]},ur)})},ar=()=>{dt.onClose?dt.onClose():Un(setWalletModal(!1))},dr=()=>{if(Gn.state==="loading")return jsxRuntimeExports.jsx(CircularProgress$1,{});if(Gn.state==="error")return jsxRuntimeExports.jsx(AlertBanner,{show:!0,content:Gn.error,error:!0});if(Gn.state==="result"){const{options:or}=Gn;if(or.length>0)return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Search,{placeholder:"Search",onChange:jn}),jsxRuntimeExports.jsx(Spacer,{height:16}),jsxRuntimeExports.jsx(Scroll,{height:"calc(100vh - 250px)",blendColor:ht.palette.modal.background,children:jsxRuntimeExports.jsx("div",{children:Xn(or)})})]})}return jsxRuntimeExports.jsxs("div",{className:Dt.noResults,children:[jsxRuntimeExports.jsx("div",{className:Dt.noResultsTitle,children:"No wallets detected"}),jsxRuntimeExports.jsx("div",{children:"Install a wallet extension to continue"})]})};return jsxRuntimeExports.jsxs(Modal,{open:!!dt.type,closable:!0,width:500,onClose:ar,children:[jsxRuntimeExports.jsx(Header$1,{text:"Connect wallet",size:28}),jsxRuntimeExports.jsx(Spacer,{height:16}),dr()]})}const InfoIcon=createSvgIcon$1(jsxRuntimeExports.jsx("path",{d:"M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21508 0.913451 7.4078C0.00519941 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6934 24 14.3734 24 12C23.9969 8.81834 22.7317 5.76787 20.4819 3.51809C18.2321 1.26832 15.1817 0.00305488 12 0ZM12 22.1538C9.99176 22.1538 8.02862 21.5583 6.35883 20.4426C4.68904 19.3269 3.38759 17.7411 2.61907 15.8857C1.85055 14.0303 1.64947 11.9887 2.04126 10.0191C2.43305 8.04943 3.40011 6.24019 4.82015 4.82015C6.24019 3.40011 8.04943 2.43305 10.0191 2.04126C11.9887 1.64947 14.0303 1.85055 15.8857 2.61907C17.7411 3.38759 19.3269 4.68903 20.4426 6.35882C21.5583 8.02861 22.1538 9.99176 22.1538 12C22.1508 14.692 21.08 17.2729 19.1765 19.1765C17.2729 21.08 14.692 22.1508 12 22.1538ZM13.8462 17.5385C13.8462 17.7833 13.7489 18.0181 13.5758 18.1912C13.4027 18.3643 13.1679 18.4615 12.9231 18.4615H12C11.7552 18.4615 11.5204 18.3643 11.3473 18.1912C11.1742 18.0181 11.0769 17.7833 11.0769 17.5385V12C10.8321 12 10.5973 11.9027 10.4242 11.7296C10.2511 11.5565 10.1538 11.3217 10.1538 11.0769C10.1538 10.8321 10.2511 10.5973 10.4242 10.4242C10.5973 10.2511 10.8321 10.1538 11.0769 10.1538H12C12.2448 10.1538 12.4796 10.2511 12.6527 10.4242C12.8258 10.5973 12.9231 10.8321 12.9231 11.0769V16.6154C13.1679 16.6154 13.4027 16.7126 13.5758 16.8857C13.7489 17.0589 13.8462 17.2936 13.8462 17.5385ZM10.3846 6.92308C10.3846 6.64922 10.4658 6.38152 10.618 6.15382C10.7701 5.92613 10.9864 5.74866 11.2394 5.64386C11.4924 5.53906 11.7708 5.51164 12.0394 5.56507C12.3079 5.61849 12.5547 5.75036 12.7483 5.944C12.9419 6.13765 13.0738 6.38436 13.1272 6.65295C13.1807 6.92154 13.1532 7.19994 13.0485 7.45294C12.9437 7.70595 12.7662 7.9222 12.5385 8.07434C12.3108 8.22649 12.0431 8.30769 11.7692 8.30769C11.402 8.30769 11.0498 8.16181 10.7902 7.90215C10.5305 7.64248 10.3846 7.2903 10.3846 6.92308Z",fill:"currentColor",fillOpacity:"0.9"}),"Info"),useStyles$7=makeStyles()(dt=>({flex:{display:"flex",alignItems:"center",marginLeft:"auto"},icon:{height:"14px",cursor:"pointer"}}));function SwitchToManualClaim({checked:dt,onChange:ht,disabled:Dt,title:Cn}){const{classes:$n}=useStyles$7();return jsxRuntimeExports.jsxs("div",{className:$n.flex,children:[!dt&&jsxRuntimeExports.jsx("span",{children:"Waiting for relayer. . ."}),jsxRuntimeExports.jsxs("div",{className:$n.flex,children:[jsxRuntimeExports.jsx("span",{children:"Switch to manual claim"}),jsxRuntimeExports.jsx(Tooltip$1,{title:Cn,arrow:!0,children:jsxRuntimeExports.jsx(InfoIcon,{className:$n.icon})}),jsxRuntimeExports.jsx(Switch,{checked:dt,onChange:Un=>ht(Un.target.checked),disabled:Dt})]})]})}function AssociatedTokenAlert(){const dt=useDispatch(),ht=useSelector(Un=>Un.redeem.txData),Dt=useSelector(Un=>Un.wallet.receiving),Cn=reactExports.useCallback(async()=>{const Un=config$2.tokens[ht.receivedTokenKey],Fn=(Un==null?void 0:Un.nativeChain)==="solana"?Un:getTokenById(ht.tokenId);if(!Fn)return;const Hn=getWrappedTokenId(Fn),Gn=await solanaContext().createAssociatedTokenAccount(Hn,Dt.address,"finalized");Gn&&(await signAndSendTransaction("solana",Gn,TransferWallet.RECEIVING),dt(setTxDetails({...ht,recipient:Dt.address})))},[ht,Dt.address,dt]),$n=jsxRuntimeExports.jsx(AssociatedTokenWarning,{createAssociatedTokenAccount:Cn});return jsxRuntimeExports.jsx(AlertBanner,{warning:!0,show:!!Dt.address,content:$n})}function SendTo(){const dt=useDispatch(),{redeemTx:ht,transferComplete:Dt,route:Cn,signedMessage:$n}=useSelector(yr=>yr.redeem),Un=useSelector(yr=>yr.redeem.txData),Fn=useSelector(yr=>yr.wallet.receiving),Hn=useSelector(yr=>yr.redeem.transferDestInfo),{usdPrices:{data:Gn}}=useSelector(yr=>yr.tokenPrices),Qn=Gn||{},[qn,er]=reactExports.useState(""),[Wn,jn]=reactExports.useState(!1),Zn=()=>{gr(!0)},Xn=reactExports.useCallback(()=>{if(!Un)return;const yr=Fn.address.toLowerCase(),Ir=Fn.currentAddress.toLowerCase(),Pr=Un.recipient.toLowerCase();return yr===Ir&&yr===Pr},[Fn,Un]),ar=reactExports.useCallback(yr=>{jn(yr)},[]),[dr,or]=reactExports.useState(!1),[sr,vr]=reactExports.useState(Xn()),[hr,gr]=reactExports.useState(!1),ur=reactExports.useCallback(async()=>{if(Cn){if(ht)return ht;if($n&&Cn){const yr=await RouteOperator.tryFetchRedeemTx(Cn,$n);if(yr)return dt(setRedeemTx(yr)),yr}}},[ht,Cn,$n,dt]);reactExports.useEffect(()=>{if(!Un||!Cn)return;(async()=>{let Ir;try{Ir=await ur()}catch(Br){console.error(`could not fetch redeem event:
525
525
  ${Br}`)}let Pr;Ir||(Pr=await estimateClaimGas(Cn,Un.toChain,$n)),dt(setTransferDestInfo(void 0));try{const Br=await RouteOperator.getTransferDestInfo(Cn,{txData:Un,tokenPrices:Qn,receiveTx:Ir,transferComplete:Dt,gasEstimate:Pr});dt(setTransferDestInfo(Br))}catch(Br){console.error(Br)}})()},[Dt,ur,Un,Cn,$n,dt,Gn]),reactExports.useEffect(()=>{vr(Xn())},[Fn,Xn]);const _r=reactExports.useMemo(()=>{if(!Cn)return!1;const yr=RouteOperator.getRoute(Cn);return yr.AUTOMATIC_DEPOSIT||isGatewayChain(Un.toChain)||Un.toChain==="sei"||isPorticoRoute(yr.TYPE)},[Cn,Un]),nr=async()=>{if(or(!0),er(""),!Cn)throw new Error("Unknown route, cannot claim");if(!Fn||!sr)throw er("Connect to receiving wallet"),new Error("Connect to receiving wallet");const yr=config$2.chains[Un.toChain];if(!yr)throw er("Your claim has failed, please try again"),new Error("invalid destination chain");let Ir;try{if(yr.context===Context.ETH&&typeof yr.chainId=="number"&&(await switchChain(yr.chainId,TransferWallet.RECEIVING),registerWalletSigner(Un.toChain,TransferWallet.RECEIVING)),!$n)throw new Error("failed to get vaa, cannot redeem");Ir=await RouteOperator.redeem(Cn,Un.toChain,$n,Fn.address),or(!1),er("")}catch(Pr){Pr.message===ContractIsPausedError.MESSAGE?er("The contract is paused, please try again later"):er("Your claim has failed, please try again"),or(!1),console.error(Pr)}if(Ir!==void 0){const Pr=RouteOperator.getRoute(Cn);if(isNttRoute(Pr.TYPE)&&$n&&isSignedNttMessage($n))try{const Br=Pr,rr=await Br.getInboundQueuedTransfer(Un.toChain,$n.recipientNttManager,$n.messageDigest);rr?dt(setInboundQueuedTransfer(rr)):await Br.isTransferCompleted(Un.toChain,$n)&&(dt(setRedeemTx(Ir)),dt(setTransferComplete(!0)))}catch(Br){console.error(Br)}else dt(setRedeemTx(Ir)),dt(setTransferComplete(!0))}},Sr=Un.recipient===""&&Un.toChain==="solana"&&Un.payloadID===PayloadType.Manual,Ar=_r?!Dt&&!Wn:dr&&!Dt,tr=Dt||_r?"":qn?"Error please retry . . .":"Claim below",Yn=!Dt&&(Cn===Route.Relay||isPorticoRoute(Cn));let fr="";Yn&&(fr="This option avoids the relayer fee but requires you to pay the gas fee on the destination chain.",Cn===Route.Relay&&(fr+=" You will not receive any native gas."));const{previewMode:Cr}=config$2;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs(InputContainer,{children:[jsxRuntimeExports.jsx(Header,{chain:Un.toChain,address:Un.recipient,loading:Ar,txHash:ht,text:tr,side:"destination"}),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:Yn&&jsxRuntimeExports.jsx(SwitchToManualClaim,{checked:Wn,onChange:ar,disabled:dr,title:fr})}),jsxRuntimeExports.jsx(RenderRows,{rows:(Hn==null?void 0:Hn.displayData)||[]})]}),Sr&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Spacer,{height:8}),jsxRuntimeExports.jsx(AssociatedTokenAlert,{})]}),!Dt&&(!_r||Wn)&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Spacer,{height:8}),jsxRuntimeExports.jsx(AlertBanner,{show:!!qn,content:qn,error:!0,margin:"0 0 12px 0",testId:"claim-error-message"}),Fn.address?sr?jsxRuntimeExports.jsx(Button,{onClick:nr,action:!0,disabled:Cr||dr,children:dr?jsxRuntimeExports.jsx(CircularProgress$1,{size:22}):"Claim"}):jsxRuntimeExports.jsxs(Button,{onClick:Zn,disabled:Cr,elevated:!0,children:["Connect to ",displayAddress(Un.toChain,Un.recipient)]}):jsxRuntimeExports.jsx(Button,{onClick:Zn,disabled:Cr,action:!0,children:"Connect wallet"})]}),hr&&jsxRuntimeExports.jsx(WalletsModal,{type:TransferWallet.RECEIVING,chain:Un.toChain,onClose:()=>gr(!1)})]})}const useStyles$6=makeStyles()(dt=>({addToken:{display:"flex",alignItems:"center",marginTop:"8px",flexDirection:"row"},addTokenText:{marginLeft:"8px"},addTokenLink:{textDecoration:"underline"}}));function AddToEVMWallet({token:dt,address:ht}){const Dt=useDispatch(),{classes:Cn}=useStyles$6(),$n=useSelector(Hn=>Hn.redeem.txData),Un=useSelector(Hn=>Hn.wallet[TransferWallet.RECEIVING]),Fn=async()=>{var Gn;if(!Un||!Un.address){Dt(setWalletModal(TransferWallet.RECEIVING));return}const Hn=(Gn=config$2.chains[$n.toChain])==null?void 0:Gn.chainId;!Hn||typeof Hn=="string"||(await switchChain(Hn,TransferWallet.RECEIVING),await watchAsset({address:ht,symbol:dt.symbol,decimals:getTokenDecimals(config$2.wh.toChainId($n.toChain),dt.tokenId||"native"),chainId:Hn},TransferWallet.RECEIVING))};return jsxRuntimeExports.jsx(Link$1,{onClick:Fn,href:"#",className:Cn.addTokenLink,children:jsxRuntimeExports.jsxs(Typography$1,{component:"span",gap:1,className:Cn.addToken,children:[jsxRuntimeExports.jsx(TokenIcon,{height:20,icon:dt.icon}),"Add ",getDisplayName(dt)," to your wallet"]})})}function AddToSolanaWallet({token:dt,address:ht}){const{classes:Dt}=useStyles$6();return jsxRuntimeExports.jsxs(Typography$1,{component:"span",className:Dt.addToken,children:[jsxRuntimeExports.jsx(TokenIcon,{height:20,icon:dt.icon}),jsxRuntimeExports.jsxs("span",{className:Dt.addTokenText,children:["See ",getDisplayName(dt)," token on"]}),jsxRuntimeExports.jsx(ExplorerLink,{styles:{marginLeft:-4},chain:"solana",type:"address",address:ht,side:"destination"})]})}function AddToSuiWallet({token:dt,address:ht}){const{classes:Dt}=useStyles$6();return jsxRuntimeExports.jsxs(Typography$1,{component:"span",className:Dt.addToken,children:[jsxRuntimeExports.jsx(TokenIcon,{height:20,icon:dt.icon}),jsxRuntimeExports.jsxs("span",{className:Dt.addTokenText,children:["See ",getDisplayName(dt)," token on"]}),jsxRuntimeExports.jsx(ExplorerLink,{styles:{marginLeft:-4},chain:"sui",type:"object",object:ht,side:"destination"})]})}function AddToAptosWallet({token:dt,address:ht}){const{classes:Dt}=useStyles$6(),Cn=ht.split("::")[0];return jsxRuntimeExports.jsxs(Typography$1,{component:"span",className:Dt.addToken,children:[jsxRuntimeExports.jsx(TokenIcon,{height:20,icon:dt.icon}),jsxRuntimeExports.jsxs("span",{className:Dt.addTokenText,children:["See ",getDisplayName(dt)," token on"]}),jsxRuntimeExports.jsx(ExplorerLink,{styles:{marginLeft:-4},chain:"aptos",type:"address",address:Cn,side:"destination"})]})}function AddToWallet(){var Gn,Qn,qn;const dt=useSelector(er=>er.redeem.txData),ht=useSelector(er=>er.redeem.route),Dt=useSelector(er=>er.redeem.transferDestInfo),[Cn,$n]=reactExports.useState(void 0),[Un,Fn]=reactExports.useState(void 0);reactExports.useEffect(()=>{(async()=>{if(isGatewayChain(dt.toChain))return;const Wn=isPorticoTransferDestInfo(Dt);if(ht&&isPorticoRoute(ht)&&!Wn)return;const jn=Wn?Dt.destTxInfo.receivedTokenKey:dt.receivedTokenKey,Zn=config$2.tokens[jn];if(!Zn)return;try{if(getChainConfig(dt.toChain).gasToken===Zn.key)return}catch(dr){console.error(dr)}const Xn=getWrappedToken(Zn);if(!Xn.tokenId)return;const ar=await config$2.wh.getForeignAsset(Xn.tokenId,dt.toChain);if(dt.toChain==="sui"&&ar){const or=await config$2.wh.getContext("sui").provider.getCoinMetadata({coinType:ar});Fn(or==null?void 0:or.id),$n(Xn);return}Fn(ar),$n(Xn)})().catch(Wn=>console.error("Failed to fetch token info",Wn))},[dt,ht,Dt]);const Hn=config$2.wh.toChainId(dt.toChain);return!Cn||!Un?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{}):isEVMChain$1(Hn)?jsxRuntimeExports.jsx(AddToEVMWallet,{address:Un,token:Cn}):Hn===((Gn=MAINNET_CHAINS.solana)==null?void 0:Gn.id)&&Cn.symbol!=="WSOL"?jsxRuntimeExports.jsx(AddToSolanaWallet,{address:Un,token:Cn}):Hn===((Qn=MAINNET_CHAINS.sui)==null?void 0:Qn.id)?jsxRuntimeExports.jsx(AddToSuiWallet,{address:Un,token:Cn}):Hn===((qn=MAINNET_CHAINS.aptos)==null?void 0:qn.id)&&Cn.symbol!=="APT"?jsxRuntimeExports.jsx(AddToAptosWallet,{address:Un,token:Cn}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}const useStyles$5=makeStyles()(dt=>({link:{color:dt.palette.text.primary,textDecoration:"underline",cursor:"pointer"},root:{display:"flex",gap:"8px",marginTop:dt.spacing(1)},warningIcon:{color:dt.palette.warning[500]}})),PorticoSwapFailed=({info:{swapFailed:dt,receivedTokenKey:ht}})=>{const{classes:Dt}=useStyles$5(),Cn=useSelector(er=>er.redeem.txData);if(!dt||!Cn)return null;const{canonicalTokenAddress:$n,finalTokenAddress:Un}=dt,{toChain:Fn}=Cn,Hn=getDisplayName(config$2.tokens[ht]),Qn=`The swap reverted on ${getChainConfig(Fn).displayName} and you received Wormhole Wrapped ${Hn} instead. You can retry the swap here:`,qn=`${OKU_TRADE_BASE_URL}/${Fn}/swap/${$n}/${Un}`;return jsxRuntimeExports.jsx("div",{className:Dt.root,children:jsxRuntimeExports.jsxs("div",{children:[Qn," ",jsxRuntimeExports.jsx("a",{href:qn,target:"_blank",rel:"noreferrer",className:Dt.link,children:"Oku Trade"})]})})};function BridgeComplete(){const dt=useDispatch(),ht=useSelector(Hn=>Hn.redeem.transferDestInfo),Dt=useTheme(),Cn=()=>{typeof window<"u"&&(window.location.href=config$2.cta.link)},$n=()=>{dt(setRoute("bridge"))};let Un,Fn=jsxRuntimeExports.jsx("div",{"data-testid":"transaction-complete-message",children:"The bridge is now complete."});return isPorticoTransferDestInfo(ht)&&ht.destTxInfo.swapFailed&&(Un=Dt.palette.warning[500]+OPACITY[25],Fn=jsxRuntimeExports.jsx(PorticoSwapFailed,{info:ht.destTxInfo})),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(InputContainer,{bg:Un,children:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Fn,!!config$2.cta&&jsxRuntimeExports.jsx("div",{children:"Click the button below to begin using your new assets."}),jsxRuntimeExports.jsx(AddToWallet,{})]})}),jsxRuntimeExports.jsx(Spacer,{}),config$2.cta?jsxRuntimeExports.jsx(Button,{onClick:Cn,action:!0,elevated:!0,children:config$2.cta.text}):jsxRuntimeExports.jsx(Button,{onClick:$n,action:!0,elevated:!0,children:"Bridge more assets"})]})}function MilestoneStepper(){const dt=useSelector(Fn=>Fn.redeem.signedMessage),ht=useSelector(Fn=>Fn.redeem.transferComplete),Dt=useSelector(Fn=>Fn.redeem.transferDestInfo);let Cn=!1;isPorticoTransferDestInfo(Dt)&&(Cn=!!Dt.destTxInfo.swapFailed);const $n=ht?4:dt?2:1,Un=[{label:"Send from",component:jsxRuntimeExports.jsx(SendFrom,{})},{label:"Send to",component:jsxRuntimeExports.jsx(SendTo,{}),warningLine:Cn},{label:"Transaction complete",component:jsxRuntimeExports.jsx(BridgeComplete,{}),warningLabel:Cn}];return jsxRuntimeExports.jsx(Stepper,{steps:Un,activeStep:$n})}const NttInboundQueued=()=>{var hr,gr,ur,_r;const dt=useDispatch(),ht=useTheme(),Dt=useSelector(nr=>nr.redeem.route),Cn=useSelector(nr=>nr.wallet.receiving),$n=useSelector(nr=>nr.redeem.signedMessage),Un=useSelector(nr=>nr.ntt.inboundQueuedTransfer),Fn=reactExports.useCallback(()=>{if(!isSignedNttMessage($n))return;const nr=Cn.address.toLowerCase(),Sr=Cn.currentAddress.toLowerCase();return nr===Sr},[Cn,$n]),[Hn,Gn]=reactExports.useState(!1),[Qn,qn]=reactExports.useState(""),[er,Wn]=reactExports.useState(Fn()),[jn,Zn]=reactExports.useState(!1),[Xn,ar]=reactExports.useState(!1),[dr,or]=reactExports.useState("");reactExports.useEffect(()=>{if(!Un.data){ar(!0),or("");return}const nr=new Date(Un.data.rateLimitExpiryTimestamp*1e3);or(nr.toLocaleString());const Sr=new Date;if(Sr<nr){ar(!1);const Ar=setTimeout(()=>ar(!0),nr.getTime()-Sr.getTime());return()=>clearTimeout(Ar)}else ar(!0)},[Un]);const sr=()=>{Zn(!0)};reactExports.useEffect(()=>{Wn(Fn())},[Cn,Fn]);const vr=reactExports.useCallback(async()=>{if(!isSignedNttMessage($n))return;const{toChain:nr,recipientNttManager:Sr,messageDigest:Ar,recipient:tr}=$n;Gn(!0);const Yn=Dt===Route.NttManual?new NttManual:new NttRelay;let fr;try{const Cr=config$2.chains[nr];(Cr==null?void 0:Cr.context)===Context.ETH&&(await switchChain(Cr.chainId,TransferWallet.RECEIVING),registerWalletSigner(nr,TransferWallet.RECEIVING)),fr=await Yn.completeInboundQueuedTransfer(nr,Sr,Ar,tr,Cn.address)}catch(Cr){switch(Cr.message){case InboundQueuedTransferNotFoundError.MESSAGE:case InboundQueuedTransferStillQueuedError.MESSAGE:case ContractIsPausedError.MESSAGE:qn(Cr.message);break;default:qn("Error with transfer, please try again");break}console.error(Cr)}if(fr!==void 0)try{if(!await Yn.getInboundQueuedTransfer(nr,Sr,Ar)){dt(setInboundQueuedTransfer(void 0)),dt(setRedeemTx(fr));const yr=await Yn.isTransferCompleted(nr,$n);dt(setTransferComplete(yr))}}catch(Cr){console.error(Cr)}Gn(!1)},[$n,Cn,Dt]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(InputContainer,{bg:ht.palette.warning[500]+OPACITY[25],children:jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Header,{chain:$n.toChain,address:$n.recipient,side:"destination"}),Xn?jsxRuntimeExports.jsx("div",{children:`Your transfer to ${((ur=config$2.chains[$n.toChain])==null?void 0:ur.displayName)||"UNKNOWN"} was delayed due to rate limits configured by ${((_r=config$2.tokens[$n.receivedTokenKey])==null?void 0:_r.symbol)||"UNKNOWN"}. You will need to submit a new transaction to complete your transfer.`}):jsxRuntimeExports.jsx("div",{children:`Your transfer to ${((hr=config$2.chains[$n.toChain])==null?void 0:hr.displayName)||"UNKNOWN"} is delayed due to rate limits configured by ${((gr=config$2.tokens[$n.receivedTokenKey])==null?void 0:gr.symbol)||"UNKNOWN"}. After the delay ends on ${dr||"UNKNOWN"}, you will need to return to submit a new transaction to complete your transfer.`})]})}),jsxRuntimeExports.jsx(Spacer,{height:8}),jsxRuntimeExports.jsx(AlertBanner,{show:!!Qn,content:Qn,error:!0,margin:"0 0 12px 0"}),Cn.address?er?jsxRuntimeExports.jsx(Button,{onClick:vr,action:!0,disabled:Hn||!Xn,children:Hn?jsxRuntimeExports.jsx(CircularProgress$1,{size:22}):"Complete transfer"}):jsxRuntimeExports.jsx(Button,{onClick:sr,elevated:!0,disabled:!Xn,children:"Connect wallet"}):jsxRuntimeExports.jsx(Button,{onClick:sr,action:!0,disabled:!Xn,children:"Connect wallet"}),jn&&jsxRuntimeExports.jsx(WalletsModal,{type:TransferWallet.RECEIVING,chain:$n.toChain,onClose:()=>Zn(!1)})]})},useStyles$4=makeStyles()(dt=>({root:{display:"flex",flexDirection:"column",gap:"8px",marginTop:dt.spacing(1)},link:{color:dt.palette.text.primary,textDecoration:"underline",cursor:"pointer"},revertString:{wordWrap:"break-word"}})),RelayerDeliveryFailed=()=>{const{classes:dt}=useStyles$4(),ht=useTheme(),Dt=useSelector(Un=>Un.redeem.txData),Cn=useSelector(Un=>Un.redeem.redeemTx),$n=getChainConfig(Dt.toChain).displayName;return jsxRuntimeExports.jsxs(InputContainer,{bg:ht.palette.warning[500]+OPACITY[25],children:[jsxRuntimeExports.jsx(Header,{chain:Dt.toChain,address:Dt.recipient,txHash:Cn,side:"destination"}),jsxRuntimeExports.jsxs("div",{className:dt.root,children:[jsxRuntimeExports.jsx(Typography$1,{children:`Your transfer failed to be delivered on ${$n}.`}),jsxRuntimeExports.jsxs(Typography$1,{children:["Please reach out to the Wormhole community on"," ",jsxRuntimeExports.jsx("a",{href:"https://discord.com/invite/wormholecrypto",target:"_blank",rel:"noreferrer",className:dt.link,children:"Discord"})," ","if you have questions."]})]})]})},SEND_FROM_STEP=1,SEND_TO_STEP=2,TRANSACTION_COMPLETE_STEP=4;function NttStepper(){const dt=useSelector(Qn=>Qn.redeem.signedMessage),ht=useSelector(Qn=>Qn.redeem.deliveryStatus),Dt=useSelector(Qn=>Qn.redeem.transferComplete),Cn=useSelector(Qn=>Qn.ntt.inboundQueuedTransfer),$n=ht===DeliveryStatus.ReceiverFailure,Un=!!Cn.data,Fn=Un||$n,Hn=Dt?TRANSACTION_COMPLETE_STEP:dt||$n?SEND_TO_STEP:SEND_FROM_STEP,Gn=[{label:"Send from",component:jsxRuntimeExports.jsx(SendFrom,{}),warningLine:Fn},{label:"Send to",component:$n?jsxRuntimeExports.jsx(RelayerDeliveryFailed,{}):Un?jsxRuntimeExports.jsx(NttInboundQueued,{}):jsxRuntimeExports.jsx(SendTo,{}),warningLabel:Fn},{label:"Transaction complete",component:jsxRuntimeExports.jsx(BridgeComplete,{})}];return jsxRuntimeExports.jsx(Stepper,{steps:Gn,activeStep:Hn})}const useStyles$3=makeStyles()(dt=>({link:{color:dt.palette.text.primary,textDecoration:"underline",cursor:"pointer"}})),GovernorEnqueuedWarning=dt=>{const{classes:ht}=useStyles$3(),Dt=config$2.chains[dt.chain],Cn=jsxRuntimeExports.jsxs("div",{children:[`This transfer will take 24 hours to complete as Wormhole has reached the
526
526
  daily transfer limit for ${Dt==null?void 0:Dt.displayName}.`," ",jsxRuntimeExports.jsx("a",{href:GOVERNOR_WHITEPAPER_URL,target:"_blank",rel:"noopener noreferrer",className:ht.link,children:"Learn more"})," ","about this temporary security measure."]});return jsxRuntimeExports.jsx(AlertBanner,{show:!!dt.show,content:Cn,error:!0,margin:"0 0 24px 0"})},RETRY_DELAY$1=15e3,useDeliveryStatus=()=>{const dt=useDispatch(),ht=useSelector(Cn=>Cn.redeem.route),Dt=useSelector(Cn=>Cn.redeem.signedMessage);reactExports.useEffect(()=>{if(!Dt||ht!==Route.NttRelay||!isEvmChain(Dt.toChain)||!isEvmChain(Dt.fromChain))return;const{emitterChain:Cn,emitterAddress:$n,sequence:Un}=getEmitterAndSequence(Dt),Fn=`https://api.${config$2.isMainnet?"":"testnet."}wormholescan.io/api/v1/relays`;let Hn=!0;return(async()=>{var Qn;for(;Hn;){try{const qn=await axios$1.get(`${Fn}/${Cn}/${$n}/${Un}`);if(Hn){const{delivery:er,toTxHash:Wn}=((Qn=qn.data)==null?void 0:Qn.data)||{};er!=null&&er.execution&&dt(setDeliveryStatus(er.execution.status)),Wn&&dt(setRedeemTx(Wn));break}}catch(qn){(!axios$1.isAxiosError(qn)||qn.status!==404)&&console.error(qn)}Hn&&await sleep(RETRY_DELAY$1)}})(),()=>{Hn=!1}},[Dt,ht])},RETRY_DELAY=15e3,useCheckInboundQueuedTransfer=()=>{const dt=useDispatch(),ht=useSelector($n=>$n.redeem.route),Dt=useSelector($n=>$n.redeem.signedMessage),Cn=useSelector($n=>$n.redeem.transferComplete);reactExports.useEffect(()=>{if(dt(resetInboundQueuedTransfer()),!ht||!isNttRoute(ht)||!Dt||!isSignedNttMessage(Dt)||Cn)return;const{toChain:$n,recipientNttManager:Un,messageDigest:Fn}=Dt,Hn=RouteOperator.getRoute(ht);let Gn=!0;return(async()=>{for(;Gn;){try{const qn=await Hn.getInboundQueuedTransfer($n,Un,Fn);Gn&&dt(setInboundQueuedTransfer(qn))}catch(qn){console.error(qn)}Gn&&await sleep(RETRY_DELAY)}})(),()=>{Gn=!1}},[ht,Cn,Dt])};function Redeem({setSignedMessage:dt,setIsVaaEnqueued:ht,setInvalidVaa:Dt,setTransferComplete:Cn,txData:$n,transferComplete:Un,isVaaEnqueued:Fn,route:Hn,signedMessage:Gn}){return useConfirmBeforeLeaving(!Un),reactExports.useEffect(()=>{if(!($n!=null&&$n.sendTx)||!$n.emitterAddress||Gn||isNttRoute(Hn))return;let Qn=!1;return(async()=>{for(;!Qn;){let qn=!1;try{qn=await fetchIsVAAEnqueued($n)}catch(er){console.error(er)}Qn||(ht(qn),await sleep(3e4))}})(),()=>{Qn=!0}},[$n,Gn,Hn,ht]),reactExports.useEffect(()=>{if(!Hn||!($n!=null&&$n.sendTx)||Un)return;let Qn=!1;return(async()=>{let qn=0,er;for(;er===void 0&&!Qn;){try{er=await RouteOperator.getSignedMessage(Hn,$n)}catch(Wn){(Wn==null?void 0:Wn.message)===INVALID_VAA_MESSAGE&&(console.error(Wn),Dt(!0),Qn=!0),er=void 0}if(Qn)return;er!==void 0?dt(er):await sleep(qn<10?3e3:3e4),qn++}})(),()=>{Qn=!0}},[$n,Hn,dt,Un]),reactExports.useEffect(()=>{if(!Hn||!($n!=null&&$n.toChain)||!Gn||Un)return;let Qn=!1;return(async()=>{let qn=0,er=!1;for(;!er&&!Qn;){try{er=await RouteOperator.isTransferCompleted(Hn,$n.toChain,Gn)}catch(Wn){console.error(Wn)}if(Qn)return;er?Cn():await sleep(qn<10?3e3:3e4),qn++}})(),()=>{Qn=!0}},[Hn,$n,Un,Cn,Gn]),useCheckInboundQueuedTransfer(),useDeliveryStatus(),$n!=null&&$n.fromChain?jsxRuntimeExports.jsxs("div",{style:{width:"100%",maxWidth:"700px",display:"flex",flexDirection:"column",alignItems:"center"},children:[jsxRuntimeExports.jsx(PageHeader,{title:"Bridge",back:!0,showHamburgerMenu:config$2.showHamburgerMenu,testId:"redeem-screen-header"}),jsxRuntimeExports.jsx(ChainsTag,{}),jsxRuntimeExports.jsx(Spacer,{}),jsxRuntimeExports.jsx(GovernorEnqueuedWarning,{show:!Gn&&Fn,chain:$n.fromChain}),isNttRoute(Hn)?jsxRuntimeExports.jsx(NttStepper,{}):jsxRuntimeExports.jsx(MilestoneStepper,{})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}function mapStateToProps(dt){const{txData:ht,transferComplete:Dt,isVaaEnqueued:Cn,isInvalidVaa:$n,route:Un,signedMessage:Fn}=dt.redeem;return{txData:ht,transferComplete:Dt,isVaaEnqueued:Cn,isInvalidVaa:$n,route:Un,signedMessage:Fn}}const mapDispatchToProps=dt=>({setSignedMessage:ht=>dt(setSignedMessage(ht)),setIsVaaEnqueued:ht=>dt(setIsVaaEnqueued(ht)),setInvalidVaa:ht=>dt(setInvalidVaa(ht)),setTransferComplete:()=>dt(setTransferComplete(!0))}),Redeem$1=connect(mapStateToProps,mapDispatchToProps)(Redeem),useStyles$2=makeStyles()(()=>({terms:{width:"100%",maxWidth:"700px",display:"flex",flexDirection:"column",alignItems:"center"},body:{textAlign:"left",display:"flex",flexDirection:"column",gap:"8px",fontWeight:"300"}}));function Terms(){const{classes:dt}=useStyles$2();return jsxRuntimeExports.jsxs("div",{className:dt.terms,children:[jsxRuntimeExports.jsx(PageHeader,{title:"Terms",back:!0,showHamburgerMenu:config$2.showHamburgerMenu}),jsxRuntimeExports.jsxs("div",{className:dt.body,children:[jsxRuntimeExports.jsx("div",{children:"Disclaimer:"}),jsxRuntimeExports.jsx("div",{children:`The operator (the "Operator") of this website or mobile application has implemented, deployed, and is operating open source software (the "SDK") that overlays the Wormhole protocol, a cross chain messaging protocol. THIS SDK AND THE WORMHOLE PROTOCOL ARE MADE AVAILABLE "AS IS", AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND. By using or accessing this SDK or the Wormhole protocol, you and the Operator agree that no developer or entity involved in creating, deploying, maintaining, operating this SDK or the Wormhole protocol, or causing or supporting any of the foregoing, will be liable in any manner for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of this SDK or the Wormhole protocol, or this SDK or the Wormhole protocol themselves, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value. By using or accessing this SDK, you represent that you are not subject to sanctions or otherwise designated on any list of prohibited or restricted parties or excluded or denied persons, including but not limited to the lists maintained by the United States' Department of Treasury's Office of Foreign Assets Control, the United Nations Security Council, the European Union or its Member States, or any other government authority.`}),jsxRuntimeExports.jsx("div",{children:"You assume all risks associated with using the SDK, the Wormhole protocol, and digital assets and decentralized systems generally, including but not limited to, that: (a) digital assets are highly volatile; (b) using digital assets is inherently risky due to both features of such assets and the potential unauthorized acts of third parties; (c) you may not have ready access to assets; and (d) you may lose some or all of your tokens or other assets. You agree that you will have no recourse against anyone else for any losses due to the use of the SDK or the Wormhole protocol. For example, these losses may arise from or relate to: (i) incorrect information; (ii) software or network failures; (iii) corrupted cryptocurrency wallet files; (iv) unauthorized access; (v) errors, mistakes, or inaccuracies; or (vi) third-party activities."})]}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx(FooterNavBar,{})]})}function useExternalSearch(){const[dt,ht]=reactExports.useState(!1),[Dt,Cn]=reactExports.useState(),[$n,Un]=reactExports.useState();return reactExports.useEffect(()=>{var Fn,Hn;if((Fn=config$2.searchTx)!=null&&Fn.chainName&&((Hn=config$2.searchTx)!=null&&Hn.txHash)){const Gn=coalesceChainName(config$2.searchTx.chainName);config$2.chainsArr.filter(qn=>qn.key!=="wormchain").map(qn=>qn.key).includes(Gn)&&(ht(!0),Cn(config$2.searchTx.txHash),Un(Gn))}},[]),{hasExternalSearch:dt,txHash:Dt,chainName:$n,clear:()=>{ht(!1),Cn(void 0),Un(void 0),config$2.searchTx&&(config$2.searchTx.chainName=void 0,config$2.searchTx.txHash=void 0)}}}const useStyles$1=makeStyles()(dt=>({container:{maxWidth:"650px"},chain:{width:"175px",[dt.breakpoints.down("sm")]:{width:"100%"}},inputs:{display:"flex",flexDirection:"row",gap:"16px",[dt.breakpoints.down("sm")]:{flexDirection:"column"}},search:{flexGrow:1},footerNavBar:{width:"100%",maxWidth:"700px",display:"flex",flexDirection:"column",alignItems:"center",marginTop:"20px"}})),EMPTY="";function TxSearch(){const{classes:dt}=useStyles$1(),ht=useDispatch(),[Dt,Cn]=reactExports.useState({chain:EMPTY,tx:EMPTY,autoSearch:!1}),[$n,Un]=reactExports.useState(""),[Fn,Hn]=reactExports.useState(!1);function Gn(ar){Cn(dr=>({...dr,chain:ar.target.value}))}function Qn(ar){Cn(dr=>({...dr,tx:ar.target.value}))}async function qn(){if(!Dt.tx||!Dt.chain)return Un("Enter the source chain and transaction ID");if(!isValidTxId(Dt.chain,Dt.tx))return Un("Invalid transaction ID");try{Hn(!0);const ar=await RouteOperator.getRouteFromTx(Dt.tx,Dt.chain),dr=await RouteOperator.getMessage(ar,Dt.tx,Dt.chain);Un(""),ht(setTxDetails(dr)),ht(setRoute$1(ar)),ht(setRoute("redeem")),ht(setToChain(dr.toChain))}catch(ar){console.error(ar),Un("Bridge transaction not found, check that you have the correct chain and transaction ID")}finally{Hn(!1)}}const{hasExternalSearch:er,txHash:Wn,chainName:jn,clear:Zn}=useExternalSearch();reactExports.useEffect(()=>{const ar=!!(er&&Wn&&jn);ar&&(Cn({chain:jn,tx:Wn,autoSearch:ar}),Zn())},[er,Wn,jn,Zn]);const Xn=reactExports.useCallback(()=>qn(),[Dt]);return reactExports.useEffect(()=>{const{chain:ar,tx:dr,autoSearch:or}=Dt;or&&ar!==EMPTY&&dr!==EMPTY&&!Fn&&(Cn(sr=>({...sr,autoSearch:!1})),Xn())},[Xn,Dt,Fn]),jsxRuntimeExports.jsxs("div",{className:dt.container,children:[jsxRuntimeExports.jsx(PageHeader,{title:"Resume transaction",description:"Bridging can require a manual redemption process on the designation chain. If you did not complete the redemption during your initial transaction, you may do so here.",showHamburgerMenu:config$2.showHamburgerMenu,back:!0}),jsxRuntimeExports.jsxs("div",{className:dt.inputs,children:[jsxRuntimeExports.jsx("div",{className:dt.chain,children:jsxRuntimeExports.jsxs(Select$2,{sx:{width:"100%",height:"100%",minHeight:"64.5px"},value:Dt.chain,displayEmpty:!0,placeholder:"Select network",onChange:ar=>Gn(ar),children:[jsxRuntimeExports.jsx(MenuItem$1,{disabled:!0,value:"",children:"Select network"},0),config$2.chainsArr.filter(ar=>ar.key!=="wormchain").map((ar,dr)=>jsxRuntimeExports.jsx(MenuItem$1,{value:ar.key,children:ar.displayName},dr+1))]})}),jsxRuntimeExports.jsx("div",{className:dt.search,children:jsxRuntimeExports.jsx(Search,{placeholder:"Source chain transaction hash",onChange:Qn,onSearch:qn,value:Dt.tx})})]}),jsxRuntimeExports.jsx(Spacer,{}),jsxRuntimeExports.jsx(AlertBanner,{show:!!$n,content:$n,error:!0,margin:"0 0 16px 0"}),jsxRuntimeExports.jsx(Button,{disabled:!Dt.chain||!Dt.tx,elevated:!0,onClick:qn,children:Fn?jsxRuntimeExports.jsx(CircularProgress$1,{size:24}):"Search"}),config$2.showHamburgerMenu?null:jsxRuntimeExports.jsx("div",{className:dt.footerNavBar,children:jsxRuntimeExports.jsx(FooterNavBar,{})})]})}const useStyles=makeStyles()(dt=>({appContent:{textAlign:"left",margin:"40px auto",maxWidth:"900px",width:"100%",display:"flex",justifyContent:"center",padding:"16px",fontFamily:dt.palette.font.primary,[dt.breakpoints.down("sm")]:{margin:"0 auto"}}}));function AppRouter({config:dt}){const{classes:ht}=useStyles(),Dt=useDispatch();React.useEffect(()=>{dt&&(setConfig(dt),Dt(clearTransfer()))},[]);const Cn=useSelector(Hn=>Hn.router.showWalletModal),$n=useSelector(Hn=>Hn.router.route),Un=usePrevious($n),{hasExternalSearch:Fn}=useExternalSearch();return reactExports.useEffect(()=>{const Hn="redeem",Gn="bridge";Un===Hn&&$n!==Hn&&(Dt(clearRedeem()),Dt(clearWallets()),Dt(clearNtt()),config$2.wh.registerProviders()),Un===Gn&&$n!==Gn&&(Dt(clearTransfer()),Dt(clearPorticoBridge()))},[$n,Un,Dt]),reactExports.useEffect(()=>{Fn&&(Dt(clearRedeem()),Dt(setRoute("search")))},[Fn,Dt]),jsxRuntimeExports.jsxs("div",{className:ht.appContent,children:[Cn&&jsxRuntimeExports.jsx(WalletsModal,{type:Cn}),$n==="bridge"&&jsxRuntimeExports.jsx(Bridge,{}),$n==="redeem"&&jsxRuntimeExports.jsx(Redeem$1,{}),$n==="search"&&jsxRuntimeExports.jsx(TxSearch,{}),$n==="terms"&&jsxRuntimeExports.jsx(Terms,{}),$n==="faq"&&jsxRuntimeExports.jsx(FAQ,{})]})}const light={mode:"light",primary:{50:"#161718",100:"#2d2e30",200:"#444548",300:"#5b5c60",400:"#727479",500:"#898b91",600:"#a0a2a9",700:"#b7b9c1",800:"#ced0d9",900:"#E5E8F2",A100:"#ceced1",A200:"#9d9ea4",A400:"#535660",A700:"#0a0e1c"},secondary:grey$1,divider:"#a0a2a9",background:{default:"#E5E8F2"},text:{primary:grey$1[900],secondary:grey$1[800]},error:red$1,info:{50:"#d1e3f9",100:"#c8def7",200:"#bfd8f6",300:"#b6d3f5",400:"#adcdf4",500:"#A4C8F3",600:"#93b4da",700:"#83a0c2",800:"#728caa",900:"#627891",A100:"#A4C8F3",A200:"#A4C8F3",A400:"#A4C8F3",A700:"#A4C8F3"},success:green$1,warning:orange$1,button:{primary:"#ffffff",primaryText:grey$1[900],disabled:"#c8cad1",disabledText:grey$1[800],action:"#F3A01E",actionText:"#000000",hover:"#b7b9c1"},options:{hover:"#f9f9fb",select:"#F0F0F5"},card:{background:"#ffffff",elevation:"10px 10px 30px 15px #CCD2E7",secondary:"#F0F0F5"},popover:{background:"#ffffff",elevation:"10px 10px 30px 15px #CCD2E7",secondary:"#F0F0F5"},modal:{background:"#ffffff"},font:{primary:'"Inter", sans-serif',header:'"IBM Plex Mono", monospace'}},dark={mode:"dark",primary:grey$1,secondary:grey$1,divider:"#ffffff"+OPACITY[20],background:{default:"black"},text:{primary:"#ffffff",secondary:grey$1[500]},error:red$1,info:{50:"#97a5b7",100:"#8293a9",200:"#6e819a",300:"#596f8c",400:"#445d7e",500:"#304C70",600:"#2b4464",700:"#263c59",800:"#21354e",900:"#1c2d43",A100:"#304C70",A200:"#304C70",A400:"#304C70",A700:"#304C70"},success:{50:"#66d6cd",100:"#4dcfc4",200:"#33c8bc",300:"#1ac1b4",400:"#01BBAC",500:"#00a89a",600:"#009589",700:"#008278",800:"#007067",900:"#005d56",A100:"#00a89a",A200:"#00a89a",A400:"#00a89a",A700:"#00a89a"},warning:{50:"#ffe3a4",100:"#ffdd91",200:"#ffd77f",300:"#ffd26d",400:"#ffcc5b",500:"#FFC749",600:"#e5b341",700:"#cc9f3a",800:"#b28b33",900:"#99772b",A100:"#FFC749",A200:"#FFC749",A400:"#FFC749",A700:"#FFC749"},button:{primary:"#ffffff"+OPACITY[10],primaryText:"#ffffff",disabled:"#ffffff"+OPACITY[7],disabledText:"#ffffff"+OPACITY[40],action:"#ffffff",actionText:"#000000",hover:"#ffffff"+OPACITY[7]},options:{hover:"#ffffff"+OPACITY[7],select:"#ffffff"+OPACITY[10]},card:{background:"#ffffff"+OPACITY[5],secondary:"#ffffff"+OPACITY[5],elevation:"none"},popover:{background:"#1b2033",secondary:"#ffffff"+OPACITY[5],elevation:"none"},modal:{background:"#0F1024"},font:{primary:'"Inter", sans-serif',header:'"IBM Plex Mono", monospace'}},getDesignTokens=dt=>{const ht=(dt==null?void 0:dt.mode)==="light"?light:dark,Dt=Object.assign(ht,dt);return createTheme({components:{MuiPaper:{styleOverrides:{root:{background:Dt.modal.background+" !important"}}},MuiCollapse:{styleOverrides:{root:{width:"100%"}}}},breakpoints:{values:{xs:300,sm:500,md:650,lg:900,xl:1200}},palette:{...Dt}})};class ErrorBoundary extends React.Component{constructor(ht){super(ht),this.state={hasError:!1}}static getDerivedStateFromError(ht){return{hasError:!0}}componentDidCatch(ht,Dt){console.error(ht,Dt)}render(){return this.state.hasError?jsxRuntimeExports.jsx(Card$1,{children:jsxRuntimeExports.jsx(Typography$1,{variant:"h5",style:{textAlign:"center",marginTop:24,marginBottom:24},children:"An unexpected error has occurred. Please refresh the page."})}):this.props.children}}function WormholeConnect({config:dt,theme:ht}){const Dt=reactExports.useMemo(()=>createTheme(getDesignTokens(ht??dark)),[ht]);return jsxRuntimeExports.jsx(Provider$1,{store,children:jsxRuntimeExports.jsx(ThemeProvider,{theme:Dt,children:jsxRuntimeExports.jsx(ScopedCssBaseline$1,{enableColorScheme:!0,children:jsxRuntimeExports.jsx(ErrorBoundary,{children:jsxRuntimeExports.jsx(AppRouter,{config:dt})})})})})}const container=document.getElementById("wormhole-connect");if(!container)throw new Error('Could not find an element with id "wormhole-connect". Please add one to use the Connect widget.');let config,theme;try{let dt=container.getAttribute("data-config");dt||(dt=container.getAttribute("config"),dt&&console.warn(`Wormhole Connect: please provide your custom config as a "data-config" attribute. Providing it as a "config" attribute won't be supported in future versions.
527
527
  See the README for examples: https://www.npmjs.com/package/@wormhole-foundation/wormhole-connect`)),dt&&(config=JSON.parse(dt),config!=null&&config.customTheme&&(console.warn(`Wormhole Connect: please provide your custom theme as a "data-theme" attribute. Providing it in your "config" attribute won't be supported in future versions.