1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9218],{97670:function(e,f,t){"use strict";let a,n,i,s,r,o,d,c,b,l,p,u,y,m,g,h,_,T,v,D,M,S,w,x,C,I,L,k,E,R,A,B,P,O,N,V,z,F,$,q,G,H,j,U,Q,W,K,Y,J,X;Object.defineProperty(f,"__esModule",{value:!0}),f.getContractArtifact=void 0;try{a=t(80283)}catch(e){}try{n=t(26812)}catch(e){}try{i=t(39764)}catch(e){}try{s=t(34495)}catch(e){}try{r=t(55417)}catch(e){}try{o=t(76670)}catch(e){}try{d=t(7901)}catch(e){}try{c=t(45493)}catch(e){}try{b=t(22374)}catch(e){}try{l=t(71750)}catch(e){}try{p=t(91679)}catch(e){}try{u=t(25999)}catch(e){}try{y=t(48842)}catch(e){}try{m=t(57140)}catch(e){}try{g=t(80196)}catch(e){}try{h=t(34549)}catch(e){}try{_=t(1273)}catch(e){}try{T=t(17698)}catch(e){}try{v=t(64785)}catch(e){}try{D=t(12420)}catch(e){}try{M=t(11599)}catch(e){}try{S=t(8354)}catch(e){}try{w=t(69018)}catch(e){}try{x=t(29766)}catch(e){}try{C=t(62673)}catch(e){}try{I=t(13624)}catch(e){}try{L=t(21023)}catch(e){}try{k=t(71425)}catch(e){}try{E=t(64399)}catch(e){}try{R=t(74103)}catch(e){}try{A=t(36764)}catch(e){}try{B=t(24054)}catch(e){}try{P=t(7849)}catch(e){}try{O=t(47981)}catch(e){}try{N=t(76915)}catch(e){}try{V=t(65902)}catch(e){}try{z=t(87849)}catch(e){}try{F=t(31298)}catch(e){}try{$=t(51652)}catch(e){}try{q=t(76134)}catch(e){}try{G=t(57474)}catch(e){}try{H=t(61256)}catch(e){}try{j=t(32045)}catch(e){}try{U=t(6760)}catch(e){}try{Q=t(93523)}catch(e){}try{W=t(16957)}catch(e){}try{K=t(71775)}catch(e){}try{Y=t(62671)}catch(e){}try{J=t(71869)}catch(e){}try{X=t(64441)}catch(e){}f.getContractArtifact=e=>({iL1ChugSplashDeployer:a,L1ChugSplashProxy:n,AddressDictator:i,ChugSplashDictator:s,IL1CrossDomainMessenger:r,IL1ERC20Bridge:o,IL1StandardBridge:d,L1CrossDomainMessenger:c,L1StandardBridge:b,CanonicalTransactionChain:l,ChainStorageContainer:p,ICanonicalTransactionChain:u,IChainStorageContainer:y,IStateCommitmentChain:m,StateCommitmentChain:g,BondManager:h,IBondManager:_,IL2CrossDomainMessenger:T,IL2ERC20Bridge:v,L2CrossDomainMessenger:D,L2StandardBridge:M,L2StandardTokenFactory:S,iOVM_L1BlockNumber:w,iOVM_L2ToL1MessagePasser:x,OVM_DeployerWhitelist:C,OVM_ETH:I,OVM_GasPriceOracle:L,OVM_L2ToL1MessagePasser:k,OVM_SequencerFeeVault:E,WETH9:R,CrossDomainEnabled:A,ICrossDomainMessenger:B,Lib_CrossDomainUtils:P,Lib_OVMCodec:O,Lib_DefaultValues:N,Lib_PredeployAddresses:V,Lib_AddressManager:z,Lib_AddressResolver:F,Lib_ResolvedDelegateProxy:$,Lib_RLPReader:q,Lib_RLPWriter:G,Lib_MerkleTrie:H,Lib_SecureMerkleTrie:j,Lib_Buffer:U,Lib_Bytes32Utils:Q,Lib_BytesUtils:W,Lib_MerkleTree:K,AddressAliasHelper:Y,IL2StandardERC20:J,L2StandardERC20:X})[e]},70268:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.getContractFactory=f.getContractInterface=f.getDeployedContractDefinition=f.getContractDefinition=void 0;let a=t(28860);f.getContractDefinition=e=>{let{getContractArtifact:f}=t(97670),a=f(e);if(void 0===a)throw Error(`Unable to find artifact for contract: ${e}`);return a},f.getDeployedContractDefinition=(e,f)=>{let{getDeployedContractArtifact:a}=t(78919),n=a(e,f);if(void 0===n)throw Error(`Unable to find artifact for contract on network ${f}: ${e}`);return n},f.getContractInterface=e=>{let t=(0,f.getContractDefinition)(e);return new a.ethers.utils.Interface(t.abi)},f.getContractFactory=(e,t)=>{let n=(0,f.getContractDefinition)(e),i=(0,f.getContractInterface)(e);return new a.ethers.ContractFactory(i,n.bytecode,t)}},78919:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.getDeployedContractArtifact=void 0;let t={abi:[{inputs:[{internalType:"contract Lib_AddressManager",n
1ame:"_manager",type:"address"},{internalType:"address",name:"_finalOwner",type:"address"},{internalType:"string[]",name:"_names",type:"string[]"},{internalType:"address[]",name:"_addresses",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"finalOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNamedAddresses",outputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"addr",type:"address"}],internalType:"struct AddressDictator.NamedAddress[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"manager",outputs:[{internalType:"contract Lib_AddressManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"returnOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"setAddresses",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x406905414D6c250C186F4616EFA38D5fc0759437"},a={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"_who",type:"address"}],name:"isCollateralized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0xfC2ab6987C578218f99E85d61Dcf4814A26637Bd"},n={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"uint256",name:"_maxTransactionGasLimit",type:"uint256"},{internalType:"uint256",name:"_l2GasDiscountDivisor",type:"uint256"},{internalType:"uint256",name:"_enqueueGasCost",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"l2GasDiscountDivisor",type:"uint256"},{indexed:!1,internalType:"uint256",name:"enqueueGasCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"enqueueL2GasPrepaid",type:"uint256"}],name:"L2GasParamsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_startingQueueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_numQueueElements",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_totalElements",type:"uint256"}],name:"QueueBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_startingQueueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_numQueueElements",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_totalElements",type:"uint256"}],name:"SequencerBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_batchSize",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_prevTotalElements",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_extraData",type:"bytes"}],name:"TransactionBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1TxOrigin",type:"address"},{indexed:!0,internalType:"address",name:"_target",type:"address"},{indexed:!1,internalType:"uint256",name:"_gasLimit",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"},{indexed:!0,internalType:"uint256",name:"_queueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_timestamp",type:"uint256"}],name:"TransactionEnqueued",type:"event"},{inputs:[],name:"MAX_ROLLUP_TX_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_ROLLUP_TX_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"appendSequencerBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"batches",outputs:[{internalType:"contract IChainStorageContainer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"uint256",name:"_gasLimit",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"enqueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"enqueueGasCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"enqueueL2GasPrepaid",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockNumber",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastTimestamp",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNextQueueIndex",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNumPendingQueueElements",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"getQueueElement",outputs:[{components:[{internalType:"bytes32",name:"transactionHash",type:"bytes32"},{internalType:"uint40",name:"timestamp",type:"uint40"},{internalType:"uint40",name:"blockNumber",type:"uint40"}],internalType:"struct Lib_OVMCodec.QueueElement",name:"_element",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getQueueLength",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalBatches",outputs:[{internalType:"uint256",name:"_totalBatches",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalElements",outputs:[{internalType:"uint256",name:"_totalElements",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l2GasDiscountDivisor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTransactionGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_l2GasDiscountDivisor",type:"uint256"},{internalType:"uint256",name:"_enqueueGasCost",type:"uint256"}],name:"setGasParams",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x607F755149cFEB3a14E1Dc3A4E2450Cde7dfb04D"},i={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_owner",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"get",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGlobalMetadata",outputs:[{internalType:"bytes27",name:"",type:"bytes27"}],stateMutability:"view",type:"function"},{inputs:[],name:"length",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"setGlobalMetadata",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x4325Ac17c7fF5Afc0d05335dD30Db3D010455813"},s={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_owner",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"get",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGlobalMetadata",outputs:[{internalType:"bytes27",name:"",type:"bytes27"}],stateMutability:"view",type:"function"},{inputs:[],name:"length",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"setGlobalMetadata",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x41eF5DaF4A7719bfe89A88BA3DD0DCFF5feCeD39"},r={abi:[{inputs:[{internalType:"contract L1ChugSplashProxy",name:"_target",type:"address"},{internalType:"address",name:"_finalOwner",type:"address"},{internalType:"bytes32",name:"_codeHash",type:"bytes32"},{internalType:"bytes32",name:"_messengerSlotKey",type:"bytes32"},{internalType:"bytes32",name:"_messengerSlotVal",type:"bytes32"},{internalType:"bytes32",name:"_bridgeSlotKey",type:"bytes32"},{internalType:"bytes32",name:"_bridgeSlotVal",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"bridgeSlotKey",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"bridgeSlotVal",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"codeHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_code",type:"bytes"}],name:"doActions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"finalOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isUpgrading",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messengerSlotKey",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"messengerSlotVal",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"returnOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"target",outputs:[{internalType:"contract L1ChugSplashProxy",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0x0e62FAf76a0239827f35f41478b521293e06195a"},o={abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1Token",type:"address"},{indexed:!0,internalType:"address",name:"_l2Token",type:"address"},{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!1,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ERC20DepositInitiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1Token",type:"address"},{indexed:!0,internalType:"address",name:"_l2Token",type:"address"},{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!1,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ERC20WithdrawalFinalized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ETHDepositInitiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ETHWithdrawalFinalized",type:"event"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositERC20To",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositETHTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"deposits",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"donateETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"finalizeERC20Withdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"finalizeETHWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_l1messenger",type:"address"},{internalType:"address",name:"_l2TokenBridge",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"l2TokenBridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"messenger",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],address:"0x65DD71354923A51fC00DaE41A39F37eBB66549d4"},d={abi:[{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"address",name:"_newAddress",type:"address"},{indexed:!1,internalType:"address",name:"_oldAddress",type:"address"}],name:"AddressSet",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"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"getAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"},{internalType:"address",name:"_address",type:"address"}],name:"setAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0xa6f73589243a6A7a9023b1Fa0651b1d89c177111"},c={abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"FailedRelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"MessageAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"MessageBlocked",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:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"RelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{indexed:!1,internalType:"uint256",name:"messageNonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"gasLimit",type:"uint256"}],name:"SentMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"allowMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"blockMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"blockedMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],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:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint256",name:"_messageNonce",type:"uint256"},{components:[{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"stateRootBatchHeader",type:"tuple"},{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"bytes32[]",name:"siblings",type:"bytes32[]"}],internalType:"struct Lib_OVMCodec.ChainInclusionProof",name:"stateRootProof",type:"tuple"},{internalType:"bytes",name:"stateTrieWitness",type:"bytes"},{internalType:"bytes",name:"storageTrieWitness",type:"bytes"}],internalType:"struct IL1CrossDomainMessenger.L2MessageInclusionProof",name:"_proof",type:"tuple"}],name:"relayMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"relayedMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint256",name:"_queueIndex",type:"uint256"},{internalType:"uint32",name:"_oldGasLimit",type:"uint32"},{internalType:"uint32",name:"_newGasLimit",type:"uint32"}],name:"replayMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint32",name:"_gasLimit",type:"uint32"}],name:"sendMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"successfulMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"xDomainMessageSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0x2eB424e0930E93Cf250e488f6117a929714Bb928"},b={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_implementationName",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"}
1],address:"0x5086d1eEF304eb5284A0f6720f79403b4e9bE294"},l={abi:[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_code",type:"bytes"}],name:"setCode",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"setOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_key",type:"bytes32"},{internalType:"bytes32",name:"_value",type:"bytes32"}],name:"setStorage",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x636Af16bf2f682dD3109e60102b8E1A089FedAa8"},p={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"uint256",name:"_fraudProofWindow",type:"uint256"},{internalType:"uint256",name:"_sequencerPublishWindow",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_batchSize",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_prevTotalElements",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_extraData",type:"bytes"}],name:"StateBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"}],name:"StateBatchDeleted",type:"event"},{inputs:[],name:"FRAUD_PROOF_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SEQUENCER_PUBLISH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"_batch",type:"bytes32[]"},{internalType:"uint256",name:"_shouldStartAtElement",type:"uint256"}],name:"appendStateBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"batches",outputs:[{internalType:"contract IChainStorageContainer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"}],name:"deleteStateBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getLastSequencerTimestamp",outputs:[{internalType:"uint256",name:"_lastSequencerTimestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalBatches",outputs:[{internalType:"uint256",name:"_totalBatches",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalElements",outputs:[{internalType:"uint256",name:"_totalElements",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"}],name:"insideFraudProofWindow",outputs:[{internalType:"bool",name:"_inside",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_element",type:"bytes32"},{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"},{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"bytes32[]",name:"siblings",type:"bytes32[]"}],internalType:"struct Lib_OVMCodec.ChainInclusionProof",name:"_proof",type:"tuple"}],name:"verifyStateCommitment",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],address:"0x9c945aC97Baf48cB784AbBB61399beB71aF7A378"}
1,u={abi:[{inputs:[{internalType:"contract Lib_AddressManager",name:"_manager",type:"address"},{internalType:"address",name:"_finalOwner",type:"address"},{internalType:"string[]",name:"_names",type:"string[]"},{internalType:"address[]",name:"_addresses",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"finalOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNamedAddresses",outputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"address",name:"addr",type:"address"}],internalType:"struct AddressDictator.NamedAddress[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"manager",outputs:[{internalType:"contract Lib_AddressManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"returnOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"setAddresses",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x7a74f7934a233e10E8757264132B2E4EbccF5098"},y={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"_who",type:"address"}],name:"isCollateralized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0xcd626E1328b41fCF24737F137BcD4CE0c32bc8d1"},m={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"uint256",name:"_maxTransactionGasLimit",type:"uint256"},{internalType:"uint256",name:"_l2GasDiscountDivisor",type:"uint256"},{internalType:"uint256",name:"_enqueueGasCost",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"l2GasDiscountDivisor",type:"uint256"},{indexed:!1,internalType:"uint256",name:"enqueueGasCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"enqueueL2GasPrepaid",type:"uint256"}],name:"L2GasParamsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_startingQueueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_numQueueElements",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_totalElements",type:"uint256"}],name:"QueueBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"_startingQueueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_numQueueElements",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_totalElements",type:"uint256"}],name:"SequencerBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_batchSize",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_prevTotalElements",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_extraData",type:"bytes"}],name:"TransactionBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1TxOrigin",type:"address"},{indexed:!0,internalType:"address",name:"_target",type:"address"},{indexed:!1,internalType:"uint256",name:"_gasLimit",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"},{indexed:!0,internalType:"uint256",name:"_queueIndex",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_timestamp",type:"uint256"}],name:"TransactionEnqueued",type:"event"},{inputs:[],name:"MAX_ROLLUP_TX_SIZE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_ROLLUP_TX_GAS",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"appendSequencerBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"batches",outputs:[{internalType:"contract IChainStorageContainer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"uint256",name:"_gasLimit",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"enqueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"enqueueGasCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"enqueueL2GasPrepaid",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockNumber",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastTimestamp",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNextQueueIndex",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getNumPendingQueueElements",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"getQueueElement",outputs:[{components:[{internalType:"bytes32",name:"transactionHash",type:"bytes32"},{internalType:"uint40",name:"timestamp",type:"uint40"},{internalType:"uint40",name:"blockNumber",type:"uint40"}],internalType:"struct Lib_OVMCodec.QueueElement",name:"_element",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getQueueLength",outputs:[{internalType:"uint40",name:"",type:"uint40"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalBatches",outputs:[{internalType:"uint256",name:"_totalBatches",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalElements",outputs:[{internalType:"uint256",name:"_totalElements",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l2GasDiscountDivisor",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxTransactionGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_l2GasDiscountDivisor",type:"uint256"},{internalType:"uint256",name:"_enqueueGasCost",type:"uint256"}],name:"setGasParams",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x5E4e65926BA27467555EB562121fac00D24E9dD2"},g={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_owner",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"get",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGlobalMetadata",outputs:[{internalType:"bytes27",name:"",type:"bytes27"}],stateMutability:"view",type:"function"},{inputs:[],name:"length",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"setGlobalMetadata",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0xD16463EF9b0338CE3D73309028ef1714D220c024"},h={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_owner",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"deleteElementsAfterInclusive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_index",type:"uint256"}],name:"get",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGlobalMetadata",outputs:[{internalType:"bytes27",name:"",type:"bytes27"}],stateMutability:"view",type:"function"},{inputs:[],name:"length",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"},{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_object",type:"bytes32"}],name:"push",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes27",name:"_globalMetadata",type:"bytes27"}],name:"setGlobalMetadata",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0xb0ddFf09c4019e31960de11bD845E836078E8EbE"},_={abi:[{inputs:[{internalType:"contract L1ChugSplashProxy",name:"_target",type:"address"},{internalType:"address",name:"_finalOwner",type:"address"},{internalType:"bytes32",name:"_codeHash",type:"bytes32"},{internalType:"bytes32",name:"_messengerSlotKey",type:"bytes32"},{internalType:"bytes32",name:"_messengerSlotVal",type:"bytes32"},{internalType:"bytes32",name:"_bridgeSlotKey",type:"bytes32"},{internalType:"bytes32",name:"_bridgeSlotVal",type:"bytes32"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"bridgeSlotKey",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"bridgeSlotVal",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"codeHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_code",type:"bytes"}],name:"doActions",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"finalOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isUpgrading",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"messengerSlotKey",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"messengerSlotVal",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"returnOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"target",outputs:[{internalType:"contract L1ChugSplashProxy",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0xD86065136E3ab1e3FCBbf47B59404c08A431051A"},T={abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1Token",type:"address"},{indexed:!0,internalType:"address",name:"_l2Token",type:"address"},{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!1,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ERC20DepositInitiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_l1Token",type:"address"},{indexed:!0,internalType:"address",name:"_l2Token",type:"address"},{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!1,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ERC20WithdrawalFinalized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ETHDepositInitiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_from",type:"address"},{indexed:!0,internalType:"address",name:"_to",type:"address"},{indexed:!1,internalType:"uint256",name:"_amount",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_data",type:"bytes"}],name:"ETHWithdrawalFinalized",type:"event"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositERC20To",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"uint32",name:"_l2Gas",type:"uint32"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"depositETHTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"deposits",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"donateETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_l1Token",type:"address"},{internalType:"address",name:"_l2Token",type:"address"},{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"finalizeERC20Withdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_from",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"finalizeETHWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_l1messenger",type:"address"},{internalType:"address",name:"_l2TokenBridge",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"l2TokenBridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"messenger",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],address:"0x29Ea454F8f2750e345E52e302A0c09f1A5215AC7"},v={abi:[{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"_name",type:"string"},{indexed:!1,internalType:"address",name:"_newAddress",type:"address"},{indexed:!1,internalType:"address",name:"_oldAddress",type:"address"}],name:"AddressSet",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"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"getAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"},{internalType:"address",name:"_address",type:"address"}],name:"setAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0xdE1FCfB0851916CA5101820A69b13a4E276bd81F"},D={abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"FailedRelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"MessageAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"MessageBlocked",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:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"msgHash",type:"bytes32"}],name:"RelayedMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"target",type:"address"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes",name:"message",type:"bytes"},{indexed:!1,internalType:"uint256",name:"messageNonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"gasLimit",type:"uint256"}],name:"SentMessage",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"allowMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_xDomainCalldataHash",type:"bytes32"}],name:"blockMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"blockedMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],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:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint256",name:"_messageNonce",type:"uint256"},{components:[{internalType:"bytes32",name:"stateRoot",type:"bytes32"},{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"stateRootBatchHeader",type:"tuple"},{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"bytes32[]",name:"siblings",type:"bytes32[]"}],internalType:"struct Lib_OVMCodec.ChainInclusionProof",name:"stateRootProof",type:"tuple"},{internalType:"bytes",name:"stateTrieWitness",type:"bytes"},{internalType:"bytes",name:"storageTrieWitness",type:"bytes"}],internalType:"struct IL1CrossDomainMessenger.L2MessageInclusionProof",name:"_proof",type:"tuple"}],name:"relayMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"relayedMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"address",name:"_sender",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint256",name:"_queueIndex",type:"uint256"},{internalType:"uint32",name:"_oldGasLimit",type:"uint32"},{internalType:"uint32",name:"_newGasLimit",type:"uint32"}],name:"replayMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_target",type:"address"},{internalType:"bytes",name:"_message",type:"bytes"},{internalType:"uint32",name:"_gasLimit",type:"uint32"}],name:"sendMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"successfulMessages",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"xDomainMessageSender",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],address:"0xd9166833FF12A5F900ccfBf2c8B62a90F1Ca1FD5"},M={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"string",name:"_implementationName",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"}],address:"0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1"},S={abi:[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"getImplementation",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_code",type:"bytes"}],name:"setCode",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],name:"setOwner",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_key",type:"bytes32"},{internalType:"bytes32",name:"_value",type:"bytes32"}],name:"setStorage",outputs:[],stateMutability:"nonpayable",type:"function"}],address:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1"},w={abi:[{inputs:[{internalType:"address",name:"_libAddressManager",type:"address"},{internalType:"uint256",name:"_fraudProofWindow",type:"uint256"},{internalType:"uint256",name:"_sequencerPublishWindow",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_batchSize",type:"uint256"},{indexed:!1,internalType:"uint256",name:"_prevTotalElements",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_extraData",type:"bytes"}],name:"StateBatchAppended",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"_batchIndex",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"_batchRoot",type:"bytes32"}],name:"StateBatchDeleted",type:"event"},{inputs:[],name:"FRAUD_PROOF_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"SEQUENCER_PUBLISH_WINDOW",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"_batch",type:"bytes32[]"},{internalType:"uint256",name:"_shouldStartAtElement",type:"uint256"}],name:"appendStateBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"batches",outputs:[{internalType:"contract IChainStorageContainer",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"}],name:"deleteStateBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getLastSequencerTimestamp",outputs:[{internalType:"uint256",name:"_lastSequencerTimestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalBatches",outputs:[{internalType:"uint256",name:"_totalBatches",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTotalElements",outputs:[{internalType:"uint256",name:"_totalElements",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"}],name:"insideFraudProofWindow",outputs:[{internalType:"bool",name:"_inside",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"libAddressManager",outputs:[{internalType:"contract Lib_AddressManager",n
1ame:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"_name",type:"string"}],name:"resolve",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_element",type:"bytes32"},{components:[{internalType:"uint256",name:"batchIndex",type:"uint256"},{internalType:"bytes32",name:"batchRoot",type:"bytes32"},{internalType:"uint256",name:"batchSize",type:"uint256"},{internalType:"uint256",name:"prevTotalElements",type:"uint256"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct Lib_OVMCodec.ChainBatchHeader",name:"_batchHeader",type:"tuple"},{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"bytes32[]",name:"siblings",type:"bytes32[]"}],internalType:"struct Lib_OVMCodec.ChainInclusionProof",name:"_proof",type:"tuple"}],name:"verifyStateCommitment",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],address:"0xBe5dAb4A2e9cd0F27300dB4aB94BeE3A233AEB19"},x={abi:[{inputs:[{internalType:"uint256",name:"_minDepositAmount",type:"uint256"},{internalType:"uint256",name:"_maxDepositAmount",type:"uint256"},{internalType:"uint256",name:"_maxBalance",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"uint256",name:"balance",type:"uint256"}],name:"BalanceWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"depositId",type:"uint256"},{indexed:!0,internalType:"address",name:"emitter",type:"address"},{indexed:!0,internalType:"uint256",name:"amount",type:"uint256"}],name:"EtherReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"previousBalance",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newBalance",type:"uint256"}],name:"MaxBalanceSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"previousAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newAmount",type:"uint256"}],name:"MaxDepositAmountSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"previousAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newAmount",type:"uint256"}],name:"MinDepositAmountSet",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"},{inputs:[],name:"maxBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxDepositAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"minDepositAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_maxDepositAmount",type:"uint256"}],name:"setMaxAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_maxBalance",type:"uint256"}],name:"setMaxBalance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_minDepositAmount",type:"uint256"}],name:"setMinAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalDeposits",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawBalance",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],address:"0x52ec2F3d7C5977A8E558C8D9C6000B615098E8fC"};f.getDeployedContractArtifact=(e,f)=>({goerli__AddressDictator:t,goerli__BondManager:a,goerli__CanonicalTransactionChain:n,goerli__ChainStorageContainer_CTC_batches:i,goerli__ChainStorageContainer_SCC_batches:s,goerli__ChugSplashDictator:r,goerli__L1StandardBridge_for_verification_only:o,goerli__Lib_AddressManager:d,goerli__OVM_L1CrossDomainMessenger
1:c,goerli__Proxy__OVM_L1CrossDomainMessenger:b,goerli__Proxy__OVM_L1StandardBridge:l,goerli__StateCommitmentChain:p,mainnet__AddressDictator:u,mainnet__BondManager:y,mainnet__CanonicalTransactionChain:m,mainnet__ChainStorageContainer_CTC_batches:g,mainnet__ChainStorageContainer_SCC_batches:h,mainnet__ChugSplashDictator:_,mainnet__L1StandardBridge_for_verification_only:T,mainnet__Lib_AddressManager:v,mainnet__OVM_L1CrossDomainMessenger:D,mainnet__Proxy__OVM_L1CrossDomainMessenger:M,mainnet__Proxy__OVM_L1StandardBridge:S,mainnet__StateCommitmentChain:w,mainnet__TeleportrDeposit:x})[(f+"__"+e).replace(/-/g,"_")]},40030:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(70268),f),n(t(21192),f)},21192:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.futurePredeploys=f.predeploys=void 0,f.predeploys={OVM_L2ToL1MessagePasser:"0x4200000000000000000000000000000000000000",OVM_DeployerWhitelist:"0x4200000000000000000000000000000000000002",L2CrossDomainMessenger:"0x4200000000000000000000000000000000000007",OVM_GasPriceOracle:"0x420000000000000000000000000000000000000F",L2StandardBridge:"0x4200000000000000000000000000000000000010",OVM_SequencerFeeVault:"0x4200000000000000000000000000000000000011",L2StandardTokenFactory:"0x4200000000000000000000000000000000000012",OVM_L1BlockNumber:"0x4200000000000000000000000000000000000013",OVM_ETH:"0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000",WETH9:"0x4200000000000000000000000000000000000006"},f.futurePredeploys={System0:"0x4200000000000000000000000000000000000042",System1:"0x4200000000000000000000000000000000000014"}},46486:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},73114:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.bnToAddress=void 0;let a=t(62990),n=t(89005),i=t(9843);f.bnToAddress=e=>{(e=a.BigNumber.from(e)).isNegative()&&(e=a.BigNumber.from("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF").add(e).add(1));let f=e.toHexString();return f=(f=(f=(0,i.remove0x)(f)).padStart(40,"0")).slice(f.length-40,f.length),f=(0,i.add0x)(f),f=(0,n.getAddress)(f)}},9843:function(e,f,t){"use strict";var a=t(9109).Buffer;Object.defineProperty(f,"__esModule",{value:!0}),f.bytes32ify=f.hexStringEquals=f.encodeHex=f.padHexString=f.toRpcHexString=f.toHexString=f.fromHexString=f.add0x=f.remove0x=void 0;let n=t(62990),i=t(9784);f.remove0x=e=>void 0===e?e:e.startsWith("0x")?e.slice(2):e,f.add0x=e=>void 0===e?e:e.startsWith("0x")?e:"0x"+e,f.fromHexString=e=>"string"==typeof e&&e.startsWith("0x")?a.from(e.slice(2),"hex"):a.from(e),f.toHexString=e=>"number"==typeof e?n.BigNumber.from(e).toHexString():"0x"+(0,f.fromHexString)(e).toString("hex"),f.toRpcHexString=e=>{let f;return"0x0"===(f="number"==typeof e?"0x"+e.toString(16):e.toHexString())?f:f.replace(/^0x0/,"0x")},f.padHexString=(e,f)=>e.length===2+2*f?e:"0x"+e.slice(2).padStart(2*f,"0"),f.encodeHex=(e,t)=>(0,f.remove0x)(n.BigNumber.from(e).toHexString()).padStart(t,"0"),f.hexStringEquals=(e,f)=>{if(!(0,i.isHexString)(e))throw Error(`input is not a hex string: ${e}`);if(!(0,i.isHexString)(f))throw Error(`input is not a hex string: ${f}`);return e.toLowerCase()===f.toLowerCase()},f.bytes32ify=e=>(0,i.hexZeroPad)(n.BigNumber.from(e).toHexString(),32)},62697:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(46486),f),n(t(73114),f),n(t(9843),f),n(t(44505),f),n(t(96272),f)},44505:function(e,f,t){"use strict";var a=t(25566);Object.defineProperty(f,"__esModule",{value:!0}),f.compareAddrs=f.getenv=f.reqenv=f.clone=f.sleep=void 0;let n=async e=>new Promise(f=>{setTimeout(()=>{f(null)},e)});f.sleep=n,f.clone=e=>{if(void 0===e)throw Error("Trying to clone undefined object");return Object.assign({},e)},f.reqenv=e=>{let f=a.env[e];if(void 0===f)throw Error(`missing env var ${e}`);return f},f.getenv=(e,f)=>a.env[e]||f,f.compareAddrs=(e,f)=>e.toLowerCase()===f.toLowerCase()},96272:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.expectApprox=f.awaitCondition=void 0;let a=t(92260),n=t(62990),i=t(44505),s=async(e,f=1e3,t=10)=>{for(let a=0;a<t;a++){if(await e())return;await (0,i.sleep)(f)}throw Error("Timed out.")};f.awaitCondition=s,f.expectApprox=(e,f,{percentUpperDeviation:t,percentLowerDeviation:i,absoluteUpperDeviation:s,absoluteLowerDeviation:r})=>{let o,d;if(e=n.BigNumber.from(e),f=n.BigNumber.from(f),!(t||i||s||r))throw Error("Must define at least one parameter to limit the deviation of the actual value.");let c=t?f.mul(100+t).div(100):null,b=s?f.add(s):null;o=c&&b?c.lte(b)?c:b:c||b;let l=i?f.mul(100-i).div(100):null,p=r?f.sub(r):null;d=l&&p?l.gte(p)?l:p:l||p,o&&(0,a.expect)(e.lte(o),`Actual value (${e}) is greater than the calculated upper bound of (${o})`).to.be.true,d&&(0,a.expect)(e.gte(d),`Actual value (${e}) is less than the calculated lower bound of (${d})`).to.be.true}},95718:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.Etherscan=void 0;let n=a(t(92259)),i={1:{chainId:1,names:["mainnet","main","eth","ethereum"],etherscanApiUrl:"https://api.etherscan.io"},3:{chainId:3,names:["ropsten"],etherscanApiUrl:"https://api-ropsten.etherscan.io"},4:{chainId:4,names:["rinkeby"],etherscanApiUrl:"https://api-rinkeby.etherscan.io"},5:{chainId:5,names:["goerli"],etherscanApiUrl:"https://api-goerli.etherscan.io"},10:{chainId:10,names:["optimism"],etherscanApiUrl:"https://api-optimistic.etherscan.io"},42:{chainId:42,names:["kovan"],etherscanApiUrl:"https://api-kovan.etherscan.io"},69:{chainId:69,names:["opkovan","kovan-optimism","optimistic-kovan"],etherscanApiUrl:"https://api-kovan-optimistic.etherscan.io"}};class s{constructor(e,f){this.apiKey=e,this.network=f,"string"==typeof f?this.net=Object.values(i).find(e=>e.names.includes(f)):this.net=i[this.network]}async getContractSource(e){let f=new URL(`${this.net.etherscanApiUrl}/api`);f.searchParams.append("module","contract"),f.searchParams.append("action","getsourcecode"),f.searchParams.append("address",e),f.searchParams.append("apikey",this.apiKey);let t=await (0,n.default)(f);return(await t.json()).result[0]}async getContractABI(e){let f=await this.getContractSource(e);return"1"===f.Proxy?(await this.getContractSource(f.Implementation)).ABI:f.ABI}}f.Etherscan=s},81236:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},18740:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(81236),f)},41028:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(62839),f)},62839:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.getChainId=void 0;let t=async e=>(await e.getNetwork()).chainId;f.getChainId=t},34083:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(18740),f),n(t(41028),f)},4333:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.addChecksum=void 0;let a=t(28860),n=(e,f)=>void 0===f?null:f,i=e=>{if(Array.isArray(e))return`[${e.map(e=>i(e)).join(",")}]`;if("object"==typeof e&&null!==e){let f="",t=Object.keys(e).sort();for(let a of(f+=`{${JSON.stringify(t,n)}`,t))f+=`${i(e[a])},`;return`${f}}`}return`${JSON.stringify(e,n)}`},s=e=>{let f=i(Object.assign(Object.assign({},e),{meta:Object.assign(Object.assign({},e.meta),{name:null})}));return a.ethers.utils.solidityKeccak256(["string"],[f])||void 0};f.addChecksum=e=>Object.assign(Object.assign({},e),{meta:Object.assign(Object.assign({},e.meta),{checksum:s(e)})})},99425:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.setupProxyContract=void 0;let n=a(t(18122)),i=t(28860),{getAddress:s}=i.utils,r=async(e,f,{targetImplAddress:t,targetProxyOwnerAddress:a,postUpgradeCallCalldata:r})=>{let o=await e.connect(i.ethers.constants.AddressZero).callStatic.admin(),d=await f.getAddress(),c=await e.connect(i.ethers.constants.AddressZero).callStatic.implementation();if(console.log(`implementation currently set to ${c}`),s(c)!==s(t)){let a;console.log("implementation not set to correct contract"),console.log(`Setting implementation to ${t}`),(0,n.default)(d===o,"the passed signer is not the admin, cannot update implementation"),r?(console.log("postUpgradeCallCalldata is provided. Using Proxy.upgradeAndCall()"),a=await e.connect(f).upgradeToAndCall(t,r)):(console.log("postUpgradeCallCalldata is not provided. Using Proxy.upgrade()"),a=await e.connect(f).upgradeTo(t));let i=await a.wait();console.log(`implementation set in ${i.transactionHash}`)}else console.log(`implementation already set correctly to ${t}`);if(console.log(`admin set to ${o}`),s(o)!==s(a)){console.log("detected admin is not set correctly"),console.log(`Setting admin to ${a}`),(0,n.default)(d===o,"proxyOwnerSigner is not the admin, cannot update admin");let t=await e.connect(f).changeAdmin(a),i=await t.wait();console.log(`admin set in ${i.transactionHash}`)}else console.log(`admin already set correctly to ${a}`);let b=await e.connect(i.ethers.constants.AddressZero).callStatic.implementation(),l=await e.connect(i.ethers.constants.AddressZero).callStatic.admin();(0,n.default)(s(l)===s(a),"Something went wrong - admin not set correctly after transaction"),(0,n.default)(s(b)===s(t),"Something went wrong - implementation not set correctly after transaction"),console.log(`Proxy at ${e.address} is set up with implementation: ${b} and admin: ${l}`)};f.setupProxyContract=r},46361:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(62697),f),n(t(34083),f),n(t(80824),f),n(t(4333),f),n(t(95718),f),n(t(99425),f)},76391:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.undoL1ToL2Alias=f.applyL1ToL2Alias=f.L1_TO_L2_ALIAS_OFFSET=void 0;let a=t(89005),n=t(62990),i=t(62697);f.L1_TO_L2_ALIAS_OFFSET="0x1111000000000000000000000000000000001111",f.applyL1ToL2Alias=e=>{if(!(0,a.isAddress)(e))throw Error(`not a valid address: ${e}`);return(0,i.bnToAddress)(n.BigNumber.from(e).add(f.L1_TO_L2_ALIAS_OFFSET))},f.undoL1ToL2Alias=e=>{if(!(0,a.isAddress)(e))throw Error(`not a valid address: ${e}`);return(0,i.bnToAddress)(n.BigNumber.from(e).sub(f.L1_TO_L2_ALIAS_OFFSET))}},61720:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.defaultResourceConfig=f.predeploys=void 0;let a=t(28860);f.predeploys={L2ToL1MessagePasser:"0x4200000000000000000000000000000000000016",DeployerWhitelist:"0x4200000000000000000000000000000000000002",L2CrossDomainMessenger:"0x4200000000000000000000000000000000000007",GasPriceOracle:"0x420000000000000000000000000000000000000F",L2StandardBridge:"0x4200000000000000000000000000000000000010",SequencerFeeVault:"0x4200000000000000000000000000000000000011",OptimismMintableERC20Factory:"0x4200000000000000000000000000000000000012",L1BlockNumber:"0x4200000000000000000000000000000000000013",L1Block:"0x4200000000000000000000000000000000000015",LegacyERC20ETH:"0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000",WETH9:"0x4200000000000000000000000000000000000006",GovernanceToken:"0x4200000000000000000000000000000000000042",LegacyMessagePasser:"0x4200000000000000000000000000000000000000",L2ERC721Bridge:"0x4200000000000000000000000000000000000014",OptimismMintableERC721Factory:"0x4200000000000000000000000000000000000017",ProxyAdmin:"0x4200000000000000000000000000000000000018",BaseFeeVault:"0x4200000000000000000000000000000000000019",L1FeeVault:"0x420000000000000000000000000000000000001a"};let n=a.ethers.BigNumber.from("0xffffffffffffffffffffffffffffffff");f.defaultResourceConfig={maxResourceLimit:2e7,elasticityMultiplier:10,baseFeeMaxChangeDenominator:8,minimumBaseFee:a.ethers.utils.parseUnits("1","gwei"),systemTxMaxGas:1e6,maximumBaseFee:n}},90277:function(e,f,t){"use strict";var a,n,i=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),s=this&&this.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var f={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&i(f,e,t);return s(f,e),f};Object.defineProperty(f,"__esModule",{value:!0}),f.DepositTx=f.SourceHashDomain=void 0;let o=t(89005),d=t(62990),c=t(43481),b=t(67279),l=r(t(18162)),p=t(9784),u=e=>new Uint8Array(e?[1]:[]),y=(e,f)=>{let t=(0,p.stripZeros)(d.BigNumber.from(e).toHexString());if(t.length>32)throw Error(`invalid length for ${f}`);return t},m=e=>{if("0x"===e)return!1;if("0x01"===e)return!0;throw Error(`invalid boolean RLP hex value ${e}`)},g=e=>"0x"===e?b.Zero:d.BigNumber.from(e),h=e=>"0x"===e?null:(0,o.getAddress)(e);(a=n||(f.SourceHashDomain=n={}))[a.UserDeposit=0]="UserDeposit",a[a.L1InfoDeposit=1]="L1InfoDeposit";class _{constructor(e={}){this.type=126,this.version=0,this._sourceHash=e.sourceHash,this.from=e.from,this.to=e.to,this.mint=e.mint,this.value=e.value,this.gas=e.gas,this.isSystemTransaction=e.isSystemTransaction||!1,this.data=e.data,this.domain=e.domain,this.l1BlockHash=e.l1BlockHash,this.logIndex=e.logIndex,this.sequenceNumber=e.sequenceNumber}hash(){let e=this.encode();return(0,c.keccak256)(e)}sourceHash(){if(!this._sourceHash){let e;switch(this.domain){case n.UserDeposit:e=d.BigNumber.from(this.logIndex).toHexString();break;case n.L1InfoDeposit:e=d.BigNumber.from(this.sequenceNumber).toHexString();break;default:throw Error(`Unknown domain: ${this.domain}`)}if(!this.l1BlockHash)throw Error("Need l1BlockHash to compute sourceHash");let f=this.l1BlockHash,t=(0,p.hexConcat)([f,(0,p.zeroPad)(e,32)]),a=(0,c.keccak256)(t),i=d.BigNumber.from(this.domain).toHexString(),s=(0,p.hexConcat)([(0,p.zeroPad)(i,32),a]);this._sourceHash=(0,c.keccak256)(s)}return this._sourceHash}encode(){let e=[this.sourceHash()||"0x",(0,o.getAddress)(this.from)||"0x",null!=this.to?(0,o.getAddress)(this.to):"0x",y(this.mint||0,"mint"),y(this.value||0,"value"),y(this.gas||0,"gas"),u(this.isSystemTransaction),this.data||"0x"];return(0,p.hexConcat)([d.BigNumber.from(this.type).toHexString(),l.encode(e)])}decode(e,f={}){let t=(0,p.arrayify)(e);if(t[0]!==this.type)throw Error(`Invalid type ${t[0]}`);this.version=t[1];let a=l.decode(t.slice(1));return this._sourceHash=a[0],this.from=h(a[1]),this.to=h(a[2]),this.mint=g(a[3]),this.value=g(a[4]),this.gas=g(a[5]),this.isSystemTransaction=m(a[6]),this.data=a[7],"l1BlockHash"in f&&(this.l1BlockHash=f.l1BlockHash),"domain"in f&&(this.domain=f.domain),"logIndex"in f&&(this.logIndex=f.logIndex),"sequenceNumber"in f&&(this.sequenceNumber=f.sequenceNumber),this}static decode(e,f){return new this().decode(e,f)}fromL1Receipt(e,f){if(!e.events)throw Error("cannot parse receipt");let t=e.events[f];if(!t)throw Error(`event index ${f} does not exist`);return this.fromL1Event(t)}static fromL1Receipt(e,f){return new this({}).fromL1Receipt(e,f)}fromL1Event(e){if("TransactionDeposited"!==e.event)throw Error(`incorrect event type: ${e.event}`);if(void 0===e.args)throw Error("no event args");if(void 0===e.args.from)throw Error('"from" undefined');if(this.from=e.args.from,void 0===e.args.to)throw Error('"to" undefined');if(void 0===e.args.version)throw Error('"verison" undefined');if(!e.args.version.eq(0))throw Error(`Unsupported version ${e.args.version.toString()}`);if(void 0===e.args.opaqueData)throw Error('"opaqueData" undefined');let f=e.args.opaqueData;if(f.length<73)throw Error(`invalid opaqueData size: ${f.length}`);let t=0;this.mint=d.BigNumber.from((0,p.hexDataSlice)(f,t,t+32)),t+=32,this.value=d.BigNumber.from((0,p.hexDataSlice)(f,t,t+32)),t+=32,this.gas=d.BigNumber.from((0,p.hexDataSlice)(f,t,t+8)),t+=8;let a=d.BigNumber.from(f[t]).eq(1);t+=1,this.to=!0===a?null:e.args.to;let i=f.length-t;return this.isSystemTransaction=!1,this.data=(0,p.hexDataSlice)(f,t,t+i),this.domain=n.UserDeposit,this.l1BlockHash=e.blockHash,this.logIndex=e.logIndex,this}static fromL1Event(e){return new this({}).fromL1Event(e)}}f.DepositTx=_},25419:function(e,f,t){"use strict";
1Object.defineProperty(f,"__esModule",{value:!0}),f.encodeCrossDomainMessage=f.encodeCrossDomainMessageV1=f.encodeCrossDomainMessageV0=f.decodeVersionedNonce=f.encodeVersionedNonce=void 0;let a=t(62990),n=new(t(31656)).Interface(["function relayMessage(address,address,bytes,uint256)","function relayMessage(uint256,address,address,uint256,uint256,bytes)"]),i=a.BigNumber.from("0x0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");f.encodeVersionedNonce=(e,f)=>f.or(e.shl(240)),f.decodeVersionedNonce=e=>({version:e.shr(240),nonce:e.and(i)}),f.encodeCrossDomainMessageV0=(e,f,t,a)=>n.encodeFunctionData("relayMessage(address,address,bytes,uint256)",[e,f,t,a]),f.encodeCrossDomainMessageV1=(e,f,t,a,i,s)=>n.encodeFunctionData("relayMessage(uint256,address,address,uint256,uint256,bytes)",[e,f,t,a,i,s]),f.encodeCrossDomainMessage=(e,t,a,n,i,s)=>{let{version:r}=(0,f.decodeVersionedNonce)(e);if(r.eq(0))return(0,f.encodeCrossDomainMessageV0)(a,t,s,e);if(r.eq(1))return(0,f.encodeCrossDomainMessageV1)(e,t,a,n,i,s);throw Error(`unknown version ${r.toString()}`)}},29037:function(e,f,t){"use strict";var a=t(9109).Buffer;Object.defineProperty(f,"__esModule",{value:!0}),f.calldataCost=f.zeroesAndOnes=f.calculateL1Fee=f.calculateL1GasUsed=f.scaleDecimals=f.txDataNonZeroGasEIP2028=f.txDataZeroGas=void 0;let n=t(62990),i=t(62697);f.txDataZeroGas=4,f.txDataNonZeroGasEIP2028=16;let s=n.BigNumber.from(10);f.scaleDecimals=(e,f)=>{e=n.BigNumber.from(e),f=n.BigNumber.from(f);let t=s.pow(f);return e.div(t)},f.calculateL1GasUsed=(e,t)=>{let[a,i]=(0,f.zeroesAndOnes)(e),s=a*f.txDataZeroGas,r=(i+68)*f.txDataNonZeroGasEIP2028;return n.BigNumber.from(r).add(s).add(t)},f.calculateL1Fee=(e,t,a,n,i)=>{let s=(0,f.calculateL1GasUsed)(e,t).mul(a).mul(n);return(0,f.scaleDecimals)(s,i)},f.zeroesAndOnes=e=>{"string"==typeof e&&(e=a.from((0,i.remove0x)(e),"hex"));let f=0,t=0;for(let a of e)0===a?f++:t++;return[f,t]},f.calldataCost=e=>
1{let[t,a]=(0,f.zeroesAndOnes)(e),i=n.BigNumber.from(t).mul(f.txDataZeroGas),s=n.BigNumber.from(a).mul(f.txDataNonZeroGasEIP2028);return i.add(s)}},39766:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.hashOutputRootProof=f.hashWithdrawal=f.hashCrossDomainMessagev1=f.hashCrossDomainMessagev0=f.hashCrossDomainMessage=void 0;let a=t(43481),n=t(31656),i=t(25419);f.hashCrossDomainMessage=(e,t,a,n,s,r)=>{let{version:o}=(0,i.decodeVersionedNonce)(e);if(o.eq(0))return(0,f.hashCrossDomainMessagev0)(a,t,r,e);if(o.eq(1))return(0,f.hashCrossDomainMessagev1)(e,t,a,n,s,r);throw Error(`unknown version ${o.toString()}`)},f.hashCrossDomainMessagev0=(e,f,t,n)=>(0,a.keccak256)((0,i.encodeCrossDomainMessageV0)(e,f,t,n)),f.hashCrossDomainMessagev1=(e,f,t,n,s,r)=>(0,a.keccak256)((0,i.encodeCrossDomainMessageV1)(e,f,t,n,s,r)),f.hashWithdrawal=(e,f,t,i,s,r)=>{let o=n.defaultAbiCoder.encode(["uint256","address","address","uint256","uint256","bytes"],[e,f,t,i,s,r]);return(0,a.keccak256)(o)},f.hashOutputRootProof=e=>(0,a.keccak256)(n.defaultAbiCoder.encode(["bytes32","bytes32","bytes32","bytes32"],[e.version,e.stateRoot,e.messagePasserStorageRoot,e.latestBlockhash]))},80824:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(76391),f),n(t(29037),f),n(t(98805),f),n(t(90277),f),n(t(25419),f),n(t(39766),f),n(t(10517),f),n(t(61720),f)},98805:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},10517:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.OpNodeProvider=void 0;let n=a(t(68885)),i=t(62990),s=t(36173),r=t(46396),o=e=>{if(e.error){let f=Error(e.error.message);throw f.code=e.error.code,f.data=e.error.data,f}return e.result};class d extends n.default{constructor(e){super(),this._nextId=0,"string"==typeof e?this.connection={url:e}:this.connection=e}async syncStatus(){let e=await this.send("optimism_syncStatus",[]);return{currentL1:{hash:e.current_l1.hash,number:i.BigNumber.from(e.current_l1.number),parentHash:e.current_l1.parentHash,timestamp:i.BigNumber.from(e.current_l1.timestamp)},headL1:{hash:e.head_l1.hash,number:i.BigNumber.from(e.head_l1.number),parentHash:e.head_l1.parentHash,timestamp:i.BigNumber.from(e.head_l1.timestamp)},unsafeL2:{hash:e.unsafe_l2.hash,number:i.BigNumber.from(e.unsafe_l2.number),parentHash:e.unsafe_l2.parentHash,timestamp:i.BigNumber.from(e.unsafe_l2.timestamp),l1Origin:{hash:e.unsafe_l2.l1origin.hash,number:i.BigNumber.from(e.unsafe_l2.l1origin.number)},sequencerNumber:i.BigNumber.from(e.unsafe_l2.sequenceNumber)},safeL2:{hash:e.safe_l2.hash,number:i.BigNumber.from(e.safe_l2.number),parentHash:e.safe_l2.parentHash,timestamp:i.BigNumber.from(e.safe_l2.timestamp),l1Origin:{hash:e.safe_l2.l1origin.hash,number:i.BigNumber.from(e.safe_l2.l1origin.number)},sequencerNumber:i.BigNumber.from(e.safe_l2.sequenceNumber)},finalizedL2:{hash:e.finalized_l2.hash,number:i.BigNumber.from(e.finalized_l2.number),parentHash:e.finalized_l2.parentHash,timestamp:i.BigNumber.from(e.finalized_l2.timestamp),l1Origin:{hash:e.finalized_l2.l1origin.hash,number:i.BigNumber.from(e.finalized_l2.l1origin.number)},sequencerNumber:i.BigNumber.from(e.finalized_l2.sequenceNumber)}}}async rollupConfig(){return await this.send("optimism_rollupConfig",[])}send(e,f){let t={method:e,params:f,id:this._nextId++,jsonrpc:"2.0"};return this.emit("debug",{action:"request",request:(0,s.deepCopy)(t),provider:this}),(0,r.fetchJson)(this.connection,JSON.stringify(t),o).then(e=>(this.emit("debug",{action:"response",request:t,response:e,provider:this}),e),e=>{throw this.emit("debug",{action:"response",error:e,request:t,provider:this}),e})}}f.OpNodeProvider=d},90340:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.DAIBridgeAdapter=void 0;let a=t(46361),n=t(28860),i=t(57803),s=t(35992);class r extends s.StandardBridgeAdapter{async supportsTokenPair(e,f){let t=new n.Contract(this.l1Bridge.address,[{inputs:[],name:"l1Token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"l2Token",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],this.messenger.l1Provider),s=await t.l1Token();if(!(0,a.hexStringEquals)(s,(0,i.toAddress)(e)))return!1;let r=await t.l2Token();return!!(0,a.hexStringEquals)(r,(0,i.toAddress)(f))}}f.DAIBridgeAdapter=r},44959:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.ECOBridgeAdapter=void 0;let a=t(46361),n=t(28860),i=t(57803),s=t(35992);class r extends s.StandardBridgeAdapter{async supportsTokenPair(e,f){let t=new n.Contract(this.l1Bridge.address,[{inputs:[],name:"l1Eco",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],this.messenger.l1Provider),s=new n.Contract(this.l2Bridge.address,[{inputs:[],name:"l2Eco",outputs:[{internalType:"contract L2ECO",name:"",type:"address"}],stateMutability:"view",type:"function"}],this.messenger.l2Provider),[r,o]=await Promise.all([t.l1Eco(),s.l2Eco()]);return!!((0,a.hexStringEquals)(r,(0,i.toAddress)(e))&&(0,a.hexStringEquals)(o,(0,i.toAddress)(f)))}}f.ECOBridgeAdapter=r},35472:function(e,f,t){"use strict";
1Object.defineProperty(f,"__esModule",{value:!0}),f.ETHBridgeAdapter=void 0;let a=t(40030),n=t(46361),i=t(28860),s=t(58311),r=t(57803),o=t(8850),d=t(35992);class c extends d.StandardBridgeAdapter{constructor(){super(...arguments),this.populateTransaction={approve:async(e,f,t,a)=>{throw Error("approvals not necessary for ETH bridge")},deposit:async(e,f,t,a)=>{if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return(null==a?void 0:a.recipient)===void 0?this.l1Bridge.populateTransaction.depositETH((null==a?void 0:a.l2GasLimit)||2e5,"0x",Object.assign(Object.assign({},(0,o.omit)((null==a?void 0:a.overrides)||{},"value")),{value:t})):this.l1Bridge.populateTransaction.depositETHTo((0,r.toAddress)(a.recipient),(null==a?void 0:a.l2GasLimit)||2e5,"0x",Object.assign(Object.assign({},(0,o.omit)((null==a?void 0:a.overrides)||{},"value")),{value:t}))},withdraw:async(e,f,t,a)=>{if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return(null==a?void 0:a.recipient)===void 0?this.l2Bridge.populateTransaction.withdraw((0,r.toAddress)(f),t,0,"0x",Object.assign(Object.assign({},(0,o.omit)((null==a?void 0:a.overrides)||{},"value")),{value:this.messenger.bedrock?t:0})):this.l2Bridge.populateTransaction.withdrawTo((0,r.toAddress)(f),(0,r.toAddress)(a.recipient),t,0,"0x",Object.assign(Object.assign({},(0,o.omit)((null==a?void 0:a.overrides)||{},"value")),{value:this.messenger.bedrock?t:0}))}}}async approval(e,f,t){throw Error("approval not necessary for ETH bridge")}async getDepositsByAddress(e,f){return(await this.l1Bridge.queryFilter(this.l1Bridge.filters.ETHDepositInitiated(e),null==f?void 0:f.fromBlock,null==f?void 0:f.toBlock)).map(e=>({direction:s.MessageDirection.L1_TO_L2,from:e.args.from,to:e.args.to,l1Token:i.ethers.constants.AddressZero,l2Token:a.predeploys.OVM_ETH,amount:e.args.amount,data:e.args.extraData,logIndex:e.logIndex,blockNumber:e.blockNumber,transactionHash:e.transactionHash})).sort((e,f)=>f.blockNumber-e.blockNumber)}async getWithdrawalsByAddress(e,f){return(await this.l2Bridge.queryFilter(this.l2Bridge.filters.WithdrawalInitiated(void 0,void 0,e),null==f?void 0:f.fromBlock,null==f?void 0:f.toBlock)).filter(e=>(0,n.hexStringEquals)(e.args.l1Token,i.ethers.constants.AddressZero)&&(0,n.hexStringEquals)(e.args.l2Token,a.predeploys.OVM_ETH)).map(e=>({direction:s.MessageDirection.L2_TO_L1,from:e.args.from,to:e.args.to,l1Token:e.args.l1Token,l2Token:e.args.l2Token,amount:e.args.amount,data:e.args.extraData,logIndex:e.logIndex,blockNumber:e.blockNumber,transactionHash:e.transactionHash})).sort((e,f)=>f.blockNumber-e.blockNumber)}async supportsTokenPair(e,f){return(0,n.hexStringEquals)((0,r.toAddress)(e),i.ethers.constants.AddressZero)&&(0,n.hexStringEquals)((0,r.toAddress)(f),a.predeploys.OVM_ETH)}}f.ETHBridgeAdapter=c},11756:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(90340),f),n(t(44959),f),n(t(35472),f),n(t(35992),f)},35992:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.StandardBridgeAdapter=void 0;let n=t(40030),i=t(46361),s=t(28860),r=a(t(43474)),o=a(t(91143)),d=a(t(24194)),c=t(58311),b=t(57803);class l{constructor(e){this.populateTransaction={approve:async(e,f,t,a)=>{if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return new s.Contract((0,b.toAddress)(e),d.default.abi,this.messenger.l1Provider).populateTransaction.approve(this.l1Bridge.address,t,(null==a?void 0:a.overrides)||{})},deposit:async(e,f,t,a)=>{if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return(null==a?void 0:a.recipient)===void 0?this.l1Bridge.populateTransaction.depositERC20((0,b.toAddress)(e),(0,b.toAddress)(f),t,(null==a?void 0:a.l2GasLimit)||2e5,"0x",(null==a?void 0:a.overrides)||{}):this.l1Bridge.populateTransaction.depositERC20To((0,b.toAddress)(e),(0,b.toAddress)(f),(0,b.toAddress)(a.recipient),t,(null==a?void 0:a.l2GasLimit)||2e5,"0x",(null==a?void 0:a.overrides)||{})},withdraw:async(e,f,t,a)=>{if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return(null==a?void 0:a.recipient)===void 0?this.l2Bridge.populateTransaction.withdraw((0,b.toAddress)(f),t,0,"0x",(null==a?void 0:a.overrides)||{}):this.l2Bridge.populateTransaction.withdrawTo((0,b.toAddress)(f),(0,b.toAddress)(a.recipient),t,0,"0x",(null==a?void 0:a.overrides)||{})}},this.estimateGas={approve:async(e,f,t,a)=>this.messenger.l1Provider.estimateGas(await this.populateTransaction.approve(e,f,t,a)),deposit:async(e,f,t,a)=>this.messenger.l1Provider.estimateGas(await this.populateTransaction.deposit(e,f,t,a)),withdraw:async(e,f,t,a)=>this.messenger.l2Provider.estimateGas(await this.populateTransaction.withdraw(e,f,t,a))},this.messenger=e.messenger,this.l1Bridge=new s.Contract((0,b.toAddress)(e.l1Bridge),r.default.abi,this.messenger.l1Provider),this.l2Bridge=new s.Contract((0,b.toAddress)(e.l2Bridge),o.default.abi,this.messenger.l2Provider)}async getDepositsByAddress(e,f){return(await this.l1Bridge.queryFilter(this.l1Bridge.filters.ERC20DepositInitiated(void 0,void 0,e),null==f?void 0:f.fromBlock,null==f?void 0:f.toBlock)).filter(e=>!(0,i.hexStringEquals)(e.args.l1Token,s.ethers.constants.AddressZero)&&!(0,i.hexStringEquals)(e.args.l2Token,n.predeploys.OVM_ETH)).map(e=>({direction:c.MessageDirection.L1_TO_L2,from:e.args.from,to:e.args.to,l1Token:e.args.l1Token,l2Token:e.args.l2Token,amount:e.args.amount,data:e.args.extraData,logIndex:e.logIndex,blockNumber:e.blockNumber,transactionHash:e.transactionHash})).sort((e,f)=>f.blockNumber-e.blockNumber)}async getWithdrawalsByAddress(e,f){return(await this.l2Bridge.queryFilter(this.l2Bridge.filters.WithdrawalInitiated(void 0,void 0,e),null==f?void 0:f.fromBlock,null==f?void 0:f.toBlock)).filter(e=>!(0,i.hexStringEquals)(e.args.l1Token,s.ethers.constants.AddressZero)&&!(0,i.hexStringEquals)(e.args.l2Token,n.predeploys.OVM_ETH)).map(e=>({direction:c.MessageDirection.L2_TO_L1,from:e.args.from,to:e.args.to,l1Token:e.args.l1Token,l2Token:e.args.l2Token,amount:e.args.amount,data:e.args.extraData,logIndex:e.logIndex,blockNumber:e.blockNumber,transactionHash:e.transactionHash})).sort((e,f)=>f.blockNumber-e.blockNumber)}async supportsTokenPair(e,f){let t=new s.Contract((0,b.toAddress)(f),d.default.abi,this.messenger.l2Provider);if((0,i.hexStringEquals)((0,b.toAddress)(e),s.ethers.constants.AddressZero)||(0,i.hexStringEquals)((0,b.toAddress)(f),n.predeploys.OVM_ETH))return!1;let a=await t.l1Token();if(!(0,i.hexStringEquals)(a,(0,b.toAddress)(e)))return!1;let r=await t.l2Bridge();return!!(0,i.hexStringEquals)(r,this.l2Bridge.address)}async approval(e,f,t){if(!await this.supportsTokenPair(e,f))throw Error("token pair not supported by bridge");return new s.Contract((0,b.toAddress)(e),d.default.abi,this.messenger.l1Provider).allowance(await t.getAddress(),this.l1Bridge.address)}async approve(e,f,t,a,n){return a.sendTransaction(await this.populateTransaction.approve(e,f,t,n))}async deposit(e,f,t,a,n){return a.sendTransaction(await this.populateTransaction.deposit(e,f,t,n))}async withdraw(e,f,t,a,n){return a.sendTransaction(await this.populateTransaction.withdraw(e,f,t,n))}}f.StandardBridgeAdapter=l},83783:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var f={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&a(f,e,t);return n(f,e),f},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.CrossChainMessenger=void 0;let r=t(40030),o=t(46361),d=t(59035),c=t(28860),b=i(t(94578)),l=s(t(45755)),p=t(58311),u=t(51189);class y{constructor(e){var f;this._outputCache=[],this.populateTransaction={sendMessage:async(e,f)=>e.direction===p.MessageDirection.L1_TO_L2?this.contracts.l1.L1CrossDomainMessenger.populateTransaction.sendMessage(e.target,e.message,(null==f?void 0:f.l2GasLimit)||await this.estimateL2MessageGasLimit(e),(null==f?void 0:f.overrides)||{}):this.contracts.l2.L2CrossDomainMessenger.populateTransaction.sendMessage(e.target,e.message,0,(null==f?void 0:f.overrides)||{}),resendMessage:async(e,f,t,a=0)=>{let n=await this.toCrossChainMessage(e,a);if(n.direction===p.MessageDirection.L2_TO_L1)throw Error("cannot resend L2 to L1 message");return this.bedrock?this.populateTransaction.finalizeMessage(n,Object.assign(Object.assign({},t||{}),{overrides:Object.assign(Object.assign({},null==t?void 0:t.overrides),{gasLimit:f})}),a):new c.ethers.Contract(this.contracts.l1.L1CrossDomainMessenger.address,(0,r.getContractInterface)("L1CrossDomainMessenger"),this.l1SignerOrProvider).populateTransaction.replayMessage(n.target,n.sender,n.message,n.messageNonce,n.minGasLimit,f,(null==t?void 0:t.overrides)||{})},proveMessage:async(e,f,t=0)=>{let a=await this.toCrossChainMessage(e,t);if(a.direction===p.MessageDirection.L1_TO_L2)throw Error("cannot finalize L1 to L2 message");if(!this.bedrock)throw Error("message proving only applies after the bedrock upgrade");let n=await this.toLowLevelMessage(a,t),i=await this.getBedrockMessageProof(a,t),s=[[n.messageNonce,n.sender,n.target,n.value,n.minGasLimit,n.message],i.l2OutputIndex,[i.outputRootProof.version,i.outputRootProof.stateRoot,i.outputRootProof.messagePasserStorageRoot,i.outputRootProof.latestBlockhash],i.withdrawalProof,(null==f?void 0:f.overrides)||{}];return this.contracts.l1.OptimismPortal.populateTransaction.proveWithdrawalTransaction(...s)},finalizeMessage:async(e,f,t=0)=>{let a=await this.toCrossChainMessage(e,t);if(a.direction===p.MessageDirection.L1_TO_L2)throw Error("cannot finalize L1 to L2 message");if(this.bedrock){let e=(0,o.hashCrossDomainMessagev1)(a.messageNonce,a.sender,a.target,a.value,a.minGasLimit,a.message),[n,i]=await Promise.allSettled([this.contracts.l1.L1CrossDomainMessenger.failedMessages(e),this.toLowLevelMessage(a,t)]);if("rejected"===n.status||"rejected"===i.status){let e=[n,i].filter(e=>"rejected"===e.status).map(e=>e.reason);throw e.length>1?AggregateError(e):e[0]}if(!0===n.value){let e=this.contracts.l1.L1CrossDomainMessenger.interface.decodeFunctionData("relayMessage",i.value.message);return this.contracts.l1.L1CrossDomainMessenger.populateTransaction.relayMessage(e._nonce,e._sender,e._target,e._value,e._minGasLimit,e._message,(null==f?void 0:f.overrides)||{})}return this.contracts.l1.OptimismPortal.populateTransaction.finalizeWithdrawalTransaction([i.value.messageNonce,i.value.sender,i.value.target,i.value.value,i.value.minGasLimit,i.value.message],(null==f?void 0:f.overrides)||{})}{let e=await this.getMessageProof(a,t);return new c.ethers.Contract(this.contracts.l1.L1CrossDomainMessenger.address,(0,r.getContractInterface)("L1CrossDomainMessenger"),this.l1SignerOrProvider).populateTransaction.relayMessage(a.target,a.sender,a.message,a.messageNonce,e,(null==f?void 0:f.overrides)||{})}},depositETH:async(e,f,t=!1)=>{let a=async()=>{if(t)return f;let a=await this.estimateGas.depositETH(e,f);return Object.assign(Object.assign({},f),{overrides:Object.assign(Object.assign({},null==f?void 0:f.overrides),{gasLimit:a.add(a.div(2))})})};return this.bridges.ETH.populateTransaction.deposit(c.ethers.constants.AddressZero,r.predeploys.OVM_ETH,e,await a())},withdrawETH:async(e,f)=>this.bridges.ETH.populateTransaction.withdraw(c.ethers.constants.AddressZero,r.predeploys.OVM_ETH,e,f),approveERC20:async(e,f,t,a)=>(await this.getBridgeForTokenPair(e,f)).populateTransaction.approve(e,f,t,a),depositERC20:async(e,f,t,a,n=!1)=>{let i=await this.getBridgeForTokenPair(e,f),s=async()=>{var i,s,r,o;
1if(n)return a;if(!c.ethers.Signer.isSigner(this.l1SignerOrProvider))throw Error("unable to deposit without an l1 signer");let d=this.l1SignerOrProvider.getAddress(),b=await this.estimateGas.depositERC20(e,f,t,Object.assign(Object.assign({},a),{overrides:Object.assign(Object.assign({},null==a?void 0:a.overrides),{from:null!==(s=null===(i=null==a?void 0:a.overrides)||void 0===i?void 0:i.from)&&void 0!==s?s:d})}));return Object.assign(Object.assign({},a),{overrides:Object.assign(Object.assign({},null==a?void 0:a.overrides),{gasLimit:b.add(b.div(2)),from:null!==(o=null===(r=null==a?void 0:a.overrides)||void 0===r?void 0:r.from)&&void 0!==o?o:d})})};return i.populateTransaction.deposit(e,f,t,await s())},withdrawERC20:async(e,f,t,a)=>(await this.getBridgeForTokenPair(e,f)).populateTransaction.withdraw(e,f,t,a)},this.estimateGas={sendMessage:async(e,f)=>{let t=await this.populateTransaction.sendMessage(e,f);return e.direction===p.MessageDirection.L1_TO_L2?this.l1Provider.estimateGas(t):this.l2Provider.estimateGas(t)},resendMessage:async(e,f,t)=>this.l1Provider.estimateGas(await this.populateTransaction.resendMessage(e,f,t)),proveMessage:async(e,f,t=0)=>this.l1Provider.estimateGas(await this.populateTransaction.proveMessage(e,f,t)),finalizeMessage:async(e,f,t=0)=>this.l1Provider.estimateGas(await this.populateTransaction.finalizeMessage(e,f,t)),depositETH:async(e,f)=>this.l1Provider.estimateGas(await this.populateTransaction.depositETH(e,f,!0)),withdrawETH:async(e,f)=>this.l2Provider.estimateGas(await this.populateTransaction.withdrawETH(e,f)),approveERC20:async(e,f,t,a)=>this.l1Provider.estimateGas(await this.populateTransaction.approveERC20(e,f,t,a)),depositERC20:async(e,f,t,a)=>this.l1Provider.estimateGas(await this.populateTransaction.depositERC20(e,f,t,a,!0)),withdrawERC20:async(e,f,t,a)=>this.l2Provider.estimateGas(await this.populateTransaction.withdrawERC20(e,f,t,a))},this.bedrock=null===(f=e.bedrock)||void 0===f||f,this.l1SignerOrProvider=(0,u.toSignerOrProvider)(e.l1SignerOrProvider),this.l2SignerOrProvider=(0,u.toSignerOrProvider)(e.l2SignerOrProvider);try{this.l1ChainId=(0,u.toNumber)(e.l1ChainId)}catch(f){throw Error(`L1 chain ID is missing or invalid: ${e.l1ChainId}`)}try{this.l2ChainId=(0,u.toNumber)(e.l2ChainId)}catch(f){throw Error(`L2 chain ID is missing or invalid: ${e.l2ChainId}`)}this.depositConfirmationBlocks=(null==e?void 0:e.depositConfirmationBlocks)!==void 0?(0,u.toNumber)(e.depositConfirmationBlocks):u.DEPOSIT_CONFIRMATION_BLOCKS[this.l2ChainId]||0,this.l1BlockTimeSeconds=(null==e?void 0:e.l1BlockTimeSeconds)!==void 0?(0,u.toNumber)(e.l1BlockTimeSeconds):u.CHAIN_BLOCK_TIMES[this.l1ChainId]||1,this.contracts=(0,u.getAllOEContracts)(this.l2ChainId,{l1SignerOrProvider:this.l1SignerOrProvider,l2SignerOrProvider:this.l2SignerOrProvider,overrides:e.contracts}),this.bridges=(0,u.getBridgeAdapters)(this.l2ChainId,this,{overrides:e.bridges,contracts:e.contracts})}get l1Provider(){return d.Provider.isProvider(this.l1SignerOrProvider)?this.l1SignerOrProvider:this.l1SignerOrProvider.provider}get l2Provider(){return d.Provider.isProvider(this.l2SignerOrProvider)?this.l2SignerOrProvider:this.l2SignerOrProvider.provider}get l1Signer(){if(!d.Provider.isProvider(this.l1SignerOrProvider))return this.l1SignerOrProvider;throw Error("messenger has no L1 signer")}get l2Signer(){if(!d.Provider.isProvider(this.l2SignerOrProvider))return this.l2SignerOrProvider;throw Error("messenger has no L2 signer")}async fpac(){return this.contracts.l1.OptimismPortal.address!==c.ethers.constants.AddressZero&&l.default.gte(await this.contracts.l1.OptimismPortal.version(),"3.0.0")}async getMessagesByTransaction(e,f={}){var t;let a;await (null===(t=e.wait)||void 0===t?void 0:t.call(e));let n=(0,u.toTransactionHash)(e);if(void 0!==f.direction?a=f.direction===p.MessageDirection.L1_TO_L2?await this.l1Provider.getTransactionReceipt(n):await this.l2Provider.getTransactionReceipt(n):(a=await this.l1Provider.getTransactionReceipt(n))?f.direction=p.MessageDirection.L1_TO_L2:(a=await this.l2Provider.getTransactionReceipt(n),f.direction=p.MessageDirection.L2_TO_L1),!a)throw Error(`unable to find transaction receipt for ${n}`);let i=f.direction===p.MessageDirection.L1_TO_L2?this.contracts.l1.L1CrossDomainMessenger
1:this.contracts.l2.L2CrossDomainMessenger;return a.logs.filter(e=>e.address===i.address).filter(e=>"SentMessage"===i.interface.parseLog(e).name).map(e=>{let t=c.ethers.BigNumber.from(0),n=a.logs.find(f=>f.logIndex===e.logIndex+1&&f.address===i.address);if(n){let e=i.interface.parseLog(n);"SentMessageExtension1"===e.name&&(t=e.args.value)}let s=i.interface.parseLog(e);return{direction:f.direction,target:s.args.target,sender:s.args.sender,message:s.args.message,messageNonce:s.args.messageNonce,value:t,minGasLimit:s.args.gasLimit,logIndex:e.logIndex,blockNumber:e.blockNumber,transactionHash:e.transactionHash}})}async toBedrockCrossChainMessage(e,f=0){let t=await this.toCrossChainMessage(e,f),{version:a}=(0,o.decodeVersionedNonce)(t.messageNonce);if(a.eq(1))return t;let n=c.BigNumber.from(0);if(t.direction===p.MessageDirection.L2_TO_L1&&t.sender===this.contracts.l2.L2StandardBridge.address&&t.target===this.contracts.l1.L1StandardBridge.address)try{[,,n]=this.contracts.l1.L1StandardBridge.interface.decodeFunctionData("finalizeETHWithdrawal",t.message)}catch(e){}return Object.assign(Object.assign({},t),{value:n,minGasLimit:c.BigNumber.from(0),messageNonce:(0,o.encodeVersionedNonce)(c.BigNumber.from(0),t.messageNonce)})}async toLowLevelMessage(e,f=0){let t,a,n;let i=await this.toCrossChainMessage(e,f);if(i.direction===p.MessageDirection.L1_TO_L2)throw Error("can only convert L2 to L1 messages to low level");let{version:s}=(0,o.decodeVersionedNonce)(i.messageNonce);t=s.eq(0)?await this.toBedrockCrossChainMessage(i,f):i;let r=(0,o.encodeCrossDomainMessageV1)(t.messageNonce,t.sender,t.target,t.value,t.minGasLimit,t.message);if(s.eq(0)){let e=await (0,o.getChainId)(this.l2Provider);a=(0,u.migratedWithdrawalGasLimit)(r,e),n=i.messageNonce}else{let t=await this.l2Provider.getTransactionReceipt((await this.toCrossChainMessage(e)).transactionHash),i=[];for(let e of t.logs)if(e.address===this.contracts.l2.BedrockMessagePasser.address){let f=this.contracts.l2.L2ToL1MessagePasser.interface.parseLog(e);"MessagePassed"===f.name&&i.push(f.args)}if(0===i.length)throw Error("no withdrawals found in receipt");let s=i[f];if(!s)throw Error(`withdrawal index ${f} out of bounds there are ${i.length} withdrawals`);n=s.nonce,a=s.gasLimit}return{messageNonce:n,sender:this.contracts.l2.L2CrossDomainMessenger.address,target:this.contracts.l1.L1CrossDomainMessenger.address,value:t.value,minGasLimit:a,message:r}}async getBridgeForTokenPair(e,f){var t,a;let n=[];for(let i of Object.values(this.bridges))try{await i.supportsTokenPair(e,f)&&n.push(i)}catch(e){(null===(t=null==e?void 0:e.message)||void 0===t?void 0:t.toString().includes("CALL_EXCEPTION"))||(null===(a=null==e?void 0:e.stack)||void 0===a?void 0:a.toString().includes("execution reverted"))||console.error("Unexpected error when checking bridge",e)}if(0===n.length)throw Error("no supported bridge for token pair");if(n.length>1)throw Error("found more than one bridge for token pair");return n[0]}async getDepositsByAddress(e,f={}){return(await Promise.all(Object.values(this.bridges).map(async t=>t.getDepositsByAddress(e,f)))).reduce((e,f)=>e.concat(f),[]).sort((e,f)=>f.blockNumber-e.blockNumber)}async getWithdrawalsByAddress(e,f={}){return(await Promise.all(Object.values(this.bridges).map(async t=>t.getWithdrawalsByAddress(e,f)))).reduce((e,f)=>e.concat(f),[]).sort((e,f)=>f.blockNumber-e.blockNumber)}async toCrossChainMessage(e,f=0){if(!e)throw Error("message is undefined");if(e.message)return e;if(e.l1Token&&e.l2Token&&e.transactionHash){let f=(await this.getMessagesByTransaction(e.transactionHash)).sort((e,f)=>e.logIndex-f.logIndex).find(f=>f.logIndex>e.logIndex);if(!f)throw Error("could not find SentMessage event for message");return f}{let t=await this.getMessagesByTransaction(e),a=t[f];if(!a)throw Error(`withdrawal index ${f} out of bounds. There are ${t.length} withdrawals`);return a}}async getMessageStatus(e,f=0,t,a){let n=await this.toCrossChainMessage(e,f),i=(0,o.hashCrossDomainMessagev0)(n.target,n.sender,n.message,n.messageNonce),s=(0,o.hashCrossDomainMessagev1)(n.messageNonce,n.sender,n.target,n.value,n.minGasLimit,n.message),r=n.direction===p.MessageDirection.L1_TO_L2?this.contracts.l2.L2CrossDomainMessenger
1:this.contracts.l1.L1CrossDomainMessenger;if(await r.successfulMessages(i)||await r.successfulMessages(s))return p.MessageStatus.RELAYED;let d=await r.failedMessages(i)||await r.failedMessages(s);if(n.direction===p.MessageDirection.L1_TO_L2)return d?p.MessageStatus.FAILED_L1_TO_L2_MESSAGE:p.MessageStatus.UNCONFIRMED_L1_TO_L2_MESSAGE;if(d)return p.MessageStatus.READY_FOR_RELAY;{let e;if(this.bedrock){if(null===await this.getMessageBedrockOutput(n,f))return p.MessageStatus.STATE_ROOT_NOT_PUBLISHED;let t=await this.toLowLevelMessage(n,f),a=await this.getProvenWithdrawal((0,u.hashLowLevelMessage)(t));if(null===a)return p.MessageStatus.READY_TO_PROVE;e=a.timestamp.toNumber()}else{let t=await this.getMessageStateRoot(n,f);if(null===t)return p.MessageStatus.STATE_ROOT_NOT_PUBLISHED;let a=t.batch.blockNumber;e=(await this.l1Provider.getBlock(a)).timestamp}if(!await this.fpac())return e+await this.getChallengePeriodSeconds()>(await this.l1Provider.getBlock("latest")).timestamp?p.MessageStatus.IN_CHALLENGE_PERIOD:p.MessageStatus.READY_FOR_RELAY;{let e=await this.toLowLevelMessage(n,f),t=(0,u.hashLowLevelMessage)(e),a=await this.getProvenWithdrawal(t);if(null===a)return console.warn("Unexpected code path reached in getMe
1ssageStatus, returning READY_TO_PROVE"),p.MessageStatus.READY_TO_PROVE;if(!("proofSubmitter"in a))throw Error("expected to get FPAC withdrawal but got legacy withdrawal");try{return await this.contracts.l1.OptimismPortal2.checkWithdrawal((0,u.hashLowLevelMessage)(e),a.proofSubmitter),p.MessageStatus.READY_FOR_RELAY}catch(e){return p.MessageStatus.IN_CHALLENGE_PERIOD}}}}async getMessageReceipt(e,f=0,t,a){let n=await this.toCrossChainMessage(e,f),i=(0,o.hashCrossDomainMessagev0)(n.target,n.sender,n.message,n.messageNonce),s=(0,o.hashCrossDomainMessagev1)(n.messageNonce,n.sender,n.target,n.value,n.minGasLimit,n.message),r=n.direction===p.MessageDirection.L1_TO_L2?this.contracts.l2.L2CrossDomainMessenger:this.contracts.l1.L1CrossDomainMessenger,d=[...await r.queryFilter(r.filters.RelayedMessage(i),t,a),...await r.queryFilter(r.filters.RelayedMessage(s),t,a)];if(1===d.length)return{receiptStatus:p.MessageReceiptStatus.RELAYED_SUCCEEDED,transactionReceipt:await d[0].getTransactionReceipt()};if(d.length>1)throw Error("multiple successful relays for message");let c=[...await r.queryFilter(r.filters.FailedRelayedMessage(i),t,a),...await r.queryFilter(r.filters.FailedRelayedMessage(s),t,a)];return c.length>0?{receiptStatus:p.MessageReceiptStatus.RELAYED_FAILED,transactionReceipt:await c[c.length-1].getTransactionReceipt()}:null}async waitForMessageReceipt(e,f={},t=0){let a=await this.toCrossChainMessage(e,t),n=0;for(;n<(f.timeoutMs||1/0);){let e=Date.now(),i=await this.getMessageReceipt(a,t,f.fromBlockOrBlockHash,f.toBlockOrHash);if(null!==i)return i;await (0,o.sleep)(f.pollIntervalMs||4e3),n+=Date.now()-e}throw Error("timed out waiting for message receipt")}async waitForMessageStatus(e,f,t={},a=0){let n=await this.toCrossChainMessage(e,a),i=0;for(;i<(t.timeoutMs||1/0);){let e=Date.now(),s=await this.getMessageStatus(n,a,t.fromBlockOrBlockHash,t.toBlockOrBlockHash);if(n.direction===p.MessageDirection.L1_TO_L2){if(s===f||f===p.MessageStatus.UNCONFIRMED_L1_TO_L2_MESSAGE&&s>f)return;if(f===p.MessageStatus.FAILED_L1_TO_L2_MESSAGE&&s===p.MessageStatus.RELAYED)throw Error("incompatible message status, expected FAILED_L1_TO_L2_MESSAGE got RELAYED");if(f===p.MessageStatus.RELAYED&&s===p.MessageStatus.FAILED_L1_TO_L2_MESSAGE)throw Error("incompatible message status, expected RELAYED got FAILED_L1_TO_L2_MESSAGE")}if(n.direction===p.MessageDirection.L2_TO_L1&&s>=f)return;await (0,o.sleep)(t.pollIntervalMs||4e3),i+=Date.now()-e}throw Error("timed out waiting for message status change")}async estimateL2MessageGasLimit(e,f,t=0){let a,n;if(void 0===e.messageNonce?(a=e,n=null==f?void 0:f.from):(a=await this.toCrossChainMessage(e,t),n=(null==f?void 0:f.from)||a.sender),a.direction===p.MessageDirection.L2_TO_L1)throw Error("cannot estimate gas limit for L2 => L1 message");let i=await this.l2Provider.estimateGas({from:n,to:a.target,data:a.message}),s=(null==f?void 0:f.bufferPercent)||20;return i.mul(100+s).div(100)}async estimateMessageWaitTimeSeconds(e,f=0,t,a){let n=await this.toCrossChainMessage(e,f),i=await this.getMessageStatus(n,f,t,a);if(n.direction===p.MessageDirection.L1_TO_L2){if(i===p.MessageStatus.RELAYED||i===p.MessageStatus.FAILED_L1_TO_L2_MESSAGE)return 0;{let e=await this.l1Provider.getTransactionReceipt(n.transactionHash);return Math.max(this.depositConfirmationBlocks-e.confirmations,0)*this.l1BlockTimeSeconds}}if(i===p.MessageStatus.RELAYED||i===p.MessageStatus.READY_FOR_RELAY)return 0;if(i===p.MessageStatus.STATE_ROOT_NOT_PUBLISHED)return this.getChallengePeriodSeconds();if(i===p.MessageStatus.IN_CHALLENGE_PERIOD){let e=await this.getMessageStateRoot(n,f),t=await this.getChallengePeriodSeconds(),a=await this.l1Provider.getBlock(e.batch.blockNumber);return Math.max(t-((await this.l1Provider.getBlock("latest")).timestamp-a.timestamp),0)}throw Error("unexpected message status")}async getChallengePeriodSeconds(){return this.bedrock?("1.0.0"===await this.contracts.l1.L2OutputOracle.version()?c.BigNumber.from(await this.contracts.l1.OptimismPortal.provider.call({to:this.contracts.l1.OptimismPortal.address,data:"0xf4daa291"})):await this.contracts.l1.L2OutputOracle.FINALIZATION_PERIOD_SECONDS()).toNumber():(await this.contracts.l1.StateCommitmentChain.FRAUD_PROOF_WINDOW()).toNumber()}async getProvenWithdrawal(e){if(!this.bedrock)throw Error("message proving only applies after the bedrock upgrade");if(!await this.fpac()){let f=await this.contracts.l1.OptimismPortal.provenWithdrawals(e);return f.timestamp.eq(0)?null:f}let f=c.BigNumber.from(await this.contracts.l1.OptimismPortal2.numProofSubmitters(e)).toNumber();for(let t=0;t<f;t++){let f;let a=await this.contracts.l1.OptimismPortal2.proofSubmitters(e,t),n=await this.contracts.l1.OptimismPortal2.provenWithdrawals(e,a),i=new c.ethers.Contract(n.disputeGameProxy,(0,u.getContractInterfaceBedrock)("FaultDisputeGame"),this.l1SignerOrProvider),s=await i.status();if(1===s)continue;if(2===s)return Object.assign(Object.assign({},n),{proofSubmitter:a});if(s>2)throw Error("got invalid game status");let r=await i.extraData();try{[f]=c.ethers.utils.defaultAbiCoder.decode(["uint256"],r)}catch(e){continue}if(await this.isValidOutputRoot(await i.rootClaim(),f))return Object.assign(Object.assign({},n),{proofSubmitter:a})}return null}async isValidOutputRoot(e,f){let t=this._outputCache.find(f=>f.root===e);if(t)return t.valid;this._outputCache.length>1e4&&(this._outputCache=this._outputCache.slice(5e3));try{let t=(0,u.toJsonRpcProvider)(this.l2Provider),[a,n]=await Promise.all([t.send("eth_getBlockByNumber",[(0,o.toRpcHexString)(f),!1]),(0,u.makeStateTrieProof)(t,f,this.contracts.l2.OVM_L2ToL1MessagePasser.address,c.ethers.constants.HashZero)]),i=c.ethers.utils.solidityKeccak256(["bytes32","bytes32","bytes32","bytes32"],[c.ethers.constants.HashZero,a.stateRoot,n.storageRoot,a.hash])===e;return this._outputCache.push({root:e,valid:i}),i}catch(e){return!1}}
1async getMessageBedrockOutput(e,f=0){let t,a;let n=await this.toCrossChainMessage(e,f);if(n.direction===p.MessageDirection.L1_TO_L2)throw Error("cannot get a state root for an L1 to L2 message");if(await this.fpac()){let e;let f=await this.contracts.l1.OptimismPortal2.respectedGameType(),i=await this.contracts.l1.DisputeGameFactory.gameCount(),s=await this.contracts.l1.DisputeGameFactory.findLatestGames(f,Math.max(0,i.sub(1).toNumber()),Math.min(100,i.toNumber())),r=[];for(let e of s)try{let[f]=c.ethers.utils.defaultAbiCoder.decode(["uint256"],e.extraData);f.gte(n.blockNumber)&&r.push(Object.assign(Object.assign({},e),{l2BlockNumber:f}))}catch(e){continue}for(let e=r.length-1;e>0;e--){let f=Math.floor(Math.random()*(e+1));[r[e],r[f]]=[r[f],r[e]]}for(let f of r)if(await this.isValidOutputRoot(f.rootClaim,f.l2BlockNumber)){e=f;break}if(!e)return null;a=e.index,t={outputRoot:e.rootClaim,timestamp:e.timestamp,l2BlockNumber:e.l2BlockNumber}}else{try{a=await this.contracts.l1.L2OutputOracle.getL2OutputIndexAfter(n.blockNumber)}catch(e){if(e.message.includes("L2OutputOracle: cannot get output"))return null;throw e}t=await this.contracts.l1.L2OutputOracle.getL2Output(a)}return{outputRoot:t.outputRoot,l1Timestamp:t.timestamp.toNumber(),l2BlockNumber:t.l2BlockNumber.toNumber(),l2OutputIndex:a.toNumber()}}async getMessageStateRoot(e,f=0){let t=await this.toCrossChainMessage(e,f);if(t.direction===p.MessageDirection.L1_TO_L2)throw Error("cannot get a state root for an L1 to L2 message");let a=(await this.l2Provider.getTransactionReceipt(t.transactionHash)).blockNumber-1,n=await this.get
1StateRootBatchByTransactionIndex(a);if(null===n)return null;let i=a-n.header.prevTotalElements.toNumber();if(n.stateRoots.length<=i)throw Error("state root does not exist in batch");return{stateRoot:n.stateRoots[i],stateRootIndexInBatch:i,batch:n}}async getStateBatchAppendedEventByBatchIndex(e){let f=await this.contracts.l1.StateCommitmentChain.queryFilter(this.contracts.l1.StateCommitmentChain.filters.StateBatchAppended(e));if(0===f.length)return null;if(!(f.length>1))return f[0];throw Error("found more than one StateBatchAppended event")}async getStateBatchAppendedEventByTransactionIndex(e){let f=(e,f)=>f<e.args._prevTotalElements.toNumber(),t=(e,f)=>f>=e.args._prevTotalElements.toNumber()+e.args._batchSize.toNumber(),a=await this.contracts.l1.StateCommitmentChain.getTotalBatches();if(a.eq(0))return null;let n=0,i=a.toNumber()-1,s=await this.getStateBatchAppendedEventByBatchIndex(i);if(null===s||t(s,e))return null;if(!f(s,e))return s;for(;n<i;){let a=Math.floor((n+i)/2);if(f(s=await this.getStateBatchAppendedEventByBatchIndex(a),e))i=a;else if(t(s,e))n=a;else break}return s}async getStateRootBatchByTransactionIndex(e){let f=await this.get
1StateBatchAppendedEventByTransactionIndex(e);if(null===f)return null;let t=await f.getTransaction(),[a]=this.contracts.l1.StateCommitmentChain.interface.decodeFunctionData("appendStateBatch",t.data);return{blockNumber:f.blockNumber,stateRoots:a,header:{batchIndex:f.args._batchIndex,batchRoot:f.args._batchRoot,batchSize:f.args._batchSize,prevTotalElements:f.args._prevTotalElements,extraData:f.args._extraData}}}async getMessageProof(e,f=0){let t=await this.toCrossChainMessage(e,f);if(t.direction===p.MessageDirection.L1_TO_L2)throw Error("can only generate proofs for L2 to L1 messages");let a=await this.getMessageStateRoot(t,f);if(null===a)throw Error("state root for message not yet published");let n=c.ethers.utils.keccak256(c.ethers.utils.keccak256((0,o.encodeCrossDomainMessageV0)(t.target,t.sender,t.message,t.messageNonce)+(0,o.remove0x)(this.contracts.l2.L2CrossDomainMessenger.address))+"00".repeat(32)),i=await (0,u.makeStateTrieProof)((0,u.toJsonRpcProvider)(this.l2Provider),t.blockNumber,this.contracts.l2.OVM_L2ToL1MessagePasser.address,n);return{stateRoot:a.stateRoot,stateRootBatchHeader:a.batch.header,stateRootProof:{index:a.stateRootIndexInBatch,siblings:(0,u.makeMerkleTreeProof)(a.batch.stateRoots,a.stateRootIndexInBatch)},stateTrieWitness:(0,o.toHexString)(b.encode(i.accountProof)),storageTrieWitness:(0,o.toHexString)(b.encode(i.storageProof))}}async getBedrockMessageProof(e,f=0){let t=await this.toCrossChainMessage(e,f);if(t.direction===p.MessageDirection.L1_TO_L2)throw Error("can only generate proofs for L2 to L1 messages");let a=await this.getMessageBedrockOutput(t,f);if(null===a)throw Error("state root for message not yet published");let n=await this.toLowLevelMessage(t,f),i=(0,u.hashLowLevelMessage)(n),s=(0,u.hashMessageHash)(i),r=(0,u.toJsonRpcProvider)(this.l2Provider),d=await (0,u.makeStateTrieProof)(r,a.l2BlockNumber,this.contracts.l2.BedrockMessagePasser.address,s),b=await r.send("eth_getBlockByNumber",[(0,o.toRpcHexString)(a.l2BlockNumber),!1]);return{outputRootProof:{version:c.ethers.constants.HashZero,stateRoot:b.stateRoot,messagePasserStorageRoot:d.storageRoot,latestBlockhash:b.hash},withdrawalProof:d.storageProof,l2OutputIndex:a.l2OutputIndex}}async sendMessage(e,f){let t=await this.populateTransaction.sendMessage(e,f);return e.direction===p.MessageDirection.L1_TO_L2?((null==f?void 0:f.signer)||this.l1Signer).sendTransaction(t):((null==f?void 0:f.signer)||this.l2Signer).sendTransaction(t)}async resendMessage(e,f,t){return((null==t?void 0:t.signer)||this.l1Signer).sendTransaction(await this.populateTransaction.resendMessage(e,f,t))}async proveMessage(e,f,t=0){let a=await this.populateTransaction.proveMessage(e,f,t);return((null==f?void 0:f.signer)||this.l1Signer).sendTransaction(a)}async finalizeMessage(e,f,t=0){return((null==f?void 0:f.signer)||this.l1Signer).sendTransaction(await this.populateTransaction.finalizeMessage(e,f,t))}async depositETH(e,f){return((null==f?void 0:f.signer)||this.l1Signer).sendTransaction(await this.populateTransaction.depositETH(e,f))}async withdrawETH(e,f){return((null==f?void 0:f.signer)||this.l2Signer).sendTransaction(await this.populateTransaction.withdrawETH(e,f))}async approval(e,f,t){return(await this.getBridgeForTokenPair(e,f)).approval(e,f,(null==t?void 0:t.signer)||this.l1Signer)}async approveERC20(e,f,t,a){return((null==a?void 0:a.signer)||this.l1Signer).sendTransaction(await this.populateTransaction.approveERC20(e,f,t,a))}async depositERC20(e,f,t,a){return((null==a?void 0:a.signer)||this.l1Signer).sendTransaction(await this.populateTransaction.depositERC20(e,f,t,a))}async withdrawERC20(e,f,t,a){return((null==a?void 0:a.signer)||this.l2Signer).sendTransaction(await this.populateTransaction.withdrawERC20(e,f,t,a))}}f.CrossChainMessenger=y},9218:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(11756),f),n(t(83783),f),n(t(58311),f),n(t(64013),f),n(t(51189),f)},34266:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},58311:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(34266),f),n(t(84649),f),n(t(74421),f)},84649:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},74421:function(e,f){"use strict";var t,a,n,i,s,r,o,d,c,b;Object.defineProperty(f,"__esModule",{value:!0}),f.MessageReceiptStatus=f.MessageDirection=f.MessageStatus=f.L2ChainID=f.L1ChainID=void 0,(r=t||(f.L1ChainID=t={}))[r.MAINNET=1]="MAINNET",r[r.GOERLI=5]="GOERLI",r[r.SEPOLIA=11155111]="SEPOLIA",r[r.HARDHAT_LOCAL=31337]="HARDHAT_LOCAL",r[r.BEDROCK_LOCAL_DEVNET=900]="BEDROCK_LOCAL_DEVNET",(o=a||(f.L2ChainID=a={}))[o.OPTIMISM=10]="OPTIMISM",o[o.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",o[o.OPTIMISM_SEPOLIA=11155420]="OPTIMISM_SEPOLIA",o[o.OPTIMISM_HARDHAT_LOCAL=31337]="OPTIMISM_HARDHAT_LOCAL",o[o.OPTIMISM_HARDHAT_DEVNET=17]="OPTIMISM_HARDHAT_DEVNET",o[o.OPTIMISM_BEDROCK_ALPHA_TESTNET=28528]="OPTIMISM_BEDROCK_ALPHA_TESTNET",o[o.BASE_GOERLI=84531]="BASE_GOERLI",o[o.BASE_SEPOLIA=84532]="BASE_SEPOLIA",o[o.BASE_MAINNET=8453]="BASE_MAINNET",o[o.ZORA_GOERLI=999]="ZORA_GOERLI",o[o.ZORA_MAINNET=7777777]="ZORA_MAINNET",o[o.MODE_SEPOLIA=919]="MODE_SEPOLIA",o[o.MODE_MAINNET=34443]="MODE_MAINNET",(d=n||(f.MessageStatus=n={}))[d.UNCONFIRMED_L1_TO_L2_MESSAGE=0]="UNCONFIRMED_L1_TO_L2_MESSAGE",d[d.FAILED_L1_TO_L2_MESSAGE=1]="FAILED_L1_TO_L2_MESSAGE",d[d.STATE_ROOT_NOT_PUBLISHED=2]="STATE_ROOT_NOT_PUBLISHED",d[d.READY_TO_PROVE=3]="READY_TO_PROVE",d[d.IN_CHALLENGE_PERIOD=4]="IN_CHALLENGE_PERIOD",d[d.READY_FOR_RELAY=5]="READY_FOR_RELAY",d[d.RELAYED=6]="RELAYED",(c=i||(f.MessageDirection=i={}))[c.L1_TO_L2=0]="L1_TO_L2",c[c.L2_TO_L1=1]="L2_TO_L1",(b=s||(f.MessageReceiptStatus=s={}))[b.RELAYED_FAILED=0]="RELAYED_FAILED",b[b.RELAYED_SUCCEEDED=1]="RELAYED_SUCCEEDED"},64013:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.asL2Provider=f.isL2Provider=f.estimateTotalGasCost=f.estimateL2GasCost=f.estimateL1GasCost=f.estimateL1Gas=f.getL1GasPrice=void 0;let n=t(40030),i=t(93850),s=t(28860),r=a(t(13839)),o=t(51189),d=t(75269),c=async(e,f)=>void 0!==f.nonce?(0,o.toNumber)(f.nonce):void 0!==f.from?(0,o.toProvider)(e).getTransactionCount(f.from):4294967295,b=e=>new s.Contract(n.predeploys.OVM_GasPriceOracle,(0,n.getContractInterface)("OVM_GasPriceOracle"),(0,o.toProvider)(e)),l=async e=>b(e).l1BaseFee();f.getL1GasPrice=l;let p=async(e,f)=>b(e).getL1GasUsed((0,i.serialize)({to:f.to,gasLimit:f.gasLimit,gasPrice:f.gasPrice,maxFeePerGas:f.maxFeePerGas,maxPriorityFeePerGas:f.maxPriorityFeePerGas,data:f.data,value:f.value,chainId:f.chainId,type:f.type,accessList:f.accessList,nonce:f.nonce?s.BigNumber.from(f.nonce).toNumber():await c(e,f)}));f.estimateL1Gas=p;let u=async(e,f)=>b(e).getL1Fee((0,i.serialize)({to:f.to,gasLimit:f.gasLimit,gasPrice:f.gasPrice,maxFeePerGas:f.maxFeePerGas,maxPriorityFeePerGas:f.maxPriorityFeePerGas,data:f.data,value:f.value,chainId:f.chainId,type:f.type,accessList:f.accessList,nonce:f.nonce?s.BigNumber.from(f.nonce).toNumber():await c(e,f)}));f.estimateL1GasCost=u;let y=async(e,f)=>{let t=(0,o.toProvider)(e),a=await t.getGasPrice(),n=await t.estimateGas(f);return a.mul(n)};f.estimateL2GasCost=y;let m=async(e,t)=>{let a=await (0,f.estimateL1GasCost)(e,t),n=await (0,f.estimateL2GasCost)(e,t);return a.add(n)};f.estimateTotalGasCost=m,f.isL2Provider=e=>!!e._isL2Provider,f.asL2Provider=e=>{if((0,f.isL2Provider)(e))return e;let t=(0,r.default)(e),a=t.formatter;(0,d.assert)(a,"provider.formatter must be defined");let n=a.block.bind(a);a.block=e=>{let f=n(e);return f.stateRoot=e.stateRoot,f};let i=a.blockWithTransactions.bind(a);a.blockWithTransactions=e=>{let f=i(e);return f.stateRoot=e.stateRoot,f.transactions=f.transactions.map((f,t)=>{let a=e.transactions[t];return f.l1BlockNumber=a.l1BlockNumber?(0,o.toNumber)(a.l1BlockNumber):a.l1BlockNumber,f.l1Timestamp=a.l1Timestamp?(0,o.toNumber)(a.l1Timestamp):a.l1Timestamp,f.l1TxOr
1igin=a.l1TxOrigin,f.queueOrigin=a.queueOrigin,f.rawTransaction=a.rawTransaction,f}),f};let s=a.transactionResponse.bind(a);a.transactionResponse=e=>{let f=s(e);return f.txType=e.txType,f.queueOrigin=e.queueOrigin,f.rawTransaction=e.rawTransaction,f.l1TxOrigin=e.l1TxOrigin,f.l1BlockNumber=e.l1BlockNumber?parseInt(e.l1BlockNumber,16):e.l1BlockNumbers,f};let c=a.receipt.bind(a);return a.receipt=e=>{let f=c(e);return f.l1GasPrice=(0,o.toBigNumber)(e.l1GasPrice),f.l1GasUsed=(0,o.toBigNumber)(e.l1GasUsed),f.l1Fee=(0,o.toBigNumber)(e.l1Fee),f.l1FeeScalar=parseFloat(e.l1FeeScalar),f},t.getL1GasPrice=async()=>(0,f.getL1GasPrice)(t),t.estimateL1Gas=async e=>(0,f.estimateL1Gas)(t,e),t.estimateL1GasCost=async e=>(0,f.estimateL1GasCost)(t,e),t.estimateL2GasCost=async e=>(0,f.estimateL2GasCost)(t,e),t.estimateTotalGasCost=async e=>(0,f.estimateTotalGasCost)(t,e),t._isL2Provider=!0,t}},75269:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.assert=void 0,f.assert=(e,f)=>{if(!e)throw Error(f)}},94785:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.BRIDGE_ADAPTER_DATA=f.CONTRACT_ADDRESSES=f.IGNORABLE_CONTRACTS=f.DEFAULT_L2_CONTRACT_ADDRESSES=f.CHAIN_BLOCK_TIMES=f.DEPOSIT_CONFIRMATION_BLOCKS=void 0;let a=t(46361),n=t(28860),i=t(11756),s=t(58311),r={mainnet:"0xbEb5Fc579115071764c7423A4f12eDde41f106Ed",goerli:"0x5b47E1A08Ea6d985D6649300584e6722Ec4B1383",sepolia:"0x16Fc5058F25648194471939df75CF27A2fdC48BC"},o={mainnet:"0xdfe97868233d1aa22e815a266982f2cf17685a27",goerli:"0xE6Dfba0953616Bacab0c9A8ecb3a9BBa77FC15c0",sepolia:"0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F"},d={mainnet:"0xdE1FCfB0851916CA5101820A69b13a4E276bd81F",goerli:"0xa6f73589243a6A7a9023b1Fa0651b1d89c177111",sepolia:"0x9bFE9c5609311DF1c011c47642253B78a4f33F4B"},c={mainnet:"0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1",goerli:"0x636Af16bf2f682dD3109e60102b8E1A089FedAa8",sepolia:"0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1"},b={mainnet:"0x25ace71c97B33Cc4729CF772ae268934F7ab5fA1",goerli:"0x5086d1eEF304eb5284A
10f6720f79403b4e9bE294",sepolia:"0x58Cc85b8D04EA49cC6DBd3CbFFd00B4B8D6cb3ef"},l={mainnet:"0xe5965Ab5962eDc7477C8520243A95517CD252fA9",goerli:n.ethers.constants.AddressZero,sepolia:"0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1"},p={mainnet:"0xBe5dAb4A2e9cd0F27300dB4aB94BeE3A233AEB19",goerli:"0x9c945aC97Baf48cB784AbBB61399beB71aF7A378",sepolia:n.ethers.constants.AddressZero},u={mainnet:"0x5E4e65926BA27467555EB562121fac00D24E9dD2",goerli:"0x607F755149cFEB3a14E1Dc3A4E2450Cde7dfb04D",sepolia:n.ethers.constants.AddressZero};f.DEPOSIT_CONFIRMATION_BLOCKS={[s.L2ChainID.OPTIMISM]:50,[s.L2ChainID.OPTIMISM_GOERLI]:12,[s.L2ChainID.OPTIMISM_SEPOLIA]:12,[s.L2ChainID.OPTIMISM_HARDHAT_LOCAL]:2,[s.L2ChainID.OPTIMISM_HARDHAT_DEVNET]:2,[s.L2ChainID.OPTIMISM_BEDROCK_ALPHA_TESTNET]:12,[s.L2ChainID.BASE_GOERLI]:25,[s.L2ChainID.BASE_SEPOLIA]:25,[s.L2ChainID.BASE_MAINNET]:10,[s.L2ChainID.ZORA_GOERLI]:12,[s.L2ChainID.ZORA_MAINNET]:50,[s.L2ChainID.MODE_SEPOLIA]:25,[s.L2ChainID.MODE_MAINNET]:50},f.CHAIN_BLOCK_TIMES={[s.L1ChainID.MAINNET]:13,[s.L1ChainID.GOERLI]:15,[s.L1ChainID.SEPOLIA]:15,[s.L1ChainID.HARDHAT_LOCAL]:1,[s.L1ChainID.BEDROCK_LOCAL_DEVNET]:15},f.DEFAULT_L2_CONTRACT_ADDRESSES={L2CrossDomainMessenger:a.predeploys.L2CrossDomainMessenger,L2ToL1MessagePasser:a.predeploys.L2ToL1MessagePasser,L2StandardBridge:a.predeploys.L2StandardBridge,OVM_L1BlockNumber:a.predeploys.L1BlockNumber,OVM_L2ToL1MessagePasser:a.predeploys.L2ToL1MessagePasser,OVM_DeployerWhitelist:a.predeploys.DeployerWhitelist,OVM_ETH:a.predeploys.LegacyERC20ETH,OVM_GasPriceOracle:a.predeploys.GasPriceOracle,OVM_SequencerFeeVault:a.predeploys.SequencerFeeVault,WETH:a.predeploys.WETH9,BedrockMessagePasser:a.predeploys.L2ToL1MessagePasser};let y=e=>({AddressManager:d[e],L1CrossDomainMessenger:b[e],L1StandardBridge:c[e],StateCommitmentChain:p[e],CanonicalTransactionChain:u[e],BondManager:n.ethers.constants.AddressZero,OptimismPortal:r[e],L2OutputOracle:o[e],OptimismPortal2:r[e],DisputeGameFactory:l[e]});f.IGNORABLE_CONTRACTS=["OptimismPortal2","DisputeGameFactory"],f.CONTRACT_ADDRESSES={[s.L2ChainID.OPTIMISM]:{l1:y("mainnet"),l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.OPTIMISM_GOERLI]:{l1:y("goerli"),l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.OPTIMISM_SEPOLIA]:{l1:y("sepolia"),l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.OPTIMISM_HARDHAT_LOCAL]:{l1:{AddressManager:"0x5FbDB2315678afecb367f032d93F642f64180aa3",L1CrossDomainMessenger:"0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",L1StandardBridge:"0x610178dA211FEF7D417bC0e6FeD39F05609AD788",StateCommitmentChain:"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",CanonicalTransactionChain:"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",BondManager:"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",OptimismPortal:"0x0000000000000000000000000000000000000000",L2OutputOracle:"0x0000000000000000000000000000000000000000",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.OPTIMISM_HARDHAT_DEVNET]:{l1:{AddressManager:"0x5FbDB2315678afecb367f032d93F642f64180aa3",L1CrossDomainMessenger:"0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",L1StandardBridge:"0x610178dA211FEF7D417bC0e6FeD39F05609AD788",StateCommitmentChain:"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",CanonicalTransactionChain:"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",BondManager:"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",OptimismPortal:"0x0000000000000000000000000000000000000000",L2OutputOracle:"0x0000000000000000000000000000000000000000",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.OPTIMISM_BEDROCK_ALPHA_TESTNET]:{l1:{AddressManager:"0xb4e08DcE1F323608229265c9d4125E22a4B9dbAF",L1CrossDomainMessenger:"0x838a6DC4E37CA45D4Ef05bb776bf05eEf50798De",L1StandardBridge:"0xFf94B6C486350aD92561Ba09bad3a59df764Da92",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0xA581Ca3353DB73115C4625FFC7aDF5dB379434A8",L2OutputOracle:"0x3A234299a14De50027eA65dCdf1c0DaC729e04A6",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.BASE_GOERLI]:{l1:{AddressManager:"0x4Cf6b56b14c6CFcB72A75611080514F94624c54e",L1CrossDomainMessenger
1:"0x8e5693140eA606bcEB98761d9beB1BC87383706D",L1StandardBridge:"0xfA6D8Ee5BE770F84FC001D098C4bD604Fe01284a",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0xe93c8cD0D409341205A592f8c4Ac1A5fe5585cfA",L2OutputOracle:"0x2A35891ff30313CcFa6CE88dcf3858bb075A2298",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.BASE_SEPOLIA]:{l1:{AddressManager:"0x709c2B8ef4A9feFc629A8a2C1AF424Dc5BD6ad1B",L1CrossDomainMessenger:"0xC34855F4De64F1840e5686e64278da901e261f20",L1StandardBridge:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0x49f53e41452C74589E85cA1677426Ba426459e85",L2OutputOracle:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.BASE_MAINNET]:{l1:{AddressManager:"0x8EfB6B5c4767B09Dc9AA6Af4eAA89F749522BaE2",L1CrossDomainMessenger:"0x866E82a600A1414e583f7F13623F1aC5d58b0Afa",L1StandardBridge:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",L2OutputOracle:"0x56315b90c40730925ec5485cf004d835058518A0",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.ZORA_GOERLI]:{l1:{AddressManager:"0x54f4676203dEDA6C08E0D40557A119c602bFA246",L1CrossDomainMessenger:"0xD87342e16352D33170557A7dA1e5fB966a60FafC",L1StandardBridge:"0x7CC09AC2452D6555d5e0C213Ab9E2d44eFbFc956",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0xDb9F51790365e7dc196e7D072728df39Be958ACe",L2OutputOracle:"0xdD292C9eEd00f6A32Ff5245d0BCd7f2a15f24e00",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.ZORA_MAINNET]:{l1:{AddressManager:"0xEF8115F2733fb2033a7c756402Fc1deaa56550Ef",L1CrossDomainMessenger:"0xdC40a14d9abd6F410226f1E6de71aE03441ca506",L1StandardBridge:"0x3e2Ea9B92B7E48A52296fD261dc26fd995284631",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0x1a0ad011913A150f69f6A19DF447A0CfD9551054",L2OutputOracle:"0x9E6204F750cD866b299594e2aC9eA824E2e5f95c",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.MODE_SEPOLIA]:{l1:{AddressManager:"0x83D45725d6562d8CD717673D6bb4c67C07dC1905",L1CrossDomainMessenger:"0xc19a60d9E8C27B9A43527c3283B4dd8eDC8bE15C",L1StandardBridge:"0xbC5C679879B2965296756CD959C3C739769995E2",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0x320e1580effF37E008F1C92700d1eBa47c1B23fD",L2OutputOracle:"0x2634BD65ba27AB63811c74A63118ACb312701Bfa",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES},[s.L2ChainID.MODE_MAINNET]:{l1:{AddressManager:"0x50eF494573f28Cad6B64C31b7a00Cdaa48306e15",L1CrossDomainMessenger
1:"0x95bDCA6c8EdEB69C98Bd5bd17660BaCef1298A6f",L1StandardBridge:"0x735aDBbE72226BD52e818E7181953f42E3b0FF21",StateCommitmentChain:"0x0000000000000000000000000000000000000000",CanonicalTransactionChain:"0x0000000000000000000000000000000000000000",BondManager:"0x0000000000000000000000000000000000000000",OptimismPortal:"0x8B34b14c7c7123459Cf3076b8Cb929BE097d0C07",L2OutputOracle:"0x4317ba146D4933D889518a3e5E11Fe7a53199b04",OptimismPortal2:"0x0000000000000000000000000000000000000000",DisputeGameFactory:"0x0000000000000000000000000000000000000000"},l2:f.DEFAULT_L2_CONTRACT_ADDRESSES}},f.BRIDGE_ADAPTER_DATA={[s.L2ChainID.OPTIMISM]:{wstETH:{Adapter:i.DAIBridgeAdapter,l1Bridge:"0x76943C0D61395d8F2edF9060e1533529cAe05dE6",l2Bridge:"0x8E01013243a96601a86eb3153F0d9Fa4fbFb6957"},BitBTC:{Adapter:i.StandardBridgeAdapter,l1Bridge:"0xaBA2c5F108F7E820C049D5Af70B16ac266c8f128",l2Bridge:"0x158F513096923fF2d3aab2BcF4478536de6725e2"},DAI:{Adapter:i.DAIBridgeAdapter,l1Bridge:"0x10E6593CDda8c58a1d0f14C5164B376352a55f2F",l2Bridge:"0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65"},ECO:{Adapter:i.ECOBridgeAdapter,l1Bridge:"0xAa029BbdC947F5205fBa0F3C11b592420B58f824",l2Bridge:"0xAa029BbdC947F5205fBa0F3C11b592420B58f824"}},[s.L2ChainID.OPTIMISM_GOERLI]:{DAI:{Adapter:i.DAIBridgeAdapter,l1Bridge:"0x05a388Db09C2D44ec0b00Ee188cD42365c42Df23",l2Bridge:"0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65"},ECO:{Adapter:i.ECOBridgeAdapter,l1Bridge:"0x9A4464D6bFE006715382D39D183AAf66c952a3e0",l2Bridge:"0x6aA809bAeA2e4C057b3994127cB165119c6fc3B2"}}}},57803:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.toAddress=f.toNumber=f.toBigNumber=f.toTransactionHash=f.toJsonRpcProvider=f.toProvider=f.toSignerOrProvider=void 0;let a=t(59035),n=t(37637),i=t(28860),s=t(75269);f.toSignerOrProvider=e=>{if("string"==typeof e)return new i.ethers.providers.JsonRpcProvider(e);if(a.Provider.isProvider(e)||n.Signer.isSigner(e))return e;throw Error("Invalid provider")},f.toProvider=e=>{if("string"==typeof e)return new i.ethers.providers.JsonRpcProvider(e);if(a.Provider.isProvider(e))return e;throw Error("Invalid provider")},f.toJsonRpcProvider=e=>{let t=(0,f.toProvider)(e);if("send"in t)return t;throw Error('Invalid JsonRpcProvider, does not have "send" function')},f.toTransactionHash=e=>{if("string"==typeof e)return(0,s.assert)(i.ethers.utils.isHexString(e,32),"Invalid transaction hash"),e;if(e.transactionHash)return e.transactionHash;if(e.hash)return e.hash;throw Error("Invalid transaction")},f.toBigNumber=e=>i.ethers.BigNumber.from(e),f.toNumber=e=>(0,f.toBigNumber)(e).toNumber(),f.toAddress=e=>"string"==typeof e?((0,s.assert)(i.ethers.utils.isAddress(e),"Invalid address"),i.ethers.utils.getAddress(e)):((0,s.assert)(i.ethers.utils.isAddress(e.address),"Invalid address"),i.ethers.utils.getAddress(e.address))},55802:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.getBridgeAdapters=f.getAllOEContracts=f.getOEContract=f.getContractInterfaceBedrock=void 0;let n=t(40030),i=t(28860),s=t(11756),r=a(t(182)),o=a(t(67724)),d=a(t(90200)),c=a(t(37453)),b=a(t(42353)),l=a(t(75033)),p=a(t(43474)),u=a(t(1343)),y=a(t(96025)),m=a(t(7048)),g=a(t(91143)),h=a(t(39572)),_=a(t(24194)),T=a(t(70599)),v=a(t(53393)),D=a(t(83706)),M=a(t(77164)),S=t(94785),w=t(57803),x={AddressManager:"Lib_AddressManager",OVM_L1BlockNumber:"iOVM_L1BlockNumber",WETH:"WETH9",BedrockMessagePasser:"L2ToL1MessagePasser"};f.getContractInterfaceBedrock=e=>{let f="";switch(e){case"Lib_AddressManager":case"AddressManager":f="";break;case"L1CrossDomainMessenger":f=b.default;break;case"L1ERC721Bridge":f=l.default;break;case"L2OutputOracle":f=m.default;break;case"OptimismMintableERC20Factory":f=T.default;break;case"ProxyAdmin":f=M.default;break;case"L1StandardBridge":f=p.default;break;case"L2StandardBridge":f=g.default;break;case"OptimismPortal":f=v.default;break;case"L2CrossDomainMessenger":f=u.default;break;case"OptimismMintableERC20":f=_.default;break;case"L2ERC721Bridge":f=y.default;break;case"L1Block":f=c.default;break;case"L2ToL1MessagePasser":f=h.default;break;case"GasPriceOracle":f=d.default;break;case"DisputeGameFactory":f=r.default;break;case"OptimismPortal2":f=D.default;break;case"FaultDisputeGame":f=o.default}return new i.ethers.utils.Interface(f.abi)},f.getOEContract=(e,t,a={})=>{let s;let r=S.CONTRACT_ADDRESSES[t];if(void 0===r&&void 0===a.address){if(S.IGNORABLE_CONTRACTS.includes(e))return;throw Error(`cannot get contract ${e} for unknown L2 chain ID ${t}, you must provide an address`)}let o=x[e]||e;try{s=(0,f.getContractInterfaceBedrock)(o)}catch(e){s=(0,n.getContractInterface)(o)}return new i.Contract((0,w.toAddress)(a.address||r.l1[e]||r.l2[e]),s,a.signerOrProvider)},f.getAllOEContracts=(e,t={})=>{var a,n,i,s;let r=S.CONTRACT_ADDRESSES[e]||{l1:{AddressManager:void 0,L1CrossDomainMessenger
1:void 0,L1StandardBridge:void 0,StateCommitmentChain:void 0,CanonicalTransactionChain:void 0,BondManager:void 0,OptimismPortal:void 0,L2OutputOracle:void 0,DisputeGameFactory:void 0,OptimismPortal2:void 0},l2:S.DEFAULT_L2_CONTRACT_ADDRESSES},o={};for(let[i,s]of Object.entries(r.l1))o[i]=(0,f.getOEContract)(i,e,{address:(null===(n=null===(a=t.overrides)||void 0===a?void 0:a.l1)||void 0===n?void 0:n[i])||s,signerOrProvider:t.l1SignerOrProvider});let d={};for(let[a,n]of Object.entries(r.l2))d[a]=(0,f.getOEContract)(a,e,{address:(null===(s=null===(i=t.overrides)||void 0===i?void 0:i.l2)||void 0===s?void 0:s[a])||n,signerOrProvider:t.l2SignerOrProvider});return{l1:o,l2:d}},f.getBridgeAdapters=(e,f,t)=>{var a,i,r,o,d,c;let b=Object.assign(Object.assign(Object.assign({},S.CONTRACT_ADDRESSES[e]||(null===(i=null===(a=null==t?void 0:t.contracts)||void 0===a?void 0:a.l1)||void 0===i?void 0:i.L1StandardBridge)?{Standard:{Adapter:s.StandardBridgeAdapter,l1Bridge:(null===(o=null===(r=null==t?void 0:t.contracts)||void 0===r?void 0:r.l1)||void 0===o?void 0:o.L1StandardBridge)||S.CONTRACT_ADDRESSES[e].l1.L1StandardBridge,l2Bridge:n.predeploys.L2StandardBridge},ETH:{Adapter:s.ETHBridgeAdapter,l1Bridge:(null===(c=null===(d=null==t?void 0:t.contracts)||void 0===d?void 0:d.l1)||void 0===c?void 0:c.L1StandardBridge)||S.CONTRACT_ADDRESSES[e].l1.L1StandardBridge,l2Bridge:n.predeploys.L2StandardBridge}}:{}),S.BRIDGE_ADAPTER_DATA[e]||{}),(null==t?void 0:t.overrides)||{}),l={};for(let[e,t]of Object.entries(b))l[e]=new t.Adapter({messenger:f,l1Bridge:t.l1Bridge,l2Bridge:t.l2Bridge});return l}},51189:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);
1(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__exportStar||function(e,f){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(f,t)||a(f,e,t)};Object.defineProperty(f,"__esModule",{value:!0}),n(t(94785),f),n(t(57803),f),n(t(55802),f),n(t(26526),f),n(t(31851),f),n(t(8850),f),n(t(37710),f)},26526:function(e,f,t){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,f,t,a){void 0===a&&(a=t);var n=Object.getOwnPropertyDescriptor(f,t);(!n||("get"in n?!f.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return f[t]}}),Object.defineProperty(e,a,n)}:function(e,f,t,a){void 0===a&&(a=t),e[a]=f[t]}),n=this&&this.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var f={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&a(f,e,t);return n(f,e),f};Object.defineProperty(f,"__esModule",{value:!0}),f.makeStateTrieProof=f.maybeAddProofNode=f.makeMerkleTreeProof=void 0;let s=t(46361),r=t(28860),o=t(91206),d=i(t(94578));f.makeMerkleTreeProof=(e,f)=>{let t=Math.pow(2,Math.ceil(Math.log2(e.length))),a=[];for(let f=0;f<t;f++)f<e.length?a.push(e[f]):a.push(r.ethers.utils.keccak256("0x"+"00".repeat(32)));let n=a.map(s.fromHexString);return new o.MerkleTree(n,e=>(0,s.fromHexString)(r.ethers.utils.keccak256(e))).getProof(n[f],f).map(e=>(0,s.toHexString)(e.data))},f.maybeAddProofNode=(e,f)=>{let t=[...f],a=t[t.length-1],n=d.decode(a);if(17===n.length){for(let f of n)if(Array.isArray(f)){let a=(0,s.toHexString)(f[0]).slice(3);e.endsWith(a)&&t.push((0,s.toHexString)(d.encode(f)))}}return t};let c=async(e,t,a,n)=>{let i=await e.send("eth_getProof",[a,[n],(0,s.toRpcHexString)(t)]);return i.storageProof[0].proof=(0,f.maybeAddProofNode)(r.ethers.utils.keccak256(n),i.storageProof[0].proof),{accountProof:i.accountProof,storageProof:i.storageProof[0].proof,storageValue:r.BigNumber.from(i.storageProof[0].value),storageRoot:i.storageHash}};f.makeStateTrieProof=c},31851:function(e,f,t){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.migratedWithdrawalGasLimit=f.hashMessageHash=f.hashLowLevelMessage=void 0;let a=t(46361),n=t(28860),{hexDataLength:i}=n.utils,s=n.BigNumber.from(2e5),r=n.BigNumber.from(16),o=n.BigNumber.from(64),d=n.BigNumber.from(63),c=n.BigNumber.from(4e4),b=n.BigNumber.from(4e4),l=n.BigNumber.from(5e3);f.hashLowLevelMessage=e=>(0,a.hashWithdrawal)(e.messageNonce,e.sender,e.target,e.value,e.minGasLimit,e.message),f.hashMessageHash=e=>{let f=n.ethers.utils.defaultAbiCoder.encode(["bytes32","uint256"],[e,n.ethers.constants.HashZero]);return n.ethers.utils.keccak256(f)},f.migratedWithdrawalGasLimit=(e,f)=>{let t;let a=n.BigNumber.from(i(e)).mul(r);if(420===f)t=n.BigNumber.from(2e5);else{let e=o.mul(1e6).div(d);t=s.add(e).add(c).add(b).add(l)}let p=a.add(t);return p.gt(25e6)&&(p=n.BigNumber.from(25e6)),p}},8850:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.omit=void 0,f.omit=(e,...f)=>{let t=Object.assign({},e);for(let e of f)delete t[e];return t}},37710:function(e,f){"use strict";Object.defineProperty(f,"__esModule",{value:!0})},68780:function(e){/*! 2 * assertion-error 3 * Copyright(c) 2013 Jake Luer <[email protected]> 4 * MIT Licensed 5 *//*! 6 * Return a function that will copy properties from 7 * one object to another excluding any originally 8 * listed. Returned function will create a new `{}`. 9 * 10 * @param {String} excluded properties ... 11 * @return {Function} 12 */function f(){var e=[].slice.call(arguments);return function(){for(var f=[].slice.call(arguments),t=0,a={};t<f.length;t++)!function(f,t){Object.keys(t).forEach(function(a){~e.indexOf(a)||(f[a]=t[a])})}(a,f[t]);return a}}function t(e,a,n){var i=f("name","message","stack","constructor","toJSON")(a||{});for(var s in this.message=e||"Unspecified AssertionError",this.showDiff=!1,i)this[s]=i[s];if(n=n||t,Error.captureStackTrace)Error.captureStackTrace(this,n);else try{throw Error()}catch(e){this.stack=e.stack}}/*! 13 * Primary Exports
14 */e.exports=t,/*! 15 * Inherit from Error.prototype 16 */t.prototype=Object.create(Error.prototype),/*! 17 * Statically set name 18 */t.prototype.name="AssertionError",/*! 19 * Ensure correct constructor 20 */t.prototype.constructor=t,t.prototype.toJSON=function(e){var t=f("constructor","toJSON","stack")({name:this.name},this);return!1!==e&&this.stack&&(t.stack=this.stack),t}},80726:function(e,f,t){var a=t(9109).Buffer;e.exports=function(e){for(var f=new a(e.length),t=0,n=e.length-1;t<=n;++t,--n)f[t]=e[n],f[n]=e[t];return f}},92260:function(e,f,t){e.exports=t(99099)},99099:function(e,f,t){/*! 21 * chai 22 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 23 * MIT Licensed 24 */var a=[];/*! 25 * Chai version 26 */f.version="4.3.8",/*! 27 * Assertion Error 28 */f.AssertionError=t(68780);/*! 29 * Utils for plugins (not exported) 30 */var n=t(54580);f.use=function(e){return~a.indexOf(e)||(e(f,n),a.push(e)),f},/*! 31 * Utility Functions 32 */f.util=n;/*! 33 * Configuration 34 */var i=t(94199);f.config=i;/*! 35 * Primary `Assertion` prototype 36 */var s=t(35544);f.use(s);/*! 37 * Core Assertions 38 */var r=t(40202);f.use(r);/*! 39 * Expect interface 40 */var o=t(61285);f.use(o);/*! 41 * Should interface 42 */var d=t(25739);f.use(d);/*! 43 * Assert interface 44 */var c=t(60431);f.use(c)},35544:function(e,f,t){/*! 45 * chai 46 * http://chaijs.com 47 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 48 * MIT Licensed 49 */var a=t(94199);e.exports=function(e,f){/*! 50 * Module dependencies. 51 */var t=e.AssertionError,n=f.flag;/*! 52 * Assertion Constructor 53 * 54 * Creates object for chaining. 55 * 56 * `Assertion` objects contain metadata in the form of flags. Three flags can 57 * be assigned during instantiation by passing arguments to this constructor: 58 * 59 * - `object`: This flag contains the target of the assertion. For example, in 60 * the assertion `expect(numKittens).to.equal(7);`, the `object` flag will 61 * contain `numKittens` so that the `equal` assertion can reference it when 62 * needed. 63 * 64 * - `message`: This flag contains an optional custom error message to be 65 * prepended to the error message that's generated by the assertion when it 66 * fails. 67 * 68 * - `ssfi`: This flag stands for "start stack function indicator". It 69 * contains a function reference that serves as the starting point for 70 * removing frames from the stack trace of the error that's created by the 71 * assertion when it fails. The goal is to provide a cleaner stack trace to 72 * end users by removing Chai's internal functions. Note that it only works 73 * in environments that support `Error.captureStackTrace`, and only when 74 * `Chai.config.includeStack` hasn't been set to `false`. 75 * 76 * - `lockSsfi`: This flag controls whether or not the given `ssfi` flag 77 * should retain its current value, even as assertions are chained off of 78 * this object. This is usually set to `true` when creating a new assertion 79 * from within another assertion. It's also temporarily set to `true` before 80 * an overwritten assertion gets called by the overwriting assertion. 81 * 82 * - `eql`: This flag contains the deepEqual function to be used by the assertion. 83 * 84 * @param {Mixed} obj target of the assertion 85 * @param {String} msg (optional) custom error message 86 * @param {Function} ssfi (optional) starting point for removing stack frames 87 * @param {Boolean} lockSsfi (optional) whether or not the ssfi flag is locked 88 * @api private 89 */function i(e,t,s,r){return n(this,"ssfi",s||i),n(this,"lockSsfi",r),n(this,"object",e),n(this,"message",t),n(this,"eql",a.deepEqual||f.eql),f.proxify(this)}/*! 90 * Module export. 91 */e.Assertion=i,Object.defineProperty(i,"includeStack",{get:function(){return console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."),a.includeStack},set:function(e){console.warn("Assertion.includeStack is deprecated, use chai.config.includeStack instead."),a.includeStack=e}}),Object.defineProperty(i,"showDiff",{get:function(){return console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."),a.showDiff},set:function(e){console.warn("Assertion.showDiff is deprecated, use chai.config.showDiff instead."),a.showDiff=e}}),i.addProperty=function(e,t){f.addProperty(this.prototype,e,t)},i.addMethod=function(e,t){f.addMethod(this.prototype,e,t)},i.addChainableMethod=function(e,t,a){f.addChainableMethod(this.prototype,e,t,a)},i.overwriteProperty=function(e,t){f.overwriteProperty(this.prototype,e,t)},i.overwriteMethod=function(e,t){f.overwriteMethod(this.prototype,e,t)},i.overwriteChainableMethod=function(e,t,a){f.overwriteChainableMethod(this.prototype,e,t,a)},i.prototype.assert=function(e,i,s,r,o,d){var c=f.test(this,arguments);if(!1!==d&&(d=!0),void 0===r&&void 0===o&&(d=!1),!0!==a.showDiff&&(d=!1),!c){i=f.getMe
91ssage(this,arguments);var b=f.getActual(this,arguments),l={actual:b,expected:r,showDiff:d},p=f.getOperator(this,arguments);throw p&&(l.operator=p),new t(i,l,a.includeStack?this.assert:n(this,"ssfi"))}},/*! 92 * ### ._obj 93 * 94 * Quick reference to stored `actual` value for plugin developers. 95 * 96 * @api private 97 */Object.defineProperty(i.prototype,"_obj",{get:function(){return n(this,"object")},set:function(e){n(this,"object",e)}})}},94199:function(e){e.exports={includeStack:!1,showDiff:!0,truncateThreshold:40,useProxy:!0,proxyExcludedKeys:["then","catch","inspect","toJSON"],deepEqual:null}},40202:function(e){/*! 98 * chai 99 * http://chaijs.com 100 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 101 * MIT Licensed 102 */e.exports=function(e,f){var t=e.Assertion,a=e.AssertionError,n=f.flag;function i(e,t){t&&n(this,"message",t),e=e.toLowerCase();var a=n(this,"object"),i=~["a","e","i","o","u"].indexOf(e.charAt(0))?"an ":"a ";this.assert(e===f.type(a).toLowerCase(),"expected #{this} to be "+i+e,"expected #{this} not to be "+i+e)}function s(e,t){return f.isNaN(e)&&f.isNaN(t)||e===t}function r(){n(this,"contains",!0)}function o(e,i){i&&n(this,"message",i);var r=n(this,"object"),o=f.type(r).toLowerCase(),d=n(this,"message"),c=n(this,"negate"),b=n(this,"ssfi"),l=n(this,"deep"),p=l?"deep ":"",u=l?n(this,"eql"):s;d=d?d+": ":"";var y=!1;switch(o){case"string":y=-1!==r.indexOf(e);break;case"weakset":if(l)throw new a(d+"unable to use .deep.include with WeakSet",void 0,b);y=r.has(e);break;case"map":r.forEach(function(f){y=y||u(f,e)});break;case"set":l?r.forEach(function(f){y=y||u(f,e)}):y=r.has(e);break;case"array":y=l?r.some(function(f){return u(f,e)}):-1!==r.indexOf(e);break;default:if(e!==Object(e))throw new a(d+"the given combination of arguments ("+o+" and "+f.type(e).toLowerCase()+") is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a "+f.type(e).toLowerCase(),void 0,b);var m=Object.keys(e),g=null,h=0;if(m.forEach(function(i){var s=new t(r);if(f.transferFlags(this,s,!0),n(s,"lockSsfi",!0),!c||1===m.length){s.property(i,e[i]);return}try{s.property(i,e[i])}catch(e){if(!f.checkError.compatibleConstructor(e,a))throw e;null===g&&(g=e),h++}},this),c&&m.length>1&&h===m.length)throw g;return}this.assert(y,"expected #{this} to "+p+"include "+f.inspect(e),"expected #{this} to not "+p+"include "+f.inspect(e))}function d(){var e=n(this,"object");this.assert(null!=e,"expected #{this} to exist","expected #{this} to not exist")}function c(){var e=n(this,"object"),t=f.type(e);this.assert("Arguments"===t,"expected #{this} to be arguments but got "+t,"expected #{this} to not be arguments")}function b(e,f){f&&n(this,"message",f);var t=n(this,"object");if(n(this,"deep")){var a=n(this,"lockSsfi");n(this,"lockSsfi",!0),this.eql(e),n(this,"lockSsfi",a)}else this.assert(e===t,"expected #{this} to equal #{exp}","expected #{this} to not equal #{exp}",e,this._obj,!0)}function l(e,f){f&&n(this,"message",f);var t=n(this,"eql");this.assert(t(e,n(this,"object")),"expected #{this} to deeply equal #{exp}","expected #{this} to not deeply equal #{exp}",e,this._obj,!0)}function p(e,i){i&&n(this,"message",i);var s,r=n(this,"object"),o=n(this,"doLength"),d=n(this,"message"),c=d?d+": ":"",b=n(this,"ssfi"),l=f.type(r).toLowerCase(),p=f.type(e).toLowerCase(),u=!0;if(o&&"map"!==l&&"set"!==l&&new t(r,d,b,!0).to.have.property("length"),o||"date"!==l||"date"===p?"number"!==p&&(o||"number"===l)?s=c+"the argument to above must be a number":o||"date"===l||"number"===l?u=!1:s=c+"expected "+("string"===l?"'"+r+"'":r)+" to be a number or a date":s=c+"the argument to above must be a date",u)throw new a(s,void 0,b);if(o){var y,m="length";"map"===l||"set"===l?(m="size",y=r.size):y=r.length,this.assert(y>e,"expected #{this} to have a "+m+" above #{exp} but got #{act}","expected #{this} to not have a "+m+" above #{exp}",e,y)}else this.assert(r>e,"expected #{this} to be above #{exp}","expected #{this} to be at most #{exp}",e)}function u(e,i){i&&n(this,"message",i);var s,r=n(this,"object"),o=n(this,"doLength"),d=n(this,"message"),c=d?d+": ":"",b=n(this,"ssfi"),l=f.type(r).toLowerCase(),p=f.type(e).toLowerCase(),u=!0;if(o&&"map"!==l&&"set"!==l&&new t(r,d,b,!0).to.have.property("length"),o||"date"!==l||"date"===p?"number"!==p&&(o||"number"===l)?s=c+"the argument to least must be a number":o||"date"===l||"number"===l?u=!1:s=c+"expected "+("string"===l?"'"+r+"'":r)+" to be a number or a date":s=c+"the argument to least must be a date",u)throw new a(s,void 0,b);if(o){var y,m="length";"map"===l||"set"===l?(m="size",y=r.size):y=r.length,this.assert(y>=e,"expected #{this} to have a "+m+" at least #{exp} but got #{act}","expected #{this} to have a "+m+" below #{exp}",e,y)}else this.assert(r>=e,"expected #{this} to be at least #{exp}","expected #{this} to be below #{exp}",e)}function y(e,i){i&&n(this,"message",i);var s,r=n(this,"object"),o=n(this,"doLength"),d=n(this,"message"),c=d?d+": ":"",b=n(this,"ssfi"),l=f.type(r).toLowerCase(),p=f.type(e).toLowerCase(),u=!0;if(o&&"map"!==l&&"set"!==l&&new t(r,d,b,!0).to.have.property("length"),o||"date"!==l||"date"===p?"number"!==p&&(o||"number"===l)?s=c+"the argument to below must be a number":o||"date"===l||"number"===l?u=!1:s=c+"expected "+("string"===l?"'"+r+"'":r)+" to be a number or a date":s=c+"the argument to below must be a date",u)throw new a(s,void 0,b);if(o){var y,m="length";"map"===l||"set"===l?(m="size",y=r.size):y=r.length,this.assert(y<e,"expected #{this} to have a "+m+" below #{exp} but got #{act}","expected #{this} to not have a "+m+" below #{exp}",e,y)}else this.assert(r<e,"expected #{this} to be below #{exp}","expected #{this} to be at least #{exp}",e)}function m(e,i){i&&n(this,"message",i);var s,r=n(this,"object"),o=n(this,"doLength"),d=n(this,"message"),c=d?d+": ":"",b=n(this,"ssfi"),l=f.type(r).toLowerCase(),p=f.type(e).toLowerCase(),u=!0;if(o&&"map"!==l&&"set"!==l&&new t(r,d,b,!0).to.have.property("length"),o||"date"!==l||"date"===p?"number"!==p&&(o||"number"===l)?s=c+"the argument to most must be a number":o||"date"===l||"number"===l?u=!1:s=c+"expected "+("string"===l?"'"+r+"'":r)+" to be a number or a date":s=c+"the argument to most must be a date",u)throw new a(s,void 0,b);if(o){var y,m="length";"map"===l||"set"===l?(m="size",y=r.size):y=r.length,this.assert(y<=e,"expected #{this} to have a "+m+" at most #{exp} but got #{act}","expected #{this} to have a "+m+" above #{exp}",e,y)}else this.assert(r<=e,"expected #{this} to be at most #{exp}","expected #{this} to be above #{exp}",e)}function g(e,t){t&&n(this,"message",t);var i=n(this,"object"),s=n(this,"ssfi"),r=n(this,"message");try{var o=i instanceof e}catch(t){if(t instanceof TypeError)throw new a((r=r?r+": ":"")+"The instanceof assertion needs a constructor but "+f.type(e)+" was given.",void 0,s);throw t}var d=f.getName(e);null===d&&(d="an unnamed constructor"),this.assert(o,"expected #{this} to be an instance of "+d,"expected #{this} to not be an instance of "+d)}function h(e,t,i){i&&n(this,"message",i);var s,r=n(this,"nested"),o=n(this,"own"),d=n(this,"message"),c=n(this,"object"),b=n(this,"ssfi"),l=typeof e;if(d=d?d+": ":"",r){if("string"!==l)throw new a(d+"the argument to property must be a string when using nested syntax",void 0,b)}else if("string"!==l&&"number"!==l&&"symbol"!==l)throw new a(d+"the argument to property must be a string, number, or symbol",void 0,b);if(r&&o)throw new a(d+'The "nested" and "own" flags cannot be combined.',void 0,b);if(null==c)throw new a(d+"Target cannot be null or undefined.",void 0,b);var p=n(this,"deep"),u=n(this,"negate"),y=r?f.getPathInfo(c,e):null,m=r?y.value:c[e],g=p?n(this,"eql"):(e,f)=>e===f,h="";p&&(h+="deep "),o&&(h+="own "),r&&(h+="nested "),h+="property ",s=o?Object.prototype.hasOwnProperty.call(c,e):r?y.exists:f.hasProperty(c,e),u&&1!=arguments.length||this.assert(s,"expected #{this} to have "+h+f.inspect(e),"expected #{this} to not have "+h+f.inspect(e)),arguments.length>1&&this.assert(s&&g(t,m),"expected #{this} to have "+h+f.inspect(e)+" of #{exp}, but got #{act}","expected #{this} to not have "+h+f.inspect(e)+" of #{act}",t,m),n(this,"object",m)}function _(e,f,t){n(this,"own",!0),h.apply(this,arguments)}function T(e,t,a){"string"==typeof t&&(a=t,t=null),a&&n(this,"message",a);var i=Object.getOwnPropertyDescriptor(Object(n(this,"object")),e),s=n(this,"eql");i&&t?this.assert(s(t,i),"expected the own property descriptor for "+f.inspect(e)+" on #{this} to match "+f.inspect(t)+", got "+f.inspect(i),"expected the own property descriptor for "+f.inspect(e)+" on #{this} to not match "+f.inspect(t),t,i,!0):this.assert(i,"expected #{this} to have an own property descriptor for "+f.inspect(e),"expected #{this} to not have an own property descriptor for "+f.inspect(e)),n(this,"object",i)}function v(){n(this,"doLength",!0)}function D(e,a){a&&n(this,"message",a);var i,s=n(this,"object"),r=f.type(s).toLowerCase(),o=n(this,"message"),d=n(this,"ssfi"),c="length";switch(r){case"map":case"set":c="size",i=s.size;break;default:new t(s,o,d,!0).to.have.property("length"),i=s.length}this.assert(i==e,"expected #{this} to have a "+c+" of #{exp} but got #{act}","expected #{this} to not have a "+c+" of #{act}",e,i)}function M(e,f){f&&n(this,"message",f);var t=n(this,"object");this.assert(e.exec(t),"expected #{this} to match "+e,"expected #{this} not to match "+e)}function S(e){var t,i,s=n(this,"object"),r=f.type(s),o=f.type(e),d=n(this,"ssfi"),c=n(this,"deep"),b="",l=!0,p=n(this,"message"),u=(p=p?p+": ":"")+"when testing
102keys against an object or an array you must give a single Array|Object|String argument or multiple String arguments";if("Map"===r||"Set"===r)b=c?"deeply ":"",i=[],s.forEach(function(e,f){i.push(f)}),"Array"!==o&&(e=Array.prototype.slice.call(arguments));else{switch(i=f.getOwnEnumerableProperties(s),o){case"Array":if(arguments.length>1)throw new a(u,void 0,d);break;case"Object":if(arguments.length>1)throw new a(u,void 0,d);e=Object.keys(e);break;default:e=Array.prototype.slice.call(arguments)}e=e.map(function(e){return"symbol"==typeof e?e:String(e)})}if(!e.length)throw new a(p+"keys required",void 0,d);var y=e.length,m=n(this,"any"),g=n(this,"all"),h=e,_=c?n(this,"eql"):(e,f)=>e===f;if(m||g||(g=!0),m&&(l=h.some(function(e){return i.some(function(f){return _(e,f)})})),g&&(l=h.every(function(e){return i.some(function(f){return _(e,f)})}),n(this,"contains")||(l=l&&e.length==i.length)),y>1){var T=(e=e.map(function(e){return f.inspect(e)})).pop();g&&(t=e.join(", ")+", and "+T),m&&(t=e.join(", ")+", or "+T)}else t=f.inspect(e[0]);t=(y>1?"keys ":"key ")+t,t=(n(this,"contains")?"contain ":"have ")+t,this.assert(l,"expected #{this} to "+b+t,"expected #{this} to not "+b+t,h.slice(0).sort(f.compareByInspect),i.sort(f.compareByInspect),!0)}function w(e,a,i){i&&n(this,"message",i);var s,r=n(this,"object"),o=n(this,"ssfi"),d=n(this,"message"),c=n(this,"negate")||!1;new t(r,d,o,!0).is.a("function"),(e instanceof RegExp||"string"==typeof e)&&(a=e,e=null);try{r()}catch(e){s=e}var b=void 0===e&&void 0===a,l=!!(e&&a),p=!1,u=!1;if(b||!b&&!c){var y="an error";e instanceof Error?y="#{exp}":e&&(y=f.checkError.getConstructorName(e)),this.assert(s,"expected #{this} to throw "+y,"expected #{this} to not throw an error but #{act} was thrown",e&&e.toString(),s instanceof Error?s.toString():"string"==typeof s?s:s&&f.checkError.getConstructorName(s))}if(e&&s&&(e instanceof Error&&f.checkError.compatibleInstance(s,e)===c&&(l&&c?p=!0:this.assert(c,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s&&!c?" but #{act} was thrown":""),e.toString(),s.toString())),f.checkError.compatibleConstructor(s,e)===c&&(l&&c?p=!0:this.assert(c,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s?" but #{act} was thrown":""),e instanceof Error?e.toString():e&&f.checkError.getConstructorName(e),s instanceof Error?s.toString():s&&f.checkError.getConstructorName(s)))),s&&null!=a){var m="including";a instanceof RegExp&&(m="matching"),f.checkError.compatibleMessage(s,a)===c&&(l&&c?u=!0:this.assert(c,"expected #{this} to throw error "+m+" #{exp} but got #{act}","expected #{this} to throw error not "+m+" #{exp}",a,f.checkError.getMessage(s)))}p&&u&&this.assert(c,"expected #{this} to throw #{exp} but #{act} was thrown","expected #{this} to not throw #{exp}"+(s?" but #{act} was thrown":""),e instanceof Error?e.toString():e&&f.checkError.getConstructorName(e),s instanceof Error?s.toString():s&&f.checkError.getConstructorName(s)),n(this,"object",s)}function x(e,t){t&&n(this,"message",t);var a=n(this,"object"),i=n(this,"itself"),s="function"!=typeof a||i?a[e]:a.prototype[e];this.assert("function"==typeof s,"expected #{this} to respond to "+f.inspect(e),"expected #{this} to not respond to "+f.inspect(e))}function C(e,t){t&&n(this,"message",t);var a=e(n(this,"object"));this.assert(a,"expected #{this} to satisfy "+f.objDisplay(e),"expected #{this} to not satisfy"+f.objDisplay(e),!n(this,"negate"),a)}function I(e,f,i){i&&n(this,"message",i);var s=n(this,"object"),r=n(this,"message"),o=n(this,"ssfi");if(new t(s,r,o,!0).is.a("number"),"number"!=typeof e||"number"!=typeof f)throw new a((r=r?r+": ":"")+"the arguments to closeTo or approximately must be numbers"+(void 0===f?", and a delta is required":""),void 0,o);this.assert(Math.abs(s-e)<=f,"expected #{this} to be close to "+e+" +/- "+f,"expected #{this} not to be close to "+e+" +/- "+f)}function L(e,f,a){a&&n(this,"message",a);var i,s=n(this,"object"),r=n(this,"message"),o=n(this,"ssfi");new t(s,r,o,!0).is.a("function"),f?(new t(e,r,o,!0).to.have.property(f),i=e[f]):(new t(e,r,o,!0).is.a("function"),i=e()),s();var d=null==f?e():e[f],c=null==f?i:"."+f;n(this,"deltaMsgObj",c),n(this,"initialDeltaValue",i),n(this,"finalDeltaValue",d),n(this,"deltaBehavior","change"),n(this,"realDelta",d!==i),this.assert(i!==d,"expected "+c+" to change","expected "+c+" to not change")}function k(e,f,a){a&&n(this,"message",a);var i,s=n(this,"object"),r=n(this,"message"),o=n(this,"ssfi");new t(s,r,o,!0).is.a("function"),f?(new t(e,r,o,!0).to.have.property(f),i=e[f]):(new t(e,r,o,!0).is.a("function"),i=e()),new t(i,r,o,!0).is.a("number"),s();var d=null==f?e():e[f],c=null==f?i:"."+f;n(this,"deltaMsgObj",c),n(this,"initialDeltaValue",i),n(this,"finalDeltaValue",d),n(this,"deltaBehavior","increase"),n(this,"realDelta",d-i),this.assert(d-i>0,"expected "+c+" to increase","expected "+c+" to not increase")}function E(e,f,a){a&&n(this,"message",a);var i,s=n(this,"object"),r=n(this,"message"),o=n(this,"ssfi");new t(s,r,o,!0).is.a("function"),f?(new t(e,r,o,!0).to.have.property(f),i=e[f]):(new t(e,r,o,!0).is.a("function"),i=e()),new t(i,r,o,!0).is.a("number"),s();var d=null==f?e():e[f],c=null==f?i:"."+f;n(this,"deltaMsgObj",c),n(this,"initialDeltaValue",i),n(this,"finalDeltaValue",d),n(this,"deltaBehavior","decrease"),n(this,"realDelta",i-d),this.assert(d-i<0,"expected "+c+" to decrease","expected "+c+" to not decrease")}["to","be","been","is","and","has","have","with","that","which","at","of","same","but","does","still","also"].forEach(function(e){t.addProperty(e)}),t.addProperty("not",function(){n(this,"negate",!0)}),t.addProperty("deep",function(){n(this,"deep",!0)}),t.addProperty("nested",function(){n(this,"nested",!0)}),t.addProperty("own",function(){n(this,"own",!0)}),t.addProperty("ordered",function(){n(this,"ordered",!0)}),t.addProperty("any",function(){n(this,"any",!0),n(this,"all",!1)}),t.addProperty("all",function(){n(this,"all",!0),n(this,"any",!1)}),t.addChainableMethod("an",i),t.addChainableMethod("a",i),t.addChainableMethod("include",o,r),t.addChainableMethod("contain",o,r),t.addChainableMethod("contains",o,r),t.addChainableMethod("includes",o,r),t.addProperty("ok",function(){this.assert(n(this,"object"),"expected #{this} to be truthy","expected #{this} to be falsy")}),t.addProperty("true",function(){this.assert(!0===n(this,"object"),"expected #{this} to be true","expected #{this} to be false",!n(this,"negate"))}),t.addProperty("false",function(){this.assert(!1===n(this,"object"),"expected #{this} to be false","expected #{this} to be true",!!n(this,"negate"))}),t.addProperty("null",function(){this.assert(null===n(this,"object"),"expected #{this} to be null","expected #{this} not to be null")}),t.addProperty("undefined",function(){this.assert(void 0===n(this,"object"),"expected #{this} to be undefined","expected #{this} not to be undefined")}),t.addProperty("NaN",function(){this.assert(f.isNaN(n(this,"object")),"expected #{this} to be NaN","expected #{this} not to be NaN")}),t.addProperty("exist",d),t.addProperty("exists",d),t.addProperty("empty",function(){var e,t=n(this,"object"),i=n(this,"ssfi"),s=n(this,"message");switch(s=s?s+": ":"",f.type(t).toLowerCase()){case"array":case"string":e=t.length;break;case"map":case"set":e=t.size;break;case"weakmap":case"weakset":throw new a(s+".empty was passed a weak collection",void 0,i);case"function":throw new a((s+".empty was passed a function "+f.getName(t)).trim(),void 0,i);default:if(t!==Object(t))throw new a(s+".empty was passed non-string primitive "+f.inspect(t),void 0,i);e=Object.keys(t).length}this.assert(0===e,"expected #{this} to be empty","expected #{this} not to be empty")}),t.addProperty("arguments",c),t.addProperty("Arguments",c),t.addMethod("equal",b),t.addMethod("equals",b),t.addMethod("eq",b),t.addMethod("eql",l),t.addMethod("eqls",l),t.addMethod("above",p),t.addMethod("gt",p),t.addMethod("greaterThan",p),t.addMethod("least",u),t.addMethod("gte",u),t.addMethod("greaterThanOrEqual",u),t.addMethod("below",y),t.addMethod("lt",y),t.addMethod("lessThan",y),t.addMethod("most",m),t.addMethod("lte",m),t.addMethod("lessThanOrEqual",m),t.addMethod("within",function(e,i,s){s&&n(this,"message",s);
102var r,o=n(this,"object"),d=n(this,"doLength"),c=n(this,"message"),b=c?c+": ":"",l=n(this,"ssfi"),p=f.type(o).toLowerCase(),u=f.type(e).toLowerCase(),y=f.type(i).toLowerCase(),m=!0,g="date"===u&&"date"===y?e.toISOString()+".."+i.toISOString():e+".."+i;if(d&&"map"!==p&&"set"!==p&&new t(o,c,l,!0).to.have.property("length"),d||"date"!==p||"date"===u&&"date"===y?("number"!==u||"number"!==y)&&(d||"number"===p)?r=b+"the arguments to within must be numbers":d||"date"===p||"number"===p?m=!1:r=b+"expected "+("string"===p?"'"+o+"'":o)+" to be a number or a date":r=b+"the arguments to within must be dates",m)throw new a(r,void 0,l);if(d){var h,_="length";"map"===p||"set"===p?(_="size",h=o.size):h=o.length,this.assert(h>=e&&h<=i,"expected #{this} to have a "+_+" within "+g,"expected #{this} to not have a "+_+" within "+g)}else this.assert(o>=e&&o<=i,"expected #{this} to be within "+g,"expected #{this} to not be within "+g)}),t.addMethod("instanceof",g),t.addMethod("instanceOf",g),t.addMethod("property",h),t.addMethod("ownProperty",_),t.addMethod("haveOwnProperty",_),t.addMethod("ownPropertyDescriptor",T),t.addMethod("haveOwnPropertyDescriptor",T),t.addChainableMethod("length",D,v),t.addChainableMethod("lengthOf",D,v),t.addMethod("match",M),t.addMethod("matches",M),t.addMethod("string",function(e,a){a&&n(this,"message",a);var i=n(this,"object");new t(i,n(this,"message"),n(this,"ssfi"),!0).is.a("string"),this.assert(~i.indexOf(e),"expected #{this} to contain "+f.inspect(e),"expected #{this} to not contain "+f.inspect(e))}),t.addMethod("keys",S),t.addMethod("key",S),t.addMethod("throw",w),t.addMethod("throws",w),t.addMethod("Throw",w),t.addMethod("respondTo",x),t.addMethod("respondsTo",x),t.addProperty("itself",function(){n(this,"itself",!0)}),t.addMethod("satisfy",C),t.addMethod("satisfies",C),t.addMethod("closeTo",I),t.addMethod("approximately",I),t.addMethod("members",function(e,f){f&&n(this,"message",f);var a,i,s,r=n(this,"object"),o=n(this,"message"),d=n(this,"ssfi");new t(r,o,d,!0).to.be.an("array"),new t(e,o,d,!0).to.be.an("array");var c=n(this,"contains"),b=n(this,"ordered");c?(i="expected #{this} to be "+(a=b?"an ordered superset":"a superset")+" of #{exp}",s="expected #{this} to not be "+a+" of #{exp}"):(i="expected #{this} to have the same "+(a=b?"ordered members":"members")+" as #{exp}",s="expected #{this} to not have the same "+a+" as #{exp}");var l=n(this,"deep")?n(this,"eql"):void 0;this.assert(function(e,f,t,a,n){if(!a){if(e.length!==f.length)return!1;f=f.slice()}return e.every(function(e,i){if(n)return t?t(e,f[i]):e===f[i];if(!t){var s=f.indexOf(e);return -1!==s&&(a||f.splice(s,1),!0)}return f.some(function(n,i){return!!t(e,n)&&(a||f.splice(i,1),!0)})})}(e,r,l,c,b),i,s,e,r,!0)}),t.addMethod("oneOf",function(e,f){f&&n(this,"message",f);var a=n(this,"object"),i=n(this,"message"),s=n(this,"ssfi"),r=n(this,"contains"),o=n(this,"deep"),d=n(this,"eql");new t(e,i,s,!0).to.be.an("array"),r?this.assert(e.some(function(e){return a.indexOf(e)>-1}),"expected #{this} to contain one of #{exp}","expected #{this} to not contain one of #{exp}",e,a):o?this.assert(e.some(function(e){return d(a,e)}),"expected #{this} to deeply equal one of #{exp}","expected #{this} to deeply equal one of #{exp}",e,a):this.assert(e.indexOf(a)>-1,"expected #{this} to be one of #{exp}","expected #{this} to not be one of #{exp}",e,a)}),t.addMethod("change",L),t.addMethod("changes",L),t.addMethod("increase",k),t.addMethod("increases",k),t.addMethod("decrease",E),t.addMethod("decreases",E),t.addMethod("by",function(e,f){f&&n(this,"message",f);var t,a=n(this,"deltaMsgObj"),i=n(this,"initialDeltaValue"),s=n(this,"finalDeltaValue"),r=n(this,"deltaBehavior"),o=n(this,"realDelta");t="change"===r?Math.abs(s-i)===Math.abs(e):o===Math.abs(e),this.assert(t,"expected "+a+" to "+r+" by "+e,"expected "+a+" to not "+r+" by "+e)}),t.addProperty("extensible",function(){var e=n(this,"object"),f=e===Object(e)&&Object.isExtensible(e);this.assert(f,"expected #{this} to be extensible","expected #{this} to not be extensible")}),t.addProperty("sealed",function(){var e=n(this,"object"),f=e!==Object(e)||Object.isSealed(e);this.assert(f,"expected #{this} to be sealed","expected #{this} to not be sealed")}),t.addProperty("frozen",function(){var e=n(this,"object"),f=e!==Object(e)||Object.isFrozen(e);this.assert(f,"expected #{this} to be frozen","expected #{this} to not be frozen")}),t.addProperty("finite",function(e){var f=n(this,"object");this.assert("number"==typeof f&&isFinite(f),"expected #{this} to be a finite number","expected #{this} to not be a finite number")})}},60431:function(e){/*! 103 * chai 104 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 105 * MIT Licensed
106 */e.exports=function(e,f){/*! 107 * Chai dependencies. 108 */var t=e.Assertion,a=f.flag,n=e.assert=function(f,a){new t(null,null,e.assert,!0).assert(f,a,"[ negation message unavailable ]")};n.fail=function(f,t,a,i){throw arguments.length<2&&(a=f,f=void 0),a=a||"assert.fail()",new e.AssertionError(a,{actual:f,expected:t,operator:i},n.fail)},n.isOk=function(e,f){new t(e,f,n.isOk,!0).is.ok},n.isNotOk=function(e,f){new t(e,f,n.isNotOk,!0).is.not.ok},n.equal=function(e,f,i){var s=new t(e,i,n.equal,!0);s.assert(f==a(s,"object"),"expected #{this} to equal #{exp}","expected #{this} to not equal #{act}",f,e,!0)},n.notEqual=function(e,f,i){var s=new t(e,i,n.notEqual,!0);s.assert(f!=a(s,"object"),"expected #{this} to not equal #{exp}","expected #{this} to equal #{act}",f,e,!0)},n.strictEqual=function(e,f,a){new t(e,a,n.strictEqual,!0).to.equal(f)},n.notStrictEqual=function(e,f,a){new t(e,a,n.notStrictEqual,!0).to.not.equal(f)},n.deepEqual=n.deepStrictEqual=function(e,f,a){new t(e,a,n.deepEqual,!0).to.eql(f)},n.notDeepEqual=function(e,f,a){new t(e,a,n.notDeepEqual,!0).to.not.eql(f)},n.isAbove=function(e,f,a){new t(e,a,n.isAbove,!0).to.be.above(f)},n.isAtLeast=function(e,f,a){new t(e,a,n.isAtLeast,!0).to.be.least(f)},n.isBelow=function(e,f,a){new t(e,a,n.isBelow,!0).to.be.below(f)},n.isAtMost=function(e,f,a){new t(e,a,n.isAtMost,!0).to.be.most(f)},n.isTrue=function(e,f){new t(e,f,n.isTrue,!0).is.true},n.isNotTrue=function(e,f){new t(e,f,n.isNotTrue,!0).to.not.equal(!0)},n.isFalse=function(e,f){new t(e,f,n.isFalse,!0).is.false},n.isNotFalse=function(e,f){new t(e,f,n.isNotFalse,!0).to.not.equal(!1)},n.isNull=function(e,f){new t(e,f,n.isNull,!0).to.equal(null)},n.isNotNull=function(e,f){new t(e,f,n.isNotNull,!0).to.not.equal(null)},n.isNaN=function(e,f){new t(e,f,n.isNaN,!0).to.be.NaN},n.isNotNaN=function(e,f){new t(e,f,n.isNotNaN,!0).not.to.be.NaN},n.exists=function(e,f){new t(e,f,n.exists,!0).to.exist},n.notExists=function(e,f){new t(e,f,n.notExists,!0).to.not.exist},n.isUndefined=function(e,f){new t(e,f,n.isUndefined,!0).to.equal(void 0)},n.isDefined=function(e,f){new t(e,f,n.isDefined,!0).to.not.equal(void 0)},n.isFunction=function(e,f){new t(e,f,n.isFunction,!0).to.be.a("function")},n.isNotFunction=function(e,f){new t(e,f,n.isNotFunction,!0).to.not.be.a("function")},n.isObject=function(e,f){new t(e,f,n.isObject,!0).to.be.a("object")},n.isNotObject=function(e,f){new t(e,f,n.isNotObject,!0).to.not.be.a("object")},n.isArray=function(e,f){new t(e,f,n.isArray,!0).to.be.an("array")},n.isNotArray=function(e,f){new t(e,f,n.isNotArray,!0).to.not.be.an("array")},n.isString=function(e,f){new t(e,f,n.isString,!0).to.be.a("string")},n.isNotString=function(e,f){new t(e,f,n.isNotString,!0).to.not.be.a("string")},n.isNumber=function(e,f){new t(e,f,n.isNumber,!0).to.be.a("number")},n.isNotNumber=function(e,f){new t(e,f,n.isNotNumber,!0).to.not.be.a("number")},n.isFinite=function(e,f){new t(e,f,n.isFinite,!0).to.be.finite},n.isBoolean=function(e,f){new t(e,f,n.isBoolean,!0).to.be.a("boolean")},n.isNotBoolean=function(e,f){new t(e,f,n.isNotBoolean,!0).to.not.be.a("boolean")},n.typeOf=function(e,f,a){new t(e,a,n.typeOf,!0).to.be.a(f)},n.notTypeOf=function(e,f,a){new t(e,a,n.notTypeOf,!0).to.not.be.a(f)},n.instanceOf=function(e,f,a){new t(e,a,n.instanceOf,!0).to.be.instanceOf(f)},n.notInstanceOf=function(e,f,a){new t(e,a,n.notInstanceOf,!0).to.not.be.instanceOf(f)},n.include=function(e,f,a){new t(e,a,n.include,!0).include(f)},n.notInclude=function(e,f,a){new t(e,a,n.notInclude,!0).not.include(f)},n.deepInclude=function(e,f,a){new t(e,a,n.deepInclude,!0).deep.include(f)},n.notDeepInclude=function(e,f,a){new t(e,a,n.notDeepInclude,!0).not.deep.include(f)},n.nestedInclude=function(e,f,a){new t(e,a,n.nestedInclude,!0).nested.include(f)},n.notNestedInclude=function(e,f,a){new t(e,a,n.notNestedInclude,!0).not.nested.include(f)},n.deepNestedInclude=function(e,f,a){new t(e,a,n.deepNestedInclude,!0).deep.nested.include(f)},n.notDeepNestedInclude=function(e,f,a){new t(e,a,n.notDeepNestedInclude,!0).not.deep.nested.include(f)},n.ownInclude=function(e,f,a){new t(e,a,n.ownInclude,!0).own.include(f)},n.notOwnInclude=function(e,f,a){new t(e,a,n.notOwnInclude,!0).not.own.include(f)},n.deepOwnInclude=function(e,f,a){new t(e,a,n.deepOwnInclude,!0).deep.own.include(f)},n.notDeepOwnInclude=function(e,f,a){new t(e,a,n.notDeepOwnInclude,!0).not.deep.own.include(f)},n.match=function(e,f,a){new t(e,a,n.match,!0).to.match(f)},n.notMatch=function(e,f,a){new t(e,a,n.notMatch,!0).to.not.match(f)},n.property=function(e,f,a){new t(e,a,n.property,!0).to.have.property(f)},n.notProperty=function(e,f,a){new t(e,a,n.notProperty,!0).to.not.have.property(f)},n.propertyVal=function(e,f,a,i){new t(e,i,n.propertyVal,!0).to.have.property(f,a)},n.notPropertyVal=function(e,f,a,i){new t(e,i,n.notPropertyVal,!0).to.not.have.property(f,a)},n.deepPropertyVal=function(e,f,a,i){new t(e,i,n.deepPropertyVal,!0).to.have.deep.property(f,a)},n.notDeepPropertyVal=function(e,f,a,i){new t(e,i,n.notDeepPropertyVal,!0).to.not.have.deep.property(f,a)},n.ownProperty=function(e,f,a){new t(e,a,n.ownProperty,!0).to.have.own.property(f)},n.notOwnProperty=function(e,f,a){new t(e,a,n.notOwnProperty,!0).to.not.have.own.property(f)},n.ownPropertyVal=function(e,f,a,i){new t(e,i,n.ownPropertyVal,!0).to.have.own.property(f,a)},n.notOwnPropertyVal=function(e,f,a,i){new t(e,i,n.notOwnPropertyVal,!0).to.not.have.own.property(f,a)},n.deepOwnPropertyVal=function(e,f,a,i){new t(e,i,n.deepOwnPropertyVal,!0).to.have.deep.own.property(f,a)},n.notDeepOwnPropertyVal=function(e,f,a,i){new t(e,i,n.notDeepOwnPropertyVal,!0).to.not.have.deep.own.property(f,a)},n.nestedProperty=function(e,f,a){new t(e,a,n.nestedProperty,!0).to.have.nested.property(f)},n.notNestedProperty=function(e,f,a){new t(e,a,n.notNestedProperty,!0).to.not.have.nested.property(f)},n.nestedPropertyVal=function(e,f,a,i){new t(e,i,n.nestedPropertyVal,!0).to.have.nested.property(f,a)},n.notNestedPropertyVal=function(e,f,a,i){new t(e,i,n.notNestedPropertyVal,!0).to.not.have.nested.property(f,a)},n.deepNestedPropertyVal=function(e,f,a,i){new t(e,i,n.deepNestedPropertyVal,!0).to.have.deep.nested.property(f,a)},n.notDeepNestedPropertyVal=function(e,f,a,i){new t(e,i,n.notDeepNestedPropertyVal,!0).to.not.have.deep.nested.property(f,a)},n.lengthOf=function(e,f,a){new t(e,a,n.lengthOf,!0).to.have.lengthOf(f)}
108,n.hasAnyKeys=function(e,f,a){new t(e,a,n.hasAnyKeys,!0).to.have.any.keys(f)},n.hasAllKeys=function(e,f,a){new t(e,a,n.hasAllKeys,!0).to.have.all.keys(f)},n.containsAllKeys=function(e,f,a){new t(e,a,n.containsAllKeys,!0).to.contain.all.keys(f)},n.doesNotHaveAnyKeys=function(e,f,a){new t(e,a,n.doesNotHaveAnyKeys,!0).to.not.have.any.keys(f)},n.doesNotHaveAllKeys=function(e,f,a){new t(e,a,n.doesNotHaveAllKeys,!0).to.not.have.all.keys(f)},n.hasAnyDeepKeys=function(e,f,a){new t(e,a,n.hasAnyDeepKeys,!0).to.have.any.deep.keys(f)},n.hasAllDeepKeys=function(e,f,a){new t(e,a,n.hasAllDeepKeys,!0).to.have.all.deep.keys(f)},n.containsAllDeepKeys=function(e,f,a){new t(e,a,n.containsAllDeepKeys,!0).to.contain.all.deep.keys(f)},n.doesNotHaveAnyDeepKeys=function(e,f,a){new t(e,a,n.doesNotHaveAnyDeepKeys,!0).to.not.have.any.deep.keys(f)},n.doesNotHaveAllDeepKeys=function(e,f,a){new t(e,a,n.doesNotHaveAllDeepKeys,!0).to.not.have.all.deep.keys(f)},n.throws=function(e,f,i,s){return("string"==typeof f||f instanceof RegExp)&&(i=f,f=null),a(new t(e,s,n.throws,!0).to.throw(f,i),"object")},n.doesNotThrow=function(e,f,a,i){("string"==typeof f||f instanceof RegExp)&&(a=f,f=null),new t(e,i,n.doesNotThrow,!0).to.not.throw(f,a)},n.operator=function(i,s,r,o){switch(s){case"==":d=i==r;break;case"===":d=i===r;break;case">":d=i>r;break;case">=":d=i>=r;break;case"<":d=i<r;break;case"<=":d=i<=r;break;case"!=":d=i!=r;break;case"!==":d=i!==r;break;default:throw o=o?o+": ":o,new e.AssertionError(o+'Invalid operator "'+s+'"',void 0,n.operator)}var d,c=new t(d,o,n.operator,!0);c.assert(!0===a(c,"object"),"expected "+f.inspect(i)+" to be "+s+" "+f.inspect(r),"expected "+f.inspect(i)+" to not be "+s+" "+f.inspect(r))},n.closeTo=function(e,f,a,i){new t(e,i,n.closeTo,!0).to.be.closeTo(f,a)},n.approximately=function(e,f,a,i){new t(e,i,n.approximately,!0).to.be.approximately(f,a)},n.sameMembers=function(e,f,a){new t(e,a,n.sameMembers,!0).to.have.same.members(f)},n.notSameMembers=function(e,f,a){new t(e,a,n.notSameMembers,!0).to.not.have.same.members(f)},n.sameDeepMembers=function(e,f,a){new t(e,a,n.sameDeepMembers,!0).to.have.same.deep.members(f)},n.notSameDeepMembers=function(e,f,a){new t(e,a,n.notSameDeepMembers,!0).to.not.have.same.deep.members(f)},n.sameOrderedMembers=function(e,f,a){new t(e,a,n.sameOrderedMembers,!0).to.have.same.ordered.members(f)},n.notSameOrderedMembers=function(e,f,a){new t(e,a,n.notSameOrderedMembers,!0).to.not.have.same.ordered.members(f)},n.sameDeepOrderedMembers=function(e,f,a){new t(e,a,n.sameDeepOrderedMembers,!0).to.have.same.deep.ordered.members(f)},n.notSameDeepOrderedMembers=function(e,f,a){new t(e,a,n.notSameDeepOrderedMembers,!0).to.not.have.same.deep.ordered.members(f)},n.includeMembers=function(e,f,a){new t(e,a,n.includeMembers,!0).to.include.members(f)},n.notIncludeMembers=function(e,f,a){new t(e,a,n.notIncludeMembers,!0).to.not.include.members(f)},n.includeDeepMembers=function(e,f,a){new t(e,a,n.includeDeepMembers,!0).to.include.deep.members(f)},n.notIncludeDeepMembers=function(e,f,a){new t(e,a,n.notIncludeDeepMembers,!0).to.not.include.deep.members(f)},n.includeOrderedMembers=function(e,f,a){new t(e,a,n.includeOrderedMembers,!0).to.include.ordered.members(f)},n.notIncludeOrderedMembers=function(e,f,a){new t(e,a,n.notIncludeOrderedMembers,!0).to.not.include.ordered.members(f)},n.includeDeepOrderedMembers=function(e,f,a){new t(e,a,n.includeDeepOrderedMembers,!0).to.include.deep.ordered.members(f)},n.notIncludeDeepOrderedMembers=function(e,f,a){new t(e,a,n.notIncludeDeepOrderedMembers,!0).to.not.include.deep.ordered.members(f)},n.oneOf=function(e,f,a){new t(e,a,n.oneOf,!0).to.be.oneOf(f)},n.changes=function(e,f,a,i){3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.changes,!0).to.change(f,a)},n.changesBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.changesBy,!0).to.change(f,a).by(i)},n.doesNotChange=function(e,f,a,i){return 3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.doesNotChange,!0).to.not.change(f,a)},n.changesButNotBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.changesButNotBy,!0).to.change(f,a).but.not.by(i)},n.increases=function(e,f,a,i){return 3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.increases,!0).to.increase(f,a)},n.increasesBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.increasesBy,!0).to.increase(f,a).by(i)},n.doesNotIncrease=function(e,f,a,i){return 3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.doesNotIncrease,!0).to.not.increase(f,a)},n.increasesButNotBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.increasesButNotBy,!0).to.increase(f,a).but.not.by(i)},n.decreases=function(e,f,a,i){return 3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.decreases,!0).to.decrease(f,a)},n.decreasesBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.decreasesBy,!0).to.decrease(f,a).by(i)},n.doesNotDecrease=function(e,f,a,i){return 3==arguments.length&&"function"==typeof f&&(i=a,a=null),new t(e,i,n.doesNotDecrease,!0).to.not.decrease(f,a)},n.doesNotDecreaseBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);return new t(e,s,n.doesNotDecreaseBy,!0).to.not.decrease(f,a).by(i)},n.decreasesButNotBy=function(e,f,a,i,s){if(4==arguments.length&&"function"==typeof f){var r=i;i=a,s=r}else 3==arguments.length&&(i=a,a=null);new t(e,s,n.decreasesButNotBy,!0).to.decrease(f,a).but.not.by(i)},/*! 109 * ### .ifError(object) 110 * 111 * Asserts if value is not a false value, and throws if it is a true value. 112 * This is added to allow for chai to be a drop-in replacement for Node's 113 * assert class. 114 * 115 * var err = new Error('I am a custom error'); 116 * assert.ifError(err); // Rethrows err! 117 * 118 * @name ifError 119 * @param {Object} object 120 * @namespace Assert 121 * @api public 122 */n.ifError=function(e){if(e)throw e},n.isExtensible=function(e,f){new t(e,f,n.isExtensible,!0).to.be.extensible},n.isNotExtensible=function(e,f){new t(e,f,n.isNotExtensible,!0).to.not.be.extensible},n.isSealed=function(e,f){new t(e,f,n.isSealed,!0).to.be.sealed}
122,n.isNotSealed=function(e,f){new t(e,f,n.isNotSealed,!0).to.not.be.sealed},n.isFrozen=function(e,f){new t(e,f,n.isFrozen,!0).to.be.frozen},n.isNotFrozen=function(e,f){new t(e,f,n.isNotFrozen,!0).to.not.be.frozen},n.isEmpty=function(e,f){new t(e,f,n.isEmpty,!0).to.be.empty},n.isNotEmpty=function(e,f){new t(e,f,n.isNotEmpty,!0).to.not.be.empty},/*! 123 * Aliases. 124 */(function e(f,t){return n[t]=n[f],e})("isOk","ok")("isNotOk","notOk")("throws","throw")("throws","Throw")("isExtensible","extensible")("isNotExtensible","notExtensible")("isSealed","sealed")("isNotSealed","notSealed")("isFrozen","frozen")("isNotFrozen","notFrozen")("isEmpty","empty")("isNotEmpty","notEmpty")}},61285:function(e){/*! 125 * chai 126 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 127 * MIT Licensed 128 */e.exports=function(e,f){e.expect=function(f,t){return new e.Assertion(f,t)},e.expect.fail=function(f,t,a,n){throw arguments.length<2&&(a=f,f=void 0),a=a||"expect.fail()",new e.AssertionError(a,{actual:f,expected:t,operator:n},e.expect.fail)}}},25739:function(e){/*! 129 * chai 130 * Copyright(c) 2011-2014 Jake Luer <[email protected]> 131 * MIT Licensed 132 */e.exports=function(e,f){var t=e.Assertion;function a(){Object.defineProperty(Object.prototype,"should",{set:function(e){Object.defineProperty(this,"should",{value:e,enumerable:!0,configurable:!0,writable:!0})},get:function e(){return this instanceof String||this instanceof Number||this instanceof Boolean||"function"==typeof Symbol&&this instanceof Symbol||"function"==typeof BigInt&&this instanceof BigInt?new t(this.valueOf(),null,e):new t(this,null,e)},configurable:!0});var f={};return f.fail=function(t,a,n,i){throw arguments.length<2&&(n=t,t=void 0),n=n||"should.fail()",new e.AssertionError(n,{actual:t,expected:a,operator:i},f.fail)},f.equal=function(e,f,a){new t(e,a).to.equal(f)},f.Throw=function(e,f,a,n){new t(e,n).to.Throw(f,a)},f.exist=function(e,f){new t(e,f).to.exist},f.not={},f.not.equal=function(e,f,a){new t(e,a).to.not.equal(f)},f.not.Throw=function(e,f,a,n){new t(e,n).to.not.Throw(f,a)},f.not.exist=function(e,f){new t(e,f).to.not.exist},f.throw=f.Throw,f.not.throw=f.not.Throw,f}e.should=a,e.Should=a}},46057:function(e,f,t){/*! 133 * Chai - addChainingMethod utility 134 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 135 * MIT Licensed 136 *//*! 137 * Module dependencies 138 */var a=t(26492),n=t(99099),i=t(63917),s=t(6365),r=t(62402),o="function"==typeof Object.setPrototypeOf,d=function(){},c=Object.getOwnPropertyNames(d).filter(function(e){var f=Object.getOwnPropertyDescriptor(d,e);return"object"!=typeof f||!f.configurable}),b=Function.prototype.call,l=Function.prototype.apply;e.exports=function(e,f,t,d){"function"!=typeof d&&(d=function(){});var p={method:t,chainingBehavior:d};e.__methods||(e.__methods={}),e.__methods[f]=p,Object.defineProperty(e,f,{get:function(){p.chainingBehavior.call(this);var t=function(){i(this,"lockSsfi")||i(this,"ssfi",t);var e=p.method.apply(this,arguments);if(void 0!==e)return e;var f=new n.Assertion;return r(this,f),f};if(a(t,f,!0),o){var d=Object.create(this);d.call=b,d.apply=l,Object.setPrototypeOf(t,d)}else Object.getOwnPropertyNames(e).forEach(function(f){if(-1===c.indexOf(f)){var a=Object.getOwnPropertyDescriptor(e,f);Object.defineProperty(t,f,a)}});return r(this,t),s(t)},configurable:!0})}},26492:function(e){var f=Object.getOwnPropertyDescriptor(function(){},"length");/*! 139 * Chai - addLengthGuard utility 140 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 141 * MIT Licensed 142 */e.exports=function(e,t,a){return f.configurable&&Object.defineProperty(e,"length",{get:function(){if(a)throw Error("Invalid Chai property: "+t+'.length. Due to a compatibility issue, "length" cannot directly follow "'+t+'". Use "'+t+'.lengthOf" instead.');throw Error("Invalid Chai property: "+t+'.length. See docs for proper usage of "'+t+'".')}}),e}},17541:function(e,f,t){/*! 143 * Chai - addMethod utility 144 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 145 * MIT Licensed 146 */var a=t(26492),n=t(99099),i=t(63917),s=t(6365),r=t(62402);e.exports=function(e,f,t){var o=function(){i(this,"lockSsfi")||i(this,"ssfi",o);var e=t.apply(this,arguments);if(void 0!==e)return e;var f=new n.Assertion;return r(this,f),f};a(o,f,!1),e[f]=s(o,f)}},98336:function(e,f,t){/*! 147 * Chai - addProperty utility 148 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 149 * MIT Licensed 150 */var a=t(99099),n=t(63917),i=t(70159),s=t(62402);e.exports=function(e,f,t){t=void 0===t?function(){}:t,Object.defineProperty(e,f,{get:function e(){i()||n(this,"lockSsfi")||n(this,"ssfi",e);var f=t.call(this);if(void 0!==f)return f;var r=new a.Assertion;return s(this,r),r},configurable:!0})}},23377:function(e,f,t){/*! 151 * Chai - compareByInspect utility 152 * Copyright(c) 2011-2016 Jake Luer <[email protected]> 153 * MIT Licensed 154 *//*! 155 * Module dependencies 156 */var a=t(84224);e.exports=function(e,f){return a(e)<a(f)?-1:1}},61761:function(e,f,t){/*! 157 * Chai - expectTypes utility 158 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 159 * MIT Licensed 160 */var a=t(68780),n=t(63917),i=t(37832);e.exports=function(e,f){var t=n(e,"message"),s=n(e,"ssfi");t=t?t+": ":"",e=n(e,"object"),(f=f.map(function(e){return e.toLowerCase()})).sort();var r=f.map(function(e,t){var a=~["a","e","i","o","u"].indexOf(e.charAt(0))?"an":"a";return(f.length>1&&t===f.length-1?"or ":"")+a+" "+e}).join(", "),o=i(e).toLowerCase();if(!f.some(function(e){return o===e}))throw new a(t+"object tested must be "+r+", but "+o+" given",void 0,s)}},63917:function(e){/*! 161 * Chai - flag utility 162 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 163 * MIT Licensed
164 */e.exports=function(e,f,t){var a=e.__flags||(e.__flags=Object.create(null));if(3!=arguments.length)return a[f];a[f]=t}},92527:function(e){/*! 165 * Chai - getActual utility 166 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 167 * MIT Licensed 168 */e.exports=function(e,f){return f.length>4?f[4]:e._obj}},9725:function(e,f,t){/*! 169 * Chai - message composition utility 170 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 171 * MIT Licensed 172 *//*! 173 * Module dependencies 174 */var a=t(63917),n=t(92527),i=t(4630);e.exports=function(e,f){var t=a(e,"negate"),s=a(e,"object"),r=f[3],o=n(e,f),d=t?f[2]:f[1],c=a(e,"message");return"function"==typeof d&&(d=d()),d=(d=d||"").replace(/#\{this\}/g,function(){return i(s)}).replace(/#\{act\}/g,function(){return i(o)}).replace(/#\{exp\}/g,function(){return i(r)}),c?c+": "+d:d}},30177:function(e,f,t){var a=t(37832),n=t(63917);e.exports=function(e,f){var t=n(e,"operator"),i=n(e,"negate"),s=f[3],r=i?f[2]:f[1];if(t)return t;if("function"==typeof r&&(r=r()),!(!(r=r||"")||/\shave\s/.test(r))){var o=-1!==["Array","Object","function"].indexOf(a(s));return/\snot\s/.test(r)?o?"notDeepStrictEqual":"notStrictEqual":o?"deepStrictEqual":"strictEqual"}}},14588:function(e,f,t){/*! 175 * Chai - getOwnEnumerableProperties utility 176 * Copyright(c) 2011-2016 Jake Luer <[email protected]> 177 * MIT Licensed 178 *//*! 179 * Module dependencies 180 */var a=t(41024);e.exports=function(e){return Object.keys(e).concat(a(e))}},41024:function(e){/*! 181 * Chai - getOwnEnumerablePropertySymbols utility 182 * Copyright(c) 2011-2016 Jake Luer <[email protected]> 183 * MIT Licensed 184 */e.exports=function(e){return"function"!=typeof Object.getOwnPropertySymbols?[]:Object.getOwnPropertySymbols(e).filter(function(f){return Object.getOwnPropertyDescriptor(e,f).enumerable})}},68776:function(e){/*! 185 * Chai - getProperties utility 186 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 187 * MIT Licensed 188 */e.exports=function(e){var f=Object.getOwnPropertyNames(e);function t(e){-1===f.indexOf(e)&&f.push(e)}for(var a=Object.getPrototypeOf(e);null!==a;)Object.getOwnPropertyNames(a).forEach(t),a=Object.getPrototypeOf(a);return f}},54580:function(e,f,t){/*! 189 * chai 190 * Copyright(c) 2011 Jake Luer <[email protected]> 191 * MIT Licensed 192 *//*! 193 * Dependencies that are used for multiple exports are required here only once 194 */var a=t(71176);/*! 195 * test utility 196 */f.test=t(44845),/*! 197 * type utility 198 */f.type=t(37832),/*! 199 * expectTypes utility 200 */f.expectTypes=t(61761),/*! 201 * message utility 202 */f.getMessage=t(9725),/*! 203 * actual utility 204 */f.getActual=t(92527),/*! 205 * Inspect util 206 */f.inspect=t(84224),/*! 207 * Object Display util 208 */f.objDisplay=t(4630),/*! 209 * Flag utility 210 */f.flag=t(63917),/*! 211 * Flag transferring utility 212 */f.transferFlags=t(62402),/*! 213 * Deep equal utility 214 */f.eql=t(72762),/*! 215 * Deep path info 216 */f.getPathInfo=a.getPathInfo,/*! 217 * Check if a property exists 218 */f.hasProperty=a.hasProperty,/*! 219 * Function name 220 */f.getName=t(44481),/*! 221 * add Property 222 */f.addProperty=t(98336),/*! 223 * add Method 224 */f.addMethod=t(17541),/*! 225 * overwrite Property 226 */f.overwriteProperty=t(20713),/*! 227 * overwrite Method 228 */f.overwriteMethod=t(99701),/*! 229 * Add a chainable method 230 */f.addChainableMethod=t(46057),/*! 231 * Overwrite chainable method 232 */f.overwriteChainableMethod=t(94389),/*! 233 * Compare by inspect method 234 */f.compareByInspect=t(23377),/*! 235 * Get own enumerable property symbols method 236 */f.getOwnEnumerablePropertySymbols=t(41024),/*! 237 * Get own enumerable properties method 238 */f.getOwnEnumerableProperties=t(14588),/*! 239 * Checks error against a given set of criteria 240 */f.checkError=t(53268),/*! 241 * Proxify util 242 */f.proxify=t(6365),/*! 243 * addLengthGuard util 244 */f.addLengthGuard=t(26492),/*! 245 * isProxyEnabled helper 246 */f.isProxyEnabled=t(70159),/*! 247 * isNaN method 248 */f.isNaN=t(73101),/*! 249 * getOperator method 250 */f.getOperator=t(30177)},84224:function(e,f,t){t(44481);var a=t(90371),n=t(94199);e.exports=function(e,f,t,i){var s={colors:i,depth:void 0===t?2:t,showHidden:f,truncate:n.truncateThreshold?n.truncateThreshold:1/0};return a.inspect(e,s)}},73101:function(e){e.exports=Number.isNaN||/*! 251 * Chai - isNaN utility 252 * Copyright(c) 2012-2015 Sakthipriyan Vairamani <[email protected]> 253 * MIT Licensed 254 */function(e){return e!=e}},70159:function(e,f,t){var a=t(94199);/*! 255 * Chai - isProxyEnabled helper 256 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 257 * MIT Licensed
258 */e.exports=function(){return a.useProxy&&"undefined"!=typeof Proxy&&"undefined"!=typeof Reflect}},4630:function(e,f,t){/*! 259 * Chai - flag utility 260 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 261 * MIT Licensed 262 *//*! 263 * Module dependencies 264 */var a=t(84224),n=t(94199);e.exports=function(e){var f=a(e),t=Object.prototype.toString.call(e);if(!n.truncateThreshold||!(f.length>=n.truncateThreshold))return f;if("[object Function]"===t)return e.name&&""!==e.name?"[Function: "+e.name+"]":"[Function]";if("[object Array]"===t)return"[ Array("+e.length+") ]";if("[object Object]"!==t)return f;var i=Object.keys(e);return"{ Object ("+(i.length>2?i.splice(0,2).join(", ")+", ...":i.join(", "))+") }"}},94389:function(e,f,t){/*! 265 * Chai - overwriteChainableMethod utility 266 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 267 * MIT Licensed 268 */var a=t(99099),n=t(62402);e.exports=function(e,f,t,i){var s=e.__methods[f],r=s.chainingBehavior;s.chainingBehavior=function(){var e=i(r).call(this);if(void 0!==e)return e;var f=new a.Assertion;return n(this,f),f};var o=s.method;s.method=function(){var e=t(o).apply(this,arguments);if(void 0!==e)return e;var f=new a.Assertion;return n(this,f),f}}},99701:function(e,f,t){/*! 269 * Chai - overwriteMethod utility 270 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 271 * MIT Licensed 272 */var a=t(26492),n=t(99099),i=t(63917),s=t(6365),r=t(62402);e.exports=function(e,f,t){var o=e[f],d=function(){throw Error(f+" is not a function")};o&&"function"==typeof o&&(d=o);var c=function(){i(this,"lockSsfi")||i(this,"ssfi",c);var e=i(this,"lockSsfi");i(this,"lockSsfi",!0);var f=t(d).apply(this,arguments);if(i(this,"lockSsfi",e),void 0!==f)return f;var a=new n.Assertion;return r(this,a),a};a(c,f,!1),e[f]=s(c,f)}},20713:function(e,f,t){/*! 273 * Chai - overwriteProperty utility 274 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 275 * MIT Licensed 276 */var a=t(99099),n=t(63917),i=t(70159),s=t(62402);e.exports=function(e,f,t){var r=Object.getOwnPropertyDescriptor(e,f),o=function(){};r&&"function"==typeof r.get&&(o=r.get),Object.defineProperty(e,f,{get:function e(){i()||n(this,"lockSsfi")||n(this,"ssfi",e);var f=n(this,"lockSsfi");n(this,"lockSsfi",!0);var r=t(o).call(this);if(n(this,"lockSsfi",f),void 0!==r)return r;var d=new a.Assertion;return s(this,d),d},configurable:!0})}},6365:function(e,f,t){var a=t(94199),n=t(63917),i=t(68776),s=t(70159),r=["__flags","__methods","_obj","assert"];e.exports=function(e,f){return s()?new Proxy(e,{get:function e(t,s){if("string"==typeof s&&-1===a.proxyExcludedKeys.indexOf(s)&&!Reflect.has(t,s)){if(f)throw Error("Invalid Chai property: "+f+"."+s+'. See docs for proper usage of "'+f+'".');var o=null,d=4;if(i(t).forEach(function(e){if(!Object.prototype.hasOwnProperty(e)&&-1===r.indexOf(e)){var f=function(e,f,t){if(Math.abs(e.length-f.length)>=t)return t;for(var a=[],n=0;n<=e.length;n++)a[n]=Array(f.length+1).fill(0),a[n][0]=n;for(var i=0;i<f.length;i++)a[0][i]=i;for(var n=1;n<=e.length;n++)for(var s=e.charCodeAt(n-1),i=1;i<=f.length;i++){if(Math.abs(n-i)>=t){a[n][i]=t;continue}a[n][i]=Math.min(a[n-1][i]+1,a[n][i-1]+1,a[n-1][i-1]+(s===f.charCodeAt(i-1)?0:1))}return a[e.length][f.length]}(s,e,d);f<d&&(o=e,d=f)}}),null!==o)throw Error("Invalid Chai property: "+s+'. Did you mean "'+o+'"?');throw Error("Invalid Chai property: "+s)}return -1!==r.indexOf(s)||n(t,"lockSsfi")||n(t,"ssfi",e),Reflect.get(t,s)}}):e}},44845:function(e,f,t){/*! 277 * Chai - test utility 278 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 279 * MIT Licensed 280 *//*! 281 * Module dependencies 282 */var a=t(63917);e.exports=function(e,f){var t=a(e,"negate"),n=f[0];return t?!n:n}},62402:function(e){/*! 283 * Chai - transferFlags utility 284 * Copyright(c) 2012-2014 Jake Luer <[email protected]> 285 * MIT Licensed 286 */e.exports=function(e,f,t){var a=e.__flags||(e.__flags=Object.create(null));for(var n in f.__flags||(f.__flags=Object.create(null)),t=3!=arguments.length||t,a)(t||"object"!==n&&"ssfi"!==n&&"lockSsfi"!==n&&"message"!=n)&&(f.__flags[n]=a[n])}},53268:function(e,f,t){"use strict";var a=t(44481);e.exports={compatibleInstance:function(e,f){return f instanceof Error&&e===f},compatibleConstructor:function(e,f){return f instanceof Error?e.constructor===f.constructor||e instanceof f.constructor:(f.prototype instanceof Error||f===Error)&&(e.constructor===f||e instanceof f)},compatibleMessage:function(e,f){var t="string"==typeof e?e:e.message;return f instanceof RegExp?f.test(t):"string"==typeof f&&-1!==t.indexOf(f)},getMessage:function(e){var f="";return e&&e.message?f=e.message:"string"==typeof e&&(f=e),f},getConstructorName:function(e){var f=e;return e instanceof Error?f=a(e.constructor):"function"==typeof e&&""===(f=a(e))&&(f=a(new e)||f),f}}},42927:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s,r,o,d,c,b,l,p,u;return f=e.lib.BlockCipher,t=e.algo,a=[],n=[],i=[],s=[],r=[],o=[],d=[],c=[],b=[],l=[],function(){for(var e=[],f=0;f<256;f++)f<128?e[f]=f<<1:e[f]=f<<1^283;for(var t=0,p=0,f=0;f<256;f++){var u=p^p<<1^p<<2^p<<3^p<<4;u=u>>>8^255&u^99,a[t]=u,n[u]=t;var y=e[t],m=e[y],g=e[m],h=257*e[u]^16843008*u;i[t]=h<<24|h>>>8,s[t]=h<<16|h>>>16,r[t]=h<<8|h>>>24,o[t]=h;var h=16843009*g^65537*m^257*y^16843008*t;d[u]=h<<24|h>>>
vendor: 1,509 bytes, line 286
2868,c[u]=h<<16|h>>>16,b[u]=h<<8|h>>>24,l[u]=h,t?(t=y^e[e[e[g^y]]],p^=e[e[p]]):t=p=1}}(),p=[0,1,2,4,8,16,32,64,128,27,54],u=t.AES=f.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e,f=this._keyPriorReset=this._key,t=f.words,n=f.sigBytes/4,i=((this._nRounds=n+6)+1)*4,s=this._keySchedule=[],r=0;r<i;r++)r<n?s[r]=t[r]:(e=s[r-1],r%n?n>6&&r%n==4&&(e=a[e>>>24]<<24|a[e>>>16&255]<<16|a[e>>>8&255]<<8|a[255&e]):e=(a[(e=e<<8|e>>>24)>>>24]<<24|a[e>>>16&255]<<16|a[e>>>8&255]<<8|a[255&e])^p[r/n|0]<<24,s[r]=s[r-n]^e);for(var o=this._invKeySchedule=[],u=0;u<i;u++){var r=i-u;if(u%4)var e=s[r];else var e=s[r-4];u<4||r<=4?o[u]=e:o[u]=d[a[e>>>24]]^c[a[e>>>16&255]]^b[a[e>>>8&255]]^l[a[255&e]]}}},encryptBlock:function(e,f){this._doCryptBlock(e,f,this._keySchedule,i,s,r,o,a)},decryptBlock:function(e,f){var t=e[f+1];e[f+1]=e[f+3],e[f+3]=t,this._doCryptBlock(e,f,this._invKeySchedule,d,c,b,l,n);var t=e[f+1];e[f+1]=e[f+3],e[f+3]=t},_doCryptBlock:function(e,f,t,a,n,i,s,r){for(var o=this._nRounds,d=e[f]^t[0],c=e[f+1]^t[1],b=e[f+2]^t[2],l=e[f+3]^t[3],p=4,u=1;u<o;u++){var y=a[d>>>24]^n[c>>>16&255]^i[b>>>8&255]^s[255&l]^t[p++],m=a[c>>>24]^n[b>>>16&255]^i[l>>>8&255]^s[255&d]^t[p++],g=a[b>>>24]^n[l>>>16&255]^i[d>>>8&255]^s[255&c]^t[p++],h=a[l>>>24]^n[d>>>16&255]^i[c>>>8&255]^s[255&b]^t[p++];d=y,c=m,b=g,l=h}var y=(r[d>>>24]<<24|r[c>>>16&255]<<16|r[b>>>8&255]<<8|r[255&l])^t[p++],m=(r[c>>>24]<<24|r[b>>>16&255]<<16|r[l>>>8&255]<<8|r[255&d])^t[p++],g=(r[b>>>24]<<24|r[l>>>16&255]<<16|r[d>
286>>8&255]<<8|r[255&c])^t[p++],h=(r[l>>>24]<<24|r[d>>>16&255]<<16|r[c>>>8&255]<<8|r[255&b])^t[p++];e[f]=y,e[f+1]=m,e[f+2]=g,e[f+3]=h},keySize:8}),e.AES=f._createHelper(u),e.AES},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},16405:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.BlockCipher,t=e.algo;let a=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],n
vendor: 11,038 bytes, line 286
286=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var
286i={pbox:[],sbox:[]};function s(e,f){let t=e.sbox[0][f>>24&255]+e.sbox[1][f>>16&255];return t^=e.sbox[2][f>>8&255],t+=e.sbox[3][255&f]}function r(e,f,t){let a,n=f,i=t;
286for(let f=0;f<16;++f)n^=e.pbox[f],i=s(e,n)^i,a=n,n=i,i=a;return a=n,n=i,i=a^e.pbox[16],{left:n^=e.pbox[17],right:i}}var o=t.Blowfish=f.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var e=this._keyPriorReset=this._key;!function(e,f,t){for(let f=0;f<4;f++){e.sbox[f]=[];for(let t=0;t<256;t++)e.sbox[f][t]=n[f][t]}let i=0;for(let n=0;n<18;n++)e.pbox[n]=a[n]^f[i],++i>=t&&(i=0);let s=0,o=0,d=0;for(let f=0;f<18;f+=2)s=(d=r(e,s,o)).left,o=d.right,e.pbox[f]=s,e.pbox[f+1]=o;for(let f=0;f<4;f++)for(let t=0;t<256;t+=2)s=(d=r(e,s,o)).left,o=d.right,e.sbox[f][t]=s,e.sbox[f][t+1]=o}(i,e.words,e.sigBytes/4)}},encryptBlock:function(e,f){var t=r(i,e[f],e[f+1]);e[f]=t.left,e[f+1]=t.right},decryptBlock:function(e,f){var t=function(e,f,t){let a,n=f,i=t;for(let f=17;f>1;--f)n^=e.pbox[f],i=s(e,n)^i,a=n,n=i,i=a;return a=n,n=i,i=a^e.pbox[1],{left:n^=e.pbox[0],right:i}}(i,e[f],e[f+1]);e[f]=t.left,e[f+1]=t.right},blockSize:2,keySize:4,ivSize:2});e.Blowfish=f._createHelper(o)}(),e.Blowfish},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},90576:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s,r,o,d,c,b,l,p,u,y,m,g;e.lib.Cipher||(t=(f=e.lib).Base,a=f.WordArray,n=f.BufferedBlockAlgorithm,(i=e.enc).Utf8,s=i.Base64,r=e.algo.EvpKDF,o=f.Cipher=n.extend({cfg:t.extend(),createEncryptor:function(e,f){return this.create(this._ENC_XFORM_MODE,e,f)},createDecryptor:function(e,f){return this.create(this._DEC_XFORM_MODE,e,f)},init:function(e,f,t){this.cfg=this.cfg.extend(t),this._xformMode=e,this._key=f,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?g:y}return function(f){return{encrypt:function(t,a,n){return e(a).encrypt(f,t,a,n)},decrypt:function(t,a,n){return e(a).decrypt(f,t,a,n)}}}}()}),f.StreamCipher=o.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),d=e.mode={},c=f.BlockCipherMode=t.extend({createEncryptor:function(e,f){return this.Encryptor.create(e,f)},createDecryptor:function(e,f){return this.Decryptor.create(e,f)},init:function(e,f){this._cipher=e,this._iv=f}}),b=d.CBC=function(){var e=c.extend();function f(e,f,t){var a,n=this._iv;n?(a=n,this._iv=void 0):a=this._prevBlock;for(var i=0;i<t;i++)e[f+i]^=a[i]}return e.Encryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize;f.call(this,e,t,n),a.encryptBlock(e,t),this._prevBlock=e.slice(t,t+n)}}),e.Decryptor=e.extend({processBlock:function(e,t){var a=this._cipher,n=a.blockSize,i=e.slice(t,t+n);a.decryptBlock(e,t),f.call(this,e,t,n),this._prevBlock=i}}),e}(),l=(e.pad={}).Pkcs7={pad:function(e,f){for(var t=4*f,n=t-e.sigBytes%t,i=n<<24|n<<16|n<<8|n,s=[],r=0;r<n;r+=4)s.push(i);var o=a.create(s,n);e.concat(o)},unpad:function(e){var f=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=f}},f.BlockCipher=o.extend({cfg:o.cfg.extend({mode:b,padding:l}),reset:function(){o.reset.call(this);var e,f=this.cfg,t=f.iv,a=f.mode;this._xformMode==this._ENC_XFORM_MODE?e=a.createEncryptor:(e=a.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,t&&t.words):(this._mode=e.call(a,this,t&&t.words),this._mode.__creator=e)},_doProcessBlock:function(e,f){this._mode.processBlock(e,f)},_doFinalize:function(){var e,f=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(f.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),f.unpad(e)),e},blockSize:4}),p=f.CipherParams=t.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),u=(e.format={}).OpenSSL={stringify:function(e){var f=e.ciphertext,t=e.salt;return(t?a.create([1398893684,1701076831]).concat(t).concat(f):f).toString(s)},parse:function(e){var f,t=s.parse(e),n=t.words;return 1398893684==n[0]&&1701076831==n[1]&&(f=a.create(n.slice(2,4)),n.splice(0,4),t.sigBytes-=16),p.create({ciphertext:t,salt:f})}},y=f.SerializableCipher=t.extend({cfg:t.extend({format:u}),encrypt:function(e,f,t,a){a=this.cfg.extend(a);var n=e.createEncryptor(t,a),i=n.finalize(f),s=n.cfg;return p.create({ciphertext:i,key:t,iv:s.iv,algorithm:e,mode:s.mode,padding:s.padding,blockSize:e.blockSize,formatter:a.format})},decrypt:function(e,f,t,a){return a=this.cfg.extend(a),f=this._parse(f,a.format),e.createDecryptor(t,a).finalize(f.ciphertext)},_parse:function(e,f){return"string"==typeof e?f.parse(e,this):e}}),m=(e.kdf={}).OpenSSL={execute:function(e,f,t,n,i){if(n||(n=a.random(8)),i)var s=r.create({keySize:f+t,hasher:i}).compute(e,n);else var s=r.create({keySize:f+t}).compute(e,n);var o=a.create(s.words.slice(f),4*t);return s.sigBytes=4*f,p.create({key:s,iv:o,salt:n})}},g=f.PasswordBasedCipher=y.extend({cfg:y.cfg.extend({kdf:m}),encrypt:function(e,f,t,a){var n=(a=this.cfg.extend(a)).kdf.execute(t,e.keySize,e.ivSize,a.salt,a.hasher);a.iv=n.iv;var i=y.encrypt.call(this,e,f,n.key,a);return i.mixIn(n),i},decrypt:function(e,f,t,a){a=this.cfg.extend(a),f=this._parse(f,a.format);var n=a.kdf.execute(t,e.keySize,e.ivSize,f.salt,a.hasher);return a.iv=n.iv,y.decrypt.call(this,e,f,n.key,a)}}))},e.exports=a(t(39317),t(87579))},39317:function(e,f,t){var a;a=function(){var e=e||function(e,f){if("undefined"!=typeof window&&window.crypto&&(a=window.crypto),"undefined"!=typeof self&&self.crypto&&(a=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(a=globalThis.crypto),!a&&"undefined"!=typeof window&&window.msCrypto&&(a=window.msCrypto),!a&&void 0!==t.g&&t.g.crypto&&(a=t.g.crypto),!a)try{a=t(42480)}catch(e){}var a,n=function(){if(a){if("function"==typeof a.getRandomValues)try{return a.getRandomValues(new Uint32Array(1))[0]}catch(e){}if("function"==typeof a.randomBytes)try{return a.randomBytes(4).readInt32LE()}catch(e){}}throw Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(f){var t;return e.prototype=f,t=new e,e.prototype=null,t}}(),s={},r=s.lib={},o=r.Base={extend:function(e){var f=i(this);return e&&f.mixIn(e),f.hasOwnProperty("init")&&this.init!==f.init||(f.init=function(){f.$super.init.a
vendor: 4,429 bytes, line 286
286pply(this,arguments)}),f.init.prototype=f,f.$super=this,f},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var f in e)e.hasOwnProperty(f)&&(this[f]=e[f]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},d=r.WordArray=o.extend({init:function(e,t){e=this.words=e||[],f!=t?this.sigBytes=t:this.sigBytes=4*e.length},toString:function(e){return(e||b).stringify(this)},concat:function(e){var f=this.words,t=e.words,a=this.sigBytes,n=e.sigBytes;if(this.clamp(),a%4)for(var i=0;i<n;i++){var s=t[i>>>2]>>>24-i%4*8&255;f[a+i>>>2]|=s<<24-(a+i)%4*8}else for(var r=0;r<n;r+=4)f[a+r>>>2]=t[r>>>2];return this.sigBytes+=n,this},clamp:function(){var f=this.words,t=this.sigBytes;f[t>>>2]&=4294967295<<32-t%4*8,f.length=e.ceil(t/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var f=[],t=0;t<e;t+=4)f.push(n());return new d.init(f,e)}}),c=s.enc={},b=c.Hex={stringify:function(e){for(var f=e.words,t=e.sigBytes,a=[],n=0;n<t;n++){var i=f[n>>>2]>>>24-n%4*8&255;a.push((i>>>4).toString(16)),a.push((15&i).toString(16))}return a.join("")},parse:function(e){for(var f=e.length,t=[],a=0;a<f;a+=2)t[a>>>3]|=parseInt(e.substr(a,2),16)<<24-a%8*4;return new d.init(t,f/2)}},l=c.Latin1={stringify:function(e){for(var f=e.words,t=e.sigBytes,a=[],n=0;n<t;n++){var i=f[n>>>2]>>>24-n%4*8&255;a.push(String.fromCharCode(i))}return a.join("")},parse:function(e){for(var f=e.length,t=[],a=0;a<f;a++)t[a>>>2]|=(255&e.charCodeAt(a))<<24-a%4*8;return new d.init(t,f)}},p=c.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},u=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(f){var t,a=this._data,n=a.words,i=a.sigBytes,s=this.blockSize,r=i/(4*s),o=(r=f?e.ceil(r):e.max((0|r)-this._minBufferSize,0))*s,c=e.min(4*o,i);if(o){for(var b=0;b<o;b+=s)this._doProcessBlock(n,b);t=n.splice(0,o),a.sigBytes-=c}return new d.init(t,c)},clone:function(){var e=o.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});r.Hasher=u.extend({cfg:o.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){u.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(f,t){return new e.init(t).finalize(f)}},_createHmacHelper:function(e){return function(f,t){return new y.HMAC.init(e,t).finalize(f)}}});var y=s.algo={};return s}(Math);return e},e.exports=a()},85925:function(e,f,t){var a;a=function(e){var f;return f=e.lib.WordArray,e.enc.Base64={stringify:function(e){var f=e.words,t=e.sigBytes,a=this._map;e.clamp();for(var n=[],i=0;i<t;i+=3)for(var s=(f[i>>>2]>>>24-i%4*8&255)<<16|(f[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|f[i+2>>>2]>>>24-(i+2)%4*8&255,r=0;r<4&&i+.75*r<t;r++)n.push(a.charAt(s>>>6*(3-r)&63));var o=a.charAt(64);if(o)for(;n.length%4;)n.push(o);return n.join("")},parse:function(e){var t=e.length,a=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var i=0;i<a.length;i++)n[a.charCodeAt(i)]=i}var s=a.charAt(64);if(s){var r=e.indexOf(s);-1!==r&&(t=r)}return function(e,t,a){for(var n=[],i=0,s=0;s<t;s++)if(s%4){var r=a[e.charCodeAt(s-1)]<<s%4*2|a[e.charCodeAt(s)]>>>6-s%4*2;n[i>>>2]|=r<<24-i%4*8,i++}return f.create(n,i)}(e,t,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},e.enc.Base64},e.exports=a(t(39317))},37296:function(e,f,t){var a;a=function(e){var f;return f=e.lib.WordArray,e.enc.Base64url={stringify:function(e,f){void 0===f&&(f=!0);var t=e.words,a=e.sigBytes,n=f?this._safe_map:this._map;e.clamp();for(var i=[],s=0;s<a;s+=3)for(var r=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,o=0;o<4&&s+.75*o<a;o++)i.push(n.charAt(r>>>6*(3-o)&63));var d=n.charAt(64);if(d)for(;i.length%4;)i.push(d);return i.join("")},parse:function(e,t){void 0===t&&(t=!0);var a=e.length,n=t?this._safe_map:this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<n.length;
286s++)i[n.charCodeAt(s)]=s}var r=n.charAt(64);if(r){var o=e.indexOf(r);-1!==o&&(a=o)}return function(e,t,a){for(var n=[],i=0,s=0;s<t;s++)if(s%4){var r=a[e.charCodeAt(s-1)]<<s%4*2|a[e.charCodeAt(s)]>>>6-s%4*2;n[i>>>2]|=r<<24-i%4*8,i++}return f.create(n,i)}(e,a,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},e.enc.Base64url},e.exports=a(t(39317))},10242:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.WordArray,t=e.enc;function a(e){return e<<8&4278255360|e>>>8&16711935}t.Utf16=t.Utf16BE={stringify:function(e){for(var f=e.words,t=e.sigBytes,a=[],n=0;n<t;n+=2){var i=f[n>>>2]>>>16-n%4*8&65535;a.push(String.fromCharCode(i))}return a.join("")},parse:function(e){for(var t=e.length,a=[],n=0;n<t;n++)a[n>>>1]|=e.charCodeAt(n)<<16-n%2*16;return f.create(a,2*t)}},t.Utf16LE={stringify:function(e){for(var f=e.words,t=e.sigBytes,n=[],i=0;i<t;i+=2){var s=a(f[i>>>2]>>>16-i%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i<t;i++)n[i>>>1]|=a(e.charCodeAt(i)<<16-i%2*16);return f.create(n,2*t)}}}(),e.enc.Utf16},e.exports=a(t(39317))},87579:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s;return t=(f=e.lib).Base,a=f.WordArray,i=(n=e.algo).MD5,s=n.EvpKDF=t.extend({cfg:t.extend({keySize:4,hasher:i,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,f){for(var t,n=this.cfg,i=n.hasher.create(),s=a.create(),r=s.words,o=n.keySize,d=n.iterations;r.length<o;){t&&i.update(t),t=i.update(e).finalize(f),i.reset();for(var c=1;c<d;c++)t=i.finalize(t),i.reset();s.concat(t)}return s.sigBytes=4*o,s}}),e.EvpKDF=function(e,f,t){return s.create(t).compute(e,f)},e.EvpKDF},e.exports=a(t(39317),t(54724),t(52657))},28662:function(e,f,t){var a;a=function(e){var f,t;return f=e.lib.CipherParams,t=e.enc.Hex,e.format.Hex={stringify:function(e){return e.ciphertext.toString(t)},parse:function(e){var a=t.parse(e);return f.create({ciphertext:a})}},e.format.Hex},e.exports=a(t(39317),t(90576))},52657:function(e,f,t){var a;a=function(e){var f,t;f=e.lib.Base,t=e.enc.Utf8,e.algo.HMAC=f.extend({init:function(e,f){e=this._hasher=new e.init,"string"==typeof f&&(f=t.parse(f));var a=e.blockSize,n=4*a;f.sigBytes>n&&(f=e.finalize(f)),f.clamp();for(var i=this._oKey=f.clone(),s=this._iKey=f.clone(),r=i.words,o=s.words,d=0;d<a;d++)r[d]^=1549556828,o[d]^=909522486;i.sigBytes=s.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var f=this._hasher,t=f.finalize(e);return f.reset(),f.finalize(this._oKey.clone().concat(t))}})},e.exports=a(t(39317))},58110:function(e,f,t){var a;a=function(e){return e},e.exports=a(t(39317),t(66061),t(90183),t(10242),t(85925),t(37296),t(96546),t(54724),t(7940),t(92020),t(12427),t(42869),t(26552),t(75461),t(52657),t(51795),t(87579),t(90576),t(90584),t(91015),t(2187),t(87438),t(95124),t(81046),t(44121),t(57457),t(36490),t(64394),t(28662),t(42927),t(77850),t(14848),t(70843),t(32340),t(16405))},90183:function(e,f,t){var a;a=function(e){return function(){if("function"==typeof ArrayBuffer){var f=e.lib.WordArray,t=f.init;(f.init=function(e){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),(e instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array)&&(e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),e instanceof Uint8Array){for(var f=e.byteLength,a=[],n=0;n<f;n++)a[n>>>2]|=e[n]<<24-n%4*8;t.call(this,a,f)}else t.apply(this,arguments)}).prototype=f}}(),e.lib.WordArray},e.exports=a(t(39317))},96546:function(e,f,t){var a;a=function(e){return function(f){var t=e.lib,a=t.WordArray,n=t.Hasher,i=e.algo,s=[];!function(){for(var e=0;e<64;e++)s[e]=4294967296*f.abs(f.sin(e+1))|0}();var r=i.MD5=n.extend({_doReset:function(){this._hash=new a.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,f){for(var t=0;t<16;t++){var a=f+t,n=e[a];e[a]=(n<<8|n>>>24)&16711935|(n<<24|n>>>8)&4278255360}var i=this._hash.words,r=e[f+0],l=e[f+1],p=e[f+2],u=e[f+3],y=e[f+4],m=e[f+5],g=e[f+6],h=e[f+7],_=e[f+8],T=e[f+9],v=e[f+10],D=e[f+11],M=e[f+12],S=e[f+13],w=e[f+14],x=e[f+15],C=i[0],I=i[1],L=i[2],k=i[3];C=o(C,I,L,k,r,7,s[0]),k=o(k,C,I,L,l,12,s[1]),L=o(L,k,C,I,p,17,s[2]),I=o(I,L,k,C,u,22,s[3]),C=o(C,I,L,k,y,7,s[4]),k=o(k,C,I,L,m,12,s[5]),L=o(L,k,C,I,g,17,s[6]),I=o(I,L,k,C,h,22,s[7]),C=o(C,I,L,k,_,7,s[8]),k=o(k,C,I,L,T,12,s[9]),L=o(L,k,C,I,v,17,s[10]),I=o(I,L,k,C,D,22,s[11]),
286C=o(C,I,L,k,M,7,s[12]),k=o(k,C,I,L,S,12,s[13]),L=o(L,k,C,I,w,17,s[14]),I=o(I,L,k,C,x,22,s[15]),C=d(C,I,L,k,l,5,s[16]),k=d(k,C,I,L,g,9,s[17]),L=d(L,k,C,I,D,14,s[18]),I=d(I,L,k,C,r,20,s[19]),C=d(C,I,L,k,m,5,s[20]),k=d(k,C,I,L,v,9,s[21]),L=d(L,k,C,I,x,14,s[22]),I=d(I,L,k,C,y,20,s[23]),C=d(C,I,L,k,T,5,s[24]),k=d(k,C,I,L,w,9,s[25]),L=d(L,k,C,I,u,14,s[26]),I=d(I,L,k,C,_,20,s[27]),C=d(C,I,L,k,S,5,s[28]),k=d(k,C,I,L,p,9,s[29]),L=d(L,k,C,I,h,14,s[30]),I=d(I,L,k,C,M,20,s[31]),C=c(C,I,L,k,m,4,s[32]),k=c(k,C,I,L,_,11,s[33]),L=c(L,k,C,I,D,16,s[34]),I=c(I,L,k,C,w,23,s[35]),C=c(C,I,L,k,l,4,s[36]),k=c(k,C,I,L,y,11,s[37]),L=c(L,k,C,I,h,16,s[38]),I=c(I,L,k,C,v,23,s[39]),C=c(C,I,L,k,S,4,s[40]),k=c(k,C,I,L,r,11,s[41]),L=c(L,k,C,I,u,16,s[42]),I=c(I,L,k,C,g,23,s[43]),C=c(C,I,L,k,T,4,s[44]),k=c(k,C,I,L,M,11,s[45]),L=c(L,k,C,I,x,16,s[46]),I=c(I,L,k,C,p,23,s[47]),C=b(C,I,L,k,r,6,s[48]),k=b(k,C,I,L,h,10,s[49]),L=b(L,k,C,I,w,15,s[50]),I=b(I,L,k,C,m,21,s[51]),C=b(C,I,L,k,M,6,s[52]),k=b(k,C,I,L,u,10,s[53]),L=b(L,k,C,I,v,15,s[54]),I=b(I,L,k,C,l,21,s[55]),C=b(C,I,L,k,_,6,s[56]),k=b(k,C,I,L,x,10,s[57]),L=b(L,k,C,I,g,15,s[58]),I=b(I,L,k,C,S,21,s[59]),C=b(C,I,L,k,y,6,s[60]),k=b(k,C,I,L,D,10,s[61]),L=b(L,k,C,I,p,15,s[62]),I=b(I,L,k,C,T,21,s[63]),i[0]=i[0]+C|0,i[1]=i[1]+I|0,i[2]=i[2]+L|0,i[3]=i[3]+k|0},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;t[n>>>5]|=128<<24-n%32;var i=f.floor(a/4294967296);t[(n+64>>>9<<4)+15]=(i<<8|i>>>24)&16711935|(i<<24|i>>>8)&4278255360,t[(n+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360,e.sigBytes=(t.length+1)*4,this._process();for(var s=this._hash,r=s.words,o=0;o<4;o++){var d=r[o];r[o]=(d<<8|d>>>24)&16711935|(d<<24|d>>>8)&4278255360}return s},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});function o(e,f,t,a,n,i,s){var r=e+(f&t|~f&a)+n+s;return(r<<i|r>>>32-i)+f}function d(e,f,t,a,n,i,s){var r=e+(f&a|t&~a)+n+s;return(r<<i|r>>>32-i)+f}function c(e,f,t,a,n,i,s){var r=e+(f^t^a)+n+s;return(r<<i|r>>>32-i)+f}function b(e,f,t,a,n,i,s){var r=e+(t^(f|~a))+n+s;return(r<<i|r>>>32-i)+f}e.MD5=n._createHelper(r),e.HmacMD5=n._createHmacHelper(r)}(Math),e.MD5},e.exports=a(t(39317))},90584:function(e,f,t){var a;a=function(e){return e.mode.CFB=function(){var f=e.lib.BlockCipherMode.extend();function t(e,f,t,a){var n,i=this._iv;i?(n=i.slice(0),this._iv=void 0):n=this._prevBlock,a.encryptBlock(n,0);for(var s=0;s<t;s++)e[f+s]^=n[s]}return f.Encryptor=f.extend({processBlock:function(e,f){var a=this._cipher,n=a.blockSize;t.call(this,e,f,n,a),this._prevBlock=e.slice(f,f+n)}}),f.Decryptor=f.extend({processBlock:function(e,f){var a=this._cipher,n=a.blockSize,i=e.slice(f,f+n);t.call(this,e,f,n,a),this._prevBlock=i}}),f}(),e.mode.CFB},e.exports=a(t(39317),t(90576))},2187:function(e,f,t){var a;a=function(e){return(/** @preserve 287 * Counter block mode compatible with Dr Brian Gladman fileenc.c 288 * derived from CryptoJS.mode.CTR 289 * Jan Hruby [email protected] 290 */e.mode.CTRGladman=function(){var f=e.lib.BlockCipherMode.extend();function t(e){if((e>>24&255)==255){var f=e>>16&255,t=e>>8&255,a=255&e;255===f?(f=0,255===t?(t=0,255===a?a=0:++a):++t):++f,e=0+(f<<16)+(t<<8)+a}else e+=16777216;return e}var a=f.Encryptor=f.extend({processBlock:function(e,f){var a,n=this._cipher,i=n.blockSize,s=this._iv,r=this._counter;s&&(r=this._counter=s.slice(0),this._iv=void 0),0===((a=r)[0]=t(a[0]))&&(a[1]=t(a[1]));var o=r.slice(0);n.encryptBlock(o,0);for(var d=0;d<i;d++)e[f+d]^=o[d]}});return f.Decryptor=a,f}(),e.mode.CTRGladman)},e.exports=a(t(39317),t(90576))},91015:function(e,f,t){var a;a=function(e){var f,t;return e.mode.CTR=(t=(f=e.lib.BlockCipherMode.extend()).Encryptor=f.extend({processBlock:function(e,f){var t=this._cipher,a=t.blockSize,n=this._iv,i=this._counter;n&&(i=this._counter=n.slice(0),this._iv=void 0);var s=i.slice(0);t.encryptBlock(s,0),i[a-1]=i[a-1]+1|0;for(var r=0;r<a;r++)e[f+r]^=s[r]}}),f.Decryptor=t,f),e.mode.CTR},e.exports=a(t(39317),t(90576))},95124:function(e,f,t){var a;a=function(e){var f;return e.mode.ECB=((f=e.lib.BlockCipherMode.extend()).Encryptor=f.extend({processBlock:function(e,f){this._cipher.encryptBlock(e,f)}}),f.Decryptor=f.extend({processBlock:function(e,f){this._cipher.decryptBlock(e,f)}}),f),e.mode.ECB},e.exports=a(t(39317),t(90576))},87438:function(e,f,t){var a;a=function(e){var f,t;return e.mode.OFB=(t=(f=e.lib.BlockCipherMode.extend()).Encryptor=f.extend({processBlock:function(e,f){var t=this._cipher,a=t.blockSize,n=this._iv,i=this._keystream;n&&(i=this._keystream=n.slice(0),this._iv=void 0),t.encryptBlock(i,0);for(var s=0;s<a;s++)e[f+s]^=i[s]}}),f.Decryptor=t,f),e.mode.OFB},e.exports=a(t(39317),t(90576))},81046:function(e,f,t){var a;a=function(e){return e.pad.AnsiX923={pad:function(e,f){var t=e.sigBytes,a=4*f,n=a-t%a,i=t+n-1;
290e.clamp(),e.words[i>>>2]|=n<<24-i%4*8,e.sigBytes+=n},unpad:function(e){var f=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=f}},e.pad.Ansix923},e.exports=a(t(39317),t(90576))},44121:function(e,f,t){var a;a=function(e){return e.pad.Iso10126={pad:function(f,t){var a=4*t,n=a-f.sigBytes%a;f.concat(e.lib.WordArray.random(n-1)).concat(e.lib.WordArray.create([n<<24],1))},unpad:function(e){var f=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=f}},e.pad.Iso10126},e.exports=a(t(39317),t(90576))},57457:function(e,f,t){var a;a=function(e){return e.pad.Iso97971={pad:function(f,t){f.concat(e.lib.WordArray.create([2147483648],1)),e.pad.ZeroPadding.pad(f,t)},unpad:function(f){e.pad.ZeroPadding.unpad(f),f.sigBytes--}},e.pad.Iso97971},e.exports=a(t(39317),t(90576))},64394:function(e,f,t){var a;a=function(e){return e.pad.NoPadding={pad:function(){},unpad:function(){}},e.pad.NoPadding},e.exports=a(t(39317),t(90576))},36490:function(e,f,t){var a;a=function(e){return e.pad.ZeroPadding={pad:function(e,f){var t=4*f;e.clamp(),e.sigBytes+=t-(e.sigBytes%t||t)},unpad:function(e){for(var f=e.words,t=e.sigBytes-1,t=e.sigBytes-1;t>=0;t--)if(f[t>>>2]>>>24-t%4*8&255){e.sigBytes=t+1;break}}},e.pad.ZeroPadding},e.exports=a(t(39317),t(90576))},51795:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s,r;return t=(f=e.lib).Base,a=f.WordArray,i=(n=e.algo).SHA256,s=n.HMAC,r=n.PBKDF2=t.extend({cfg:t.extend({keySize:4,hasher:i,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,f){for(var t=this.cfg,n=s.create(t.hasher,e),i=a.create(),r=a.create([1]),o=i.words,d=r.words,c=t.keySize,b=t.iterations;o.length<c;){var l=n.update(f).finalize(r);n.reset();for(var p=l.words,u=p.length,y=l,m=1;m<b;m++){y=n.finalize(y),n.reset();for(var g=y.words,h=0;h<u;h++)p[h]^=g[h]}i.concat(l),d[0]++}return i.sigBytes=4*c,i}}),e.PBKDF2=function(e,f,t){return r.create(t).compute(e,f)},e.PBKDF2},e.exports=a(t(39317),t(7940),t(52657))},32340:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.StreamCipher,t=e.algo,a=[],n=[],i=[],s=t.RabbitLegacy=f.extend({_doReset:function(){var e=this._key.words,f=this.cfg.iv,t=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],a=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var n=0;n<4;n++)r.call(this);for(var n=0;n<8;n++)a[n]^=t[n+4&7];if(f){var i=f.words,s=i[0],o=i[1],d=(s<<8|s>>>24)&16711935|(s<<24|s>>>8)&4278255360,c=(o<<8|o>>>24)&16711935|(o<<24|o>>>8)&4278255360,b=d>>>16|4294901760&c,l=c<<16|65535&d;a[0]^=d,a[1]^=b,a[2]^=c,a[3]^=l,a[4]^=d,a[5]^=b,a[6]^=c,a[7]^=l;for(var n=0;n<4;n++)r.call(this)}},_doProcessBlock:function(e,f){var t=this._X;r.call(this),a[0]=t[0]^t[5]>>>16^t[3]<<16,a[1]=t[2]^t[7]>>>16^t[5]<<16,a[2]=t[4]^t[1]>>>16^t[7]<<16,a[3]=t[6]^t[3]>>>16^t[1]<<16;for(var n=0;n<4;n++)a[n]=(a[n]<<8|a[n]>>>24)&16711935|(a[n]<<24|a[n]>>>8)&4278255360,e[f+n]^=a[n]},blockSize:4,ivSize:2});function r(){for(var e=this._X,f=this._C,t=0;t<8;t++)n[t]=f[t];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<n[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<n[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<n[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<n[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<n[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<n[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<n[6]>>>0?1:0)|0,this._b=f[7]>>>0<n[7]>>>0?1:0;for(var t=0;t<8;t++){var a=e[t]+f[t],s=65535&a,r=a>>>16,o=((s*s>>>17)+s*r>>>15)+r*r,d=((4294901760&a)*a|0)+((65535&a)*a|0);i[t]=o^d}e[0]=i[0]+(i[7]<<16|i[7]>>>16)+(i[6]<<16|i[6]>>>16)|0,e[1]=i[1]+(i[0]<<8|i[0]>>>24)+i[7]|0,e[2]=i[2]+(i[1]<<16|i[1]>>>16)+(i[0]<<16|i[0]>>>16)|0,e[3]=i[3]+(i[2]<<8|i[2]>>>24)+i[1]|0,e[4]=i[4]+(i[3]<<16|i[3]>>>16)+(i[2]<<16|i[2]>>>16)|0,e[5]=i[5]+(i[4]<<8|i[4]>>>24)+i[3]|0,e[6]=i[6]+(i[5]<<16|i[5]>>>16)+(i[4]<<16|i[4]>>>16)|0,e[7]=i[7]+(i[6]<<8|i[6]>>>24)+i[5]|0}e.RabbitLegacy=f._createHelper(s)}(),e.RabbitLegacy},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},70843:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.StreamCipher,t=e.algo,a=[],n=[],i=[],s=t.Rabbit=f.extend({_doReset:function(){for(var e=this._key.words,f=this.cfg.iv,t=0;t<4;t++)e[t]=(e[t]<<8|e[t]>>>24)&16711935|(e[t]<<24|e[t]>>>8)&4278255360;var a=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],n=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var t=0;t<4;t++)r.call(this);for(var t=0;t<8;t++)n[t]^=a[t+4&7];if(f){var i=f.words,s=i[0],o=i[1],d=(s<<8|s>>>24)&16711935|(s<<24|s>>>8)&4278255360,c=(o<<8|o>>>24)&16711935|(o<<24|o>>>8)&4278255360,b=d>>>16|4294901760&c,l=c<<16|65535&d;n[0]^=d,n[1]^=b,n[2]^=c,n[3]^=l,n[4]^=d,n[5]^=b,n[6]^=c,n[7]^=l;for(var t=0;t<4;t++)r.call(this)}},_doProcessBlock:function(e,f){var t=this._X;r.call(this),a[0]=t[0]^t[5]>>>16^t[3]<<16,a[1]=t[2]^t[7]>>>16^t[5]<<16,a[2]=t[4]^t[1]>>>16^t[7]<<16,a[3]=t[6]^t[3]>>>16^t[1]<<16;for(var n=0;n<4;n++)a[n]=(a[n]<<8|a[n]>>>24)&16711935|(a[n]<<24|a[n]>>>8)&4278255360,e[f+n]^=a[n]},blockSize:4,ivSize:2});function r(){for(var e=this._X,f=this._C,t=0;t<8;t++)n[t]=f[t];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<n[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<n[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<n[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<n[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<n[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<n[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<n[6]>>>0?1:0)|0,this._b=f[7]>>>0<n[7]>>>0?1:0;for(var t=0;t<8;t++){var a=e[t]+f[t],s=65535&a,r=a>>>16,o=((s*s>>>17)+s*r>>>15)+r*r,d=((4294901760&a)*a|0)+((65535&a)*a|0);i[t]=o^d}e[0]=i[0]+(i[7]<<16|i[7]>>>16)+(i[6]<<16|i[6]>>>16)|0,e[1]=i[1]+(i[0]<<8|i[0]>>>24)+i[7]|0,e[2]=i[2]+(i[1]<<16|i[1]>>>16)+(i[0]<<16|i[0]>>>16)|0,e[3]=i[3]+(i[2]<<8|i[2]>>>24)+i[1]|0,e[4]=i[4]+(i[3]<<16|i[3]>>>16)+(i[2]<<16|i[2]>>>16)|0,e[5]=i[5]+(i[4]<<8|i[4]>>>24)+i[3]|0,e[6]=i[6]+(i[5]<<16|i[5]>>>16)+(i[4]<<16|i[4]>>>16)|0,e[7]=i[7]+(i[6]<<8|i[6]>>>24)+i[5]|0}e.Rabbit=f._createHelper(s)}(),e.Rabbit},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},14848:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.StreamCipher,t=e.algo,a=t.RC4=f.extend({_doReset:function(){for(var e=this._key,f=e.words,t=e.sigBytes,a=this._S=[],n=0;n<256;n++)a[n]=n;for(var n=0,i=0;n<256;n++){var s=n%t,r=f[s>>>2]>>>24-s%4*8&255;i=(i+a[n]+r)%256;var o=a[n];a[n]=a[i],a[i]=o}this._i=this._j=0},_doProcessBlock:function(e,f){e[f]^=n.call(this)},keySize:8,ivSize:0});function n(){for(var e=this._S,f=this._i,t=this._j,a=0,n=0;n<4;
vendor: 8,155 bytes, lines 290-299
290n++){t=(t+e[f=(f+1)%256])%256;var i=e[f];e[f]=e[t],e[t]=i,a|=e[(e[f]+e[t])%256]<<24-8*n}return this._i=f,this._j=t,a}e.RC4=f._createHelper(a);var i=t.RC4Drop=a.extend({cfg:a.cfg.extend({drop:192}),_doReset:function(){a._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)n.call(this)}});e.RC4Drop=f._createHelper(i)}(),e.RC4},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},75461:function(e,f,t){var a;a=function(e){return(/** @preserve 291 (c) 2012 by Cédric Mesnil. All rights reserved. 292 293 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 294 295 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 296 - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 297 298 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 299 */function(f){var t=e.lib,a=t.WordArray,n=t.Hasher,i=e.algo,s=a.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),r=a.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),o=a.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),d=a.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),c=a.create([0,1518500249,1859775393,2400959708,2840853838]),b=a.create([1352829926,1548603684,1836072691,2053994217,0]),l=i.RIPEMD160=n.extend({_doReset:function(){this._hash=a.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,f){for(var t,a,n,i,l,u,y,m,g,h,_,T,v,D,M,S,w,x,C,I=0;I<16;I++){var L=f+I,k=e[L];e[L]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var E=this._hash.words,R=c.words,A=b.words,B=s.words,P=r.words,O=o.words,N=d.words;D=g=E[0],M=h=E[1],S=_=E[2],w=T=E[3],x=v=E[4];for(var I=0;I<80;I+=1)C=g+e[f+B[I]]|0,I<16?C+=(h^_^T)+R[0]:I<32?C+=((t=h)&_|~t&T)+R[1]:I<48?C+=((h|~_)^T)+R[2]:I<64?C+=(a=h,n=_,(a&(i=T)|n&~i)+R[3]):C+=(h^(_|~T))+R[4],C|=0,C=(C=p(C,O[I]))+v|0,g=v,v=T,T=p(_,10),_=h,h=C,C=D+e[f+P[I]]|0,I<16?C+=(M^(S|~w))+A[0]:I<32?C+=(l=M,u=S,(l&(y=w)|u&~y)+A[1]):I<48?C+=((M|~S)^w)+A[2]:I<64?C+=((m=M)&S|~m&w)+A[3]:C+=(M^S^w)+A[4],C|=0,C=(C=p(C,N[I]))+x|0,D=x,x=w,w=p(S,10),S=M,M=C;C=E[1]+_+w|0,E[1]=E[2]+T+x|0,E[2]=E[3]+v+D|0,E[3]=E[4]+g+M|0,E[4]=E[0]+h+S|0,E[0]=C},_doFinalize:function(){var e=this._data,f=e.words,t=8*this._nDataBytes,a=8*e.sigBytes;f[a>>>5]|=128<<24-a%32,f[(a+64>>>9<<4)+14]=(t<<8|t>>>24)&16711935|(t<<24|t>>>8)&4278255360,e.sigBytes=(f.length+1)*4,this._process();for(var n=this._hash,i=n.words,s=0;s<5;s++){var r=i[s];i[s]=(r<<8|r>>>24)&16711935|(r<<24|r>>>8)&4278255360}return n},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});function p(e,f){return e<<f|e>>>32-f}e.RIPEMD160=n._createHelper(l),e.HmacRIPEMD160=n._createHmacHelper(l)}(Math),e.RIPEMD160)},e.exports=a(t(39317))},54724:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s;return t=(f=e.lib).WordArray,a=f.Hasher,n=e.algo,i=[],s=n.SHA1=a.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,f){for(var t=this._hash.words,a=t[0],n=t[1],s=t[2],r=t[3],o=t[4],d=0;d<80;d++){if(d<16)i[d]=0|e[f+d];else{var c=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=c<<1|c>>>31}var b=(a<<5|a>>>27)+o+i[d];d<20?b+=(n&s|~n&r)+1518500249:d<40?b+=(n^s^r)+1859775393:d<60?b+=(n&s|n&r|s&r)-1894007588:b+=(n^s^r)-899497514,o=r,r=s,s=n<<30|n>>>2,n=a,a=b}t[0]=t[0]+a|0,t[1]=t[1]+n|0,t[2]=t[2]+s|0,t[3]=t[3]+r|0,t[4]=t[4]+o|0},_doFinalize:function(){var e=this._data,f=e.words,t=8*this._nDataBytes,a=8*e.sigBytes;return f[a>>>5]|=128<<24-a%32,f[(a+64>>>9<<4)+14]=Math.floor(t/4294967296),f[(a+64>>>9<<4)+15]=t,e.sigBytes=4*f.length,this._process(),this._hash},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}}),e.SHA1=a._createHelper(s),e.HmacSHA1=a._createHmacHelper(s),e.SHA1},e.exports=a(t(39317))},92020:function(e,f,t){var a;a=function(e){var f,t,a,n;return f=e.lib.WordArray,a=(t=e.algo).SHA256,n=t.SHA224=a.extend({_doReset:function(){this._hash=new f.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var e=a._doFinalize.call(this);return e.sigBytes-=4,e}}),e.SHA224=a._createHelper(n),e.HmacSHA224=a._createHmacHelper(n),e.SHA224},e.exports=a(t(39317),t(7940))},7940:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s,r,o,d;return f=Math,a=(t=e.lib).WordArray,n=t.Hasher,i=e.algo,s=[],r=[],function(){function e(e){return(e-(0|e))*4294967296|0}for(var t=2,a=0;a<64;)(function(e){for(var t=f.sqrt(e),a=2;a<=t;a++)if(!(e%a))return!1;return!0})(t)&&(a<8&&(s[a]=e(f.pow(t,.5))),r[a]=e(f.pow(t,1/3)),a++),t++}(),o=[],d=i.SHA256=n.extend({_doReset:function(){this._hash=new a.init(s.slice(0))},_doProcessBlock:function(e,f){for(var t=this._hash.words,a=t[0],n=t[1],i=t[2],s=t[3],d=t[4],c=t[5],b=t[6],l=t[7],p=0;p<64;p++){if(p<16)o[p]=0|e[f+p];else{var u=o[p-15],y=(u<<25|u>>>7)^(u<<14|u>>>18)^u>>>3,m=o[p-2],g=(m<<15|m>>>17)^(m<<13|m>>>19)^m>>>10;o[p]=y+o[p-7]+g+o[p-16]}var h=d&c^~d&b,_=a&n^a&i^n&i,T=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),v=l+((d<<26|d>>>6)^(d<<21|d>>>11)^(d<<7|d>>>25))+h+r[p]+o[p],D=T+_;l=b,b=c,c=d,d=s+v|0,s=i,i=n,n=a,a=v+D|0}t[0]=t[0]+a|0,t[1]=t[1]+n|0,t[2]=t[2]+i|0,t[3]=t[3]+s|0,t[4]=t[4]+d|0,t[5]=t[5]+c|0,t[6]=t[6]+b|0,t[7]=t[7]+l|0},_doFinalize:function(){var e=this._data,t=e.words,a=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[(n+64>>>9<<4)+14]=f.floor(a/4294967296),t[(n+64>>>9<<4)+15]=a,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.SHA256=n._createHelper(d),e.HmacSHA256=n._createHmacHelper(d),e.SHA256},e.exports=a(t(39317))},26552:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s,r,o,d,c,b;return f=Math,a=(t=e.lib).WordArray,n=t.Hasher,i=e.x64.Word,s=e.algo,r=[],o=[],d=[],function(){for(var e=1,f=0,t=0;t<24;t++){r[e+5*f]=(t+1)*(t+2)/2%64;var a=f%5,n=(2*e+3*f)%5;e=a,f=n}for(var e=0;e<5;e++)for(var f=0;f<5;f++)o[e+5*f]=f+(2*e+3*f)%5*5;for(var s=1,c=0;c<24;c++){for(var b=0,l=0,p=0;p<7;p++){if(1&s){var u=(1<<p)-1;u<32?l^=1<<u:b^=1<<u-32}128&s?s=s<<1^113:s<<=1}d[c]=i.create(b,l)}}(),c=[],function(){for(var e=0;e<25;e++)c[e]=i.create()}(),b=s.SHA3=n.extend({cfg:n.cfg.extend({outputLength:512}),_doReset:function(){for(var e=this._state=[],f=0;f<25;f++)e[f]=new i.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(e,f){for(var t=this._state,a=this.blockSize/2,n=0;n<a;n++){var i=e[f+2*n],s=e[f+2*n+1];i=(i<<8|i>>>24)&16711935|(i<<24|i>>>8)&4278255360,s=(s<<8|s>>>24)&16711935|(s<<24|s>>>8)&4278255360;var b=t[n];b.high^=s,b.low^=i}for(var l=0;l<24;l++){for(var p=0;p<5;p++){for(var u=0,y=0,m=0;m<5;
299m++){var b=t[p+5*m];u^=b.high,y^=b.low}var g=c[p];g.high=u,g.low=y}for(var p=0;p<5;p++)for(var h=c[(p+4)%5],_=c[(p+1)%5],T=_.high,v=_.low,u=h.high^(T<<1|v>>>31),y=h.low^(v<<1|T>>>31),m=0;m<5;m++){var b=t[p+5*m];b.high^=u,b.low^=y}for(var D=1;D<25;D++){var u,y,b=t[D],M=b.high,S=b.low,w=r[D];w<32?(u=M<<w|S>>>32-w,y=S<<w|M>>>32-w):(u=S<<w-32|M>>>64-w,y=M<<w-32|S>>>64-w);var x=c[o[D]];x.high=u,x.low=y}var C=c[0],I=t[0];C.high=I.high,C.low=I.low;for(var p=0;p<5;p++)for(var m=0;m<5;m++){var D=p+5*m,b=t[D],L=c[D],k=c[(p+1)%5+5*m],E=c[(p+2)%5+5*m];b.high=L.high^~k.high&E.high,b.low=L.low^~k.low&E.low}var b=t[0],R=d[l];b.high^=R.high,b.low^=R.low}},_doFinalize:function(){var e=this._data,t=e.words;this._nDataBytes;var n=8*e.sigBytes,i=32*this.blockSize;t[n>>>5]|=1<<24-n%32,t[(f.ceil((n+1)/i)*i>>>5)-1]|=128,e.sigBytes=4*t.length,this._process();for(var s=this._state,r=this.cfg.outputLength/8,o=r/8,d=[],c=0;c<o;c++){var b=s[c],l=b.high,p=b.low;l=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360,p=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,d.push(p),d.push(l)}return new a.init(d,r)},clone:function(){for(var e=n.clone.call(this),f=e._state=this._state.slice(0),t=0;t<25;t++)f[t]=f[t].clone();return e}}),e.SHA3=n._createHelper(b),e.HmacSHA3=n._createHmacHelper(b),e.SHA3},e.exports=a(t(39317),t(66061))},42869:function(e,f,t){var a;a=function(e){var f,t,a,n,i,s;return t=(f=e.x64).Word,a=f.WordArray,i=(n=e.algo).SHA512,s=n.SHA384=i.extend({_doReset:function(){this._hash=new a.init([new t.init(3418070365,3238371032),new t.init(1654270250,914150663),new t.init(2438529370,812702999),new t.init(355462360,4144912697),new t.init(1731405415,4290775857),new t.init(2394180231,1750603025),new t.init(3675008525,1694076839),new t.init(1203062813,3204075428)])},_doFinalize:function(){var e=i._doFinalize.call(this);return e.sigBytes-=16,e}}),e.SHA384=i._createHelper(s),e.HmacSHA384=i._createHmacHelper(s),e.SHA384},e.exports=a(t(39317),t(66061),t(12427))},12427:function(e,f,t){var a;a=function(e){return function(){var f=e.lib.Hasher,t=e.x64,a=t.Word,n=t.WordArray,i=e.algo;function s(){return a.create.apply(a,arguments)}var r=[s(1116352408,3609767458),s(1899447441,602891725),s(3049323471,3964484399),s(3921009573,2173295548),s(961987163,4081628472),s(1508970993,3053834265),s(2453635748,2937671579),s(2870763221,3664609560),s(3624381080,2734883394),s(310598401,1164996542),s(607225278,1323610764),s(1426881987,3590304994),s(1925078388,4068182383),s(2162078206,991336113),s(2614888103,633803317),s(3248222580,3479774868),s(3835390401,2666613458),s(4022224774,944711139),s(264347078,2341262773),s(604807628,2007800933),s(770255983,1495990901),s(1249150122,1856431235),s(1555081692,3175218132),s(1996064986,2198950837),s(2554220882,3999719339),s(2821834349,766784016),s(2952996808,2566594879),s(3210313671,3203337956),s(3336571891,1034457026),s(3584528711,2466948901),s(113926993,3758326383),s(338241895,168717936),s(666307205,1188179964),s(773529912,1546045734),s(1294757372,1522805485),s(1396182291,2643833823),s(1695183700,2343527390),s(1986661051,1014477480),s(2177026350,1206759142),s(2456956037,344077627),s(2730485921,1290863460),s(2820302411,3158454273),s(3259730800,3505952657),s(3345764771,106217008),s(3516065817,3606008344),s(3600352804,1432725776),s(4094571909,1467031594),s(275423344,851169720),s(430227734,3100823752),s(506948616,1363258195),s(659060556,3750685593),s(883997877,3785050280),s(958139571,3318307427),s(1322822218,3812723403),s(1537002063,2003034995),s(1747873779,3602036899),s(1955562222,1575990012),s(2024104815,1125592928),s(2227730452,2716904306),s(2361852424,442776044),s(2428436474,593698344),s(2756734187,3733110249),s(3204031479,2999351573),s(3329325298,3815920427),s(3391569614,3928383900),s(3515267271,566280711),s(3940187606,3454069534),s(4118630271,4000239992),s(116418474,1914138554),s(174292421,2731055270),s(289380356,3203993006),s(460393269,320620315),s(685471733,587496836),s(852142971,1086792851),s(1017036298,365543100),s(1126000580,2618297676),s(1288033470,3409855158),s(1501505948,4234509866),s(1607167915,987167468),s(1816402316,1246189591)],o=[];!function(){for(var e=0;e<80;e++)o[e]=s()}();var d=i.SHA512=f.extend({_doReset:function(){this._hash=new n.init([new a.init(1779033703,4089235720),new a.init(3144134277,2227873595),new a.init(1013904242,4271175723),new a.init(2773480762,1595750129),new a.init(1359893119,2917565137),new a.init(2600822924,725511199),new a.init(528734635,4215389547),new a.init(1541459225,327033209)])},_doProcessBlock:function(e,f){for(var t=this._hash.words,a=t[0],n=t[1],i=t[2],s=t[3],d=t[4],c=t[5],b=t[6],l=t[7],p=a.high,u=a.low,y=n.high,m=n.low,g=i.high,h=i.low,_=s.high,T=s.low,v=d.high,D=d.low,M=c.high,S=c.low,w=b.high,x=b.low,C=l.high,I=l.low,L=p,k=u,E=y,R=m,A=g,B=h,P=_,O=T,N=v,V=D,z=M,F=S,$=w,q=x,G=C,H=I,j=0;j<80;j++){var U,Q,W=o[j];if(j<16)Q=W.high=0|e[f+2*j],U=W.low=0|e[f+2*j+1];else{var K=o[j-15],Y=K.high,J=K.low,X=(Y>>>1|J<<31)^(Y>>>8|J<<24)^Y>>>7,Z=(J>>>1|Y<<31)^(J>>>8|Y<<24)^(J>>>7|Y<<25),ee=o[j-2],ef=ee.high,et=ee.low,ea=(ef>>>19|et<<13)^(ef<<3|et>>>29)^ef>>>6,en=(et>>>19|ef<<13)^(et<<3|ef>>>29)^(et>>>6|ef<<26),ei=o[j-7],es=ei.high,er=ei.low,eo=o[j-16],ed=eo.high,ec=eo.low;Q=X+es+((U=Z+er)>>>0<Z>>>0?1:0),U+=en,Q=Q+ea+(U>>>0<en>>>0?1:0),U+=ec,Q=Q+ed+(U>>>0<ec>>>0?1:0),W.high=Q,W.low=U}var eb=N&z^~N&$,el=V&F^~V&q,ep=L&E^L&A^E&A,eu=k&R^k&B^R&B,ey=(L>>>28|k<<4)^(L<<30|k>>>2)^(L<<25|k>>>7),em=(k>>>28|L<<4)^(k<<30|L>>>2)^(k<<25|L>>>7),eg=(N>>>14|V<<18)^(N>>>18|V<<14)^(N<<23|V>>>9),eh=(V>>>14|N<<18)^(V>>>18|N<<14)^(V<<23|N>>>9),e_=r[j],eT=e_.high,ev=e_.low,eD=H+eh,eM=G+eg+(eD>>>0<H>>>0?1:0),eD=eD+el,eM=eM+eb+(eD>>>0<el>>>0?1:0),eD=eD+ev,eM=eM+eT+(eD>>>0<ev>>>0?1:0),eD=eD+U,eM=eM+Q+(eD>>>0<U>>>0?1:0),eS=em+eu,ew=ey+ep+(eS>>>0<em>>>0?1:0);G=$,H=q,$=z,q=F,z=N,F=V,N=P+eM+((V=O+eD|0)>>>0<O>>>0?1:0)|0,P=A,O=B,A=E,B=R,E=L,R=k,L=eM+ew+((k=eD+eS|0)>>>0<eD>>>0?1:0)|0}u=a.low=u+k,a.high=p+L+(u>>>0<k>>>0?1:0),m=n.low=m+R,n.high=y+E+(m>>>0<R>>>0?1:0),h=i.low=h+B,i.high=g+A+(h>>>0<B>>>0?1:0),T=s.low=T+O,s.high=_+P+(T>>>0<O>>>0?1:0),D=d.low=D+V,d.high=v+N+(D>>>0<V>>>0?1:0),S=c.low=S+F,c.high=M+z+(S>>>0<F>>>0?1:0),x=b.low=x+q,b.high=w+$+(x>>>0<q>>>0?1:0),I=l.low=I+H,l.high=C+G+(I>>>0<H>>>0?1:0)},_doFinalize:function(){var e=this._data,f=e.words,t=8*this._nDataBytes,a=8*e.sigBytes;return f[a>>>5]|=128<<24-a%32,f[(a+128>>>10<<5)+30]=Math.floor(t/4294967296),f[(a+128>>>10<<5)+31]=t,e.sigBytes=4*f.length,this._process(),this._hash.toX32()},clone:function(){var e=f.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32});e.SHA512=f._createHelper(d),e.HmacSHA512=f._createHmacHelper(d)}(),e.SHA512},e.exports=a(t(39317),t(66061))},77850:function(e,f,t){var a;a=function(e){return function(){var f=e.lib,t=f.WordArray,a=f.BlockCipher,n=e.algo,i=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],s=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],r=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],o
vendor: 7,629 bytes, line 299
299=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],
299d=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],c=n.DES=a.extend({_doReset:function(){for(var e=this._key.words,f=[],t=0;t<56;t++){var a=i[t]-1;f[t]=e[a>>>5]>>>31-a%32&1}for(var n=this._subKeys=[],o=0;o<16;o++){for(var d=n[o]=[],c=r[o],t=0;t<24;t++)d[t/6|0]|=f[(s[t]-1+c)%28]<<31-t%6,d[4+(t/6|0)]|=f[28+(s[t+24]-1+c)%28]<<31-t%6;d[0]=d[0]<<1|d[0]>>>31;for(var t=1;t<7;t++)d[t]=d[t]>>>(t-1)*4+3;d[7]=d[7]<<5|d[7]>>>27}for(var b=this._invSubKeys=[],t=0;t<16;t++)b[t]=n[15-t]},encryptBlock:function(e,f){this._doCryptBlock(e,f,this._subKeys)},decryptBlock:function(e,f){this._doCryptBlock(e,f,this._invSubKeys)},_doCryptBlock:function(e,f,t){this._lBlock=e[f],this._rBlock=e[f+1],b.call(this,4,252645135),b.call(this,16,65535),l.call(this,2,858993459),l.call(this,8,16711935),b.call(this,1,1431655765);for(var a=0;a<16;a++){for(var n=t[a],i=this._lBlock,s=this._rBlock,r=0,c=0;c<8;c++)r|=o[c][((s^n[c])&d[c])>>>0];this._lBlock=s,this._rBlock=i^r}var p=this._lBlock;this._lBlock=this._rBlock,this._rBlock=p,b.call(this,1,1431655765),l.call(this,8,16711935),l.call(this,2,858993459),b.call(this,16,65535),b.call(this,4,252645135),e[f]=this._lBlock,e[f+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function b(e,f){var t=(this._lBlock>>>e^this._rBlock)&f;this._rBlock^=t,this._lBlock^=t<<e}function l(e,f){var t=(this._rBlock>>>e^this._lBlock)&f;this._lBlock^=t,this._rBlock^=t<<e}e.DES=a._createHelper(c);var p=n.TripleDES=a.extend({_doReset:function(){var e=this._key.words;if(2!==e.length&&4!==e.length&&e.length<6)throw Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var f=e.slice(0,2),a=e.length<4?e.slice(0,2):e.slice(2,4),n=e.length<6?e.slice(0,2):e.slice(4,6);this._des1=c.createEncryptor(t.create(f)),this._des2=c.createEncryptor(t.create(a)),this._des3=c.createEncryptor(t.create(n))},encryptBlock:function(e,f){this._des1.encryptBlock(e,f),this._des2.decryptBlock(e,f),this._des3.encryptBlock(e,f)},decryptBlock:function(e,f){this._des3.decryptBlock(e,f),this._des2.encryptBlock(e,f),this._des1.decryptBlock(e,f)},keySize:6,ivSize:2,blockSize:2});e.TripleDES=a._createHelper(p)}(),e.TripleDES},e.exports=a(t(39317),t(85925),t(96546),t(87579),t(90576))},66061:function(e,f,t){var a;a=function(e){var f,t,a,n;return t=(f=e.lib).Base,a=f.WordArray,(n=e.x64={}).Word=t.extend({init:function(e,f){this.high=e,this.low=f}}),n.WordArray=t.extend({init:function(e,f){e=this.words=e||[],void 0!=f?this.sigBytes=f:this.sigBytes=8*e.length},toX32:function(){for(var e=this.words,f=e.length,t=[],n=0;n<f;n++){var i=e[n];t.push(i.high),t.push(i.low)}return a.create(t,this.sigBytes)},clone:function(){for(var e=t.clone.call(this),f=e.words=this.words.slice(0),a=f.length,n=0;n<a;n++)f[n]=f[n].clone();return e}}),e},e.exports=a(t(39317))},72762:function(e,f,t){"use strict";/*! 300 * deep-eql 301 * Copyright(c) 2013 Jake Luer <[email protected]> 302 * MIT Licensed 303 */var a=t(37832);function n(){this._key="chai/deep-eql__"+Math.random()+Date.now()}n.prototype={get:function(e){return e[this._key]},set:function(e,f){Object.isExtensible(e)&&Object.defineProperty(e,this._key,{value:f,configurable:!0})}};var i="function"==typeof WeakMap?WeakMap:n;/*! 304 * Check to see if the MemoizeMap has recorded a result of the two operands 305 * 306 * @param {Mixed} leftHandOperand 307 * @param {Mixed} rightHandOperand 308 * @param {MemoizeMap} memoizeMap 309 * @returns {Boolean|null} result 310*/function s(e,f,t){if(!t||g(e)||g(f))return null;var a=t.get(e);if(a){var n=a.get(f);if("boolean"==typeof n)return n}return null}/*! 311 * Set the result of the equality into the MemoizeMap 312 * 313 * @param {Mixed} leftHandOperand 314 * @param {Mixed} rightHandOperand 315 * @param {MemoizeMap} memoizeMap 316 * @param {Boolean} result 317*/function r(e,f,t,a){if(!(!t||g(e)||g(f))){var n=t.get(e);n?n.set(f,a):((n=new i).set(f,a),t.set(e,n))}}function o(e,f,t){if(t&&t.comparator)return c(e,f,t);var a=d(e,f);return null!==a?a:c(e,f,t)}function d(e,f){return e===f?0!==e||1/e==1/f:e!=e&&f!=f||!(g(e)||g(f))&&null}/*! 318 * The main logic of the `deepEqual` function. 319 * 320 * @param {Mixed} leftHandOperand 321 * @param {Mixed} rightHandOperand 322 * @param {Object} [options] (optional) Additional options 323 * @param {Array} [options.comparator] (optional) Override default algorithm, determining custom equality. 324 * @param {Array} [options.memoize] (optional) Provide a custom memoization object which will cache the results of 325 complex objects for a speed boost. By passing `false` you can disable memoization, but this will cause circular 326 references to blow the stack. 327 * @return {Boolean} equal match 328*/function c(e,f,t){(t=t||{}).memoize=!1!==t.memoize&&(t.memoize||new i);var n=t&&t.comparator,c=s(e,f,t.memoize);if(null!==c)return c;var g=s(f,e,t.memoize);if(null!==g)return g;if(n){var _=n(e,f);if(!1===_||!0===_)return r(e,f,t.memoize,_),_;var T=d(e,f);if(null!==T)return T}var v=a(e);if(v!==a(f))return r(e,f,t.memoize,!1),!1;r(e,f,t.memoize,!0);var D=function(e,f,t,a){switch(t){case"String":case"Number":case"Boolean":case"Date":return o(e.valueOf(),f.valueOf());case"Promise":case"Symbol":case"function":case"WeakMap":case"WeakSet":return e===f;case"Error":return m(e,f,["name","message","code"],a);case"Arguments":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"Array":return b(e,f,a);case"RegExp":case"Temporal.TimeZone":case"Temporal.Calendar":return e.toString()===f.toString();case"Generator":return b(p(e),p(f),a);case"DataView":return b(new Uint8Array(e.buffer),new Uint8Array(f.buffer),a);case"ArrayBuffer":return b(new Uint8Array(e),new Uint8Array(f),a);case"Set":case"Map":return(/*! 329 * Compare two Sets/Maps for equality. Faster than other equality functions. 330 * 331 * @param {Set} leftHandOperand 332 * @param {Set} rightHandOperand 333 * @param {Object} [options] (Optional) 334 * @return {Boolean} result 335 */function(e,f,t){try{if(e.size!==f.size)return!1;if(0===e.size)return!0}catch(e){return!1}var a=[],n=[];return e.forEach(function(e,f){a.push([e,f])}),f.forEach(function(e,f){n.push([e,f])}),b(a.sort(),n.sort(),t)}(e,f,a));case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.Instant":case"Temporal.ZonedDateTime":case"Temporal.PlainYearMonth":case"Temporal.PlainMonthDay":return e.equals(f);case"Temporal.Duration":return e.total("nanoseconds")===f.total("nanoseconds");default:return(/*! 336 * Recursively check the equality of two Objects. Once basic sameness has been established it will defer to `deepEqual` 337 * for each enumerable key in the object. 338 * 339 * @param {Mixed} leftHandOperand 340 * @param {Mixed} rightHandOperand 341 * @param {Object} [options] (Optional) 342 * @return {Boolean} result 343 */function(e,f,t){var a=u(e),n=u(f),i=y(e),s=y(f);if(a=a.concat(i),n=n.concat(s),a.length&&a.length===n.length)return!1!==b(h(a).sort(),h(n).sort())&&m(e,f,a,t);var r=l(e),o=l(f);return r.length&&r.length===o.length?(r.sort(),o.sort(),b(r,o,t)):0===a.length&&0===r.length&&0===n.length&&0===o.length}(e,f,a))}}(e,f,v,t);return r(e,f,t.memoize,D),D}/*! 344 * Simple equality for flat iterable objects such as Arrays, TypedArrays or Node.js buffers. 345 * 346 * @param {Iterable} leftHandOperand 347 * @param {Iterable} rightHandOperand 348 * @param {Object} [options] (Optional) 349 * @return {Boolean} result 350 */function b(e,f,t){var a=e.length;if(a!==f.length)return!1;if(0===a)return!0;for(var n=-1;++n<a;)if(!1===o(e[n],f[n],t))return!1;return!0}/*! 351 * Gets all iterator entries from the given Object. If the Object has no @@iterator function, returns an empty array. 352 * This will consume the iterator - which could have side effects depending on the @@iterator implementation. 353 * 354 * @param {Object} target 355 * @returns {Array}
355 an array of entries from the @@iterator function 356 */function l(e){if("undefined"!=typeof Symbol&&"object"==typeof e&&void 0!==Symbol.iterator&&"function"==typeof e[Symbol.iterator])try{return p(e[Symbol.iterator]())}catch(e){}return[]}/*! 357 * Gets all entries from a Generator. This will consume the generator - which could have side effects. 358 * 359 * @param {Generator} target 360 * @returns {Array} an array of entries from the Generator. 361 */function p(e){for(var f=e.next(),t=[f.value];!1===f.done;)t.push((f=e.next()).value);return t}/*! 362 * Gets all own and inherited enumerable keys from a target. 363 * 364 * @param {Object} target 365 * @returns {Array} an array of own and inherited enumerable keys from the target. 366 */function u(e){var f=[];for(var t in e)f.push(t);return f}function y(e){for(var f=[],t=Object.getOwnPropertySymbols(e),a=0;a<t.length;a+=1){var n=t[a];Object.getOwnPropertyDescriptor(e,n).enumerable&&f.push(n)}return f}/*! 367 * Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of 368 * each key. If any value of the given key is not equal, the function will return false (early). 369 * 370 * @param {Mixed} leftHandOperand 371 * @param {Mixed} rightHandOperand 372 * @param {Array} keys An array of keys to compare the values of leftHandOperand and rightHandOperand against 373 * @param {Object} [options] (Optional) 374 * @return {Boolean} result 375 */function m(e,f,t,a){var n=t.length;if(0===n)return!0;for(var i=0;i<n;i+=1)if(!1===o(e[t[i]],f[t[i]],a))return!1;return!0}/*! 376 * Returns true if the argument is a primitive. 377 * 378 * This intentionally returns true for all objects that can be compared by reference, 379 * including functions and symbols. 380 * 381 * @param {Mixed} value 382 * @return {Boolean} result 383 */function g(e){return null===e||"object"!=typeof e}function h(e){return e.map(function(e){return"symbol"==typeof e?e.toString():e})}/*! 384 * Primary Export 385 */e.exports=o,e.exports.MemoizeMap=i},44481:function(e){"use strict";var f=Function.prototype.toString,t=/\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/;e.exports=function(e){if("function"!=typeof e)return null;var a="";if(void 0===Function.prototype.name&&void 0===e.name){var n=f.call(e);if(n.indexOf("(")>512)return a;var i=n.match(t);i&&(a=i[1])}else a=e.name;return a}},74417:function(e,f,t){var a=t(19044)(t(2381),"DataView");e.exports=a},70266:function(e,f,t){var a=t(89829),n=t(60734),i=t(35283),s=t(97283),r=t(54778);function o(e){var f=-1,t=null==e?0:e.length;for(this.clear();++f<t;){var a=e[f];this.set(a[0],a[1])}}o.prototype.clear=a,o.prototype.delete=n,o.prototype.get=i,o.prototype.has=s,o.prototype.set=r,e.exports=o},57115:function(e,f,t){var a=t(89172),n=t(13314),i=t(73917),s=t(49367),r=t(97126);function o(e){var f=-1,t=null==e?0:e.length;for(this.clear();++f<t;){var a=e[f];this.set(a[0],a[1])}}o.prototype.clear=a,o.prototype.delete=n,o.prototype.get=i,o.prototype.has=s,o.prototype.set=r,e.exports=o},77970:function(e,f,t){var a=t(19044)(t(2381),"Map");e.exports=a},8705:function(e,f,t){var a=t(59752),n=t(20170),i=t(41069),s=t(28690),r=t(27323);function o(e){var f=-1,t=null==e?0:e.length;for(this.clear();++f<t;){var a=e[f];this.set(a[0],a[1])}}o.prototype.clear=a,o.prototype.delete=n,o.prototype.get=i,o.prototype.has=s,o.prototype.set=r,e.exports=o},57780:function(e,f,t){var a=t(19044)(t(2381),"Promise");e.exports=a},71936:function(e,f,t){var a=t(19044)(t(2381),"Set");e.exports=a},45989:function(e,f,t){var a=t(57115),n=t(24683),i=t(34813),s=t(35115),r=t(28199),o=t(58644);function d(e){var f=this.__data__=new a(e);this.size=f.size}d.prototype.clear=n,d.prototype.delete=i,d.prototype.get=s,d.prototype.has=r,d.prototype.set=o,e.exports=d},13414:function(e,f,t){var a=t(2381).Symbol;e.exports=a},88960:function(e,f,t){var a=t(2381).Uint8Array;e.exports=a},93485:function(e,f,t){var a=t(19044)(t(2381),"WeakMap");e.exports=a},68397:function(e){e.exports=function(e,f){for(var t=-1,a=null==e?0:e.length;++t<a&&!1!==f(e[t],t,e););return e}},19206:function(e){e.exports=function(e,f){for(var t=-1,a=null==e?0:e.length,n=0,i=[];++t<a;){var s=e[t];f(s,t,e)&&(i[n++]=s)}return i}},16347:function(e,f,t){var a=t(61747),n=t(6727),i=t(60443),s=t(46551),r=t(41056),o=t(78470),d=Object.prototype.hasOwnProperty;e.exports=function(e,f){var t=i(e),c=!t&&n(e),b=!t&&!c&&s(e),l=!t&&!c&&!b&&o(e),p=t||c||b||l,u=p?a(e.length,String):[],y=u.length;for(var m in e)(f||d.call(e,m))&&!(p&&("length"==m||b&&("offset"==m||"parent"==m)||l&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||r(m,y)))&&u.push(m);return u}},80506:function(e){e.exports=function(e,f){for(var t=-1,a=f.length,n=e.length;++t<a;)e[n+t]=f[t];return e}},57442:function(e,f,t){var a=t(85330),n=t(27087),i=Object.prototype.hasOwnProperty;e.exports=function(e,f,t){var s=e[f];i.call(e,f)&&n(s,t)&&(void 0!==t||f in e)||a(e,f,t)}},22162:function(e,f,t){var a=t(27087);e.exports=function(e,f){for(var t=e.length;t--;)if(a(e[t][0],f))return t;return -1}},9720:function(e,f,t){var a=t(54133),n=t(63815);e.exports=function(e,f){return e&&a(f,n(f),e)}},30899:function(e,f,t){var a=t(54133),n=t(88395);e.exports=function(e,f){return e&&a(f,n(f),e)}},85330:function(e,f,t){var a=t(98187);e.exports=function(e,f,t){"__proto__"==f&&a?a(e,f,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[f]=t}},30550:function(e,f,t){var a=t(45989),n=t(68397),i=t(57442),s=t(9720),r=t(30899),o=t(39881),d=t(47120),c=t(38175),b=t(17877),l=t(32807),p=t(43323),u=t(14995),y=t(65644),m=t(96288),g=t(45114),h=t(60443),_=t(46551),T=t(90409),v=t(63117),D=t(41226),M=t(63815),S=t(88395),w="[object Arguments]",x="[object Function]",C="[object Object]",I={};I[w]=I["[object Array]"]=I["[object ArrayBuffer]"]=I["[object DataView]"]=I["[object Boolean]"]=I["[object Date]"]=I["[object Float32Array]"]=I["[object Float64Array
385]"]=I["[object Int8Array]"]=I["[object Int16Array]"]=I["[object Int32Array]"]=I["[object Map]"]=I["[object Number]"]=I[C]=I["[object RegExp]"]=I["[object Set]"]=I["[object String]"]=I["[object Symbol]"]=I["[object Uint8Array]"]=I["[object Uint8ClampedArray]"]=I["[object Uint16Array]"]=I["[object Uint32Array]"]=!0,I["[object Error]"]=I[x]=I["[object WeakMap]"]=!1,e.exports=function e(f,t,L,k,E,R){var A,B=1&t,P=2&t,O=4&t;if(L&&(A=E?L(f,k,E,R):L(f)),void 0!==A)return A;if(!v(f))return f;var N=h(f);if(N){if(A=y(f),!B)return d(f,A)}else{var V=u(f),z=V==x||"[object GeneratorFunction]"==V;if(_(f))return o(f,B);if(V==C||V==w||z&&!E){if(A=P||z?{}:g(f),!B)return P?b(f,r(A,f)):c(f,s(A,f))}else{if(!I[V])return E?f:{};A=m(f,V,B)}}R||(R=new a);var F=R.get(f);if(F)return F;R.set(f,A),D(f)?f.forEach(function(a){A.add(e(a,t,L,a,f,R))}):T(f)&&f.forEach(function(a,n){A.set(n,e(a,t,L,n,f,R))});var $=O?P?p:l:P?S:M,q=N?void 0:$(f);return n(q||f,function(a,n){q&&(a=f[n=a]),i(A,n,e(a,t,L,n,f,R))}),A}},20524:function(e,f,t){var a=t(63117),n=Object.create,i=function(){function e(){}return function(f){if(!a(f))return{};if(n)return n(f);e.prototype=f;var t=new e;return e.prototype=void 0,t}}();e.exports=i},83066:function(e,f,t){var a=t(80506),n=t(60443);e.exports=function(e,f,t){var i=f(e);return n(e)?i:a(i,t(e))}},12731:function(e,f,t){var a=t(13414),n=t(37363),i=t(68391),s=a?a.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?n(e):i(e)}},35194:function(e,f,t){var a=t(12731),n=t(50561);e.exports=function(e){return n(e)&&"[object Arguments]"==a(e)}},8637:function(e,f,t){var a=t(14995),n=t(50561);e.exports=function(e){return n(e)&&"[object Map]"==a(e)}},12072:function(e,f,t){var a=t(47866),n=t(56711),i=t(63117),s=t(70559),r=/^\[object .+?Constructor\]$/,o=Object.prototype,d=Function.prototype.toString,c=o.hasOwnProperty,b=RegExp("^"+d.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||n(e))&&(a(e)?b:r).test(s(e))}},61658:function(e,f,t){var a=t(14995),n=t(50561);e.exports=function(e){return n(e)&&"[object Set]"==a(e)}},13272:function(e,f,t){var a=t(12731),n=t(44664),i=t(50561),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&n(e.length)&&!!s[a(e)]}},84238:function(e,f,t){var a=t(30761),n=t(93022),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!a(e))return n(e);var f=[];for(var t in Object(e))i.call(e,t)&&"constructor"!=t&&f.push(t);return f}},7369:function(e,f,t){var a=t(63117),n=t(30761),i=t(69731),s=Object.prototype.hasOwnProperty;e.exports=function(e){if(!a(e))return i(e);var f=n(e),t=[];for(var r in e)"constructor"==r&&(f||!s.call(e,r))||t.push(r);return t}},61747:function(e){e.exports=function(e,f){for(var t=-1,a=Array(e);++t<e;)a[t]=f(t);return a}},66127:function(e){e.exports=function(e){return function(f){return e(f)}}},29810:function(e,f,t){var a=t(88960);e.exports=function(e){var f=new e.constructor(e.byteLength);return new a(f).set(new a(e)),f}},39881:function(e,f,t){e=t.nmd(e);var a=t(2381),n=f&&!f.nodeType&&f,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n?a.Buffer:void 0,r=s?s.allocUnsafe:void 0;e.exports=function(e,f){if(f)return e.slice();var t=e.length,a=r?r(t):new e.constructor(t);return e.copy(a),a}},87223:function(e,f,t){var a=t(29810);e.exports=function(e,f){var t=f?a(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.byteLength)}},35636:function(e){var f=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,f.exec(e));return t.lastIndex=e.lastIndex,t}},1926:function(e,f,t){var a=t(13414),n=a?a.prototype:void 0,i=n?n.valueOf
vendor: 5,022 bytes, line 385
385:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},49490:function(e,f,t){var a=t(29810);e.exports=function(e,f){var t=f?a(e.buffer):e.buffer;return new e.constructor(t,e.byteOffset,e.length)}},47120:function(e){e.exports=function(e,f){var t=-1,a=e.length;for(f||(f=Array(a));++t<a;)f[t]=e[t];return f}},54133:function(e,f,t){var a=t(57442),n=t(85330);e.exports=function(e,f,t,i){var s=!t;t||(t={});for(var r=-1,o=f.length;++r<o;){var d=f[r],c=i?i(t[d],e[d],d,t,e):void 0;void 0===c&&(c=e[d]),s?n(t,d,c):a(t,d,c)}return t}},38175:function(e,f,t){var a=t(54133),n=t(75720);e.exports=function(e,f){return a(e,n(e),f)}},17877:function(e,f,t){var a=t(54133),n=t(89593);e.exports=function(e,f){return a(e,n(e),f)}},45704:function(e,f,t){var a=t(2381)["__core-js_shared__"];e.exports=a},98187:function(e,f,t){var a=t(19044),n=function(){try{var e=a(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=n},93330:function(e,f,t){var a="object"==typeof t.g&&t.g&&t.g.Object===Object&&t.g;e.exports=a},32807:function(e,f,t){var a=t(83066),n=t(75720),i=t(63815);e.exports=function(e){return a(e,i,n)}},43323:function(e,f,t){var a=t(83066),n=t(89593),i=t(88395);e.exports=function(e){return a(e,i,n)}},58035:function(e,f,t){var a=t(36919);e.exports=function(e,f){var t=e.__data__;return a(f)?t["string"==typeof f?"string":"hash"]:t.map}},19044:function(e,f,t){var a=t(12072),n=t(93039);e.exports=function(e,f){var t=n(e,f);return a(t)?t:void 0}},98118:function(e,f,t){var a=t(23794)(Object.getPrototypeOf,Object);e.exports=a},37363:function(e,f,t){var a=t(13414),n=Object.prototype,i=n.hasOwnProperty,s=n.toString,r=a?a.toStringTag:void 0;e.exports=function(e){var f=i.call(e,r),t=e[r];try{e[r]=void 0;var a=!0}catch(e){}var n=s.call(e);return a&&(f?e[r]=t:delete e[r]),n}},75720:function(e,f,t){var a=t(19206),n=t(61810),i=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols,r=s?function(e){return null==e?[]:a(s(e=Object(e)),function(f){return i.call(e,f)})}:n;e.exports=r},89593:function(e,f,t){var a=t(80506),n=t(98118),i=t(75720),s=t(61810),r=Object.getOwnPropertySymbols?function(e){for(var f=[];e;)a(f,i(e)),e=n(e);return f}:s;e.exports=r},14995:function(e,f,t){var a=t(74417),n=t(77970),i=t(57780),s=t(71936),r=t(93485),o=t(12731),d=t(70559),c="[object Map]",b="[object Promise]",l="[object Set]",p="[object WeakMap]",u="[object DataView]",y=d(a),m=d(n),g=d(i),h=d(s),_=d(r),T=o;(a&&T(new a(new ArrayBuffer(1)))!=u||n&&T(new n)!=c||i&&T(i.resolve())!=b||s&&T(new s)!=l||r&&T(new r)!=p)&&(T=function(e){var f=o(e),t="[object Object]"==f?e.constructor:void 0,a=t?d(t):"";if(a)switch(a){case y:return u;case m:return c;case g:return b;case h:return l;case _:return p}return f}),e.exports=T},93039:function(e){e.exports=function(e,f){return null==e?void 0:e[f]}},89829:function(e,f,t){var a=t(91850);e.exports=function(){this.__data__=a?a(null):{},this.size=0}},60734:function(e){e.exports=function(e){var f=this.has(e)&&delete this.__data__[e];return this.size-=f?1:0,f}},35283:function(e,f,t){var a=t(91850),n=Object.prototype.hasOwnProperty;e.exports=function(e){var f=this.__data__;if(a){var t=f[e];return"__lodash_hash_undefined__"===t?void 0:t}return n.call(f,e)?f[e]:void 0}},97283:function(e,f,t){var a=t(91850),n=Object.prototype.hasOwnProperty;e.exports=function(e){var f=this.__data__;return a?void 0!==f[e]:n.call(f,e)}},54778:function(e,f,t){var a=t(91850);e.exports=function(e,f){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=a&&void 0===f?"__lodash_hash_undefined__":f,this}},65644:function(e){var f=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,a=new e.constructor(t);return t&&"string"==typeof e[0]&&f.call(e,"index")&&(a.index=e.index,a.input=e.input),a}},96288:function(e,f,t){var a=t(29810),n=t(87223),i=t(35636),s=t(1926),r=t(49490);e.exports=function(e,f,t){var o=e.constructor;switch(f){case"[object ArrayBuffer]":return a(e);case"[object Boolean]":case"[object Date]":return new o(+e);case"[object DataView]":return n(e,t);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return r(e,t);case"[object Map]":case"[object Set]":return new o;case"[object Number]":case"[object String]":return new o(e);case"[object RegExp]":return i(e);case"[object Symbol]":return s(e)}}},45114:function(e,f,t){var a=t(20524),n=t(98118),i=t(30761);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:a(n(e))}},41056:function(e){var f=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var a=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==a||"symbol"!=a&&f.test(e))&&e>-1&&e%1==0&&e<t}},36919:function(e){e.exports=function(e){var f=typeof e;return"string"==f||"number"==f||"symbol"==f||"boolean"==f?"__proto__"!==e:null===e}},56711:function(e,f,t){var a,n=t(45704),i=(a=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||""))?"Symbol(sr
385c)_1."+a:"";e.exports=function(e){return!!i&&i in e}},30761:function(e){var f=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||f)}},89172:function(e){e.exports=function(){this.__data__=[],this.size=0}},13314:function(e,f,t){var a=t(22162),n=Array.prototype.splice;e.exports=function(e){var f=this.__data__,t=a(f,e);return!(t<0)&&(t==f.length-1?f.pop():n.call(f,t,1),--this.size,!0)}},73917:function(e,f,t){var a=t(22162);e.exports=function(e){var f=this.__data__,t=a(f,e);return t<0?void 0:f[t][1]}},49367:function(e,f,t){var a=t(22162);e.exports=function(e){return a(this.__data__,e)>-1}},97126:function(e,f,t){var a=t(22162);e.exports=function(e,f){var t=this.__data__,n=a(t,e);return n<0?(++this.size,t.push([e,f])):t[n][1]=f,this}},59752:function(e,f,t){var a=t(70266),n=t(57115),i=t(77970);e.exports=function(){this.size=0,this.__data__={hash:new a,map:new(i||n),string:new a}}},20170:function(e,f,t){var a=t(58035);e.exports=function(e){var f=a(this,e).delete(e);return this.size-=f?1:0,f}},41069:function(e,f,t){var a=t(58035);e.exports=function(e){return a(this,e).get(e)}},28690:function(e,f,t){var a=t(58035);e.exports=function(e){return a(this,e).has(e)}},27323:function(e,f,t){var a=t(58035);e.exports=function(e,f){var t=a(this,e),n=t.size;return t.set(e,f),this.size+=t.size==n?0:1,this}},91850:function(e,f,t){var a=t(19044)(Object,"create");e.exports=a},93022:function(e,f,t){var a=t(23794)(Object.keys,Object);e.exports=a},69731:function(e){e.exports=function(e){var f=[];if(null!=e)for(var t in Object(e))f.push(t);return f}},28079:function(e,f,t){e=t.nmd(e);var a=t(93330),n=f&&!f.nodeType&&f,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n&&a.process,r=function(){try{var e=i&&i.require&&i.require("util").types;if(e)return e;return s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=r},68391:function(e){var f=Object.prototype.toString;e.exports=function(e){return f.call(e)}},23794:function(e){e.exports=function(e,f){return function(t){return e(f(t))}}},2381:function(e,f,t){var a=t(93330),n="object"==typeof self&&self&&self.Object===Object&&self,i=a||n||Function("return this")();e.exports=i},24683:function(e,f,t){var a=t(57115);e.exports=function(){this.__data__=new a,this.size=0}},34813:function(e){e.exports=function(e){var f=this.__data__,t=f.delete(e);return this.size=f.size,t}},35115:function(e){e.exports=function(e){return this.__data__.get(e)}},28199:function(e){e.exports=function(e){return this.__data__.has(e)}},58644:function(e,f,t){var a=t(57115),n=t(77970),i=t(8705);e.exports=function(e,f){var t=this.__data__;if(t instanceof a){var s=t.__data__;if(!n||s.length<199)return s.push([e,f]),this.size=++t.size,this;t=this.__data__=new i(s)}return t.set(e,f),this.size=t.size,this}},70559:function(e){var f=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return f.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},13839:function(e,f,t){var a=t(30550);e.exports=function(e){return a(e,5)}},27087:function(e){e.exports=function(e,f){return e===f||e!=e&&f!=f}},6727:function(e,f,t){var a=t(35194),n=t(50561),i=Object.prototype,s=i.hasOwnProperty,r=i.propertyIsEnumerable,o=a(function(){return arguments}())?a:function(e){return n(e)&&s.call(e,"callee")&&!r.call(e,"callee")};e.exports=o},60443:function(e){var f=Array.isArray;e.exports=f},17806:function(e,f,t){var a=t(47866),n=t(44664);e.exports=function(e){return null!=e&&n(e.length)&&!a(e)}},46551:function(e,f,t){e=t.nmd(e);var a=t(2381),n=t(35423),i=f&&!f.nodeType&&f,s=i&&e&&!e.nodeType&&e,r=s&&s.exports===i?a.Buffer:void 0,o=r?r.isBuffer:void 0;e.exports=o||n},47866:function(e,f,t){var a=t(12731),n=t(63117);e.exports=function(e){if(!n(e))return!1;var f=a(e);return"[object Function]"==f||"[object GeneratorFunction]"==f||"[object AsyncFunction]"==f||"[object Proxy]"==f}},44664:function(e){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},90409:function(e,f,t){var a=t(8637),n=t(66127),i=t(28079),s=i&&i.isMap,r=s?n(s):a;e.exports=r},63117:function(e){e.exports=function(e){var f=typeof e;return null!=e&&("object"==f||"function"==f)}},50561:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},41226:function(e,f,t){var a=t(61658),n=t(66127),i=t(28079),s=i&&i.isSet,r=s?n(s):a;e.exports=r},78470:function(e,f,t){var a=t(13272),n=t(66127),i=t(28079),s=i&&i.isTypedArray,r=s?n(s):a;e.exports=r},63815:function(e,f,t){var a=t(16347),n=t(84238),i=t(17806);e.exports=function(e){return i(e)?a(e):n(e)}},88395:function(e,f,t){var a=t(16347),n=t(7369),i=t(17806);e.exports=function(e){return i(e)?a(e,!0):n(e)}},61810:function(e){e.exports=function(){return[]}},35423:function(e){e.exports=function(){return!1}},90371:function(e,f,t){var a=t(9109).Buffer,n=t(25566);!function(e){"use strict";function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,f){return function(e){if(Array.isArray(e))return e}(e)||function(e,f){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var t=[],a=!0,n=!1,i=void 0;try{for(var s,r=e[Symbol.iterator]();!(a=(s=r.next()).done)&&(t.push(s.value),!f||t.length!==f);a=!0);}catch(e){n=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(n)throw i}}return t}}(e,f)||function(e,f){if(e){if("string"==typeof e)return s(e,f);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return s(e,f)}}
385(e,f)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,f){(null==f||f>e.length)&&(f=e.length);for(var t=0,a=Array(f);t<f;t++)a[t]=e[t];return a}var r={bold:["1","22"],dim:["2","22"],italic:["3","23"],underline:["4","24"],inverse:["7","27"],hidden:["8","28"],strike:["9","29"],black:["30","39"],red:["31","39"],green:["32","39"],yellow:["33","39"],blue:["34","39"],magenta:["35","39"],cyan:["36","39"],white:["37","39"],brightblack:["30;1","39"],brightred:["31;1","39"],brightgreen:["32;1","39"],brightyellow:["33;1","39"],brightblue:["34;1","39"],brightmagenta:["35;1","39"],brightcyan:["36;1","39"],brightwhite:["37;1","39"],grey:["90","39"]},o={special:"cyan",number:"yellow",bigint:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",symbol:"green",date:"magenta",regexp:"red"};function d(e,f){var t=r[o[f]]||r[f];return t?"\x1b[".concat(t[0],"m").concat(String(e),"\x1b[").concat(t[1],"m"):String(e)}function c(e,f){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"â¦";e=String(e);var a=t.length,n=e.length;return a>f&&n>a?t:n>f&&n>a?"".concat(e.slice(0,f-a)).concat(t):e}function b(e,f,t){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:", ";t=t||f.inspect;var n=e.length;if(0===n)return"";for(var i=f.truncate,s="",r="",o="",d=0;d<n;d+=1){var c=d+1===e.length,b=d+2===e.length;o="".concat("â¦","(").concat(e.length-d,")");var l=e[d];f.truncate=i-s.length-(c?0:a.length);var p=r||t(l,f)+(c?"":a),u=s.length+p.length,y=u+o.length;if(c&&u>i&&s.length+o.length<=i||!c&&!b&&y>i||(r=c?"":t(e[d+1],f)+(b?"":a),!c&&b&&y>i&&u+r.length>i))break;if(s+=p,!c&&!b&&u+r.length>=i){o="".concat("â¦","(").concat(e.length-d-1,")");break}o=""}return"".concat(s).concat(o)}function l(e,f){var t,a=i(e,2),n=a[0],s=a[1];return(f.truncate-=2,"string"==typeof n)?n=(t=n).match(/^[a-zA-Z_][a-zA-Z_0-9]*$/)?t:JSON.stringify(t).replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"):"number"!=typeof n&&(n="[".concat(f.inspect(n,f),"]")),f.truncate-=n.length,s=f.inspect(s,f),"".concat(n,": ").concat(s)}var p=Function.prototype.toString,u=/\s*function(?:\s|\s*\/\*[^(?:*\/)]+\*\/\s*)*([^\s\(\/]+)/,y=function(e){if("function"!=typeof e)return null;var f="";if(void 0===Function.prototype.name&&void 0===e.name){var t=p.call(e);if(t.indexOf("(")>512)return f;var a=t.match(u);a&&(f=a[1])}else f=e.name;return f};function m(e,f){var t="function"==typeof a&&e instanceof a?"Buffer":e[Symbol.toStringTag]?e[Symbol.toStringTag]:y(e.constructor);f.truncate-=t.length+4;var n=Object.keys(e).slice(e.length);if(!e.length&&!n.length)return"".concat(t,"[]");for(var i="",s=0;s<e.length;s++){var r="".concat(f.stylize(c(e[s],f.truncate),"number")).concat(s===e.length-1?"":", ");if(f.truncate-=r.length,e[s]!==e.length&&f.truncate<=3){i+="".concat("â¦","(").concat(e.length-e[s]+1,")");break}i+=r}var o="";return n.length&&(o=b(n.map(function(f){return[f,e[f]]}),f,l)),"".concat(t,"[ ").concat(i).concat(o?", ".concat(o):""," ]")}function g(e,f){var t=y(e);return t?f.stylize("[Function ".concat(c(t,f.truncate-11),"]"),"special"):f.stylize("[Function]","special")}function h(e,f){var t=i(e,2),a=t[0],n=t[1];return f.truncate-=4,a=f.inspect(a,f),f.truncate-=a.length,n=f.inspect(n,f),"".concat(a," => ").concat(n)}var _=Number.isNaN||function(e){return e!=e};function T(e,f){return _(e)?f.stylize("NaN","number"):e===1/0?f.stylize("Infinity","number"):e===-1/0?f.stylize("-Infinity","number"):0===e?f.stylize(1/e==1/0?"+0":"-0","number"):f.stylize(c(e,f.truncate),"number")}function v(e,f){var t=c(e.toString(),f.truncate-1);return"â¦"!==t&&(t+="n"),f.stylize(t,"bigint")}var D=RegExp("['\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]","g"),M={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","'":"\\'","\\":"\\\\"};function S(e){return M[e]||"\\u".concat("0000".concat(e.charCodeAt(0).toString(16)).slice(-4))}function w(e,f){return D.test(e)&&(e=e.replace(D,S)),f.stylize("'".concat(c(e,f.truncate-2),"'"),"string")}function x(e){return"description"in Symbol.prototype?e.description?"Symbol(".concat(e.description,")"):"Symbol()":e.toString()}var C=function(){return"Promise{â¦}"};try{var I=n.binding("util"),L=I.getPromiseDetails,k=I.kPending,E=I.kRejected;Array.isArray(L(Promise.resolve()))&&(C=function(e,f){var t=L(e),a=i(t,2),n=a[0],s=a[1];return n===k?"Promise{<pending>}":"Promise".concat(n===E?"!":"","{").concat(f.inspect(s,f),"}")})}catch(e){}var R=C;function A(e,f){var t=Object.getOwnPropertyNames(e),a=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e):[];if(0===t.length&&0===a.length)return"{}";if(f.truncate-=4,f.seen=f.seen||[],f.seen.indexOf(e)>=0)return"[Circular]";f.seen.push(e);var n=b(t.map(function(f){return[f,e[f]]}),f,l),i=b(a.map(function(f){return[f,e[f]]}),f,l);f.seen.pop();var s="";return n&&i&&(s=", "),"{ ".concat(n).concat(s).concat(i," }")}var B="undefined"!=typeof Symbol&&!!Symbol.toStringTag&&Symbol.toStringTag,P=["stack","line","column","name","message","fileName","lineNumber","columnNumber","number","description"];function O(e,f){var t=i(e,2),a=t[0],n=t[1];return(f.truncate-=3,n)?"".concat(f.stylize(a,"yellow"),"=").concat(f.stylize('"'.concat(n,'"'),"string")):"".concat(f.stylize(a,"yellow"))}function N(e,f){return b(e,f,V,"\n")}function V(e,f){var t=e.getAttributeNames(),a=e.tagName.toLowerCase(),n=f.stylize("<".concat(a),"special"),i=f.stylize(">","special"),s=f.stylize("</".concat(a,">"),"special");f.truncate-=2*a.length+5;var r="";t.length>0&&(r+=" "+b(t.map(function(f){return[f,e.getAttribute(f)]}),f,O," ")),f.truncate-=r.length;var o=f.truncate,d=N(e.children,f);return d&&d.length>o&&(d="".concat("â¦","(").concat(e.children.length,")")),"".concat(n).concat(r).concat(i).c
385oncat(d).concat(s)}var z="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("chai/inspect"):"@@chai/inspect",F=!1;try{var $=t(56952);F=!!$.inspect&&$.inspect.custom}catch(e){F=!1}function q(){this.key="chai/loupe__"+Math.random()+Date.now()}q.prototype={get:function(e){return e[this.key]},has:function(e){return this.key in e},set:function(e,f){Object.isExtensible(e)&&Object.defineProperty(e,this.key,{value:f,configurable:!0})}};var G=new("function"==typeof WeakMap?WeakMap:q),H={},j={undefined:function(e,f){return f.stylize("undefined","undefined")},null:function(e,f){return f.stylize(null,"null")},boolean:function(e,f){return f.stylize(e,"boolean")},Boolean:function(e,f){return f.stylize(e,"boolean")},number:T,Number:T,bigint:v,BigInt:v,string:w,String:w,function:g,Function:g,symbol:x,Symbol:x,Array:function(e,f){var t=Object.keys(e).slice(e.length);if(!e.length&&!t.length)return"[]";f.truncate-=4;var a=b(e,f);f.truncate-=a.length;var n="";return t.length&&(n=b(t.map(function(f){return[f,e[f]]}),f,l)),"[ ".concat(a).concat(n?", ".concat(n):""," ]")},Date:function(e,f){var t=e.toJSON();if(null===t)return"Invalid Date";var a=t.split("T"),n=a[0];return f.stylize("".concat(n,"T").concat(c(a[1],f.truncate-n.length-1)),"date")},Map:function(e,f){var t;return e.size-1<=0?"Map{}":(f.truncate-=7,"Map{ ".concat(b((t=[],e.forEach(function(e,f){t.push([f,e])}),t),f,h)," }"))},Set:function(e,f){var t;return 0===e.size?"Set{}":(f.truncate-=7,"Set{ ".concat(b((t=[],e.forEach(function(e){t.push(e)}),t),f)," }"))},RegExp:function(e,f){var t=e.toString().split("/")[2],a=f.truncate-(2+t.length),n=e.source;return f.stylize("/".concat(c(n,a),"/").concat(t),"regexp")},Promise:R,WeakSet:function(e,f){return f.stylize("WeakSet{â¦}","special")},WeakMap:function(e,f){return f.stylize("WeakMap{â¦}","special")},Arguments:function(e,f){return 0===e.length?"Arguments[]":(f.truncate-=13,"Arguments[ ".concat(b(e,f)," ]"))},Int8Array:m,Uint8Array:m,Uint8ClampedArray:m,Int16Array:m,Uint16Array:m,Int32Array:m,
385Uint32Array:m,Float32Array:m,Float64Array:m,Generator:function(){return""},DataView:function(){return""},ArrayBuffer:function(){return""},Error:function(e,f){var t=Object.getOwnPropertyNames(e).filter(function(e){return -1===P.indexOf(e)}),a=e.name;f.truncate-=a.length;var n="";"string"==typeof e.message?n=c(e.message,f.truncate):t.unshift("message"),n=n?": ".concat(n):"",f.truncate-=n.length+5;var i=b(t.map(function(f){return[f,e[f]]}),f,l);return"".concat(a).concat(n).concat(i?" { ".concat(i," }"):"")},HTMLCollection:N,NodeList:N},U=Object.prototype.toString;function Q(e,t){(t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},f=e.showHidden,t=e.depth,a=e.colors,n=e.customInspect,i=e.showProxy,s=e.maxArrayLength,r=e.breakLength,o=e.seen,c=e.truncate,b=e.stylize,l={showHidden:!!(void 0!==f&&f),depth:Number(void 0===t?2:t),colors:!!(void 0!==a&&a),customInspect:!!(void 0===n||n),showProxy:!!(void 0!==i&&i),maxArrayLength:Number(void 0===s?1/0:s),breakLength:Number(void 0===r?1/0:r),truncate:Number(void 0===c?1/0:c),seen:void 0===o?[]:o,stylize:void 0===b?String:b};return l.colors&&(l.stylize=d),l}(t)).inspect=Q;var a,n,i=t.customInspect,s=null===e?"null":f(e);if("object"===s&&(s=U.call(e).slice(8,-1)),j[s])return j[s](e,t);if(i&&e){var r,o,c=(r=t,o=s,z in e&&"function"==typeof e[z]?e[z](r):F&&F in e&&"function"==typeof e[F]?e[F](r.depth,r):"inspect"in e&&"function"==typeof e.inspect?e.inspect(r.depth,r):"constructor"in e&&G.has(e.constructor)?G.get(e.constructor)(e,r):H[o]?H[o](e,r):"");if(c)return"string"==typeof c?c:Q(c,t)}var b=!!e&&Object.getPrototypeOf(e);return b===Object.prototype||null===b?A(e,t):e&&"function"==typeof HTMLElement&&e instanceof HTMLElement?V(e,t):"constructor"in e?e.constructor!==Object?(a=t,n="",B&&B in e&&(n=e[B]),(n=n||y(e.constructor))&&"_class"!==n||(n="<Anonymous Class>"),a.truncate-=n.length,"".concat(n).concat(A(e,a))):A(e,t):e===Object(e)?A(e,t):t.stylize(String(e),s)}e.custom=z,e.default=Q,e.inspect=Q,e.registerConstructor=function(e,f){return!G.has(e)&&(G.set(e,f),!0)},e.registerStringTag=function(e,f){return!(e in H)&&(H[e]=f,!0)},Object.defineProperty(e,"__esModule",{value:!0})}(f)},87040:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.Base=void 0;let n=t(9109),i=a(t(58110));class s{print(){s.print(this)}bufferIndexOf(e,f,t=!1){return t?this.binarySearch(e,f,n.Buffer.compare):this.linearSearch(e,f,(e,f)=>e.equals(f))}static binarySearch(e,f,t){let a=0,n=e.length-1;for(;a<=n;){let i=Math.floor((a+n)/2),s=t(e[i],f);if(0===s){for(let a=i-1;a>=0;a--)if(0!==t(e[a],f))return a+1;return 0}s<0?a=i+1:n=i-1}return -1}binarySearch(e,f,t){return s.binarySearch(e,f,t)}static linearSearch(e,f,t){for(let a=0;a<e.length;a++)if(t(e[a],f))return a;return -1}linearSearch(e,f,t){return s.linearSearch(e,f,t)}static bufferify(e){if(!n.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return n.Buffer.from(e.toString(i.default.enc.Hex),"hex");if(s.isHexString(e))return n.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return n.Buffer.from(e);if("bigint"==typeof e)return n.Buffer.from(e.toString(16),"hex");else if(e instanceof Uint8Array)return n.Buffer.from(e.buffer);else if("number"==typeof e){let f=e.toString();return f.length%2&&(f=`0${f}`),n.Buffer.from(f,"hex")}else if(ArrayBuffer.isView(e))return n.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return s.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&s.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(n.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array||"number"==typeof e)return BigInt(e);throw Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,f=!0){return s.bufferToHex(e,f)}static bufferToHex(e,f=!0){return`${f?"0x":""}${(e||n.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return s.bufferify(e)}bufferifyFn(e){return f=>{let t=e(f);return n.Buffer.isBuffer(t)?t:this.isHexString(t)?n.Buffer.from(t.replace("0x",""),"hex"):"string"==typeof t?n.Buffer.from(t):"bigint"==typeof t?n.Buffer.from(f.toString(16),"hex"):ArrayBuffer.isView(t)?n.Buffer.from(t.buffer,t.byteOffset,t.byteLength):n.Buffer.from(e(i.default.enc.Hex.parse(f.toString("hex"))).toString(i.default.enc.Hex),"hex")}}isHexString(e){return s.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,f){return e.map((e,t)=>[e,f[t]])}static hexZeroPad(e,f){return"0x"+e.replace("0x","").padStart(f,"0")}}f.Base=s,f.default=s},82602:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esMo
385dule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.IncrementalMerkleTree=void 0;let n=a(t(87040)),i=a(t(22058));class s extends n.default{constructor(e,f){if(super(),this.hashFn=e,f.depth&&(this.depth=f.depth),f.arity&&(this.arity=f.arity),this.depth<1)throw Error("depth must be greater than 0");if(this.arity<1)throw Error("arity must be greater than 0");let t=[],a=f.zeroValue;if(this.zeroValue=a,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(a),t[e]=[],a=this.hashFn(Array(this.arity).fill(a));this.nodes=t,this.root=a}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw Error("tree is full");let f=e,t=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){let a=t%this.arity,n=t-a,i=n+this.arity,s=[];this.nodes[e][t]=f;for(let f=n;f<i;f+=1)f<this.nodes[e].length?s.push(this.nodes[e][f]):s.push(this.zeroes[e]);f=this.hashFn(s),t=Math.floor(t/this.arity)}this.root=f}delete(e){this.update(e,this.zeroValue)}update(e,f){if(e<0||e>=this.nodes[0].length)throw Error("out of bounds");let t=f;for(let f=0;f<this.depth;f+=1){let a=e%this.arity,n=e-a,i=n+this.arity,s=[];this.nodes[f][e]=t;for(let e=n;e<i;e+=1)e<this.nodes[f].length?s.push(this.nodes[f][e]):s.push(this.zeroes[f]);t=this.hashFn(s),e=Math.floor(e/this.arity)}this.root=t}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){let e=this.copyList(this.nodes[0]),f=this.nodes[0].length;for(let t=f;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map(e=>BigInt(e))}getLayers(){let e=[];for(let f of this.nodes)e.push(this.copyList(f));if(e[0].length<this.getMaxLeaves()){let f=e[0].length;for(let t=f;t<this.getMaxLeaves();t++)e[0][t]=this.zeroValue;for(let t=0;t<this.depth;t++){let a=f%this.arity,n=f-a,i=n+this.arity;for(let f=n;f<i;f++)f>=e[t].length&&(e[t][f]=this.zeroes[t]);f=Math.floor(f/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce((e,f)=>(Array.isArray(f)?e.push(f.map(e=>this.bufferToHex(this.bufferify(e)))):e.push(f),e),[])}getLayersAsObject(){let e=this.getLayers().map(e=>e.map(e=>this.bufferToHex(this.bufferify(e),!1))),f=[];for(let t=0;t<e.length;t++){let a=[];for(let n=0;n<e[t].length;n++){let i={[e[t][n]]:null};if(f.length){i[e[t][n]]={};let a=f.shift(),s=Object.keys(a)[0];if(i[e[t][n]][s]=a[s],f.length){let a=f.shift(),s=Object.keys(a)[0];i[e[t][n]][s]=a[s]}}a.push(i)}f.push(...a)}return f[0]}computeRoot(){let e;let f=this.nodes[0].length;for(let t=0;t<this.depth;t+=1){let a=f%this.arity,n=f-a,i=n+this.arity,s=[];for(let e=n;e<i;e+=1)e<this.nodes[t].length?s.push(this.nodes[t][e]):s.push(this.zeroes[t]);e=this.hashFn(s),f=Math.floor(f/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw Error("The leaf does not exist in this tree");let f=[],t=[],a=e;for(let a=0;a<this.depth;a+=1){let n=e%this.arity,i=e-n,s=i+this.arity;t[a]=n,f[a]=[];for(let t=i;t<s;t+=1)t!==e&&(t<this.nodes[a].length?f[a].push(this.nodes[a][t]):f[a].push(this.zeroes[a]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][a],pathIndices:t,siblings:f}}verify(e){let f=e.leaf;for(let t=0;t<e.siblings.length;t+=1){let a=e.siblings[t].slice();a.splice(e.pathIndices[t],0,f),f=this.hashFn(a)}return e.root===f}toString(){return this.toTreeString()}toTreeString(){let e=this.getLayersAsObject();return i.default.asTree(e,!0)}}f.IncrementalMerkleTree=s,"undefined"!=typeof window&&(window.IncrementalMerkleTree=s),f.default=s},68339:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.MerkleMountainRange=void 0;let n=t(9109),i=a(t(7940)),s=a(t(87040));class r extends s.default{constructor(e=i.default,f=[],t,a,s){for(let i of(super(),this.root=n.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},f=f.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=t,this.peakBaggingFn=a,this.hashBranchFn=s,f))this.append(i)}append(e){e=this.bufferify(e);let f=this.hashFn(e),t=this.bufferToHex(f);this.data[t]&&this.bufferToHex(this.hashFn(this.data[t]))===t||(this.data[t]=e);let a=this.hashLeaf(this.size+1,f);this.hashes[this.size+1]=a,this.width+=1;let n=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);let i=[];for(let e=0;e<n.length;e++)i[e]=this._getOrCreateNode(n[e]);this.root=this.peakBagging(this.width,i)}hashLeaf(e,f){return(f=this.bufferify(f),this.hashLeafFn)?this.bufferify(this.hashLeafFn(e,f)):this.hashFn(n.Buffer.concat([this.bufferify(e),f]))}hashBranch(e,f,t){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,f,t)):this.hashFn(n.Buffer.concat([this.bufferify(e),this.bufferify(f),this.bufferify(t)]))}getPeaks(){let e=this.getPeakIndexes(this.width),f=[];for(let t=0;t<e.length;t++)f[t]=this.hashes[e[t]];return f}
385getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){let f=this.numOfPeaks(e),t=[],a=0,n=0;for(let i=255;i>0&&((e&1<<i-1)==0||(n=n+(1<<i)-1,t[a++]=n,!(t.length>=f)));i--);if(a!==t.length)throw Error("invalid bit calculation");return t}numOfPeaks(e){let f=e,t=0;for(;f>0;)f%2==1&&t++,f>>=1;return t}peakBagging(e,f){let t=this.getSize(e);if(this.numOfPeaks(e)!==f.length)throw Error("received invalid number of peaks");return 0!==e||f.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(t,f)):this.hashFn(n.Buffer.concat([this.bufferify(t),...f.map(this.bufferify)])):n.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let f=1;for(;1<<f<=e+f;)f++;return f-1}heightAt(e){let f=e,t=0,a=0;for(;f>t;)f-=(1<<a)-1,t=(1<<(a=this.mountainHeight(f)))-1;return a-(t-f)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){let f=e-(1<<this.heightAt(e)-1),t=e-1;if(f===t)throw Error("not a parent");return[f,t]}getMerkleProof(e){if(e>this.size)throw Error("out of range");if(!this.isLeaf(e))throw Error("not a leaf");let f=this.root,t=this.width,a=this.getPeakIndexes(this.width),n=[],i=0;for(let f=0;f<a.length;f++)n[f]=this.hashes[a[f]],a[f]>=e&&0===i&&(i=a[f]);let s=0,r=0,o=this.heightAt(i),d=[];for(;i!==e;)o--,[s,r]=this.getChildren(i),i=e<=s?s:r,d[o-1]=this.hashes[e<=s?r:s];return{root:f,width:t,peakBagging:n,siblings:d}}verify(e,f,t,a,n,i){let s,r;if(a=this.bufferify(a),this.getSize(f)<t)throw Error("index is out of range");if(!e.equals(this.peakBagging(f,n)))throw Error("invalid root hash from the peaks");let o=0,d=this.getPeakIndexes(f);for(let e=0;e<d.length;e++)if(d[e]>=t){s=n[e],o=d[e];break}if(!s)throw Error("target not found");let c=i.length+1,b=Array(c),l=0,p=0;for(;c>0&&(b[--c]=o,o!==t);)[l,p]=this.getChildren(o),o=t>l?p:l;for(;c<b.length;)o=b[c],r=0===c?this.hashLeaf(o,this.hashFn(a)):o-1===b[c-1]?this.hashBranch(o,i[c-1],r):this.hashBranch(o,r,i[c-1]),c++;if(!r.equals(s))throw Error("hashed peak is invalid");return!0}peaksToPeakMap(e,f){let t={},a=0,n=f.length;for(let i=1;i<=32;i++)a=32-i,(e&1<<i-1)!=0?t[a]=f[--n]:t[a]=0;if(0!==n)throw Error("invalid number of peaks");return t}peakMapToPeaks(e,f){let t=this.numOfPeaks(e),a=Array(t),n=0;for(let e=0;e<32;e++)0!==f[e]&&(a[n++]=f[e]);if(n!==t)throw Error("invalid number of peaks");return a}peakUpdate(e,f,t){let a={},n=e+1,i=this.getLeafIndex(n),s=this.hashLeaf(i,t),r=0,o=0,d=!1,c=!1,b=!1;for(let t=1;t<=32;t++)r=32-t,b?a[r]=f[r]:(d=(e&(o=1<<t-1))!=0,c=(n&o)!=0,i++,d&&(s=this.hashBranch(i,f[r],s)),c?(d?a[r]=f[r]:a[r]=s,b=!0):a[r]=0);return a}rollUp(e,f,t,a){if(!e.equals(this.peakBagging(f,t)))throw Error("invalid root hash from the peaks");let n=f,i=this.peaksToPeakMap(f,t);for(let e=0;e<a.length;e++)i=this.peakUpdate(n,i,a[e]),n++;return this.peakBagging(n,this.peakMapToPeaks(n,i))}_getOrCreateNode(e){if(e>this.size)throw Error("out of range");if(!this.hashes[e]){let[f,t]=this.getChildren(e),a=this._getOrCreateNode(f),n=this._getOrCreateNode(t);this.hashes[e]=this.hashBranch(e,a,n)}return this.hashes[e]}}f.MerkleMountainRange=r,"undefined"!=typeof window&&(window.MerkleMountainRange=r),f.default=r},30690:function(e,f,t){"use strict";var a=t(9109).Buffer;Object.defineProperty(f,"__esModule",{value:!0}),f.MerkleSumTree=f.ProofStep=f.Leaf=f.Bucket=void 0;let n=t(87040);class i{constructor(e,f){this.size=BigInt(e),this.hashed=f,this.parent=null,this.left=null,this.right=null}}f.Bucket=i;class s{constructor(e,f,t){this.hashFn=e,this.rng=f.map(e=>BigInt(e)),this.data=t}getBucket(){let e;return e=this.data?this.hashFn(this.data):a.alloc(32),new i(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}}f.Leaf=s;class r{constructor(e,f){this.bucket=e,this.right=f}}f.ProofStep=r;class o extends n.Base{constructor(e,f){for(let t of(super(),this.leaves=e,this.hashFn=f,o.checkConsecutive(e),this.buckets=[],e))this.buckets.push(t.getBucket());let t=[];for(let e of this.buckets)t.push(e);for(;1!==t.length;){let e=[];for(;t.length;)if(t.length>=2){let f=t.shift(),n=t.shift(),s=new i(f.size+n.size,this.hashFn(a.concat([this.sizeToBuffer(f.size),this.bufferify(f.hashed),this.sizeToBuffer(n.size),this.bufferify(n.hashed)])));n.parent=s,f.parent=n.parent,f.right=n,n.left=f,e.push(s)}else e.push(t.shift());t=e}this.root=t[0]}sizeToBuffer(e){let f=a.alloc(8);return new DataView(f.buffer).setBigInt64(0,BigInt(e),!1),f}static checkConsecutive(e){let f=BigInt(0);for(let t of e){if(t.rng[0]!==f)throw Error("leaf ranges are invalid");f=BigInt(t.rng[1])}}getProof(e){let f=this.buckets[Number(e)],t=[];for(;f&&f.parent;){let e=!!f.right,a=f.right?f.right:f.left;f=f.parent,t.push(new r(a,e))}return t}sum(e){let f=BigInt(0);for(let t of e)f+=BigInt(t);return f}verifyProof(e,f,t){let n;let s=[this.sum(t.filter(e=>!e.right).map(e=>e.bucket.size)),BigInt(e.size)-this.sum(t.filter(e=>e.right).map(e=>e.bucket.size))];
385if(!(s[0]===f.rng[0]&&s[1]===f.rng[1]))return!1;let r=f.getBucket();for(let e of t)n=e.right?this.hashFn(a.concat([this.sizeToBuffer(r.size),this.bufferify(r.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(a.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),r=new i(BigInt(r.size)+BigInt(e.bucket.size),n);return r.size===e.size&&r.hashed.toString("hex")===e.hashed.toString("hex")}}f.MerkleSumTree=o,"undefined"!=typeof window&&(window.MerkleSumTree=o),f.default=o},52563:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.MerkleTree=void 0;let n=t(9109),i=a(t(80726)),s=a(t(7940)),r=a(t(22058)),o=a(t(87040));class d extends o.default{constructor(e,f=s.default,t={}){if(super(),this.duplicateOdd=!1,this.concatenator=n.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,t.complete){if(t.isBitcoinTree)throw Error('option "complete" is incompatible with "isBitcoinTree"');if(t.duplicateOdd)throw Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!t.isBitcoinTree,this.hashLeaves=!!t.hashLeaves,this.sortLeaves=!!t.sortLeaves,this.sortPairs=!!t.sortPairs,this.complete=!!t.complete,t.fillDefaultHash){if("function"==typeof t.fillDefaultHash)this.fillDefaultHash=t.fillDefaultHash;else if(n.Buffer.isBuffer(t.fillDefaultHash)||"string"==typeof t.fillDefaultHash)this.fillDefaultHash=(e,f)=>t.fillDefaultHash;else throw Error('method "fillDefaultHash" must be a function, Buffer, or string')}this.sort=!!t.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!t.duplicateOdd,t.concatenator&&(this.concatenator=t.concatenator),this.hashFn=this.bufferifyFn(f),this.processLeaves(e)}getOptions(){var e,f;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(f=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==f?f:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(n.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){let f=this.layers.length;this.layers.push([]);let t=this.complete&&1===f&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let a=0;a<e.length;a+=2){if(a>=t){this.layers[f].push(...e.slice(t));break}if(a+1===e.length&&e.length%2==1){let t=e[e.length-1],n=t;if(this.isBitcoinTree){n=this.hashFn(this.concatenator([i.default(t),i.default(t)])),n=i.default(this.hashFn(n)),this.layers[f].push(n);continue}if(this.duplicateOdd);else{this.layers[f].push(e[a]);continue}}let s=e[a],r=a+1===e.length?s:e[a+1],o=null;o=this.isBitcoinTree?[i.default(s),i.default(r)]:[s,r],this.sortPairs&&o.sort(n.Buffer.compare);let d=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(d=i.default(this.hashFn(d))),this.layers[f].push(d)}e=this.layers[f]}}addLeaf(e,f=!1){f&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,f=!1){f&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(n.Buffer.compare))),this.leaves.filter(f=>-1!==this.bufferIndexOf(e,f,this.sortLeaves))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?n.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);let f=this.getLeaves();for(let t=0;t<f.length;t++)if(f[t].equals(e))return t;return -1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map(e=>this.bufferToHex(e))}static marshalLeaves(e){return JSON.stringify(e.map(e=>d.bufferToHex(e)),null,2)}static unmarshalLeaves(e){let f=null;if("string"==typeof e)f=JSON.parse(e);else if(e instanceof Object)f=e;else throw Error("Expected type of string or object");
385if(!f)return[];if(!Array.isArray(f))throw Error("Expected JSON string to be array");return f.map(d.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce((e,f)=>(Array.isArray(f)?e.push(f.map(e=>this.bufferToHex(e))):e.push(f),e),[])}getLayersFlat(){let e=this.layers.reduce((e,f)=>(Array.isArray(f)?e.unshift(...f):e.unshift(f),e),[]);return e.unshift(n.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map(e=>this.bufferToHex(e))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?n.Buffer.from([]):this.layers[this.layers.length-1][0]||n.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,f){if(void 0===e)throw Error("leaf is required");e=this.bufferify(e);let t=[];if(!Number.isInteger(f)){f=-1;for(let t=0;t<this.leaves.length;t++)0===n.Buffer.compare(e,this.leaves[t])&&(f=t)}if(f<=-1)return[];for(let e=0;e<this.layers.length;e++){let a=this.layers[e],n=f%2,i=n?f-1:this.isBitcoinTree&&f===a.length-1&&e<this.layers.length-1?f:f+1;i<a.length&&t.push({position:n?"left":"right",data:a[i]}),f=f/2|0}return t}getHexProof(e,f){return this.getProof(e,f).map(e=>this.bufferToHex(e.data))}getProofs(){let e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,f,t,a){let n=f%2;if(-1===e){n||a.push([...t].reverse());return}if(f>=this.layers[e].length)return;let i=this.layers[e],s=n?f-1:f+1,r=!1;s<i.length&&(r=!0,t.push({position:n?"left":"right",data:i[s]})),this.getProofsDFS(e-1,2*f,t,a),this.getProofsDFS(e-1,2*f+1,t,a),r&&t.splice(t.length-1,1)}getHexProofs(){return this.getProofs().map(e=>this.bufferToHex(e.data))}getPositionalHexProof(e,f){return this.getProof(e,f).map(e=>["left"===e.position?0:1,this.bufferToHex(e.data)])}static marshalProof(e){return JSON.stringify(e.map(e=>"string"==typeof e?e:n.Buffer.isBuffer(e)?d.bufferToHex(e):{position:e.position,data:d.bufferToHex(e.data)}),null,2)}static unmarshalProof(e){let f=null;if("string"==typeof e)f=JSON.parse(e);else if(e instanceof Object)f=e;else throw Error("Expected type of string or object");if(!f)return[];if(!Array.isArray(f))throw Error("Expected JSON string to be array");return f.map(e=>{if("string"==typeof e)return d.bufferify(e);if(e instanceof Object)return{position:e.position,data:d.bufferify(e.data)};throw Error("Expected item to be of type string or object")})}static marshalTree(e){let f=e.getHexRoot(),t=e.leaves.map(e=>d.bufferToHex(e)),a=e.getHexLayers();return JSON.stringify({options:e.getOptions(),root:f,layers:a,leaves:t},null,2)}static unmarshalTree(e,f=s.default,t={}){let a=null;if("string"==typeof e)a=JSON.parse(e);else if(e instanceof Object)a=e;else throw Error("Expected type of string or object");if(!a)throw Error("could not parse json");return t=Object.assign({},a.options||{},t),new d(a.leaves,f,t)}getProofIndices(e,f){let t=Math.pow(2,f),a=new Set;for(let f of e){let e=t+f;for(;e>1;)a.add(1^e),e=e/2|0}let n=e.map(e=>t+e),i=Array.from(a).sort((e,f)=>e-f).reverse();a=n.concat(i);let s=new Set,r=[];for(let e of a)if(!s.has(e))for(r.push(e);e>1&&(s.add(e),s.has(1^e));)e=e/2|0;return r.filter(f=>!e.includes(f-t))}getProofIndicesForUnevenTree(e,f){let t=Math.ceil(Math.log2(f)),a=[];for(let e=0;e<t;e++)f%2!=0&&a.push({index:e,leavesCount:f}),f=Math.ceil(f/2);let n=[],i=e;for(let e=0;e<t;e++){let f=i.map(e=>e%2==0?e+1:e-1).filter(e=>!i.includes(e)),t=a.find(({index:f})=>f===e);t&&i.includes(t.leavesCount-1)&&(f=f.slice(0,-1)),n.push(f),i=[...new Set(i.map(e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2))]}return n}getMultiProof(e,f){if(this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),f||(f=e,e=this.getLayersFlat()),this.isUnevenTree()&&f.every(Number.isInteger))return this.getMultiProofForUnevenTree(f);if(!f.every(Number.isInteger)){let e=f;this.sortPairs&&(e=e.sort(n.Buffer.compare));let t=e.map(e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves)).sort((e,f)=>e===f?0:e>f?1:-1);if(!t.every(e=>-1!==e))throw Error("Element does not exist in Merkle tree");let a=[],i=[],s=[];for(let e=0;e<this.layers.length;e++){let f=this.layers[e];for(let e=0;e<t.length;e++){let n=t[e],r=this.getPairNode(f,n);a.push(f[n]),r&&i.push(r),s.push(n/2|0)}t=s.filter((e,f,t)=>t.indexOf(e)===f),s=[]}return i.filter(e=>!a.includes(e))}
385return this.getProofIndices(f,Math.log2(e.length/2|0)).map(f=>e[f])}getMultiProofForUnevenTree(e,f){f||(f=e,e=this.getLayers());let t=[],a=f;for(let f of e){let e=[];for(let t of a){if(t%2==0){let n=t+1;if(!a.includes(n)&&f[n]){e.push(f[n]);continue}}let n=t-1;if(!a.includes(n)&&f[n]){e.push(f[n]);continue}}t=t.concat(e);let n=new Set;for(let e of a){if(e%2==0){n.add(e/2);continue}if(e%2==0){n.add((e+1)/2);continue}n.add((e-1)/2)}a=Array.from(n)}return t}getHexMultiProof(e,f){return this.getMultiProof(e,f).map(e=>this.bufferToHex(e))}getProofFlags(e,f){let t;if(!Array.isArray(e)||e.length<=0)throw Error("Invalid Inputs!");if(!(t=e.every(Number.isInteger)?[...e].sort((e,f)=>e===f?0:e>f?1:-1):e.map(e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves)).sort((e,f)=>e===f?0:e>f?1:-1)).every(e=>-1!==e))throw Error("Element does not exist in Merkle tree");let a=f.map(e=>this.bufferify(e)),n=[],i=[];for(let e=0;e<this.layers.length;e++){let f=this.layers[e];t=t.reduce((e,t)=>{if(!n.includes(f[t])){let e=this.getPairNode(f,t),s=a.includes(f[t])||a.includes(e);e&&i.push(!s),n.push(f[t]),n.push(e)}return e.push(t/2|0),e},[])}return i}verify(e,f,t){let a=this.bufferify(f);if(t=this.bufferify(t),!Array.isArray(e)||!f||!t)return!1;for(let f=0;f<e.length;f++){let t=e[f],s=null,r=null;if("string"==typeof t)s=this.bufferify(t),r=!0;else if(Array.isArray(t))r=0===t[0],s=this.bufferify(t[1]);else if(n.Buffer.isBuffer(t))s=t,r=!0;else if(t instanceof Object)s=this.bufferify(t.data),r="left"===t.position;else throw Error("Expected node to be of type string or object");let o=[];this.isBitcoinTree?(o.push(i.default(a)),o[r?"unshift":"push"](i.default(s)),a=this.hashFn(this.concatenator(o)),a=i.default(this.hashFn(a))):(this.sortPairs?-1===n.Buffer.compare(a,s)?o.push(a,s):o.push(s,a):(o.push(a),o[r?"unshift":"push"](s)),a=this.hashFn(this.concatenator(o)))}return 0===n.Buffer.compare(a,t)}verifyMultiProof(e,f,t,a,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,f,t,a,i);let s=Math.ceil(Math.log2(a));e=this.bufferify(e),t=t.map(e=>this.bufferify(e)),i=i.map(e=>this.bufferify(e));let r={};for(let[e,a]of this.zip(f,t))r[Math.pow(2,s)+e]=a;for(let[e,t]of this.zip(this.getProofIndices(f,s),i))r[e]=t;let o=Object.keys(r).map(e=>+e).sort((e,f)=>e-f);o=o.slice(0,o.length-1);let d=0;for(;d<o.length;){let e=o[d];if(e>=2&&({}).hasOwnProperty.call(r,1^e)){let f=[r[e-e%2],r[e-e%2+1]];this.sortPairs&&(f=f.sort(n.Buffer.compare));let t=f[1]?this.hashFn(this.concatenator(f)):f[0];r[e/2|0]=t,o.push(e/2|0)}d+=1}return!f.length||({}).hasOwnProperty.call(r,1)&&r[1].equals(e)}verifyMultiProofWithFlags(e,f,t,a){e=this.bufferify(e),f=f.map(this.bufferify),t=t.map(this.bufferify);let i=f.length,s=a.length,r=[],o=0,d=0,c=0;for(let e=0;e<s;e++){let s=[a[e]?o<i?f[o++]:r[d++]:t[c++],o<i?f[o++]:r[d++]].sort(n.Buffer.compare);r[e]=this.hashFn(this.concatenator(s))}return 0===n.Buffer.compare(r[s-1],e)}verifyMultiProofForUnevenTree(e,f,t,a,n){e=this.bufferify(e),t=t.map(e=>this.bufferify(e)),n=n.map(e=>this.bufferify(e));let i=this.calculateRootForUnevenTree(f,t,a,n);return e.equals(i)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){let e=this.getLayers().map(e=>e.map(e=>this.bufferToHex(e,!1))),f=[];for(let t=0;t<e.length;t++){let a=[];for(let n=0;n<e[t].length;n++){let i={[e[t][n]]:null};if(f.length){i[e[t][n]]={};let a=f.shift(),s=Object.keys(a)[0];if(i[e[t][n]][s]=a[s],f.length){let a=f.shift(),s=Object.keys(a)[0];i[e[t][n]][s]=a[s]}}a.push(i)}f.push(...a)}return f[0]}static verify(e,f,t,a=s.default,n={}){return new d([],a,n).verify(e,f,t)}static getMultiProof(e,f){return new d([]).getMultiProof(e,f)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,f){let t=f%2==0?f+1:f-1;return t<e.length?e[t]:null}toTreeString(){let e=this.getLayersAsObject();return r.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){let f=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(f)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,f,t,a){let n=this.zip(e,f).sort(([e],[f])=>e-f),i=n.map(([e])=>e),s=this.getProofIndicesForUnevenTree(i,t),r=0,o=[];for(let e=0;e<s.length;e++){let f=s[e],t=r;r+=f.length,o[e]=this.zip(f,a.slice(t,r))}let d=[n];for(let e=0;e<o.length;e++){let f=o[e].concat(d[e]).sort(([e],[f])=>e-f).map(([,e])=>e),t=[...new Set(d[e].map(([e])=>e).map(e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2))],a=[];for(let e=0;e<t.length;e++){let n=t[e],i=f[2*e],s=f[2*e+1],r=s?this.hashFn(this.concatenator([i,s])):i;a.push([n,r])}d.push(a)}return d[d.length-1][0][1]}}f.MerkleTree=d,"undefined"!=typeof window&&(window.MerkleTree=d),f.default=d},91206:function(e,f,t){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esMo
385dule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0}),f.MerkleTree=void 0;let n=a(t(52563));f.MerkleTree=n.default;var i=t(68339);Object.defineProperty(f,"MerkleMountainRange",{enumerable:!0,get:function(){return i.MerkleMountainRange}});var s=t(82602);Object.defineProperty(f,"IncrementalMerkleTree",{enumerable:!0,get:function(){return s.IncrementalMerkleTree}});var r=t(30690);Object.defineProperty(f,"MerkleSumTree",{enumerable:!0,get:function(){return r.MerkleSumTree}}),f.default=n.default},92259:function(e,f,t){"use strict";var a=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==t.g)return t.g;throw Error("unable to locate global object")}();e.exports=f=a.fetch,a.fetch&&(f.default=a.fetch.bind(a)),f.Headers=a.Headers,f.Request=a.Request,f.Response=a.Response},71176:function(e){"use strict";function f(e,f){return null!=e&&f in Object(e)}function t(e){return e.replace(/([^\\])\[/g,"$1.[").match(/(\\\.|[^.]+?)+/g).map(function(e){if("constructor"===e||"__proto__"===e||"prototype"===e)return{};var f=/^\[(\d+)\]$/.exec(e);return f?{i:parseFloat(f[1])}:{p:e.replace(/\\([.[\]])/g,"$1")}})}function a(e,f,t){var a=e,n=null;t=void 0===t?f.length:t;for(var i=0;i<t;i++){var s=f[i];a&&(a=void 0===s.p?a[s.i]:a[s.p],i===t-1&&(n=a))}return n}function n(e,n){var i=t(n),s=i[i.length-1],r={parent:i.length>1?a(e,i,i.length-1):e,name:s.p||s.i,value:a(e,i)};return r.exists=f(r.parent,r.name),r}e.exports={hasProperty:f,getPathInfo:n,getPathValue:function(e,f){return n(e,f).value},setPathValue:function(e,f,a){return!function(e,f,t){for(var a=e,n=t.length,i=null,s=0;s<n;s++){var r=null,o=null;if(i=t[s],s===n-1)a[r=void 0===i.p?i.i:i.p]=f;else if(void 0!==i.p&&a[i.p])a=a[i.p];else if(void 0!==i.i&&a[i.i])a=a[i.i];else{var d=t[s+1];r=void 0===i.p?i.i:i.p,o=void 0===d.p?[]:{},a[r]=o,a=a[r]}}}(e,a,t(f)),e}}},22058:function(e){var f;f=function(){function e(f,t,a,n,i,s,r){var o,d,c,b="",l=0,p=n.slice(0);if(p.push([t,a])&&n.length>0&&(n.forEach(function(e,f){f>0&&(b+=(e[1]?" ":"â")+" "),c||e[0]!==t||(c=!0)}),b+=(o=a?"â":"â",f?o+="â ":o+="âââ",o+f),i&&("object"!=typeof t||t instanceof Date)&&(b+=": "+t),c&&(b+=" (circular ref.)"),r(b)),!c&&"object"==typeof t){var u=function(e,f){var t=[];for(var a in e)e.hasOwnProperty(a)&&(!f||"function"!=typeof e[a])&&t.push(a);return t}(t,s);u.forEach(function(f){d=++l===u.length,e(f,t[f],d,p,i,s,r)})}}var f={};return f.asLines=function(f,t,a,n){e(".",f,!1,[],t,"function"!=typeof a&&a,n||a)},f.asTree=function(f,t,a){var n="";return e(".",f,!1,[],t,a,function(e){n+=e+"\n"}),n},f},e.exports=f()},37832:function(e){var f;f=function(){"use strict";var e="function"==typeof Promise,f=function(e){if("object"==typeof globalThis)return globalThis;Object.defineProperty(e,"typeDetectGlobalObject",{get:function(){return this},configurable:!0});var f=typeDetectGlobalObject;return delete e.typeDetectGlobalObject,f}(Object.prototype),t="undefined"!=typeof Symbol,a="undefined"!=typeof Map,n="undefined"!=typeof Set,i="undefined"!=typeof WeakMap,s="undefined"!=typeof WeakSet,r="undefined"!=typeof DataView,o=t&&void 0!==Symbol.iterator,d=t&&void 0!==Symbol.toStringTag,c=n&&"function"==typeof Set.prototype.entries,b=a&&"function"==typeof Map.prototype.entries,l=c&&Object.getPrototypeOf(new Set().entries()),p=b&&Object.getPrototypeOf(new Map().entries()),u=o&&"function"==typeof Array.prototype[Symbol.iterator],y=u&&Object.getPrototypeOf([][Symbol.iterator]()),m=o&&"function"==typeof String.prototype[Symbol.iterator],g=m&&Object.getPrototypeOf(""[Symbol.iterator]());return function(t){var o=typeof t;if("object"!==o)return o;if(null===t)return"null";if(t===f)return"global";if(Array.isArray(t)&&(!1===d||!(Symbol.toStringTag in t)))return"Array";if("object"==typeof window&&null!==window){if("object"==typeof window.location&&t===window.location)return"Location";if("object"==typeof window.document&&t===window.document)return"Document";if("object"==typeof window.navigator){if("object"==typeof window.navigator.mimeTypes&&t===window.navigator.mimeTypes)return"MimeTypeArray";if("object"==typeof window.navigator.plugins&&t===window.navigator.plugins)return"PluginArray"}if(("function"==typeof window.HTMLElement||"object"==typeof window.HTMLElement)&&t instanceof window.HTMLElement){if("BLOCKQUOTE"===t.tagName)return"HTMLQuoteElement";if("TD"===t.tagName)return"HTMLTableDataCellElement";if("TH"===t.tagName)return"HTMLTableHeaderCellElement"}}var c=d&&t[Symbol.toStringTag];if("string"==typeof c)return c;var b=Object.getPrototypeOf(t);return b===RegExp.prototype?"RegExp":b===Date.prototype?"Date":e&&b===Prom
385ise.prototype?"Promise":n&&b===Set.prototype?"Set":a&&b===Map.prototype?"Map":s&&b===WeakSet.prototype?"WeakSet":i&&b===WeakMap.prototype?"WeakMap":r&&b===DataView.prototype?"DataView":a&&b===p?"Map Iterator":n&&b===l?"Set Iterator":u&&b===y?"Array Iterator":m&&b===g?"String Iterator":null===b?"Object":Object.prototype.toString.call(t).slice(8,-1)}},e.exports=f()},39764:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"AddressDictator","sourceName":"contracts/L1/deployment/AddressDictator.sol","abi":[{"inputs":[{"internalType":"contract Lib_AddressManager","name":"_manager","type":"address"},{"internalType":"address","name":"_finalOwner","type":"address"},{"internalType":"string[]","name":"_names","type":"string[]"},{"internalType":"address[]","name":"_addresses","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"finalOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNamedAddresses","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"addr","type":"address"}],"internalType":"struct AddressDictator.NamedAddress[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"returnOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60806040523480156200001157600080fd5b5060405162000d5e38038062000d5e83398101604081905262000034916200037a565b600080546001600160a01b038087166001600160a01b03199283161790925560018054928616929091169190911790558051825114620000ee5760405162461bcd60e51b815260206004820152604560248201527f416464726573734469637461746f723a204d7573742070726f7669646520616e60448201527f20657175616c206e756d626572206f66206e616d657320616e6420616464726560648201526439b9b2b99760d91b608482015260a40160405180910390fd5b60005b8251811015620001c357600260405180604001604052808584815181106200011d576200011d62000505565b602002602001015181526020018484815181106200013f576200013f62000505565b6020908102919091018101516001600160a01b0316909152825460018101845560009384529281902082518051939460020290910192620001849284920190620001ce565b5060209190910151600190910180546001600160a01b0319166001600160a01b0390921691909117905580620001ba816200051b565b915050620000f1565b505050505062000582565b828054620001dc9062000545565b90600052602060002090601f0160209004810192826200020057600085556200024b565b82601f106200021b57805160ff19168380011785556200024b565b828001600101855582156200024b579182015b828111156200024b5782518255916020019190600101906200022e565b50620002599291506200025d565b5090565b5b808211156200025957600081556001016200025e565b6001600160a01b03811681146200028a57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620002ce57620002ce6200028d565b604052919050565b60006001600160401b03821115620002f257620002f26200028d565b5060051b60200190565b600082601f8301126200030e57600080fd5b81516020620003276200032183620002d6565b620002a3565b82815260059290921b840181019181810190868411156200034757600080fd5b8286015b848110156200036f578051620003618162000274565b83529183019183016200034b565b509695505050505050565b600080600080608085870312156200039157600080fd5b84516200039e8162000274565b80945050602080860151620003b38162000274565b60408701519094506001600160401b0380821115620003d157600080fd5b818801915088601f830112620003e657600080fd5b8151620003f76200032182620002d6565b81815260059190911b8301840190848101908b8311156200041757600080fd5b8585015b83811015620004ce57805185811115620004355760008081fd5b8601603f81018e13620004485760008081fd5b87810151868111156200045f576200045f6200028d565b62000473601f8201601f19168a01620002a3565b8181528f60408385010111156200048a5760008081fd5b60005b82811015620004ab57838101604001518282018c01528a016200048d565b82811115620004bd5760008b84840101525b50855250509186019186016200041b565b5060608b01519097509450505080831115620004e957600080fd5b5050620004f987828801620002fc565b91505092959194509250565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200053e57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c908216806200055a57607f821691505b602082108114156200057c57634e487b7160e01b600052602260045260246000fd5b50919050565b6107cc80620005926000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80633ccad6fc116100505780633ccad6fc146100c0578063481c6a75146100d5578063bc3a429b146100f557600080fd5b806317ad94ec1461006c578063297d1a34146100b6575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be6100fd565b005b6100c8610232565b6040516100ad91906104af565b60005461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100be610343565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416464726573734469637461746f723a206f6e6c792063616c6c61626c65206260448201527f792066696e616c4f776e65720000000000000000000000000000000000000000606482015260840160405180910390fd5b6000546001546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169063f2fde38b906024015b
385600060405180830381600087803b15801561021857600080fd5b505af115801561022c573d6000803e3d6000fd5b50505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101561033a5783829060005260206000209060020201604051806040016040529081600082018054610289906105ae565b80601f01602080910402602001604051908101604052809291908181526020018280546102b5906105ae565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b505050918352505060019182015473ffffffffffffffffffffffffffffffffffffffff16602091820152918352929092019101610256565b50505050905090565b60005b600254811015610454576000546002805473ffffffffffffffffffffffffffffffffffffffff90921691639b2ea4bd91908490811061038757610387610602565b9060005260206000209060020201600001600284815481106103ab576103ab610602565b60009182526020909120600160029092020101546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815261040f929173ffffffffffffffffffffffffffffffffffffffff1690600401610631565b600060405180830381600087803b15801561042957600080fd5b505af115801561043d573d6000803e3d6000fd5b50505050808061044c90610736565b915050610346565b506000546001546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169063f2fde38b906024016101fe565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561059f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a8503018652825180518886528051808a880152845b81811015610532578281018c0151888201606001528b01610516565b8181111561054357856060838a0101525b50918a015173ffffffffffffffffffffffffffffffffffffffff16868b01525095880195601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690930160600192918701916001016104d7565b50919998505050505050505050565b600181811c908216806105c257607f821691505b602082108114156105fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60408152600080845481600182811c91508083168061065157607f831692505b602080841082141561068a577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b60408801849052606088018280156106a957600181146106d857610703565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00871682528282019750610703565b60008c81526020902060005b878110156106fd578154848201529086019084016106e4565b83019850505b50508596506107298189018a73ffffffffffffffffffffffffffffffffffffffff169052565b5050505050509392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561078f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea26469706673582212207993fbd341ec4f9e20c9ca42c43294b14f2a103fa8da10fc05d197e3abc8766164736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80633ccad6fc116100505780633ccad6fc146100c0578063481c6a75146100d5578063bc3a429b146100f557600080fd5b806317ad94ec1461006c578063297d1a34146100b6575b600080fd5b60015461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100be6100fd565b005b6100c8610232565b6040516100ad91906104af565b60005461008c9073ffffffffffffffffffffffffffffffffffffffff1681565b6100be610343565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f416464726573734469637461746f723a206f6e6c792063616c6c61626c65206260448201527f792066696e616c4f776e65720000000000000000000000000000000000000000606482015260840160405180910390fd5b6000546001546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169063f2fde38b906024015b600060405180830381600087803b15801561021857600080fd5b505af115801561022c573d6000803e3d6000fd5b50505050565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101561033a5783829060005260206000209060020201604051806040016040529081600082018054610289906105ae565b80601f01602080910402602001604051908101604052809291908181526020018280546102b5906105ae565b80156103025780601f106102d757610100808354040283529160200191610302565b820191906000526020600020905b8154815290600101906020018083116102e557829003601f168201915b505050918352505060019182015473ffffffffffffffffffffffffffffffffffffffff16602091820152918352929092019101610256565b50505050905090565b60005b600254811015610454576000546002805473ffffffffffffffffffffffffffffffffffffffff90921691639b2ea4bd91908490811061038757610387610602565b9060005260206000209060020201600001600284815481106103ab576103ab610602565b60009182526020909120600160029092020101546040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815261040f929173ffffffffffffffffffffffffffffffffffffffff1690600401610631565b600060405180830381600087803b15801561042957600080fd5b505af115801561043d573d6000803e3d6000fd5b50505050808061044c90610736565b915050610346565b506000546001546040517ff2fde38b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169063f2fde38b906024016101fe565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848
3851101561059f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a8503018652825180518886528051808a880152845b81811015610532578281018c0151888201606001528b01610516565b8181111561054357856060838a0101525b50918a015173ffffffffffffffffffffffffffffffffffffffff16868b01525095880195601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690930160600192918701916001016104d7565b50919998505050505050505050565b600181811c908216806105c257607f821691505b602082108114156105fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60408152600080845481600182811c91508083168061065157607f831692505b602080841082141561068a577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b60408801849052606088018280156106a957600181146106d857610703565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00871682528282019750610703565b60008c81526020902060005b878110156106fd578154848201529086019084016106e4565b83019850505b50508596506107298189018a73ffffffffffffffffffffffffffffffffffffffff169052565b5050505050509392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561078f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea26469706673582212207993fbd341ec4f9e20c9ca42c43294b14f2a103fa8da10fc05d197e3abc8766164736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},34495:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"ChugSplashDictator","sourceName":"contracts/L1/deployment/ChugSplashDictator.sol","abi":[{"inputs":[{"internalType":"contract L1ChugSplashProxy","name":"_target","type":"address"},{"internalType":"address","name":"_finalOwner","type":"address"},{"internalType":"bytes32","name":"_codeHash","type":"bytes32"},{"internalType":"bytes32","name":"_messengerSlotKey","type":"bytes32"},{"internalType":"bytes32","name":"_messengerSlotVal","type":"bytes32"},{"internalType":"bytes32","name":"_bridgeSlotKey","type":"bytes32"},{"internalType":"bytes32","name":"_bridgeSlotVal","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"bridgeSlotKey","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeSlotVal","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"codeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_code","type":"bytes"}],"name":"doActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isUpgrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messengerSlotKey","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messengerSlotVal","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"returnOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"contract L1ChugSplashProxy","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x60806040526000805460ff1916600117905534801561001d57600080fd5b5060405161088338038061088383398101604081905261003c916100a8565b60008054610100600160a81b0319166101006001600160a01b03998a1602179055600180546001600160a01b031916969097169590951790955560029290925560035560045560059190915560065561010f565b6001600160a01b03811681146100a557600080fd5b50565b600080600080600080600060e0888a0312156100c357600080fd5b87516100ce81610090565b60208901519097506100df81610090565b604089015160608a015160808b015160a08c015160c0909c01519a9d939c50919a90999198509650945092505050565b6107658061011e6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063708518de11610076578063a3b2d8a51161005b578063a3b2d8a51461015c578063b794726214610165578063d4b839921461018257600080fd5b8063708518de1461014a578063907023dd1461015357600080fd5b806318edaaf2116100a757806318edaaf214610122578063297d1a34146101395780635307023b1461014157600080fd5b80630bf56f21146100c357806317ad94ec146100d8575b600080fd5b6100d66100d13660046105ed565b6101a7565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61012b60025481565b604051908152602001610119565b6100d6610489565b61012b60045481565b61012b60035481565b61012b60065481565b61012b60055481565b6000546101729060ff1681565b6040519015158152602001610119565b6000546100f890610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6002548151602083012014610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4368756753706c6173684469637461746f723a20496e636f727265637420636f60448201527f646520686173682e00000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000546040517f6c5d4ad000000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690636c5d4ad09061029d9084906004016106bc565b600060405180830381600087803b1580156102b757600080fd5b505af11580156102cb573d6000803e3d6000fd5b5050600054600354600480546040517f9b0b0fda00000000000000000000000000000000000000000000000000000000815291820192909252602481019190915261010090910473ffffffffffffffffffffffffffffffffffffffff169250639b0b0fda9150604401600060405180830381600087803b15801561034e57600080fd5b505af1158015610362573d6000803e3d6000fd5b50506000546005546006546040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081526004810192909252602482015261010090910473ffffffffffffffffffffffffffffffffffffffff169250639b0b0fda9150604401600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b50506000546001546040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526101009092041692506313af40359150602401600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b5050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4368756753706c6173684469637461746f723a206f6e6c792063616c6c61626c60448201527f652062792066696e616c4f776e65720000000000000000000000000000000000606482015260840161023a565b6000546001546040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015261010090920416906313af403590602401600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156105ff57600080fd5b813567ffffffffffffffff8082111561061757600080fd5b818401915084601f83011261062b57600080fd5b81358181111561063d5761063d6105be565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610683576106836105be565b8160405282815287602084870101111561069c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b818110156106e9578581018301518582016040015282016106cd565b818111156106fb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea2646970667358221220d6996ebde67a73563bf52d2b5545adec064534b2fcd91ec70e83fc1ef951152464736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063708518de11610076578063a3b2d8a51161005b578063a3b2d8a51461015c578063b794726214610165578063d4b839921461018257600080fd5b8063708518de1461014a578063907023dd1461015357600080fd5b806318edaaf2116100a757806318edaaf214610122578063297d1a34146101395780635307023b1461014157600080fd5b80630bf56f21146100c357806317ad94ec146100d8575b600080fd5b6100d66100d13660046105ed565b6101a7565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61012b60025481565b604051908152602001610119565b6100d6610489565b61012b60045481565b61012b60035481565b61012b60065481565b61012b60055481565b6000546101729060ff1681565b6040519015158152602001610119565b6000546100f890610100900473ffffffffffffffffffffffffffffffffffffffff1681565b6002548151602083012014610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4368756753706c6173684469637461746f723a20496e636f727265637420636f60448201527f646520686173682e00000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000546040517f6c5d4ad000000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff1690636c5d4ad09061029d9084906004016106bc565b600060405180830381600087803b1580156102b757600080fd5b505af11580156102cb573d6000803e3d6000fd5b5050600054600354600480546040517f9b0b0fda00000000000000000000000000000000000000000000000000000000815291820192909252602481019190915261010090910473ffffffffffffffffffffffffffffffffffffffff169250639b0b0fda9150604401600060405180830381600087803b15801561034e57600080fd5b505af1158015610362573d6000803e3d6000fd5b50506000546005546006546040517f9b0b0fda0000000000000000000000000000000000000000000000000000000081526004810192909252602482015261010090910473ffffffffffffffffffffffffffffffffffffffff169250639b0b0fda9150604401600060405180830381600087803b1580156103e257600080fd5b505af11580156103f6573d6000803e3d6000fd5b50506000546001546040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526101009092041692506313af40359150602401600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b5050505050565b60015473ffffffffffffffffffffffffffffffffffffffff163314610530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4368756753706c6173684469637461746f723a206f6e6c792063616c6c61626c60448201527f652062792066696e616c4f776e65720000000000000000000000000000000000606482015260840161023a565b6000546001546040517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015261010090920416906313af403590602401600060405180830381600087803b1580156105a457600080fd5b505af11580156105b8573d6000803e3d6000fd5b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156105ff57600080fd5b813567ffffffffffffffff8082111561061757600080fd5b818401915084601f83011261062b57600080fd5b81358181111561063d5761063d6105be565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610683576106836105be565b8160405282815287602084870101111561069c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b818110156106e9578581018301518582016040015282016106cd565b818111156106fb576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea2646970667358221220d6996ebde67a73563bf52d2b5545adec064534b2fcd91ec70e83fc1ef951152464736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},55417:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL1CrossDomainMessenger","sourceName":"contracts/L1/messaging/IL1CrossDomainMessenger.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"FailedRelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"RelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"messageNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"SentMessage","type":"event"}
385,{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_messageNonce","type":"uint256"},{"components":[{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"stateRootBatchHeader","type":"tuple"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32[]","name":"siblings","type":"bytes32[]"}],"internalType":"struct Lib_OVMCodec.ChainInclusionProof","name":"stateRootProof","type":"tuple"},{"internalType":"bytes","name":"stateTrieWitness","type":"bytes"},{"internalType":"bytes","name":"storageTrieWitness","type":"bytes"}],"internalType":"struct IL1CrossDomainMessenger.L2MessageInclusionProof","name":"_proof","type":"tuple"}],"name":"relayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_queueIndex","type":"uint256"},{"internalType":"uint32","name":"_oldGasLimit","type":"uint32"},{"internalType":"uint32","name":"_newGasLimit","type":"uint32"}],"name":"replayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},76670:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL1ERC20Bridge","sourceName":"contracts/L1/messaging/IL1ERC20Bridge.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20DepositInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20WithdrawalFinalized","type":"event"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20To","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeERC20Withdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l2TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},7901:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL1StandardBridge","sourceName":"contracts/L1/messaging/IL1StandardBridge.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20DepositInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20WithdrawalFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ETHDepositInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ETHWithdrawalFinalized","type":"event"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20To","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositETHTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeERC20Withdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeETHWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l2TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},45493:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L1CrossDomainMessenger","sourceName":"contracts/L1/messaging/L1CrossDomainMessenger.sol","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"FailedRelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_xDomainCalldataHash","type":"bytes32"}],"name":"MessageAllowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_xDomainCalldataHash","type":"bytes32"}],"name":"MessageBlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"RelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"messageNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"SentMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_xDomainCalldataHash","type":"bytes32"}],"name":"allowMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_xDomainCalldataHash","type":"bytes32"}],"name":"blockMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"blockedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"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":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_messageNonce","type":"uint256"},{"components":[{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"stateRootBatchHeader","type":"tuple"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32[]","name":"siblings","type":"bytes32[]"}],"internalType":"struct Lib_OVMCodec.ChainInclusionProof","name":"stateRootProof","type":"tuple"},{"internalType":"bytes","name":"stateTrieWitness","type":"bytes"},{"internalType":"bytes","name":"storageTrieWitness","type":"bytes"}],"internalType":"struct IL1CrossDomainMessenger.L2MessageInclusionProof","name":"_proof","type":"tuple"}],"name":"relayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"relayedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_queueIndex","type":"uint256"},{"internalType":"uint32","name":"_oldGasLimit","type":"uint32"},{"internalType":"uint32","name":"_newGasLimit","type":"uint32"}],"name":"replayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405260cc80546001600160a01b03191661dead17905534801561002457600080fd5b50600080546001600160a01b0319169055613865806100446000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b2578063b1b1b20911610081578063c6b94ab011610066578063c6b94ab014610275578063d7fd19dd14610298578063f2fde38b146102ab57600080fd5b8063b1b1b2091461023f578063c4d66de81461026257600080fd5b8063715018a6146101fe57806381ada46c146102065780638456cb59146102195780638da5cb5b1461022157600080fd5b8063461a4478116100ee578063461a4478146101c55780635c975abb146101d85780636e296e45146101e35780636f1c8d47146101eb57600080fd5b80630ecf2eea1461012057806321d800ec14610135578063299ca4781461016d5780633dbb202b146101b2575b600080fd5b61013361012e366004612d2e565b6102be565b005b610158610143366004612d2e565b60ca6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60005461018d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610164565b6101336101c0366004612ea6565b610309565b61018d6101d3366004612f06565b610451565b60655460ff16610158565b61018d6104fe565b6101336101f9366004612f57565b61058d565b610133610774565b610133610214366004612d2e565b610788565b6101336107d0565b60335473ffffffffffffffffffffffffffffffffffffffff1661018d565b61015861024d366004612d2e565b60cb6020526000908152604090205460ff1681565b610133610270366004612fe3565b6107e0565b610158610283366004612d2e565b60c96020526000908152604090205460ff1681565b6101336102a6366004613149565b610ab8565b6101336102b9366004612fe3565b610f3c565b6102c6610fd9565b600081815260c96020526040808220805460ff191660011790555182917ff52508d5339edf0d7e5060a416df98db067af561bdc60872d29c0439eaa13a0291a250565b60006103496040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b905060008173ffffffffffffffffffffffffffffffffffffffff1663b8f770056040518163ffffffff1660e01b815260040160206040518083038186803b15801561039357600080fd5b505afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb9190613297565b905060006103e28633878564ffffffffff16611040565b90506103f583828663ffffffff166110bb565b8573ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33878588604051610441949392919061330e565b60405180910390a2505050505050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906104a8908590600401613361565b60206040518083038186803b1580156104c057600080fd5b505afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f89190613374565b92915050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff1661dead14156105705760405162461bcd60e51b8152
38560206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f74207365740060448201526064015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b60006105cd6040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b6040517f2a7f18be0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff831690632a7f18be9060240160606040518083038186803b15801561063957600080fd5b505afa15801561064d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106719190613391565b9050600061068189898989611040565b90506000731111000000000000000000000000000000001111300173420000000000000000000000000000000000000787846040516020016106c694939291906133f6565b604051602081830303815290604052805190602001209050826000015181146107575760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f7175657565642e000000000000000000000000000000000000000000000000006064820152608401610567565b61076884838763ffffffff166110bb565b50505050505050505050565b61077c610fd9565b610786600061115c565b565b610790610fd9565b600081815260c96020526040808220805460ff191690555182917f52c8a2680a9f4cc0ad0bf88f32096eadbebf0646ea611d93a0ce6a29a024040591a250565b6107d8610fd9565b6107866111d3565b6000547501000000000000000000000000000000000000000000900460ff161580801561082b575060005460017401000000000000000000000000000000000000000090910460ff16105b8061085d5750303b15801561085d575060005474010000000000000000000000000000000000000000900460ff166001145b6108cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610567565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561095557600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60005473ffffffffffffffffffffffffffffffffffffffff16156109e15760405162461bcd60e51b815260206004820152602a60248201527f4c3143726f7373446f6d61696e4d657373656e67657220616c7265616479206960448201527f6e7469616c697a65642e000000000000000000000000000000000000000000006064820152608401610567565b6000805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560cc805490911661dead179055610a3961123a565b610a416112cb565b610a49611365565b610a51611402565b8015610ab457600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60026097541415610b0b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610567565b6002609755610b1861149a565b6000610b2686868686611040565b9050610b3281836114ed565b1515600114610ba95760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610567565b8051602080830191909120600081815260cb90925260409091205460ff1615610c3a5760405162461bcd60e51b815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610567565b600081815260c9602052604090205460ff1615610cbf5760405162461bcd60e51b815260206004820152602260248201527f50726f7669646564206d65737361676520686173206265656e20626c6f636b6560448201527f642e0000000000000000000000000000000000000000000000000000000000006064820152608401610567565b610cfd6040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d9e5760405162461bcd60e51b8152
38560206004820152603360248201527f43616e6e6f742073656e64204c322d3e4c31206d6573736167657320746f204c60448201527f312073797374656d20636f6e7472616374732e000000000000000000000000006064820152608401610567565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691909117909155604051600091891690610df790889061343b565b6000604051808303816000865af19150503d8060008114610e34576040519150601f19603f3d011682016040523d82523d6000602084013e610e39565b606091505b505060cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560011415610eb957600082815260cb6020526040808220805460ff191660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610ee5565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b6000833343604051602001610efc93929190613457565b60408051601f198184030181529181528151602092830120600090815260ca9092529020805460ff19166001908117909155609755505050505050505050565b610f44610fd9565b73ffffffffffffffffffffffffffffffffffffffff8116610fcd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610567565b610fd68161115c565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146107865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610567565b60608484848460405160240161105994939291906134a9565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6040517f6fee07e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690636fee07e0906111259073420000000000000000000000000000000000000790859087906004016134f3565b600060405180830381600087803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b50505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6111db61149a565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112103390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6000547501000000000000000000000000000000000000000000900460ff166107865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6000547501000000000000000000000000000000000000000000900460ff1661135c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6107863361115c565b6000547501000000000000000000000000000000000000000000900460ff166113f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6065805460ff19169055565b6000547501000000000000000000000000000000000000000000900460ff166114935760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6001609755565b60655460ff16156107865760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610567565b60006114f882611510565b8015611509575061150983836116b2565b9392505050565b6000806115516040518060400160405280601481526020017f5374617465436f6d6d69746d656e74436861696e000000000000000000000000815250610451565b60208401516040517f9418bddd00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff831691639418bddd916115a991600401613565565b60206040518083038186803b1580156115c157600080fd5b505afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190613578565b15801561150957508251602084015160408086015190517f4d69ee5700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851693634d69ee579361166293919290919060040161359a565b60206040518083038186803b15801561167a57600080fd5b505afa15801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190613578565b600080837342000000000000000000000000000000000000076040516020016116dc929190613612565b60408051601f1981840301815282825280516020918201209083015260009082015260600160408051601f198184030181529082905280516020918201207f4200000000000000000000000000000000000000000000000000000000000000918301919091529150600090819061176c9060340160408051601f1981840301815291905260608701518751611896565b909250905060018215151461180f5760405162461bcd60e51b8152
38560206004820152604d60248201527f4d6573736167652070617373696e67207072656465706c6f7920686173206e6f60448201527f74206265656e20696e697469616c697a6564206f7220696e76616c696420707260648201527f6f6f662070726f76696465642e00000000000000000000000000000000000000608482015260a401610567565b600061181a826118bf565b905061188b8460405160200161183291815260200190565b60408051601f19818403018152908290527f010000000000000000000000000000000000000000000000000000000000000060208301529060210160405160208183030381529060405288608001518460400151611983565b979650505050505050565b6000606060006118a5866119a7565b90506118b28186866119d9565b9250925050935093915050565b6040805160808101825260008082526020820181905291810182905260608101829052906118ec83611ab4565b9050604051806080016040528061191c8360008151811061190f5761190f61365c565b6020026020010151611ae7565b81526020016119378360018151811061190f5761190f61365c565b815260200161195f836002815181106119525761195261365c565b6020026020010151611aee565b815260200161197a836003815181106119525761195261365c565b90529392505050565b60008061198f866119a7565b905061199d81868686611bf0565b9695505050505050565b606081805190602001206040516020016119c391815260200190565b6040516020818303038152906040529050919050565b6000606060006119e885611c26565b905060008060006119fa848a89611d21565b81519295509093509150158080611a0e5750815b611a5a5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610567565b600081611a765760405180602001604052806000815250611aa2565b611aa286611a856001886136ba565b81518110611a9557611a9561365c565b60200260200101516121bc565b919b919a509098505050505050505050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906104f8906121e6565b60006104f8825b6000602182600001511115611b455760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610567565b6000806000611b53856123e5565b919450925090506000816001811115611b6e57611b6e6136d1565b14611bbb5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610567565b6000838660200151611bcd9190613700565b8051909150602084101561199d5760208490036101000a90049695505050505050565b6000806000611c008786866119d9565b9150915081801561188b575080516020808301919091208751918801919091201461188b565b60606000611c3383611ab4565b90506000815167ffffffffffffffff811115611c5157611c51612d69565b604051908082528060200260200182016040528015611c9657816020015b6040805180820190915260608082526020820152815260200190600190039081611c6f5790505b50905060005b8251811015611d19576000611cc9848381518110611cbc57611cbc61365c565b6020026020010151612736565b90506040518060400160405280828152602001611ce583611ab4565b815250838381518110611cfa57611cfa61365c565b6020026020010181905250508080611d1190613718565b915050611c9c565b509392505050565b60006060818080611d31876127c6565b90506000869050600080611d58604051806040016040528060608152602001606081525090565b60005b8c51811015612178578c8181518110611d7657611d7661365c565b602002602001015191508284611d8c9190613700565b9350611d99600188613700565b965083611dfd57815180516020909101208514611df85760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726f6f7420686173680000000000000000000000000000006044820152606401610567565b611eba565b815151602011611e5f57815180516020909101208514611df85760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610567565b84611e6d8360000151612949565b14611eba5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610567565b611ec660106001613700565b8260200151511415611f3f578551841415611ee057612178565b6000868581518110611ef457611ef461365c565b602001015160f81c60f81b60f81c9050600083602001518260ff1681518110611f1f57611f1f61365c565b60200260200101519050611f3281612971565b9650600194505050612166565b6002826020015151141561211e576000611f58836129a7565b9050600081600081518110611f6f57611f6f61365c565b016020015160f81c90506000611f86600283613780565b611f919060026137a2565b90506000611fa2848360ff166129cb565b90506000611fb08b8a6129cb565b90506000611fbe8383612a01565b905060ff851660021480611fd5575060ff85166003145b1561202b57808351148015611fea5750808251145b15611ffc57611ff9818b613700565b99505b507f80000000000000000000000000000000000000000000000000000000000000009950612178945050505050565b60ff8516158061203e575060ff85166001145b156120b0578251811461207a57507f80000000000000000000000000000000000000000000000000000000000000009950612178945050505050565b6120a188602001516001815181106120945761209461365c565b6020026020010151612971
385565b9a509750612166945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e2060448201527f70726566697800000000000000000000000000000000000000000000000000006064820152608401610567565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610567565b8061217081613718565b915050611d5b565b507f80000000000000000000000000000000000000000000000000000000000000008414866121a787866129cb565b909e909d50909b509950505050505050505050565b602081015180516060916104f8916121d6906001906136ba565b81518110611cbc57611cbc61365c565b60606000806121f4846123e5565b91935090915060019050816001811115612210576122106136d1565b1461225d5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610567565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816122765790505090506000835b86518110156123da57602082106123225760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e000000000000000000000000000000000000000000006064820152608401610567565b60008061235f6040518060400160405280858c6000015161234391906136ba565b8152602001858c602001516123589190613700565b90526123e5565b50915091506040518060400160405280838361237b9190613700565b8152602001848b602001516123909190613700565b8152508585815181106123a5576123a561365c565b60209081029190910101526123bb600185613700565b93506123c78183613700565b6123d19084613700565b925050506122a3565b508152949350505050565b60008060008084600001511161243d5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610567565b6020840151805160001a607f811161246257600060016000945094509450505061272f565b60b781116124de5760006124776080836136ba565b9050808760000151116124cc5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610567565b6001955093506000925061272f915050565b60bf81116125cd5760006124f360b7836136ba565b9050808760000151116125485760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610567565b600183015160208290036101000a90046125628183613700565b8851116125b15760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610567565b6125bc826001613700565b965094506000935061272f92505050565b60f781116126485760006125e260c0836136ba565b9050808760000151116126375760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610567565b60019550935084925061272f915050565b600061265560f7836136ba565b9050808760000151116126aa5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610567565b600183015160208290036101000a90046126c48183613700565b8851116127135760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e000000000000000000006044820152606401610567565b61271e826001613700565b965094506001935061272f92505050565b9193909250565b60606000806000612746856123e5565b919450925090506000816001811115612761576127616136d1565b146127ae5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610567565b6127bd85602001518484612aad565b95945050505050565b60606000825160026127d891906137c5565b67ffffffffffffffff8111156127f0576127f0612d69565b6040519080825280601f01601f19166020018201604052801561281a576020820181803683370190505b50905060005b835181101561294257600484828151811061283d5761283d61365c565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c826128728360026137c5565b815181106128825761288261365c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060108482815181106128c5576128c561365c565b01602001516128d7919060f81c613780565b
38560f81b826128e68360026137c5565b6128f1906001613700565b815181106129015761290161365c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061293a81613718565b915050612820565b5092915050565b600060208251101561295d57506020015190565b818060200190518101906104f89190613802565b600060606020836000015110156129925761298b83612b8c565b905061299e565b61299b83612736565b90505b61150981612949565b60606104f86129c68360200151600081518110611cbc57611cbc61365c565b6127c6565b6060825182106129ea57506040805160208101909152600081526104f8565b61150983838486516129fc91906136ba565b612b97565b6000805b808451118015612a155750808351115b8015612a965750828181518110612a2e57612a2e61365c565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110612a6d57612a6d61365c565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156115095780612aa581613718565b915050612a05565b606060008267ffffffffffffffff811115612aca57612aca612d69565b6040519080825280601f01601f191660200182016040528015612af4576020820181803683370190505b509050805160001415612b08579050611509565b6000612b148587613700565b90506020820160005b612b2860208761381b565b811015612b5f5782518252612b3e602084613700565b9250612b4b602083613700565b915080612b5781613718565b915050612b1d565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606104f882612d18565b606081612ba581601f613700565b1015612bf35760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610567565b82612bfe8382613700565b1015612c4c5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610567565b612c568284613700565b84511015612ca65760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610567565b606082158015612cc55760405191506000825260208201604052612d0f565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cfe578051835260209283019201612ce6565b5050858452601f01601f1916604052505b50949350505050565b60606104f8826020015160008460000151612aad565b600060208284031215612d4057600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610fd657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715612dbb57612dbb612d69565b60405290565b60405160a0810167ffffffffffffffff81118282101715612dbb57612dbb612d69565b604051601f8201601f1916810167ffffffffffffffff81118282101715612e0d57612e0d612d69565b604052919050565b600067ffffffffffffffff831115612e2f57612e2f612d69565b612e426020601f19601f86011601612de4565b9050828152838383011115612e5657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e7e57600080fd5b61150983833560208501612e15565b803563ffffffff81168114612ea157600080fd5b919050565b60008060006060848
3856031215612ebb57600080fd5b8335612ec681612d47565b9250602084013567ffffffffffffffff811115612ee257600080fd5b612eee86828701612e6d565b925050612efd60408501612e8d565b90509250925092565b600060208284031215612f1857600080fd5b813567ffffffffffffffff811115612f2f57600080fd5b8201601f81018413612f4057600080fd5b612f4f84823560208401612e15565b949350505050565b60008060008060008060c08789031215612f7057600080fd5b8635612f7b81612d47565b95506020870135612f8b81612d47565b9450604087013567ffffffffffffffff811115612fa757600080fd5b612fb389828a01612e6d565b94505060608701359250612fc960808801612e8d565b9150612fd760a08801612e8d565b90509295509295509295565b600060208284031215612ff557600080fd5b813561150981612d47565b600060a0828403121561301257600080fd5b60405160a0810167ffffffffffffffff828210818311171561303657613036612d69565b8160405282935084358352602085013560208401526040850135604084015260608501356060840152608085013591508082111561307357600080fd5b5061308085828601612e6d565b6080830152505092915050565b60006040828403121561309f57600080fd5b6130a7612d98565b90508135815260208083013567ffffffffffffffff808211156130c957600080fd5b818501915085601f8301126130dd57600080fd5b8135818111156130ef576130ef612d69565b8060051b9150613100848301612de4565b818152918301840191848101908884111561311a57600080fd5b938501935b838510156131385784358252938501939085019061311f565b808688015250505050505092915050565b600080600080600060a0868803121561316157600080fd5b853561316c81612d47565b9450602086013561317c81612d47565b9350604086013567ffffffffffffffff8082111561319957600080fd5b6131a589838a01612e6d565b94506060880135935060808801359150808211156131c257600080fd5b9087019060a0828a0312156131d657600080fd5b6131de612dc1565b823581526020830135828111156131f457600080fd5b6132008b828601613000565b60208301525060408301358281111561321857600080fd5b6132248b82860161308d565b60408301525060608301358281111561323c57600080fd5b6132488b828601612e6d565b60608301525060808301358281111561326057600080fd5b61326c8b828601612e6d565b6080830152508093505050509295509295909350565b805164ffffffffff81168114612ea157600080fd5b6000602082840312156132a957600080fd5b61150982613282565b60005b838110156132cd5781810151838201526020016132b5565b838111156132dc576000848401525b50505050565b600081518084526132fa8160208601602086016132b2565b601f01601f19169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8516815260806020820152600061333d60808301866132e2565b905064ffffffffff8416604083015263ffffffff8316606083015295945050505050565b60208152600061150960208301846132e2565b60006020828403121561338657600080fd5b815161150981612d47565b6000606082840312156133a357600080fd5b6040516060810181811067ffffffffffffffff821117156133c6576133c6612d69565b604052825181526133d960208401613282565b60208201526133ea60408401613282565b60408201529392505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525063ffffffff841660408301526080606083015261199d60808301846132e2565b6000825161344d8184602087016132b2565b9190910192915050565b600084516134698184602089016132b2565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526134e260808301856132e2565b905082606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006127bd60608301846132e2565b805182526020810151602083015260408101516040830152606081015160608301526000608082015160a06080850152612f4f60a08501826132e2565b6020815260006115096020830184613528565b60006020828403121561358a57600080fd5b8151801515811461150957600080fd5b838152600060206060818401526135b46060840186613528565b83810360408501526040810185518252828601516040848401528181518084526060850191508583019450600093505b8084101561360457845182529385019360019390930192908501906135e4565b509998505050505050505050565b600083516136248184602088016132b2565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156136cc576136cc61368b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082198211156137135761371361368b565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374a5761374a61368b565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060ff8316806137935
3857613793613751565b8060ff84160691505092915050565b600060ff821660ff8416808210156137bc576137bc61368b565b90039392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137fd576137fd61368b565b500290565b60006020828403121561381457600080fd5b5051919050565b60008261382a5761382a613751565b50049056fea2646970667358221220c8cd169b919168f911dffe50407de9b3c321b6388069872b5a97be3545f41dca64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b2578063b1b1b20911610081578063c6b94ab011610066578063c6b94ab014610275578063d7fd19dd14610298578063f2fde38b146102ab57600080fd5b8063b1b1b2091461023f578063c4d66de81461026257600080fd5b8063715018a6146101fe57806381ada46c146102065780638456cb59146102195780638da5cb5b1461022157600080fd5b8063461a4478116100ee578063461a4478146101c55780635c975abb146101d85780636e296e45146101e35780636f1c8d47146101eb57600080fd5b80630ecf2eea1461012057806321d800ec14610135578063299ca4781461016d5780633dbb202b146101b2575b600080fd5b61013361012e366004612d2e565b6102be565b005b610158610143366004612d2e565b60ca6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60005461018d9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610164565b6101336101c0366004612ea6565b610309565b61018d6101d3366004612f06565b610451565b60655460ff16610158565b61018d6104fe565b6101336101f9366004612f57565b61058d565b610133610774565b610133610214366004612d2e565b610788565b6101336107d0565b60335473ffffffffffffffffffffffffffffffffffffffff1661018d565b61015861024d366004612d2e565b60cb6020526000908152604090205460ff1681565b610133610270366004612fe3565b6107e0565b610158610283366004612d2e565b60c96020526000908152604090205460ff1681565b6101336102a6366004613149565b610ab8565b6101336102b9366004612fe3565b610f3c565b6102c6610fd9565b600081815260c96020526040808220805460ff191660011790555182917ff52508d5339edf0d7e5060a416df98db067af561bdc60872d29c0439eaa13a0291a250565b60006103496040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b905060008173ffffffffffffffffffffffffffffffffffffffff1663b8f770056040518163ffffffff1660e01b815260040160206040518083038186803b15801561039357600080fd5b505afa1580156103a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cb9190613297565b905060006103e28633878564ffffffffff16611040565b90506103f583828663ffffffff166110bb565b8573ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33878588604051610441949392919061330e565b60405180910390a2505050505050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906104a8908590600401613361565b60206040518083038186803b1580156104c057600080fd5b505afa1580156104d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f89190613374565b92915050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff1661dead14156105705760405162461bcd60e51b815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f74207365740060448201526064015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b60006105cd6040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b6040517f2a7f18be0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff831690632a7f18be9060240160606040518083038186803b15801561063957600080fd5b505afa15801561064d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106719190613391565b9050600061068189898989611040565b90506000731111000000000000000000000000000000001111300173420000000000000000000000000000000000000787846040516020016106c694939291906133f6565b604051602081830303815290604052805190602001209050826000015181146107575760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520686173206e6f74206265656e20656e60448201527f7175657565642e
385000000000000000000000000000000000000000000000000006064820152608401610567565b61076884838763ffffffff166110bb565b50505050505050505050565b61077c610fd9565b610786600061115c565b565b610790610fd9565b600081815260c96020526040808220805460ff191690555182917f52c8a2680a9f4cc0ad0bf88f32096eadbebf0646ea611d93a0ce6a29a024040591a250565b6107d8610fd9565b6107866111d3565b6000547501000000000000000000000000000000000000000000900460ff161580801561082b575060005460017401000000000000000000000000000000000000000090910460ff16105b8061085d5750303b15801561085d575060005474010000000000000000000000000000000000000000900460ff166001145b6108cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610567565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055801561095557600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60005473ffffffffffffffffffffffffffffffffffffffff16156109e15760405162461bcd60e51b815260206004820152602a60248201527f4c3143726f7373446f6d61696e4d657373656e67657220616c7265616479206960448201527f6e7469616c697a65642e000000000000000000000000000000000000000000006064820152608401610567565b6000805473ffffffffffffffffffffffffffffffffffffffff84167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560cc805490911661dead179055610a3961123a565b610a416112cb565b610a49611365565b610a51611402565b8015610ab457600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60026097541415610b0b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610567565b6002609755610b1861149a565b6000610b2686868686611040565b9050610b3281836114ed565b1515600114610ba95760405162461bcd60e51b815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610567565b8051602080830191909120600081815260cb90925260409091205460ff1615610c3a5760405162461bcd60e51b815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610567565b600081815260c9602052604090205460ff1615610cbf5760405162461bcd60e51b815260206004820152602260248201527f50726f7669646564206d65737361676520686173206265656e20626c6f636b6560448201527f642e0000000000000000000000000000000000000000000000000000000000006064820152608401610567565b610cfd6040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e00000000000000815250610451565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d9e5760405162461bcd60e51b815260206004820152603360248201527f43616e6e6f742073656e64204c322d3e4c31206d6573736167657320746f204c60448201527f312073797374656d20636f6e7472616374732e000000000000000000000000006064820152608401610567565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff88811691909117909155604051600091891690610df790889061343b565b6000604051808303816000865af19150503d8060008114610e34576040519150601f19603f3d011682016040523d82523d6000602084013e610e39565b606091505b505060cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080151560011415610eb957600082815260cb6020526040808220805460ff191660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610ee5565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b6000833343604051602001610efc93929190613457565b60408051601f198184030181529181528151602092830120600090815260ca9092529020805460ff19166001908117909155609755505050505050505050565b610f44610fd9565b73ffffffffffffffffffffffffffffffffffffffff8116610fcd5760405162461bcd60e51b8152
38560206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610567565b610fd68161115c565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146107865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610567565b60608484848460405160240161105994939291906134a9565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b6040517f6fee07e000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690636fee07e0906111259073420000000000000000000000000000000000000790859087906004016134f3565b600060405180830381600087803b15801561113f57600080fd5b505af1158015611153573d6000803e3d6000fd5b50505050505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6111db61149a565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112103390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6000547501000000000000000000000000000000000000000000900460ff166107865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6000547501000000000000000000000000000000000000000000900460ff1661135c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6107863361115c565b6000547501000000000000000000000000000000000000000000900460ff166113f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6065805460ff19169055565b6000547501000000000000000000000000000000000000000000900460ff166114935760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610567565b6001609755565b60655460ff16156107865760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610567565b60006114f882611510565b8015611509575061150983836116b2565b9392505050565b6000806115516040518060400160405280601481526020017f5374617465436f6d6d69746d656e74436861696e000000000000000000000000815250610451565b60208401516040517f9418bddd00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff831691639418bddd916115a991600401613565565b60206040518083038186803b1580156115c157600080fd5b505afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190613578565b15801561150957508251602084015160408086015190517f4d69ee5700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851693634d69ee579361166293919290919060040161359a565b60206040518083038186803b15801561167a57600080fd5b505afa15801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115099190613578565b600080837342000000000000000000000000000000000000076040516020016116dc929190613612565b60408051601f1981840301815282825280516020918201209083015260009082015260600160408051601f198184030181529082905280516020918201207f4200000000000000000000000000000000000000000000000000000000000000918301919091529150600090819061176c9060340160408051601f1981840301815291905260608701518751611896565b909250905060018215151461180f5760405162461bcd60e51b8152
38560206004820152604d60248201527f4d6573736167652070617373696e67207072656465706c6f7920686173206e6f60448201527f74206265656e20696e697469616c697a6564206f7220696e76616c696420707260648201527f6f6f662070726f76696465642e00000000000000000000000000000000000000608482015260a401610567565b600061181a826118bf565b905061188b8460405160200161183291815260200190565b60408051601f19818403018152908290527f010000000000000000000000000000000000000000000000000000000000000060208301529060210160405160208183030381529060405288608001518460400151611983565b979650505050505050565b6000606060006118a5866119a7565b90506118b28186866119d9565b9250925050935093915050565b6040805160808101825260008082526020820181905291810182905260608101829052906118ec83611ab4565b9050604051806080016040528061191c8360008151811061190f5761190f61365c565b6020026020010151611ae7565b81526020016119378360018151811061190f5761190f61365c565b815260200161195f836002815181106119525761195261365c565b6020026020010151611aee565b815260200161197a836003815181106119525761195261365c565b90529392505050565b60008061198f866119a7565b905061199d81868686611bf0565b9695505050505050565b606081805190602001206040516020016119c391815260200190565b6040516020818303038152906040529050919050565b6000606060006119e885611c26565b905060008060006119fa848a89611d21565b81519295509093509150158080611a0e5750815b611a5a5760405162461bcd60e51b815260206004820152601a60248201527f50726f76696465642070726f6f6620697320696e76616c69642e0000000000006044820152606401610567565b600081611a765760405180602001604052806000815250611aa2565b611aa286611a856001886136ba565b81518110611a9557611a9561365c565b60200260200101516121bc565b919b919a509098505050505050505050565b6040805180820182526000808252602091820152815180830190925282518252808301908201526060906104f8906121e6565b60006104f8825b6000602182600001511115611b455760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610567565b6000806000611b53856123e5565b919450925090506000816001811115611b6e57611b6e6136d1565b14611bbb5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420524c5020627974657333322076616c75652e0000000000006044820152606401610567565b6000838660200151611bcd9190613700565b8051909150602084101561199d5760208490036101000a90049695505050505050565b6000806000611c008786866119d9565b9150915081801561188b575080516020808301919091208751918801919091201461188b565b60606000611c3383611ab4565b90506000815167ffffffffffffffff811115611c5157611c51612d69565b604051908082528060200260200182016040528015611c9657816020015b6040805180820190915260608082526020820152815260200190600190039081611c6f5790505b50905060005b8251811015611d19576000611cc9848381518110611cbc57611cbc61365c565b6020026020010151612736565b90506040518060400160405280828152602001611ce583611ab4565b815250838381518110611cfa57611cfa61365c565b6020026020010181905250508080611d1190613718565b915050611c9c565b509392505050565b60006060818080611d31876127c6565b90506000869050600080611d58604051806040016040528060608152602001606081525090565b60005b8c51811015612178578c8181518110611d7657611d7661365c565b602002602001015191508284611d8c9190613700565b9350611d99600188613700565b965083611dfd57815180516020909101208514611df85760405162461bcd60e51b815260206004820152601160248201527f496e76616c696420726f6f7420686173680000000000000000000000000000006044820152606401610567565b611eba565b815151602011611e5f57815180516020909101208514611df85760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206c6172676520696e7465726e616c206861736800000000006044820152606401610567565b84611e6d8360000151612949565b14611eba5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420696e7465726e616c206e6f646520686173680000000000006044820152606401610567565b611ec660106001613700565b8260200151511415611f3f578551841415611ee057612178565b6000868581518110611ef457611ef461365c565b602001015160f81c60f81b60f81c9050600083602001518260ff1681518110611f1f57611f1f61365c565b60200260200101519050611f3281612971565b9650600194505050612166565b6002826020015151141561211e576000611f58836129a7565b9050600081600081518110611f6f57611f6f61365c565b016020015160f81c90506000611f86600283613780565b611f919060026137a2565b90506000611fa2848360ff166129cb565b90506000611fb08b8a6129cb565b90506000611fbe8383612a01565b905060ff851660021480611fd5575060ff85166003145b1561202b57808351148015611fea5750808251145b15611ffc57611ff9818b613700565b99505b507f80000000000000000000000000000000000000000000000000000000000000009950612178945050505050565b60ff8516158061203e575060ff85166001145b156120b0578251811461207a57507f80000000000000000000000000000000000000000000000000000000000000009950612178945050505050565b6120a188602001516001815181106120945761209461365c565b6020026020010151612971
385565b9a509750612166945050505050565b60405162461bcd60e51b815260206004820152602660248201527f52656365697665642061206e6f6465207769746820616e20756e6b6e6f776e2060448201527f70726566697800000000000000000000000000000000000000000000000000006064820152608401610567565b60405162461bcd60e51b815260206004820152601d60248201527f526563656976656420616e20756e706172736561626c65206e6f64652e0000006044820152606401610567565b8061217081613718565b915050611d5b565b507f80000000000000000000000000000000000000000000000000000000000000008414866121a787866129cb565b909e909d50909b509950505050505050505050565b602081015180516060916104f8916121d6906001906136ba565b81518110611cbc57611cbc61365c565b60606000806121f4846123e5565b91935090915060019050816001811115612210576122106136d1565b1461225d5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c50206c6973742076616c75652e0000000000000000006044820152606401610567565b6040805160208082526104208201909252600091816020015b60408051808201909152600080825260208201528152602001906001900390816122765790505090506000835b86518110156123da57602082106123225760405162461bcd60e51b815260206004820152602a60248201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960448201527f7374206c656e6774682e000000000000000000000000000000000000000000006064820152608401610567565b60008061235f6040518060400160405280858c6000015161234391906136ba565b8152602001858c602001516123589190613700565b90526123e5565b50915091506040518060400160405280838361237b9190613700565b8152602001848b602001516123909190613700565b8152508585815181106123a5576123a561365c565b60209081029190910101526123bb600185613700565b93506123c78183613700565b6123d19084613700565b925050506122a3565b508152949350505050565b60008060008084600001511161243d5760405162461bcd60e51b815260206004820152601860248201527f524c50206974656d2063616e6e6f74206265206e756c6c2e00000000000000006044820152606401610567565b6020840151805160001a607f811161246257600060016000945094509450505061272f565b60b781116124de5760006124776080836136ba565b9050808760000151116124cc5760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420524c502073686f727420737472696e672e000000000000006044820152606401610567565b6001955093506000925061272f915050565b60bf81116125cd5760006124f360b7836136ba565b9050808760000151116125485760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e006044820152606401610567565b600183015160208290036101000a90046125628183613700565b8851116125b15760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c50206c6f6e6720737472696e672e00000000000000006044820152606401610567565b6125bc826001613700565b965094506000935061272f92505050565b60f781116126485760006125e260c0836136ba565b9050808760000151116126375760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420524c502073686f7274206c6973742e0000000000000000006044820152606401610567565b60019550935084925061272f915050565b600061265560f7836136ba565b9050808760000151116126aa5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e0000006044820152606401610567565b600183015160208290036101000a90046126c48183613700565b8851116127135760405162461bcd60e51b815260206004820152601660248201527f496e76616c696420524c50206c6f6e67206c6973742e000000000000000000006044820152606401610567565b61271e826001613700565b965094506001935061272f92505050565b9193909250565b60606000806000612746856123e5565b919450925090506000816001811115612761576127616136d1565b146127ae5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420524c502062797465732076616c75652e00000000000000006044820152606401610567565b6127bd85602001518484612aad565b95945050505050565b60606000825160026127d891906137c5565b67ffffffffffffffff8111156127f0576127f0612d69565b6040519080825280601f01601f19166020018201604052801561281a576020820181803683370190505b50905060005b835181101561294257600484828151811061283d5761283d61365c565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c826128728360026137c5565b815181106128825761288261365c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060108482815181106128c5576128c561365c565b01602001516128d7919060f81c613780565b
38560f81b826128e68360026137c5565b6128f1906001613700565b815181106129015761290161365c565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061293a81613718565b915050612820565b5092915050565b600060208251101561295d57506020015190565b818060200190518101906104f89190613802565b600060606020836000015110156129925761298b83612b8c565b905061299e565b61299b83612736565b90505b61150981612949565b60606104f86129c68360200151600081518110611cbc57611cbc61365c565b6127c6565b6060825182106129ea57506040805160208101909152600081526104f8565b61150983838486516129fc91906136ba565b612b97565b6000805b808451118015612a155750808351115b8015612a965750828181518110612a2e57612a2e61365c565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110612a6d57612a6d61365c565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b156115095780612aa581613718565b915050612a05565b606060008267ffffffffffffffff811115612aca57612aca612d69565b6040519080825280601f01601f191660200182016040528015612af4576020820181803683370190505b509050805160001415612b08579050611509565b6000612b148587613700565b90506020820160005b612b2860208761381b565b811015612b5f5782518252612b3e602084613700565b9250612b4b602083613700565b915080612b5781613718565b915050612b1d565b5060006001602087066020036101000a039050808251168119845116178252839450505050509392505050565b60606104f882612d18565b606081612ba581601f613700565b1015612bf35760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610567565b82612bfe8382613700565b1015612c4c5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610567565b612c568284613700565b84511015612ca65760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610567565b606082158015612cc55760405191506000825260208201604052612d0f565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cfe578051835260209283019201612ce6565b5050858452601f01601f1916604052505b50949350505050565b60606104f8826020015160008460000151612aad565b600060208284031215612d4057600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610fd657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715612dbb57612dbb612d69565b60405290565b60405160a0810167ffffffffffffffff81118282101715612dbb57612dbb612d69565b604051601f8201601f1916810167ffffffffffffffff81118282101715612e0d57612e0d612d69565b604052919050565b600067ffffffffffffffff831115612e2f57612e2f612d69565b612e426020601f19601f86011601612de4565b9050828152838383011115612e5657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e7e57600080fd5b61150983833560208501612e15565b803563ffffffff81168114612ea157600080fd5b919050565b60008060006060848
3856031215612ebb57600080fd5b8335612ec681612d47565b9250602084013567ffffffffffffffff811115612ee257600080fd5b612eee86828701612e6d565b925050612efd60408501612e8d565b90509250925092565b600060208284031215612f1857600080fd5b813567ffffffffffffffff811115612f2f57600080fd5b8201601f81018413612f4057600080fd5b612f4f84823560208401612e15565b949350505050565b60008060008060008060c08789031215612f7057600080fd5b8635612f7b81612d47565b95506020870135612f8b81612d47565b9450604087013567ffffffffffffffff811115612fa757600080fd5b612fb389828a01612e6d565b94505060608701359250612fc960808801612e8d565b9150612fd760a08801612e8d565b90509295509295509295565b600060208284031215612ff557600080fd5b813561150981612d47565b600060a0828403121561301257600080fd5b60405160a0810167ffffffffffffffff828210818311171561303657613036612d69565b8160405282935084358352602085013560208401526040850135604084015260608501356060840152608085013591508082111561307357600080fd5b5061308085828601612e6d565b6080830152505092915050565b60006040828403121561309f57600080fd5b6130a7612d98565b90508135815260208083013567ffffffffffffffff808211156130c957600080fd5b818501915085601f8301126130dd57600080fd5b8135818111156130ef576130ef612d69565b8060051b9150613100848301612de4565b818152918301840191848101908884111561311a57600080fd5b938501935b838510156131385784358252938501939085019061311f565b808688015250505050505092915050565b600080600080600060a0868803121561316157600080fd5b853561316c81612d47565b9450602086013561317c81612d47565b9350604086013567ffffffffffffffff8082111561319957600080fd5b6131a589838a01612e6d565b94506060880135935060808801359150808211156131c257600080fd5b9087019060a0828a0312156131d657600080fd5b6131de612dc1565b823581526020830135828111156131f457600080fd5b6132008b828601613000565b60208301525060408301358281111561321857600080fd5b6132248b82860161308d565b60408301525060608301358281111561323c57600080fd5b6132488b828601612e6d565b60608301525060808301358281111561326057600080fd5b61326c8b828601612e6d565b6080830152508093505050509295509295909350565b805164ffffffffff81168114612ea157600080fd5b6000602082840312156132a957600080fd5b61150982613282565b60005b838110156132cd5781810151838201526020016132b5565b838111156132dc576000848401525b50505050565b600081518084526132fa8160208601602086016132b2565b601f01601f19169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff8516815260806020820152600061333d60808301866132e2565b905064ffffffffff8416604083015263ffffffff8316606083015295945050505050565b60208152600061150960208301846132e2565b60006020828403121561338657600080fd5b815161150981612d47565b6000606082840312156133a357600080fd5b6040516060810181811067ffffffffffffffff821117156133c6576133c6612d69565b604052825181526133d960208401613282565b60208201526133ea60408401613282565b60408201529392505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525063ffffffff841660408301526080606083015261199d60808301846132e2565b6000825161344d8184602087016132b2565b9190910192915050565b600084516134698184602089016132b2565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526134e260808301856132e2565b905082606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006127bd60608301846132e2565b805182526020810151602083015260408101516040830152606081015160608301526000608082015160a06080850152612f4f60a08501826132e2565b6020815260006115096020830184613528565b60006020828403121561358a57600080fd5b8151801515811461150957600080fd5b838152600060206060818401526135b46060840186613528565b83810360408501526040810185518252828601516040848401528181518084526060850191508583019450600093505b8084101561360457845182529385019360019390930192908501906135e4565b509998505050505050505050565b600083516136248184602088016132b2565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156136cc576136cc61368b565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082198211156137135761371361368b565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374a5761374a61368b565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060ff8316806137935
3857613793613751565b8060ff84160691505092915050565b600060ff821660ff8416808210156137bc576137bc61368b565b90039392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137fd576137fd61368b565b500290565b60006020828403121561381457600080fd5b5051919050565b60008261382a5761382a613751565b50049056fea2646970667358221220c8cd169b919168f911dffe50407de9b3c321b6388069872b5a97be3545f41dca64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},22374:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L1StandardBridge","sourceName":"contracts/L1/messaging/L1StandardBridge.sol","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20DepositInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ERC20WithdrawalFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ETHDepositInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"ETHWithdrawalFinalized","type":"event"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositERC20To","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint32","name":"_l2Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"depositETHTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}
385,{"inputs":[],"name":"donateETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeERC20Withdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeETHWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l1messenger","type":"address"},{"internalType":"address","name":"_l2TokenBridge","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l2TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messenger","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}],"bytecode":"0x608060405234801561001057600080fd5b50600080546001600160a01b031916905561199e806100306000396000f3fe6080604052600436106100c05760003560e01c80638b4c40b0116100745780639a2ac6d51161004e5780639a2ac6d514610288578063a9f9e6751461029b578063b1a1a882146102bb57600080fd5b80638b4c40b0146101375780638f601f661461021557806391c49bf81461025b57600080fd5b8063485cc955116100a5578063485cc955146101b557806358a997f6146101d5578063838b2520146101f557600080fd5b80631532ec341461013e5780633cb747bf1461015e57600080fd5b3661013957333b156101195760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b610137333362030d40604051806020016040528060008152506102ce565b005b600080fd5b34801561014a57600080fd5b50610137610159366004611357565b61041a565b34801561016a57600080fd5b5060005461018b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101c157600080fd5b506101376101d03660046113ca565b610790565b3480156101e157600080fd5b506101376101f036600461141c565b61086f565b34801561020157600080fd5b5061013761021036600461149f565b6108d6565b34801561022157600080fd5b5061024d6102303660046113ca565b600260209081526000928352604080842090915290825290205481565b6040519081526020016101ac565b34801561026757600080fd5b5060015461018b9073ffffffffffffffffffffffffffffffffffffffff1681565b610137610296366004611535565b6108ef565b3480156102a757600080fd5b506101376102b6366004611598565b610937565b6101376102c9366004611611565b610c59565b600063662a633a60e01b600073deaddeaddeaddeaddeaddeaddeaddeaddead000087873487604051602401610308969594939291906116da565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506103ac9073ffffffffffffffffffffffffffffffffffffffff168483610cef565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23348560405161040b929190611735565b60405180910390a35050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661045260005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104f25760405162461bcd60e51b815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610110565b8073ffffffffffffffffffffffffffffffffffffffff1661052860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a5919061174e565b73ffffffffffffffffffffffffffffffffffffffff161461062e5760405162461bcd60e51b8152
38560206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610110565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8716908690604051610665919061176b565b60006040518083038185875af1925050503d80600081146106a2576040519150601f19603f3d011682016040523d82523d6000602084013e6106a7565b606091505b505090508061071e5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610110565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e63187878760405161077f939291906117d0565b60405180910390a350505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff161561081c5760405162461bcd60e51b815260206004820152602660248201527f436f6e74726163742068617320616c7265616479206265656e20696e6974696160448201527f6c697a65642e00000000000000000000000000000000000000000000000000006064820152608401610110565b6000805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b333b156108be5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610110565b6108ce8686333388888888610d77565b505050505050565b6108e68787338888888888610d77565b50505050505050565b61093133858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ce92505050565b50505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661096f60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a0f5760405162461bcd60e51b815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610110565b8073ffffffffffffffffffffffffffffffffffffffff16610a4560005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061174e565b73ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610110565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529290522054610b89908590611822565b73ffffffffffffffffffffffffffffffffffffffff808a166000818152600260209081526040808320948d1683529390529190912091909155610bcd908686610f27565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b388888888604051610c479493929190611839565b60405180910390a45050505050505050565b333b15610ca85760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610110565b610cea33338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ce92505050565b505050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610d4990869085908790600401611879565b600060405180830381600087803b158015610d6357600080fd5b505af11580156108e6573d6000803e3d6000fd5b610d9973ffffffffffffffffffffffffffffffffffffffff8916873087610ffb565b600063662a633a60e01b89898989898888604051602401610dc097969594939291906118be565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600154909150610e649073ffffffffffffffffffffffffffffffffffffffff168583610cef565b73ffffffffffffffffffffffffffffffffffffffff808a166000908152600260209081526040808320938c1683529290522054610ea290869061191b565b73ffffffffffffffffffffffffffffffffffffffff808b1660008181526002602090815260408083208e86168085529252918290209490945551918a1692917f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039690610f14908b908b908a908a90611839565b60405180910390a4505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610cea9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611059565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526109319085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610f79565b60006110bb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661114b9092919063ffffffff16565b805190915015610cea57808060200190518101906110d99190611933565b610cea5760405162461bcd60e51b8152
38560206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610110565b606061115a8484600085611164565b90505b9392505050565b6060824710156111dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610110565b843b61122a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610110565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611253919061176b565b60006040518083038185875af1925050503d8060008114611290576040519150601f19603f3d011682016040523d82523d6000602084013e611295565b606091505b50915091506112a58282866112b0565b979650505050505050565b606083156112bf57508161115d565b8251156112cf5782518084602001fd5b8160405162461bcd60e51b81526004016101109190611955565b73ffffffffffffffffffffffffffffffffffffffff8116811461130b57600080fd5b50565b60008083601f84011261132057600080fd5b50813567ffffffffffffffff81111561133857600080fd5b60208301915083602082850101111561135057600080fd5b9250929050565b60008060008060006080868803121561136f57600080fd5b853561137a816112e9565b9450602086013561138a816112e9565b935060408601359250606086013567ffffffffffffffff8111156113ad57600080fd5b6113b98882890161130e565b969995985093965092949392505050565b600080604083850312156113dd57600080fd5b82356113e8816112e9565b915060208301356113f8816112e9565b809150509250929050565b803563ffffffff8116811461141757600080fd5b919050565b60008060008060008060a0878903121561143557600080fd5b8635611440816112e9565b95506020870135611450816112e9565b94506040870135935061146560608801611403565b9250608087013567ffffffffffffffff81111561148157600080fd5b61148d89828a0161130e565b979a9699509497509295939492505050565b600080600080600080600060c0888a0312156114ba57600080fd5b87356114c5816112e9565b965060208801356114d5816112e9565b955060408801356114e5816112e9565b9450606088013593506114fa60808901611403565b925060a088013567ffffffffffffffff81111561151657600080fd5b6115228a828b0161130e565b989b979a50959850939692959293505050565b6000806000806060858703121561154b57600080fd5b8435611556816112e9565b935061156460208601611403565b9250604085013567ffffffffffffffff81111561158057600080fd5b61158c8782880161130e565b95989497509550505050565b600080600080600080600060c0888a0312156115b357600080fd5b87356115be816112e9565b965060208801356115ce816112e9565b955060408801356115de816112e9565b945060608801356115ee816112e9565b93506080880135925060a088013567ffffffffffffffff81111561151657600080fd5b60008060006040848603121561162657600080fd5b61162f84611403565b9250602084013567ffffffffffffffff81111561164b57600080fd5b6116578682870161130e565b9497909650939450505050565b60005b8381101561167f578181015183820152602001611667565b838111156109315750506000910152565b600081518084526116a8816020860160208601611664565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261172960c0830184611690565b98975050505050505050565b82815260406020820152600061115a6040830184611690565b60006020828403121561176057600080fd5b815161115d816112e9565b6000825161177d818460208701611664565b9
385190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006117ea604083018486611787565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611834576118346117f3565b500390565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152600061186f606083018486611787565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006118a86060830185611690565b905063ffffffff83166040830152949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261190e60c083018486611787565b9998505050505050505050565b6000821982111561192e5761192e6117f3565b500190565b60006020828403121561194557600080fd5b8151801515811461115d57600080fd5b60208152600061115d602083018461169056fea26469706673582212209e8d495a5c754054f8fb1569a883aab4029fddac8f25cf6ce1219795b06797ad64736f6c63430008090033","deployedBytecode":"0x6080604052600436106100c05760003560e01c80638b4c40b0116100745780639a2ac6d51161004e5780639a2ac6d514610288578063a9f9e6751461029b578063b1a1a882146102bb57600080fd5b80638b4c40b0146101375780638f601f661461021557806391c49bf81461025b57600080fd5b8063485cc955116100a5578063485cc955146101b557806358a997f6146101d5578063838b2520146101f557600080fd5b80631532ec341461013e5780633cb747bf1461015e57600080fd5b3661013957333b156101195760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f41000000000000000000000000000000000060448201526064015b60405180910390fd5b610137333362030d40604051806020016040528060008152506102ce565b005b600080fd5b34801561014a57600080fd5b50610137610159366004611357565b61041a565b34801561016a57600080fd5b5060005461018b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101c157600080fd5b506101376101d03660046113ca565b610790565b3480156101e157600080fd5b506101376101f036600461141c565b61086f565b34801561020157600080fd5b5061013761021036600461149f565b6108d6565b34801561022157600080fd5b5061024d6102303660046113ca565b600260209081526000928352604080842090915290825290205481565b6040519081526020016101ac565b34801561026757600080fd5b5060015461018b9073ffffffffffffffffffffffffffffffffffffffff1681565b610137610296366004611535565b6108ef565b3480156102a757600080fd5b506101376102b6366004611598565b610937565b6101376102c9366004611611565b610c59565b600063662a633a60e01b600073deaddeaddeaddeaddeaddeaddeaddeaddead000087873487604051602401610308969594939291906116da565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506103ac9073ffffffffffffffffffffffffffffffffffffffff168483610cef565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23348560405161040b929190611735565b60405180910390a35050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661045260005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104f25760405162461bcd60e51b815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610110565b8073ffffffffffffffffffffffffffffffffffffffff1661052860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561056d57600080fd5b505afa158015610581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a5919061174e565b73ffffffffffffffffffffffffffffffffffffffff161461062e5760405162461bcd60e51b815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610110565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8716908690604051610665919061176b565b60006040518083038185875af1925050503d80600081146106a2576040519150601f19603f3d011682016040523d82523d6000602084013e6106a7565b
385606091505b505090508061071e5760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c65640000000000000000000000006064820152608401610110565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e63187878760405161077f939291906117d0565b60405180910390a350505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff161561081c5760405162461bcd60e51b815260206004820152602660248201527f436f6e74726163742068617320616c7265616479206265656e20696e6974696160448201527f6c697a65642e00000000000000000000000000000000000000000000000000006064820152608401610110565b6000805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b333b156108be5760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610110565b6108ce8686333388888888610d77565b505050505050565b6108e68787338888888888610d77565b50505050505050565b61093133858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ce92505050565b50505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661096f60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a0f5760405162461bcd60e51b815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e746963617465640000000000000000000000000000000000006064820152608401610110565b8073ffffffffffffffffffffffffffffffffffffffff16610a4560005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610a8a57600080fd5b505afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061174e565b73ffffffffffffffffffffffffffffffffffffffff1614610b4b5760405162461bcd60e51b815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610110565b73ffffffffffffffffffffffffffffffffffffffff8089166000908152600260209081526040808320938b1683529290522054610b89908590611822565b73ffffffffffffffffffffffffffffffffffffffff808a166000818152600260209081526040808320948d1683529390529190912091909155610bcd908686610f27565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b388888888604051610c479493929190611839565b60405180910390a45050505050505050565b333b15610ca85760405162461bcd60e51b815260206004820152600f60248201527f4163636f756e74206e6f7420454f4100000000000000000000000000000000006044820152606401610110565b610cea33338585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102ce92505050565b505050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610d4990869085908790600401611879565b600060405180830381600087803b158015610d6357600080fd5b505af11580156108e6573d6000803e3d6000fd5b610d9973ffffffffffffffffffffffffffffffffffffffff8916873087610ffb565b600063662a633a60e01b89898989898888604051602401610dc097969594939291906118be565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152600154909150610e649073ffffffffffffffffffffffffffffffffffffffff168583610cef565b73ffffffffffffffffffffffffffffffffffffffff808a166000908152600260209081526040808320938c1683529290522054610ea290869061191b565b73ffffffffffffffffffffffffffffffffffffffff808b1660008181526002602090815260408083208e86168085529252918290209490945551918a1692917f718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d039690610f14908b908b908a908a90611839565b60405180910390a4505050505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610cea9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611059565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526109319085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610f79565b60006110bb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661114b9092919063ffffffff16565b805190915015610cea57808060200190518101906110d99190611933565b610cea5760405162461bcd60e51b8152
38560206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610110565b606061115a8484600085611164565b90505b9392505050565b6060824710156111dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610110565b843b61122a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610110565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611253919061176b565b60006040518083038185875af1925050503d8060008114611290576040519150601f19603f3d011682016040523d82523d6000602084013e611295565b606091505b50915091506112a58282866112b0565b979650505050505050565b606083156112bf57508161115d565b8251156112cf5782518084602001fd5b8160405162461bcd60e51b81526004016101109190611955565b73ffffffffffffffffffffffffffffffffffffffff8116811461130b57600080fd5b50565b60008083601f84011261132057600080fd5b50813567ffffffffffffffff81111561133857600080fd5b60208301915083602082850101111561135057600080fd5b9250929050565b60008060008060006080868803121561136f57600080fd5b853561137a816112e9565b9450602086013561138a816112e9565b935060408601359250606086013567ffffffffffffffff8111156113ad57600080fd5b6113b98882890161130e565b969995985093965092949392505050565b600080604083850312156113dd57600080fd5b82356113e8816112e9565b915060208301356113f8816112e9565b809150509250929050565b803563ffffffff8116811461141757600080fd5b919050565b60008060008060008060a0878903121561143557600080fd5b8635611440816112e9565b95506020870135611450816112e9565b94506040870135935061146560608801611403565b9250608087013567ffffffffffffffff81111561148157600080fd5b61148d89828a0161130e565b979a9699509497509295939492505050565b600080600080600080600060c0888a0312156114ba57600080fd5b87356114c5816112e9565b965060208801356114d5816112e9565b955060408801356114e5816112e9565b9450606088013593506114fa60808901611403565b925060a088013567ffffffffffffffff81111561151657600080fd5b6115228a828b0161130e565b989b979a50959850939692959293505050565b6000806000806060858703121561154b57600080fd5b8435611556816112e9565b935061156460208601611403565b9250604085013567ffffffffffffffff81111561158057600080fd5b61158c8782880161130e565b95989497509550505050565b600080600080600080600060c0888a0312156115b357600080fd5b87356115be816112e9565b965060208801356115ce816112e9565b955060408801356115de816112e9565b945060608801356115ee816112e9565b93506080880135925060a088013567ffffffffffffffff81111561151657600080fd5b60008060006040848603121561162657600080fd5b61162f84611403565b9250602084013567ffffffffffffffff81111561164b57600080fd5b6116578682870161130e565b9497909650939450505050565b60005b8381101561167f578181015183820152602001611667565b838111156109315750506000910152565b600081518084526116a8816020860160208601611664565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff80891683528088166020840152808716604084015280861660608401525083608083015260c060a083015261172960c0830184611690565b98975050505050505050565b82815260406020820152600061115a6040830184611690565b60006020828403121561176057600080fd5b815161115d816112e9565b6000825161177d818460208701611664565b9
385190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006117ea604083018486611787565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015611834576118346117f3565b500390565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015260606040820152600061186f606083018486611787565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006118a86060830185611690565b905063ffffffff83166040830152949350505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261190e60c083018486611787565b9998505050505050505050565b6000821982111561192e5761192e6117f3565b500190565b60006020828403121561194557600080fd5b8151801515811461115d57600080fd5b60208152600061115d602083018461169056fea26469706673582212209e8d495a5c754054f8fb1569a883aab4029fddac8f25cf6ce1219795b06797ad64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},71750:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"CanonicalTransactionChain","sourceName":"contracts/L1/rollup/CanonicalTransactionChain.sol","abi":[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"},{"internalType":"uint256","name":"_maxTransactionGasLimit","type":"uint256"},{"internalType":"uint256","name":"_l2GasDiscountDivisor","type":"uint256"},{"internalType":"uint256","name":"_enqueueGasCost","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"l2GasDiscountDivisor","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"enqueueGasCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"enqueueL2GasPrepaid","type":"uint256"}],"name":"L2GasParamsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_startingQueueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_numQueueElements","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalElements","type":"uint256"}],"name":"QueueBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_startingQueueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_numQueueElements","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalElements","type":"uint256"}],"name":"SequencerBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_batchSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_prevTotalElements","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"TransactionBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1TxOrigin","type":"address"},{"indexed":true,"internalType":"address","name":"_target","type":"address"},{"indexed":false,"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"_queueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"TransactionEnqueued","type":"event"},{"inputs":[],"name":"MAX_ROLLUP_TX_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_ROLLUP_TX_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"appendSequencerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[],"name":"batches","outputs":[{"internalType":"contract IChainStorageContainer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"enqueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enqueueGasCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enqueueL2GasPrepaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastBlockNumber","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastTimestamp","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextQueueIndex","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumPendingQueueElements","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getQueueElement","outputs":[{"components":[{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint40","name":"timestamp","type":"uint40"},{"internalType":"uint40","name":"blockNumber","type":"uint40"}],"internalType":"struct Lib_OVMCodec.QueueElement","name":"_element","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getQueueLength","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBatches","outputs":[{"internalType":"uint256","name":"_totalBatches","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalElements","outputs":[{"internalType":"uint256","name":"_totalElements","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2GasDiscountDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionGasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_l2GasDiscountDivisor","type":"uint256"},{"internalType":"uint256","name":"_enqueueGasCost","type":"uint256"}],"name":"setGasParams","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5060405162001a9838038062001a9883398101604081905261003191610072565b600080546001600160a01b0319166001600160a01b03861617905560048390556002829055600181905561006581836100bd565b600355506100ea92505050565b6000806000806080858703121561008857600080fd5b84516001600160a01b038116811461009f57600080fd5b60208601516040870151606090970151919890975090945092505050565b60008160001904831182151516156100e557634e487b7160e01b600052601160045260246000fd5b500290565b61199e80620000fa6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063876ed5cb116100cd578063d0f8934411610081578063e654b1fb11610066578063e654b1fb146102c0578063edcc4a45146102c9578063f722b41a146102dc57600080fd5b8063d0f89344146102b0578063e561dddc146102b857600080fd5b8063b8f77005116100b2578063b8f7700514610297578063ccf987c81461029f578063cfdf677e146102a857600080fd5b8063876ed5cb146102855780638d38c6c11461028e57600080fd5b80635ae6256d1161012457806378f4b2f21161010957806378f4b2f2146102645780637a167a8a1461026e5780637aa63a861461027d57600080fd5b80635ae6256d146102475780636fee07e01461024f57600080fd5b80632a7f18be116101555780632a7f18be146101d25780633789977014610216578063461a44781461023457600080fd5b80630b3dfa9714610171578063299ca4781461018d575b600080fd5b61017a60035481565b6040519081526020015b60405180910390f35b6000546101ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610184565b6101e56101e03660046113e5565b6102e4565b604080518251815260208084015164ffffffffff908116918301919091529282015190921690820152606001610184565b61021e610362565b60405164ffffffffff9091168152602001610184565b6101ad6102423
385660046114c1565b610376565b61021e610423565b61026261025d366004611537565b610437565b005b61017a620186a081565b60055464ffffffffff1661021e565b61017a610899565b61017a61c35081565b61017a60045481565b60065461021e565b61017a60025481565b6101ad6108b4565b6102626108dc565b61017a610df8565b61017a60015481565b6102626102d73660046115a4565b610e7f565b61021e611016565b604080516060810182526000808252602082018190529181019190915260068281548110610314576103146115c6565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401949094526501000000000090049092169181019190915292915050565b60008061036d611032565b50949350505050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906103cd908590600401611660565b60206040518083038186803b1580156103e557600080fd5b505afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d919061167a565b92915050565b60008061042e611032565b95945050505050565b61c350815111156104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f5472616e73616374696f6e20646174612073697a652065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e00000060648201526084015b60405180910390fd5b600454821115610561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f5472616e73616374696f6e20676173206c696d69742065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e00000060648201526084016104c6565b620186a08210156105f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f60448201527f20656e71756575652e000000000000000000000000000000000000000000000060648201526084016104c6565b6003548211156106dc5760006002546003548461061191906116c6565b61061b91906116dd565b905060005a90508181116106b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60448201527f6974696e67206275726e2e00000000000000000000000000000000000000000060648201526084016104c6565b60005b825a6106c090846116c6565b10156106d857806106d081611718565b9150506106b4565b5050505b6000333214156106ed575033610706565b5033731111000000000000000000000000000000001111015b60008185858560405160200161071f9493929190611751565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060608401835280845264ffffffffff42811692850192835243811693850193845260068054600181810183556000838152975160029092027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81019290925594517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910180549651841665010000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090971691909316179490941790559154919350610825916116c6565b9050808673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb58888426040516108899392919061179a565b60405180910390a4505050505050565b6000806108a4611032565b50505064ffffffffff1692915050565b60006108d760405180606001604052806021815260200161194860219139610376565b905090565b60043560d81c60093560e890811c90600c35901c6108f8610899565b8364ffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60448201527f74206d6174636820657870656374656420737461727420696e6465782e00000060648201526084016104c6565b6109cb6040518060400160405280600d81526020017f4f564d5f53657175656e63657200000000000000000000000000000000000000815250610376565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f68652053657175656e6365722e0000000000000000000000000000000000000060648201526084016104c6565b6000610a9762ffffff831660106117c3565b610aa290600f611800565b905064ffffffffff8116361015610b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f7669646560448201527f642e00000000000000000000000000000000000000000000000000000000000060648201526084016104c6565b600554604080516080810182526000808252602082018190529
3851810182905260608101829052909164ffffffffff169060005b8562ffffff168163ffffffff161015610bcc576000610b928263ffffffff166110ed565b8051909350839150610ba49086611818565b9450826020015184610bb69190611840565b9350508080610bc490611860565b915050610b6e565b5060065464ffffffffff83161115610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f417474656d7074656420746f20617070656e64206d6f726520656c656d656e7460448201527f73207468616e2061726520617661696c61626c6520696e20746865207175657560648201527f652e000000000000000000000000000000000000000000000000000000000000608482015260a4016104c6565b6000610c9d8462ffffff8916611884565b63ffffffff169050600080836020015160001415610cc657505060408201516060830151610d37565b60006006610cd56001886118a9565b64ffffffffff1681548110610cec57610cec6115c6565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401859052650100000000009091041691018190529093509150505b610d5b610d456001436116c6565b408a62ffffff168564ffffffffff168585611174565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f899610d8684876118a9565b84610d8f610899565b6040805164ffffffffff94851681529390921660208401529082015260600160405180910390a15050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff949094169390931790925550505050505050565b6000610e026108b4565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d791906118c7565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee557600080fd5b505afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d919061167a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c792063616c6c61626c6520627920746865204275726e2041646d696e2e60448201526064016104c6565b60018190556002829055610fc581836117c3565b60038190556002546001546040805192835260208301919091528101919091527fc6ed75e96b8b18b71edc1a6e82a9d677f8268c774a262c624eeb2cf0a8b3e07e9060600160405180910390a15050565b6005546006546000916108d79164ffffffffff909116906118a9565b60008060008060006110426108b4565b73ffffffffffffffffffffffffffffffffffffffff1663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b15801561108757600080fd5b505afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf91906118e0565b64ffffffffff602882901c811697605083901c82169750607883901c8216965060a09290921c169350915050565b6111186040518060800160405280600081526020016000815260200160008152602001600081525090565b60006111256010846117c3565b61113090600f611800565b60408051608081018252823560e890811c82526003840135901c6020820152600683013560d890811c92820192909252600b90920135901c60608201529392505050565b600061117e6108b4565b905060008061118b611032565b50509150915060006040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e457600080fd5b505afa1580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c91906118c7565b81526020018a81526020018981526020018464ffffffffff16815260200160405180602001604052806000815250815250905080600001517f127186556e7be68c7e31263195225b4de02820707889540969f62c05cf73525e82602001518360400151846060015185608001516040516112999493929190611922565b60405180910390a260006112ac8261139f565b905060006112e78360400151866112c39190611840565b6112cd8b87611840565b602890811b9190911760508b901b1760788a901b17901b90565b6040517f2015276c000000000000000000000000000000000000000000000000000000008152600481018490527fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008216602482015290915073ffffffffffffffffffffffffffffffffffffffff871690632015276c90604401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b505050505050505050505050505050565b600081602001518260400151836060015184608001
385516040516020016113c89493929190611922565b604051602081830303815290604052805190602001209050919050565b6000602082840312156113f757600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611448576114486113fe565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561148e5761148e6113fe565b816040528093508581528686860111156114a757600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156114d357600080fd5b813567ffffffffffffffff8111156114ea57600080fd5b8201601f810184136114fb57600080fd5b61150a8482356020840161142d565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461153457600080fd5b50565b60008060006060848603121561154c57600080fd5b833561155781611512565b925060208401359150604084013567ffffffffffffffff81111561157a57600080fd5b8401601f8101861361158b57600080fd5b61159a8682356020840161142d565b9150509250925092565b600080604083850312156115b757600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815180845260005b8181101561161b576020818501810151868301820152016115ff565b8181111561162d576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611673602083
38501846115f5565b9392505050565b60006020828403121561168c57600080fd5b815161167381611512565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156116d8576116d8611697565b500390565b600082611713577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561174a5761174a611697565b5060010190565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261179060808301846115f5565b9695505050505050565b8381526060602082015260006117b360608301856115f5565b9050826040830152949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117fb576117fb611697565b500290565b6000821982111561181357611813611697565b500190565b600063ffffffff80831681851680830382111561183757611837611697565b01949350505050565b600064ffffffffff80831681851680830382111561183757611837611697565b600063ffffffff8083168181141561187a5761187a611697565b6001019392505050565b600063ffffffff838116908316818110156118a1576118a1611697565b039392505050565b600064ffffffffff838116908316818110156118a1576118a1611697565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008116811461167357600080fd5b84815283602082015282604082015260806060820152600061179060808301846115f556fe436861696e53746f72616765436f6e7461696e65722d4354432d62617463686573a264697066735822122071f9046c41835cfaa3b888bb4aa8b907bdd46588ad69741847a96bf3fcaad90264736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063876ed5cb116100cd578063d0f8934411610081578063e654b1fb11610066578063e654b1fb146102c0578063edcc4a45146102c9578063f722b41a146102dc57600080fd5b8063d0f89344146102b0578063e561dddc146102b857600080fd5b8063b8f77005116100b2578063b8f7700514610297578063ccf987c81461029f578063cfdf677e146102a857600080fd5b8063876ed5cb146102855780638d38c6c11461028e57600080fd5b80635ae6256d1161012457806378f4b2f21161010957806378f4b2f2146102645780637a167a8a1461026e5780637aa63a861461027d57600080fd5b80635ae6256d146102475780636fee07e01461024f57600080fd5b80632a7f18be116101555780632a7f18be146101d25780633789977014610216578063461a44781461023457600080fd5b80630b3dfa9714610171578063299ca4781461018d575b600080fd5b61017a60035481565b6040519081526020015b60405180910390f35b6000546101ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610184565b6101e56101e03660046113e5565b6102e4565b604080518251815260208084015164ffffffffff908116918301919091529282015190921690820152606001610184565b61021e610362565b60405164ffffffffff9091168152602001610184565b6101ad6102423660046114c1565b610376565b61021e610423565b61026261025d366004611537565b610437565b005b61017a620186a081565b60055464ffffffffff1661021e565b61017a610899565b61017a61c35081565b61017a60045481565b60065461021e565b61017a60025481565b6101ad6108b4565b6102626108dc565b61017a610df8565b61017a60015481565b6102626102d73660046115a4565b610e7f565b61021e611016565b604080516060810182526000808252602082018190529181019190915260068281548110610314576103146115c6565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401949094526501000000000090049092169181019190915292915050565b60008061036d611032565b50949350505050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac1906103cd908590600401611660565b60206040518083038186803b1580156103e557600080fd5b505afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d919061167a565b92915050565b60008061042e611032565b95945050505050565b61c350815111156104cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f5472616e73616374696f6e20646174612073697a652065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e00000060648201526084015b60405180910390fd5b600454821115610561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f5472616e73616374696f6e20676173206c696d69742065786365656473206d6160448201527f78696d756d20666f7220726f6c6c7570207472616e73616374696f6e2e00000060648201526084016104c6565b620186a08210156105f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f60448201527f20656e71756575652e000000000000000000000000000000000000000000000060648201526084016104c6565b6003548211156106dc5760006002546003548461061191906116c6565b61061b91906116dd565b905060005a90508181116106b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60448201527f6974696e67206275726e2e00000000000000000000000000000000000000000060648201526084016104c6565b60005b825a6106c090846116c6565b10156106d857806106d081611718565b9150506106b4565b5050505b6000333214156106ed575033610706565b5033731111000000000000000000000000000000001111015b60008185858560405160200161071f9493929190611751565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012060608401835280845264ffffffffff42811692850192835243811693850193845260068054600181810183556000838152975160029092027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81019290925594517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910180549651841665010000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090971691909316179490941790559154919350610825916116c6565b9050808673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb58888426040516108899392919061179a565b60405180910390a4505050505050565b6000806108a4611032565b50505064ffffffffff1692915050565b60006108d760405180606001604052806021815260200161194860219139610376565b905090565b60043560d81c60093560e890811c90600c35901c6108f8610899565b8364ffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60448201527f74206d6174636820657870656374656420737461727420696e6465782e00000060648201526084016104c6565b6109cb6040518060400160405280600d81526020017f4f564d5f53657175656e63657200000000000000000000000000000000000000815250610376565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f68652053657175656e6365722e0000000000000000000000000000000000000060648201526084016104c6565b6000610a9762ffffff831660106117c3565b610aa290600f611800565b905064ffffffffff8116361015610b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f7669646560448201527f642e00000000000000000000000000000000000000000000000000000000000060648201526084016104c6565b600554604080516080810182526000808252602082018190529
3851810182905260608101829052909164ffffffffff169060005b8562ffffff168163ffffffff161015610bcc576000610b928263ffffffff166110ed565b8051909350839150610ba49086611818565b9450826020015184610bb69190611840565b9350508080610bc490611860565b915050610b6e565b5060065464ffffffffff83161115610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f417474656d7074656420746f20617070656e64206d6f726520656c656d656e7460448201527f73207468616e2061726520617661696c61626c6520696e20746865207175657560648201527f652e000000000000000000000000000000000000000000000000000000000000608482015260a4016104c6565b6000610c9d8462ffffff8916611884565b63ffffffff169050600080836020015160001415610cc657505060408201516060830151610d37565b60006006610cd56001886118a9565b64ffffffffff1681548110610cec57610cec6115c6565b6000918252602091829020604080516060810182526002909302909101805483526001015464ffffffffff808216948401859052650100000000009091041691018190529093509150505b610d5b610d456001436116c6565b408a62ffffff168564ffffffffff168585611174565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f899610d8684876118a9565b84610d8f610899565b6040805164ffffffffff94851681529390921660208401529082015260600160405180910390a15050600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001664ffffffffff949094169390931790925550505050505050565b6000610e026108b4565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610e4757600080fd5b505afa158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d791906118c7565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ee557600080fd5b505afa158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d919061167a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c792063616c6c61626c6520627920746865204275726e2041646d696e2e60448201526064016104c6565b60018190556002829055610fc581836117c3565b60038190556002546001546040805192835260208301919091528101919091527fc6ed75e96b8b18b71edc1a6e82a9d677f8268c774a262c624eeb2cf0a8b3e07e9060600160405180910390a15050565b6005546006546000916108d79164ffffffffff909116906118a9565b60008060008060006110426108b4565b73ffffffffffffffffffffffffffffffffffffffff1663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b15801561108757600080fd5b505afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf91906118e0565b64ffffffffff602882901c811697605083901c82169750607883901c8216965060a09290921c169350915050565b6111186040518060800160405280600081526020016000815260200160008152602001600081525090565b60006111256010846117c3565b61113090600f611800565b60408051608081018252823560e890811c82526003840135901c6020820152600683013560d890811c92820192909252600b90920135901c60608201529392505050565b600061117e6108b4565b905060008061118b611032565b50509150915060006040518060a001604052808573ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e457600080fd5b505afa1580156111f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121c91906118c7565b81526020018a81526020018981526020018464ffffffffff16815260200160405180602001604052806000815250815250905080600001517f127186556e7be68c7e31263195225b4de02820707889540969f62c05cf73525e82602001518360400151846060015185608001516040516112999493929190611922565b60405180910390a260006112ac8261139f565b905060006112e78360400151866112c39190611840565b6112cd8b87611840565b602890811b9190911760508b901b1760788a901b17901b90565b6040517f2015276c000000000000000000000000000000000000000000000000000000008152600481018490527fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008216602482015290915073ffffffffffffffffffffffffffffffffffffffff871690632015276c90604401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b505050505050505050505050505050565b600081602001518260400151836060015184608001
385516040516020016113c89493929190611922565b604051602081830303815290604052805190602001209050919050565b6000602082840312156113f757600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611448576114486113fe565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561148e5761148e6113fe565b816040528093508581528686860111156114a757600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156114d357600080fd5b813567ffffffffffffffff8111156114ea57600080fd5b8201601f810184136114fb57600080fd5b61150a8482356020840161142d565b949350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461153457600080fd5b50565b60008060006060848603121561154c57600080fd5b833561155781611512565b925060208401359150604084013567ffffffffffffffff81111561157a57600080fd5b8401601f8101861361158b57600080fd5b61159a8682356020840161142d565b9150509250925092565b600080604083850312156115b757600080fd5b50508035926020909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815180845260005b8181101561161b576020818501810151868301820152016115ff565b8181111561162d576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611673602083
38501846115f5565b9392505050565b60006020828403121561168c57600080fd5b815161167381611512565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156116d8576116d8611697565b500390565b600082611713577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561174a5761174a611697565b5060010190565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261179060808301846115f5565b9695505050505050565b8381526060602082015260006117b360608301856115f5565b9050826040830152949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117fb576117fb611697565b500290565b6000821982111561181357611813611697565b500190565b600063ffffffff80831681851680830382111561183757611837611697565b01949350505050565b600064ffffffffff80831681851680830382111561183757611837611697565b600063ffffffff8083168181141561187a5761187a611697565b6001019392505050565b600063ffffffff838116908316818110156118a1576118a1611697565b039392505050565b600064ffffffffff838116908316818110156118a1576118a1611697565b6000602082840312156118d957600080fd5b5051919050565b6000602082840312156118f257600080fd5b81517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008116811461167357600080fd5b84815283602082015282604082015260806060820152600061179060808301846115f556fe436861696e53746f72616765436f6e7461696e65722d4354432d62617463686573a264697066735822122071f9046c41835cfaa3b888bb4aa8b907bdd46588ad69741847a96bf3fcaad90264736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},91679:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"ChainStorageContainer","sourceName":"contracts/L1/rollup/ChainStorageContainer.sol","abi":[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"},{"internalType":"string","name":"_owner","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"deleteElementsAfterInclusive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"deleteElementsAfterInclusive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"get","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGlobalMetadata","outputs":[{"internalType":"bytes27","name":"","type":"bytes27"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_object","type":"bytes32"},{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_object","type":"bytes32"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"setGlobalMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60806040523480156200001157600080fd5b50604051620011b3380380620011b3833981016040819052620000349162000129565b600080546001600160a01b0319166001600160a01b0384161790558051620000649060019060208401906200006d565b50505062000266565b8280546200007b9062000229565b90600052602060002090601f0160209004810192826200009f5760008555620000ea565b82601f10620000ba57805160ff1916838001178555620000ea565b82800160010185558215620000ea579182015b82811115620000ea578251825591602001919060010190620000cd565b50620000f8929150620000fc565b5090565b5b8082111
3855620000f85760008155600101620000fd565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200013d57600080fd5b82516001600160a01b03811681146200015557600080fd5b602084810151919350906001600160401b03808211156200017557600080fd5b818601915086601f8301126200018a57600080fd5b8151818111156200019f576200019f62000113565b604051601f8201601f19908116603f01168101908382118183101715620001ca57620001ca62000113565b816040528281528986848701011115620001e357600080fd5b600093505b82841015620002075784840186015181850187015292850192620001e8565b82841115620002195760008684830101525b8096505050505050509250929050565b600181811c908216806200023e57607f821691505b602082108114156200026057634e487b7160e01b600052602260045260246000fd5b50919050565b610f3d80620002766000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063461a4478116100815780639507d39a1161005b5780639507d39a146101a4578063b298e36b146101b7578063ccf8f969146101ca57600080fd5b8063461a4478146101695780634651d91e1461017c5780638da5cb5b1461018f57600080fd5b80632015276c116100b25780632015276c146100fe57806329061de214610111578063299ca4781461012457600080fd5b8063167fd681146100ce5780631f7b6d32146100e3575b600080fd5b6100e16100dc366004610c59565b6101e9565b005b6100eb61034d565b6040519081526020015b60405180910390f35b6100e161010c366004610c59565b610365565b6100e161011f366004610c85565b61043d565b6000546101449073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f5565b610144610177366004610cd6565b610517565b6100e161018a366004610da5565b6105c4565b61019761069b565b6040516100f59190610dbe565b6100eb6101b2366004610da5565b610729565b6100e16101c5366004610da5565b61073d565b6101d2610814565b60405164ffffffffff1990911681526020016100f5565b61027c600180546101f990610e31565b80601f016020809104026020016040519081016040528092919081815260200182805461022590610e31565b80156102725780601f1061024757610100808354040283529160200191610272565b820191906000526020600020905b81548152906001019060200180831161025557829003601f168201915b5050505050610517565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e60648201526084015b60405180910390fd5b61034960028383610825565b5050565b6000610359600261090c565b64ffffffffff16905090565b610375600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043157604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b61034960028383610957565b61044d600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461050957604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b6105146002826109e6565b50565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061056e908590600401610dbe565b60206040518083038186803b15801561058657600080fd5b505afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190610e85565b92915050565b6105d4600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461069057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b610514600282610a47565b600180546106a890610e31565b80601f01602080910402602001604051908101604052809291908181526020018280546106d490610e31565b80156107215780601f106106f657610100808354040283529160200191610721565b820191906000526020600020905b81548152906001019060200180831161070457829003601f168201915b505050505081565b60006105be600264ffffffffff8416610aa4565b61074d600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080957604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e5374
3856f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b610514600282610b73565b60006108206002610bd0565b905090565b600061086784604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050806000015164ffffffffff168364ffffffffff16106108e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e646578206f7574206f6620626f756e64732e0000000000000000000000006044820152606401610334565b64ffffffffff8316815264ffffffffff19821660208201526109068482610c1e565b50505050565b60008061094f83604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b519392505050565b600061099984604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805164ffffffffff16600090815260018601602052604090208490558051909150816109c482610ebb565b64ffffffffff1690525064ffffffffff19821660208201526109068482610c1e565b6000610a2883604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b64ffffffffff19831660208201529050610a428382610c1e565b505050565b6000610a8983604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050610a42828260200151856108259092919063ffffffff16565b600080610ae784604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805190915064ffffffffff168310610b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e646578206f7574206f6620626f756e64732e0000000000000000000000006044820152606401610334565b50506000908152600191909101602052604090205490565b6000610bb583604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050610a42828260200151856109579092919063ffffffff16565b600080610c1383604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b602001519392505050565b8051602082015183548183179291908314610c37578285555b5050505050565b803564ffffffffff1981168114610c5457600080fd5b919050565b60008060408385031215610c6c57600080fd5b82359150610c7c60208401610c3e565b90509250929050565b600060208284031215610c9757600080fd5b610ca082610c3e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610ce857600080fd5b813567ffffffffffffffff80821115610d0057600080fd5b818401915084601f830112610d1457600080fd5b813581811115610d2657610d26610ca7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610d6c57610d6c610ca7565b81604052828152876020848701011115610d8557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610db757600080fd5b5035919050565b600060208083528351808285015260005b81811015610deb57858101830151858201604001528201610dcf565b81811115610dfd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610e4557607f821691505b60208210811415610e7f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060208284031215610e9757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610ca057600080fd5b600064ffffffffff80831681811415610efd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600101939250505056fea2646970667358221220e1995ee56c4c5e67de41c56ad510b16704727d3ab1fa5bb2e3c62b0bd7c0597564736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c8063461a4478116100815780639507d39a1161005b5780639507d39a146101a4578063b298e36b146101b7578063ccf8f969146101ca57600080fd5b8063461a4478146101695780634651d91e1461017c5780638da5cb5b1461018f57600080fd5b80632015276c116100b25780632015276c146100fe57806329061de214610111578063299ca4781461012457600080fd5b8063167fd681146100ce5780631f7b6d32146100e3575b600080fd5b6100e16100dc366004610c59565b6101e9565b005b6100eb61034d565b6040519081526020015b60405180910390f35b6100e161010c366004610c59565b610365565b6100e161011f366004610c85565b61043d565b6000546101449073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f5565b610144610177366004610cd6565b610517565b6100e161018a366004610da5565b6105c4565b61019761069b565b6040516100f59190610dbe565b6100eb6101b2366004610da5565b610729565b6100e16101c5366004610da5565b61073d565b6101d2610814565b60405164ffffffffff1990911681526020016100f5565b61027c600180546101f990610e31565b80601f016020809104026020016040519081016040528092919081815260200182805461022590610e31565b80156102725780601f1061024757610100808354040283529160200191610272565b820191906000526020600020905b81548152906001019060200180831161025557829003601f168201915b5050505050610517565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461033d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e5374
3856f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e60648201526084015b60405180910390fd5b61034960028383610825565b5050565b6000610359600261090c565b64ffffffffff16905090565b610375600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043157604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b61034960028383610957565b61044d600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461050957604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b6105146002826109e6565b50565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061056e908590600401610dbe565b60206040518083038186803b15801561058657600080fd5b505afa15801561059a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105be9190610e85565b92915050565b6105d4600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461069057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b610514600282610a47565b600180546106a890610e31565b80601f01602080910402602001604051908101604052809291908181526020018280546106d490610e31565b80156107215780601f106106f657610100808354040283529160200191610721565b820191906000526020600020905b81548152906001019060200180831161070457829003601f168201915b505050505081565b60006105be600264ffffffffff8416610aa4565b61074d600180546101f990610e31565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080957604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f436861696e53746f72616765436f6e7461696e65723a2046756e6374696f6e2060448201527f63616e206f6e6c792062652063616c6c656420627920746865206f776e65722e6064820152608401610334565b610514600282610b73565b60006108206002610bd0565b905090565b600061086784604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050806000015164ffffffffff168364ffffffffff16106108e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e646578206f7574206f6620626f756e64732e0000000000000000000000006044820152606401610334565b64ffffffffff8316815264ffffffffff19821660208201526109068482610c1e565b50505050565b60008061094f83604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b519392505050565b600061099984604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805164ffffffffff16600090815260018601602052604090208490558051909150816109c482610ebb565b64ffffffffff1690525064ffffffffff19821660208201526109068482610c1e565b6000610a2883604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b64ffffffffff19831660208201529050610a428382610c1e565b505050565b6000610a8983604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050610a42828260200151856108259092919063ffffffff16565b600080610ae784604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b805190915064ffffffffff168310610b5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e646578206f7574206f6620626f756e64732e0000000000000000000000006044820152606401610334565b50506000908152600191909101602052604090205490565b6000610bb583604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b9050610a42828260200151856109579092919063ffffffff16565b600080610c1383604080518082019091526000808252602082015250546040805180820190915264ffffffffff8216815264ffffffffff19909116602082015290565b602001519392505050565b8051602082015183548183179291908314610c37578285555b5050505050565b803564ffffffffff1981168114610c5457600080fd5b919050565b60008060408385031215610c6c57600080fd5b82359150610c7c60208401610c3e565b90509250929050565b600060208284031215610c9757600080fd5b610ca082610c3e565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610ce857600080fd5b813567ffffffffffffffff80821115610d0057600080fd5b818401915084601f830112610d1457600080fd5b813581811115610d2657610d26610ca7565b
385604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610d6c57610d6c610ca7565b81604052828152876020848701011115610d8557600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610db757600080fd5b5035919050565b600060208083528351808285015260005b81811015610deb57858101830151858201604001528201610dcf565b81811115610dfd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610e4557607f821691505b60208210811415610e7f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600060208284031215610e9757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff81168114610ca057600080fd5b600064ffffffffff80831681811415610efd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600101939250505056fea2646970667358221220e1995ee56c4c5e67de41c56ad510b16704727d3ab1fa5bb2e3c62b0bd7c0597564736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},25999:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"ICanonicalTransactionChain","sourceName":"contracts/L1/rollup/ICanonicalTransactionChain.sol","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"l2GasDiscountDivisor","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"enqueueGasCost","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"enqueueL2GasPrepaid","type":"uint256"}],"name":"L2GasParamsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_startingQueueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_numQueueElements","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalElements","type":"uint256"}],"name":"QueueBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_startingQueueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_numQueueElements","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalElements","type":"uint256"}],"name":"SequencerBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_batchSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_prevTotalElements","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"TransactionBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1TxOrigin","type":"address"},{"indexed":true,"internalType":"address","name":"_target","type":"address"},{"indexed":false,"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"_queueIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"TransactionEnqueued","type":"event"},{"inputs":[],"name":"appendSequencerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"batches","outputs":[{"internalType":"contract IChainStorageContainer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"enqueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLastBlockNumber","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastTimestamp","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"}
385,{"inputs":[],"name":"getNextQueueIndex","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumPendingQueueElements","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getQueueElement","outputs":[{"components":[{"internalType":"bytes32","name":"transactionHash","type":"bytes32"},{"internalType":"uint40","name":"timestamp","type":"uint40"},{"internalType":"uint40","name":"blockNumber","type":"uint40"}],"internalType":"struct Lib_OVMCodec.QueueElement","name":"_element","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getQueueLength","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBatches","outputs":[{"internalType":"uint256","name":"_totalBatches","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalElements","outputs":[{"internalType":"uint256","name":"_totalElements","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_l2GasDiscountDivisor","type":"uint256"},{"internalType":"uint256","name":"_enqueueGasCost","type":"uint256"}],"name":"setGasParams","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},48842:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IChainStorageContainer","sourceName":"contracts/L1/rollup/IChainStorageContainer.sol","abi":[{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"deleteElementsAfterInclusive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"deleteElementsAfterInclusive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"get","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGlobalMetadata","outputs":[{"internalType":"bytes27","name":"","type":"bytes27"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"length","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_object","type":"bytes32"},{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_object","type":"bytes32"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes27","name":"_globalMetadata","type":"bytes27"}],"name":"setGlobalMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},57140:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IStateCommitmentChain","sourceName":"contracts/L1/rollup/IStateCommitmentChain.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_batchSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_prevTotalElements","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"StateBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"}],"name":"StateBatchDeleted","type":"event"}
385,{"inputs":[{"internalType":"bytes32[]","name":"_batch","type":"bytes32[]"},{"internalType":"uint256","name":"_shouldStartAtElement","type":"uint256"}],"name":"appendStateBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"}],"name":"deleteStateBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLastSequencerTimestamp","outputs":[{"internalType":"uint256","name":"_lastSequencerTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBatches","outputs":[{"internalType":"uint256","name":"_totalBatches","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalElements","outputs":[{"internalType":"uint256","name":"_totalElements","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"}],"name":"insideFraudProofWindow","outputs":[{"internalType":"bool","name":"_inside","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_element","type":"bytes32"},{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32[]","name":"siblings","type":"bytes32[]"}],"internalType":"struct Lib_OVMCodec.ChainInclusionProof","name":"_proof","type":"tuple"}],"name":"verifyStateCommitment","outputs":[{"internalType":"bool","name":"_verified","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},80196:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"StateCommitmentChain","sourceName":"contracts/L1/rollup/StateCommitmentChain.sol","abi":[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"},{"internalType":"uint256","name":"_fraudProofWindow","type":"uint256"},{"internalType":"uint256","name":"_sequencerPublishWindow","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_batchSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_prevTotalElements","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"StateBatchAppended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"_batchRoot","type":"bytes32"}],"name":"StateBatchDeleted","type":"event"},{"inputs":[],"name":"FRAUD_PROOF_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}
385,{"inputs":[],"name":"SEQUENCER_PUBLISH_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_batch","type":"bytes32[]"},{"internalType":"uint256","name":"_shouldStartAtElement","type":"uint256"}],"name":"appendStateBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"batches","outputs":[{"internalType":"contract IChainStorageContainer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"}],"name":"deleteStateBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLastSequencerTimestamp","outputs":[{"internalType":"uint256","name":"_lastSequencerTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalBatches","outputs":[{"internalType":"uint256","name":"_totalBatches","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalElements","outputs":[{"internalType":"uint256","name":"_totalElements","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"}],"name":"insideFraudProofWindow","outputs":[{"internalType":"bool","name":"_inside","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_element","type":"bytes32"},{"components":[{"internalType":"uint256","name":"batchIndex","type":"uint256"},{"internalType":"bytes32","name":"batchRoot","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"},{"internalType":"uint256","name":"prevTotalElements","type":"uint256"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct Lib_OVMCodec.ChainBatchHeader","name":"_batchHeader","type":"tuple"},{"components":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32[]","name":"siblings","type":"bytes32[]"}],"internalType":"struct Lib_OVMCodec.ChainInclusionProof","name":"_proof","type":"tuple"}],"name":"verifyStateCommitment","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506040516120bb3803806120bb83398101604081905261002f9161005b565b600080546001600160a01b0319166001600160a01b03949094169390931790925560015560025561009e565b60008060006060848
385603121561007057600080fd5b83516001600160a01b038116811461008757600080fd5b602085015160409095015190969495509392505050565b61200e806100ad6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80638ca5cbb911610081578063c17b291b1161005b578063c17b291b146101bb578063cfdf677e146101c4578063e561dddc146101cc57600080fd5b80638ca5cbb9146101805780639418bddd14610195578063b8e189ac146101a857600080fd5b80637aa63a86116100b25780637aa63a86146101595780637ad168a01461016f57806381eb62ef1461017757600080fd5b8063299ca478146100d9578063461a4478146101235780634d69ee5714610136575b600080fd5b6000546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f9610131366004611a1b565b6101d4565b610149610144366004611b8d565b610281565b604051901515815260200161011a565b610161610350565b60405190815260200161011a565b610161610369565b61016160025481565b61019361018e366004611c4a565b610382565b005b6101496101a3366004611c8f565b61075c565b6101936101b6366004611c8f565b610804565b61016160015481565b6100f96109c0565b6101616109e8565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061022b908590600401611d2f565b60206040518083038186803b15801561024357600080fd5b505afa158015610257573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027b9190611d64565b92915050565b600061028c83610a6f565b6102dd5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064015b60405180910390fd5b6102fa836020015185846000015185602001518760400151610b31565b6103465760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420696e636c7573696f6e2070726f6f662e000000000000000060448201526064016102d4565b5060019392505050565b60008061035b610d9f565b5064ffffffffff1692915050565b600080610374610d9f565b64ffffffffff169392505050565b61038a610350565b81146103fe5760405162461bcd60e51b815260206004820152603d60248201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60448201527f74206d6174636820657870656374656420737461727420696e6465782e00000060648201526084016102d4565b61043c6040518060400160405280600b81526020017f426f6e644d616e616765720000000000000000000000000000000000000000008152506101d4565b6040517f02ad4d2a00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff91909116906302ad4d2a9060240160206040518083038186803b1580156104a357600080fd5b505afa1580156104b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104db9190611d81565b61054d5760405162461bcd60e51b815260206004820152602f60248201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60448201527f6c6c61746572616c20706f73746564000000000000000000000000000000000060648201526084016102d4565b60008251116105c45760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460448201527f63682e000000000000000000000000000000000000000000000000000000000060648201526084016102d4565b6106026040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e000000000000008152506101d4565b73ffffffffffffffffffffffffffffffffffffffff16637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b15801561064757600080fd5b505afa15801561065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067f9190611da3565b8251610689610350565b6106939190611deb565b111561072d5760405162461bcd60e51b815260206004820152604960248201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360448201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60648201527f73616374696f6e732e0000000000000000000000000000000000000000000000608482015260a4016102d4565b6040805142602082015233818301528151808203830181526060909101909152610758908390610e43565b5050565b60008082608001518060200190518101906107779190611e03565b509050806107ed5760405162461bcd60e51b815260206004820152602560248201527f4261746368206865616465722074696d657374616d702063616e6e6f7420626560448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016102d456
3855b42600154826107fc9190611deb565b119392505050565b6108426040518060400160405280601181526020017f4f564d5f467261756456657269666965720000000000000000000000000000008152506101d4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108e25760405162461bcd60e51b815260206004820152603b60248201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f6420627920746865204f564d5f467261756456657269666965722e000000000060648201526084016102d4565b6108eb81610a6f565b6109375760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064016102d4565b6109408161075c565b6109b4576040805162461bcd60e51b81526020600482015260248101919091527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f642077697468696e207468652066726175642070726f6f662077696e646f772e60648201526084016102d4565b6109bd816110e6565b50565b60006109e3604051806060016040528060218152602001611fb8602191396101d4565b905090565b60006109f26109c0565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3757600080fd5b505afa158015610a4b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190611da3565b6000610a796109c0565b82516040517f9507d39a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9290921691639507d39a91610ad19160040190815260200190565b60206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190611da3565b610b2a83611317565b1492915050565b6000808211610ba85760405162461bcd60e51b815260206004820152603760248201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360448201527f742062652067726561746572207468616e207a65726f2e00000000000000000060648201526084016102d4565b818410610c1c5760405162461bcd60e51b8152602060048201526024808201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f7560448201527f6e64732e0000000000000000000000000000000000000000000000000000000060648201526084016102d4565b610c258261135d565b835114610cc05760405162461bcd60e51b815260206004820152604d60248201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460448201527f6f
3856573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060648201527f746f74616c206c65617665732e00000000000000000000000000000000000000608482015260a4016102d4565b8460005b8451811015610d92578560011660011415610d2b57848181518110610ceb57610ceb611e33565b602002602001015182604051602001610d0e929190918252602082015260400190565b604051602081830303815290604052805190602001209150610d79565b81858281518110610d3e57610d3e611e33565b6020026020010151604051602001610d60929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60019590951c9480610d8a81611e62565b915050610cc4565b5090951495945050505050565b6000806000610dac6109c0565b73ffffffffffffffffffffffffffffffffffffffff1663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190611e9b565b64ffffffffff602882901c169460509190911c9350915050565b6000610e836040518060400160405280600c81526020017f4f564d5f50726f706f73657200000000000000000000000000000000000000008152506101d4565b9050600080610e90610d9f565b90925090503373ffffffffffffffffffffffffffffffffffffffff84161415610eba575042610f69565b426002548264ffffffffff16610ed09190611deb565b10610f695760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960448201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460648201527f6f772e0000000000000000000000000000000000000000000000000000000000608482015260a4016102d4565b60006040518060a00160405280610f7e6109e8565b8152602001610f8c88611443565b8152602001875181526020018464ffffffffff16815260200186815250905080600001517f16be4c5129a4e03cf3350262e181dc02ddfb4a6008d925368c0899fcd97ca9c58260200151836040015184606001518560800151604051610ff59493929190611edd565b60405180910390a26110056109c0565b73ffffffffffffffffffffffffffffffffffffffff16632015276c61102983611317565b61104e846040015185606001516110409190611deb565b602887811b91909117901b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092527fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000166024820152604401600060405180830381600087803b1580156110c657600080fd5b505af11580156110da573d6000803e3d6000fd5b50505050505050505050565b6110ee6109c0565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190611da3565b8151106111ba5760405162461bcd60e51b815260206004820152601460248201527f496e76616c696420626174636820696e6465782e00000000000000000000000060448201526064016102d4565b6111c381610a6f565b61120f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064016102d4565b6112176109c0565b8151606083015173ffffffffffffffffffffffffffffffffffffffff929092169163167fd681919060281b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092527fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000166024820152604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b5050505080600001517f8747b69ce8fdb31c3b9b0a67bd8049ad8c1a69ea417b69b12174068abd9cbd64826020015160405161130c91815260200190565b60405180910390a250565b600081602001518260400151836060015184608001516040516020016113409493929190611edd565b604051602081830303815290604052805190602001209050919050565b60008082116113d45760405162461bcd60e51b815260206004820152603060248201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360448201527f65696c286c6f675f3229206f6620302e0000000000000000000000000000000060648201526084016102d4565b81600114156113e557506000919050565b81600060805b600181106114235780611401600180831b611f0c565b901b83161561141b576114148183611deb565b92811c9291505b60011c6113eb565b506001811b841461143c57611439600182611deb565b90505b9392505050565b6000808251116114bb5760405162461bcd60e51b815260206004820152603460248201527f4c69625f4d65726b6c65547265653a204d7573742070726f766964652061742060448201527f6c65617374206f6e65206c65616620686173682e00000000000000000000000060648201526084016102d456
3855b8151600114156114e757816000815181106114d8576114d8611e33565b60200260200101519050919050565b60408051610200810182527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56381527f633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d60208201527f890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d818301527f3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd86060808301919091527fecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da60808301527fdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da560a08301527f617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d760c08301527f292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead60e08301527fe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e106101008301527f7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f826101208301527fe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e836365166101408301527f3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c6101608301527fad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e6101808301527fa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab6101a08301527f4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c8626101c08301527f2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf106101e083015282518381529081018352909160009190602082018180368337505085519192506000918291508180805b60018411156118fd57611798600285611f52565b91506117a5600285611f66565b600114905060005b82811015611851578a6117c1826002611f7a565b815181106117d1576117d1611e33565b602002602001015196508a8160026117e99190611f7a565b6117f4906001611deb565b8151811061180457611804611e33565b6020026020010151955086602089015285604089015287805190602001208b828151811061183457611834611e33565b60209081029190910101528061184981611e62565b9150506117ad565b5080156118cd5789611864600186611f0c565b8151811061187457611874611e33565b6020026020010151955087836010811061189057611890611e33565b602002015160001b945085602088015284604088015286805190602001208a83815181106118c0576118c0611e33565b6020026020010181815250505b806118d95760006118dc565b60015b6118e99060ff1683611deb565b9350826118f581611e62565b935050611784565b8960008151811061191057611910611e33565b602002602001015198505050505050505050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561199d5761199d611927565b604052919050565b600067ffffffffffffffff8311156119bf576119bf611927565b6119f060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601611956565b9050828152838383011115611a0457600080fd5b828260208301376000602084830101529392505050565b600060208284031215611a2d57600080fd5b813567ffffffffffffffff811115611a4457600080fd5b8201601f81018413611a5557600080fd5b611a64848235602084016119a5565b949350505050565b600060a08284031215611a7e57600080fd5b60405160a0810167ffffffffffffffff8282108183111715611aa257611aa2611927565b81604052829350843583526020850135602084015260408501356040840152606085013560608401526080850135915080821115611adf57600080fd5b508301601f81018513611af157600080fd5b611b00858235602084016119a5565b6080830152505092915050565b600082601f830112611b1e57600080fd5b8135602067ffffffffffffffff821115611b3a57611b3a611927565b8160051b611b49828201611956565b9283528481018201928281019087851115611b6357600080fd5b83870192505b84831015611b8257823582529183019190830190611b69565b979650505050505050565b60008060006060848
3856031215611ba257600080fd5b83359250602084013567ffffffffffffffff80821115611bc157600080fd5b611bcd87838801611a6c565b93506040860135915080821115611be357600080fd5b9085019060408288031215611bf757600080fd5b604051604081018181108382111715611c1257611c12611927565b60405282358152602083013582811115611c2b57600080fd5b611c3789828601611b0d565b6020830152508093505050509250925092565b60008060408385031215611c5d57600080fd5b823567ffffffffffffffff811115611c7457600080fd5b611c8085828601611b0d565b95602094909401359450505050565b600060208284031215611ca157600080fd5b813567ffffffffffffffff811115611cb857600080fd5b611a6484828501611a6c565b6000815180845260005b81811015611cea57602081850181015186830182015201611cce565b81811115611cfc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061143c6020830184611cc4565b73ffffffffffffffffffffffffffffffffffffffff811681146109bd57600080fd5b600060208284031215611d7657600080fd5b815161143c81611d42565b600060208284031215611d9357600080fd5b8151801515811461143c57600080fd5b600060208284031215611db557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611dfe57611dfe611dbc565b500190565b60008060408385031215611e1657600080fd5b825191506020830151611e2881611d42565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e9457611e94611dbc565b5060010190565b600060208284031215611ead57600080fd5b81517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008116811461143c57600080fd5b848152836020820152826040820152608060608201526000611f026080830184611cc4565b9695505050505050565b600082821015611f1e57611f1e611dbc565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611f6157611f61611f23565b500490565b600082611f7557611f75611f23565b500690565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611fb257611fb2611dbc565b50029056fe436861696e53746f72616765436f6e7461696e65722d5343432d62617463686573a26469706673582212209fa13437d607d4f762adfcb0d6685a91847a6cbe7462977fd99188a01185f7b564736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80638ca5cbb911610081578063c17b291b1161005b578063c17b291b146101bb578063cfdf677e146101c4578063e561dddc146101cc57600080fd5b80638ca5cbb9146101805780639418bddd14610195578063b8e189ac146101a857600080fd5b80637aa63a86116100b25780637aa63a86146101595780637ad168a01461016f57806381eb62ef1461017757600080fd5b8063299ca478146100d9578063461a4478146101235780634d69ee5714610136575b600080fd5b6000546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f9610131366004611a1b565b6101d4565b610149610144366004611b8d565b610281565b604051901515815260200161011a565b610161610350565b60405190815260200161011a565b610161610369565b61016160025481565b61019361018e366004611c4a565b610382565b005b6101496101a3366004611c8f565b61075c565b6101936101b6366004611c8f565b610804565b61016160015481565b6100f96109c0565b6101616109e8565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061022b908590600401611d2f565b60206040518083038186803b15801561024357600080fd5b505afa158015610257573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027b9190611d64565b92915050565b600061028c83610a6f565b6102dd5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064015b60405180910390fd5b6102fa836020015185846000015185602001518760400151610b31565b6103465760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420696e636c7573696f6e2070726f6f662e000000000000000060448201526064016102d4565b5060019392505050565b60008061035b610d9f565b5064ffffffffff1692915050565b600080610374610d9f565b64ffffffffff169392505050565b61038a610350565b81146103fe5760405162461bcd60e51b8152
38560206004820152603d60248201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60448201527f74206d6174636820657870656374656420737461727420696e6465782e00000060648201526084016102d4565b61043c6040518060400160405280600b81526020017f426f6e644d616e616765720000000000000000000000000000000000000000008152506101d4565b6040517f02ad4d2a00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff91909116906302ad4d2a9060240160206040518083038186803b1580156104a357600080fd5b505afa1580156104b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104db9190611d81565b61054d5760405162461bcd60e51b815260206004820152602f60248201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60448201527f6c6c61746572616c20706f73746564000000000000000000000000000000000060648201526084016102d4565b60008251116105c45760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460448201527f63682e000000000000000000000000000000000000000000000000000000000060648201526084016102d4565b6106026040518060400160405280601981526020017f43616e6f6e6963616c5472616e73616374696f6e436861696e000000000000008152506101d4565b73ffffffffffffffffffffffffffffffffffffffff16637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b15801561064757600080fd5b505afa15801561065b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067f9190611da3565b8251610689610350565b6106939190611deb565b111561072d5760405162461bcd60e51b815260206004820152604960248201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360448201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60648201527f73616374696f6e732e0000000000000000000000000000000000000000000000608482015260a4016102d4565b6040805142602082015233818301528151808203830181526060909101909152610758908390610e43565b5050565b60008082608001518060200190518101906107779190611e03565b509050806107ed5760405162461bcd60e51b815260206004820152602560248201527f4261746368206865616465722074696d657374616d702063616e6e6f7420626560448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016102d4565b42600154826107fc9190611deb565b119392505050565b6108426040518060400160405280601181526020017f4f564d5f467261756456657269666965720000000000000000000000000000008152506101d4565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108e25760405162461bcd60e51b815260206004820152603b60248201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f6420627920746865204f564d5f467261756456657269666965722e000000000060648201526084016102d4565b6108eb81610a6f565b6109375760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064016102d4565b6109408161075c565b6109b4576040805162461bcd60e51b81526020600482015260248101919091527f537461746520626174636865732063616e206f6e6c792062652064656c65746560448201527f642077697468696e207468652066726175642070726f6f662077696e646f772e60648201526084016102d4565b6109bd816110e6565b50565b60006109e3604051806060016040528060218152602001611fb8602191396101d4565b905090565b60006109f26109c0565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3757600080fd5b505afa158015610a4b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e39190611da3565b6000610a796109c0565b82516040517f9507d39a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9290921691639507d39a91610ad19160040190815260200190565b60206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b219190611da3565b610b2a83611317565b1492915050565b6000808211610ba85760405162461bcd60e51b815260206004820152603760248201527f4c69625f4d65726b6c65547265653a20546f74616c206c6561766573206d757360448201527f742062652067726561746572207468616e207a65726f2e00000000000000000060648201526084016102d456
3855b818410610c1c5760405162461bcd60e51b8152602060048201526024808201527f4c69625f4d65726b6c65547265653a20496e646578206f7574206f6620626f7560448201527f6e64732e0000000000000000000000000000000000000000000000000000000060648201526084016102d4565b610c258261135d565b835114610cc05760405162461bcd60e51b815260206004820152604d60248201527f4c69625f4d65726b6c65547265653a20546f74616c207369626c696e6773206460448201527f6f6573206e6f7420636f72726563746c7920636f72726573706f6e6420746f2060648201527f746f74616c206c65617665732e00000000000000000000000000000000000000608482015260a4016102d4565b8460005b8451811015610d92578560011660011415610d2b57848181518110610ceb57610ceb611e33565b602002602001015182604051602001610d0e929190918252602082015260400190565b604051602081830303815290604052805190602001209150610d79565b81858281518110610d3e57610d3e611e33565b6020026020010151604051602001610d60929190918252602082015260400190565b6040516020818303038152906040528051906020012091505b60019590951c9480610d8a81611e62565b915050610cc4565b5090951495945050505050565b6000806000610dac6109c0565b73ffffffffffffffffffffffffffffffffffffffff1663ccf8f9696040518163ffffffff1660e01b815260040160206040518083038186803b158015610df157600080fd5b505afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e299190611e9b565b64ffffffffff602882901c169460509190911c9350915050565b6000610e836040518060400160405280600c81526020017f4f564d5f50726f706f73657200000000000000000000000000000000000000008152506101d4565b9050600080610e90610d9f565b90925090503373ffffffffffffffffffffffffffffffffffffffff84161415610eba575042610f69565b426002548264ffffffffff16610ed09190611deb565b10610f695760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960448201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460648201527f6f772e0000000000000000000000000000000000000000000000000000000000608482015260a4016102d4565b60006040518060a00160405280610f7e6109e8565b8152602001610f8c88611443565b8152602001875181526020018464ffffffffff16815260200186815250905080600001517f16be4c5129a4e03cf3350262e181dc02ddfb4a6008d925368c0899fcd97ca9c58260200151836040015184606001518560800151604051610ff59493929190611edd565b60405180910390a26110056109c0565b73ffffffffffffffffffffffffffffffffffffffff16632015276c61102983611317565b61104e846040015185606001516110409190611deb565b602887811b91909117901b90565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092527fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000166024820152604401600060405180830381600087803b1580156110c657600080fd5b505af11580156110da573d6000803e3d6000fd5b50505050505050505050565b6110ee6109c0565b73ffffffffffffffffffffffffffffffffffffffff16631f7b6d326040518163ffffffff1660e01b815260040160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190611da3565b8151106111ba5760405162461bcd60e51b815260206004820152601460248201527f496e76616c696420626174636820696e6465782e00000000000000000000000060448201526064016102d4565b6111c381610a6f565b61120f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206261746368206865616465722e000000000000000000000060448201526064016102d4565b6112176109c0565b8151606083015173ffffffffffffffffffffffffffffffffffffffff929092169163167fd681919060281b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092527fffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000166024820152604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b5050505080600001517f8747b69ce8fdb31c3b9b0a67bd8049ad8c1a69ea417b69b12174068abd9cbd64826020015160405161130c91815260200190565b60405180910390a250565b600081602001518260400151836060015184608001516040516020016113409493929190611edd565b604051602081830303815290604052805190602001209050919050565b60008082116113d45760405162461bcd60e51b815260206004820152603060248201527f4c69625f4d65726b6c65547265653a2043616e6e6f7420636f6d70757465206360448201527f65696c286c6f675f3229206f6620302e0000000000000000000000000000000060648201526084016102d456
3855b81600114156113e557506000919050565b81600060805b600181106114235780611401600180831b611f0c565b901b83161561141b576114148183611deb565b92811c9291505b60011c6113eb565b506001811b841461143c57611439600182611deb565b90505b9392505050565b6000808251116114bb5760405162461bcd60e51b815260206004820152603460248201527f4c69625f4d65726b6c65547265653a204d7573742070726f766964652061742060448201527f6c65617374206f6e65206c65616620686173682e00000000000000000000000060648201526084016102d4565b8151600114156114e757816000815181106114d8576114d8611e33565b60200260200101519050919050565b60408051610200810182527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56381527f633dc4d7da7256660a892f8f1604a44b5432649cc8ec5cb3ced4c4e6ac94dd1d60208201527f890740a8eb06ce9be422cb8da5cdafc2b58c0a5e24036c578de2a433c828ff7d818301527f3b8ec09e026fdc305365dfc94e189a81b38c7597b3d941c279f042e8206e0bd86060808301919091527fecd50eee38e386bd62be9bedb990706951b65fe053bd9d8a521af753d139e2da60808301527fdefff6d330bb5403f63b14f33b578274160de3a50df4efecf0e0db73bcdd3da560a08301527f617bdd11f7c0a11f49db22f629387a12da7596f9d1704d7465177c63d88ec7d760c08301527f292c23a9aa1d8bea7e2435e555a4a60e379a5a35f3f452bae60121073fb6eead60e08301527fe1cea92ed99acdcb045a6726b2f87107e8a61620a232cf4d7d5b5766b3952e106101008301527f7ad66c0a68c72cb89e4fb4303841966e4062a76ab97451e3b9fb526a5ceb7f826101208301527fe026cc5a4aed3c22a58cbd3d2ac754c9352c5436f638042dca99034e836365166101408301527f3d04cffd8b46a874edf5cfae63077de85f849a660426697b06a829c70dd1409c6101608301527fad676aa337a485e4728a0b240d92b3ef7b3c372d06d189322bfd5f61f1e7203e6101808301527fa2fca4a49658f9fab7aa63289c91b7c7b6c832a6d0e69334ff5b0a3483d09dab6101a08301527f4ebfd9cd7bca2505f7bef59cc1c12ecc708fff26ae4af19abe852afe9e20c8626101c08301527f2def10d13dd169f550f578bda343d9717a138562e0093b380a1120789d53cf106101e083015282518381529081018352909160009190602082018180368337505085519192506000918291508180805b60018411156118fd57611798600285611f52565b91506117a5600285611f66565b600114905060005b82811015611851578a6117c1826002611f7a565b815181106117d1576117d1611e33565b602002602001015196508a8160026117e99190611f7a565b6117f4906001611deb565b8151811061180457611804611e33565b6020026020010151955086602089015285604089015287805190602001208b828151811061183457611834611e33565b60209081029190910101528061184981611e62565b9150506117ad565b5080156118cd5789611864600186611f0c565b8151811061187457611874611e33565b6020026020010151955087836010811061189057611890611e33565b602002015160001b945085602088015284604088015286805190602001208a83815181106118c0576118c0611e33565b6020026020010181815250505b806118d95760006118dc565b60015b6118e99060ff1683611deb565b9350826118f581611e62565b935050611784565b8960008151811061191057611910611e33565b602002602001015198505050505050505050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561199d5761199d611927565b604052919050565b600067ffffffffffffffff8311156119bf576119bf611927565b6119f060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86011601611956565b9050828152838383011115611a0457600080fd5b828260208301376000602084830101529392505050565b600060208284031215611a2d57600080fd5b813567ffffffffffffffff811115611a4457600080fd5b8201601f81018413611a5557600080fd5b611a64848235602084016119a5565b949350505050565b600060a08284031215611a7e57600080fd5b60405160a0810167ffffffffffffffff8282108183111715611aa257611aa2611927565b81604052829350843583526020850135602084015260408501356040840152606085013560608401526080850135915080821115611adf57600080fd5b508301601f81018513611af157600080fd5b611b00858235602084016119a5565b6080830152505092915050565b600082601f830112611b1e57600080fd5b8135602067ffffffffffffffff821115611b3a57611b3a611927565b8160051b611b49828201611956565b9283528481018201928281019087851115611b6357600080fd5b83870192505b84831015611b8257823582529183019190830190611b69565b979650505050505050565b60008060006060848
3856031215611ba257600080fd5b83359250602084013567ffffffffffffffff80821115611bc157600080fd5b611bcd87838801611a6c565b93506040860135915080821115611be357600080fd5b9085019060408288031215611bf757600080fd5b604051604081018181108382111715611c1257611c12611927565b60405282358152602083013582811115611c2b57600080fd5b611c3789828601611b0d565b6020830152508093505050509250925092565b60008060408385031215611c5d57600080fd5b823567ffffffffffffffff811115611c7457600080fd5b611c8085828601611b0d565b95602094909401359450505050565b600060208284031215611ca157600080fd5b813567ffffffffffffffff811115611cb857600080fd5b611a6484828501611a6c565b6000815180845260005b81811015611cea57602081850181015186830182015201611cce565b81811115611cfc576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061143c6020830184611cc4565b73ffffffffffffffffffffffffffffffffffffffff811681146109bd57600080fd5b600060208284031215611d7657600080fd5b815161143c81611d42565b600060208284031215611d9357600080fd5b8151801515811461143c57600080fd5b600060208284031215611db557600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115611dfe57611dfe611dbc565b500190565b60008060408385031215611e1657600080fd5b825191506020830151611e2881611d42565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e9457611e94611dbc565b5060010190565b600060208284031215611ead57600080fd5b81517fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008116811461143c57600080fd5b848152836020820152826040820152608060608201526000611f026080830184611cc4565b9695505050505050565b600082821015611f1e57611f1e611dbc565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611f6157611f61611f23565b500490565b600082611f7557611f75611f23565b500690565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611fb257611fb2611dbc565b50029056fe436861696e53746f72616765436f6e7461696e65722d5343432d62617463686573a26469706673582212209fa13437d607d4f762adfcb0d6685a91847a6cbe7462977fd99188a01185f7b564736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},34549:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"BondManager","sourceName":"contracts/L1/verification/BondManager.sol","abi":[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"name":"isCollateralized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5060405161048838038061048883398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103f5806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806302ad4d2a14610046578063299ca4781461006e578063461a4478146100b3575b600080fd5b61005961005436600461020d565b6100c6565b60405190151581526020015b60405180910390f35b60005461008e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610065565b61008e6100c1366004610260565b61013b565b60006101066040518060400160405280600c81526020017f4f564d5f50726f706f736572000000000000000000000000000000000000000081525061013b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061019290859060040161032f565b60206040518083038186803b1580156101aa57600080fd5b505afa1580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e291906103a2565b92915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461020a57600080fd5b50565b60006020828403121561021f57600080fd5b813561022a816101e8565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561027257600080fd5b813567ffffffffffffffff8082111561028a57600080fd5b818401915084601f83011261029e57600080fd5b8135818111156102b0576102b0610231565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102f6576102f6610231565b8160405282815287602084870101111561030f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b8181101561035c57858101830151858201604001528201610340565b8181111561036e576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156103b457600080fd5b815161022a816101e856fea26469706673582212206d45ac9d4da85c7fa5ddf8f46b2c33843e35e585aeabba15cbcdb39ea83ef2e064736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806302ad4d2a14610046578063299ca4781461006e578063461a4478146100b3575b600080fd5b61005961005436600461020d565b6100c6565b60405190151581526020015b60405180910390f35b60005461008e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610065565b61008e6100c1366004610260565b61013b565b60006101066040518060400160405280600c81526020017f4f564d5f50726f706f736572000000000000000000000000000000000000000081525061013b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080546040517fbf40fac100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061019290859060040161032f565b60206040518083038186803b1580156101aa57600080fd5b505afa1580156101be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e291906103a2565b92915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461020a57600080fd5b50565b60006020828403121561021f57600080fd5b813561022a816101e8565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561027257600080fd5b813567ffffffffffffffff8082111561028a57600080fd5b818401915084601f83011261029e57600080fd5b8135818111156102b0576102b0610231565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156102f6576102f6610231565b8160405282815287602084870101111561030f57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b8181101561035c57858101830151858201604001528201610340565b8181111561036e576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b6000602082840312156103b457600080fd5b815161022a816101e856fea26469706673582212206d45ac9d4da85c7fa5ddf8f46b2c33843e35e585aeabba15cbcdb39ea83ef2e064736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},1273:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IBondManager","sourceName":"contracts/L1/verification/IBondManager.sol","abi":[{"input
385s":[{"internalType":"address","name":"_who","type":"address"}],"name":"isCollateralized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},17698:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL2CrossDomainMessenger","sourceName":"contracts/L2/messaging/IL2CrossDomainMessenger.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"FailedRelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"RelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"messageNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"SentMessage","type":"event"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_messageNonce","type":"uint256"}],"name":"relayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},64785:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL2ERC20Bridge","sourceName":"contracts/L2/messaging/IL2ERC20Bridge.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"DepositFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"DepositFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"WithdrawalInitiated","type":"event"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[],"name":"l1TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l1Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l1Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},12420:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L2CrossDomainMessenger","sourceName":"contracts/L2/messaging/L2CrossDomainMessenger.sol","abi":[{"inputs":[{"internalType":"address","name":"_l1CrossDomainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"FailedRelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"RelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"messageNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"SentMessage","type":"event"},{"inputs":[],"name":"l1CrossDomainMessenger","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint256","name":"_messageNonce","type":"uint256"}],"name":"relayMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"relayedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x6080604052600480546001600160a01b03191661dead17905534801561002457600080fd5b50604051610cc3380380610cc383398101604081905261004391610068565b600580546001600160a01b0319166001600160a01b0392909216919091179055610098565b60006020828403121561007a57600080fd5b81516001600160a01b038116811461009157600080fd5b9392505050565b610c1c806100a76000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a71198691161005b578063a71198691461012a578063b1b1b2091461014a578063cbd4ece91461016d578063ecc704281461018057600080fd5b806321d800ec1461008d5780633dbb202b146100c55780636e296e45146100da57806382e3702d14610107575b600080fd5b6100b061009b366004610826565b
38560006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100d86100d3366004610942565b610197565b005b6100e26102e2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100bc565b6100b0610115366004610826565b60026020526000908152604090205460ff1681565b6005546100e29073ffffffffffffffffffffffffffffffffffffffff1681565b6100b0610158366004610826565b60016020526000908152604090205460ff1681565b6100d861017b3660046109ad565b61038b565b61018960035481565b6040519081526020016100bc565b60006101a784338560035461078d565b80516020808301919091206000908152600290915260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fcafa81dc0000000000000000000000000000000000000000000000000000000081529091507342000000000000000000000000000000000000009063cafa81dc9061023c908490600401610a89565b600060405180830381600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385600354866040516102bc9493929190610aa3565b60405180910390a26001600360008282546102d79190610aef565b909155505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff1661dead141561036e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f74207365740060448201526064015b60405180910390fd5b5060045473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff161461046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610365565b60006104788585858561078d565b8051602080830191909120600081815260019092526040909120549192509060ff1615610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff8616734200000000000000000000000000000000000000141561059957600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117905550610787565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff878116919091179091556040516000918816906105f2908790610b2e565b6000604051808303816000865af19150503d806000811461062f576040519150601f19603f3d011682016040523d82523d6000602084013e610634565b606091505b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559050801515600114156106d557600082815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169092179091555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610701565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b600083334360405160200161071893929190610b4a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600090815291829052902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505050505b50505050565b6060848484846040516024016107a69493929190610b9c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b60006020828403121561083857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461086357600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126108a857600080fd5b813567ffffffffffffffff808211156108c3576108c3610868565b604051601f8301
3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561090957610909610868565b8160405283815286602085880101111561092257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561095757600080fd5b6109608461083f565b9250602084013567ffffffffffffffff81111561097c57600080fd5b61098886828701610897565b925050604084013563ffffffff811681146109a257600080fd5b809150509250925092565b600080600080608085870312156109c357600080fd5b6109cc8561083f565b93506109da6020860161083f565b9250604085013567ffffffffffffffff8111156109f657600080fd5b610a0287828801610897565b949793965093946060013593505050565b60005b83811015610a2e578181015183820152602001610a16565b838111156107875750506000910152565b60008151808452610a57816020860160208601610a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a9c6020830184610a3f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000610ad26080830186610a3f565b905083604083015263ffffffff8316606083015295945050505050565b60008219821115610b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251610b40818460208701610a13565b9190910192915050565b60008451610b5c818460208901610a13565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152610bd56080830185610a3f565b90508260608301529594505050505056fea26469706673582212200850448c0279e4b97192d90d3a7dc1713b21b1d60ff8c8e34c2f8910d610b65064736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a71198691161005b578063a71198691461012a578063b1b1b2091461014a578063cbd4ece91461016d578063ecc704281461018057600080fd5b806321d800ec1461008d5780633dbb202b146100c55780636e296e45146100da57806382e3702d14610107575b600080fd5b6100b061009b366004610826565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100d86100d3366004610942565b610197565b005b6100e26102e2565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100bc565b6100b0610115366004610826565b60026020526000908152604090205460ff1681565b6005546100e29073ffffffffffffffffffffffffffffffffffffffff1681565b6100b0610158366004610826565b60016020526000908152604090205460ff1681565b6100d861017b3660046109ad565b61038b565b61018960035481565b6040519081526020016100bc565b60006101a784338560035461078d565b80516020808301919091206000908152600290915260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fcafa81dc0000000000000000000000000000000000000000000000000000000081529091507342000000000000000000000000000000000000009063cafa81dc9061023c908490600401610a89565b600060405180830381600087803b15801561025657600080fd5b505af115801561026a573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385600354866040516102bc9493929190610aa3565b60405180910390a26001600360008282546102d79190610aef565b909155505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff1661dead141561036e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f74207365740060448201526064015b60405180910390fd5b5060045473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff161461046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610365565b60006104788585858561078d565b8051602080830191909120600081815260019092526040909120549192509060ff1615610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610365565b73ffffffffffffffffffffffffffffffffffffffff8616734200000000000000000000000000000000000000141561059957600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117905550610787565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff878116919091179091556040516000918816906105f2908790610b2e565b6000604051808303816000865af19150503d806000811461062f576040519150601f19603f3d011682016040523d82523d6000602084013e610634565b606091505b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790559050801515600114156106d557600082815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169092179091555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a2610701565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b600083334360405160200161071893929190610b4a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600090815291829052902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505050505b50505050565b6060848484846040516024016107
385a69493929190610b9c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b60006020828403121561083857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461086357600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126108a857600080fd5b813567ffffffffffffffff808211156108c3576108c3610868565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561090957610909610868565b8160405283815286602085880101111561092257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848603121561095757600080fd5b6109608461083f565b9250602084013567ffffffffffffffff81111561097c57600080fd5b61098886828701610897565b925050604084013563ffffffff811681146109a257600080fd5b809150509250925092565b600080600080608085870312156109c357600080fd5b6109cc8561083f565b93506109da6020860161083f565b9250604085013567ffffffffffffffff8111156109f657600080fd5b610a0287828801610897565b949793965093946060013593505050565b60005b83811015610a2e578181015183820152602001610a16565b838111156107875750506000910152565b60008151808452610a57816020860160208601610a13565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a9c6020830184610a3f565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000610ad26080830186610a3f565b905083604083015263ffffffff8316606083015295945050505050565b60008219821115610b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251610b40818460208701610a13565b9190910192915050565b60008451610b5c818460208901610a13565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152610bd56080830185610a3f565b90508260608301529594505050505056fea26469706673582212200850448c0279e4b97192d90d3a7dc1713b21b1d60ff8c8e34c2f8910d610b65064736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},11599:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L2StandardBridge","sourceName":"contracts/L2/messaging/L2StandardBridge.sol","abi":[{"inputs":[{"internalType":"address","name":"_l2CrossDomainMessenger","type":"address"},{"internalType":"address","name":"_l1TokenBridge","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"DepositFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"DepositFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"WithdrawalInitiated","type":"event"}
385,{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"finalizeDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l1TokenBridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messenger","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l1Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_l2Token","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint32","name":"_l1Gas","type":"uint32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506040516111c43803806111c483398101604081905261002f9161007c565b600080546001600160a01b039384166001600160a01b031991821617909155600180549290931691161790556100af565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008f57600080fd5b61009883610060565b91506100a660208401610060565b90509250929050565b611106806100be6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80633cb747bf116100505780633cb747bf146100ca578063662a633a146100ea578063a3a79548146100fd57600080fd5b806332b7006d1461006c57806336c717c114610081575b600080fd5b61007f61007a366004610d0f565b610110565b005b6001546100a19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000546100a19073ffffffffffffffffffffffffffffffffffffffff1681565b61007f6100f8366004610d80565b610126565b61007f61010b366004610e18565b6106c1565b61011f853333878787876106d8565b5050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661015e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661025360005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561029857600080fd5b505afa1580156102ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d09190610e9b565b73ffffffffffffffffffffffffffffffffffffffff1614610373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610214565b61039d877f1d1d8b6300000000000000000000000000000000000000000000000000000000610a32565b801561045357508673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104249190610e9b565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16145b15610567576040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690528816906340c10f1990604401600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd898888888860405161055a9493929190610f08565b60405180910390a46106b7565b600063a9f9e67560e01b8989888a89898960405160240161058e9796959493929190610f3e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506106339073ffffffffffffffffffffffffffffffffffffffff16600083610a57565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f7ea89a4591614515571c2b51f5ea06494056f261c10ab1ed8c03c7590d87bce0898989896040516106ad9493929190610f08565b60405180910390a4505b5050505050505050565b6106d0863387878787876106d8565b505050505050565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081523360048201526024810185905273ffffffffffffffffffffffffffffffffffffffff881690639dc29fac90604401600060405180830381600087803b15801561074657600080fd5b505af115801561075a573d6000803e3d6000fd5b5050505060008773ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e09190610e9b565b9050606073ffffffffffffffffffffffffffffffffffffffff891673deaddeaddeaddeaddeaddeaddeaddeaddead000014156108d5576040517f1532ec340000000000000000000000000000000000000000000000000000000090610851908a908a908a9089908990602401610f9b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050610994565b6040517fa9f9e67500000000000000000000000000000000000000000000000000000000906109149084908c908c908c908c908b908b90602401610f3e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b6001546109b89073ffffffffffffffffffffffffffffffffffffffff168683610a57565b3373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e8a8a89896040516106ad9493929190610f08565b6000610a3d83610ae8565b8015610a4e5750610a4e8383610b4c565b90505b92915050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610ab190869085908790600401611016565b600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050505050565b6000610b14827f01ffc9a700000000000000000000000000000000000000000000000000000000610b4c565b8015610a515750610b45827fffffffff00000000000000000000000000000000000000000000000000000000610b4c565b1592915050565b604080517fffffffff00000000000000000000000000000000000000000000000000000000831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a7000000000000000000000000000000000000000000000000000000001790529051600091908290819073ffffffffffffffffffffffffffffffffffffffff87169061753090610c06908690611092565b6000604051808303818686fa925050503d8060008114610c42576040519150601f19603f3d011682016040523d82523d6000602084013e610c47565b606091505b5091509150602081511015610c625760009350505050610a51565b818015610c7e575080806020019051810190610c7e91906110ae565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610caa57600080fd5b50565b803563ffffffff81168114610cc157600080fd5b919050565b60008083601f840112610cd857600080fd5b50813567ffffffffffffffff811115610cf057600080fd5b602083019150836020828501011115610d0857600080fd5b9250929050565b600080600080600060808688031215610d2757600080fd5b8535610d3281610c88565b945060208601359350610d4760408701610cad565b9250606086013567ffffffffffffffff811115610d6357600080fd5b610d6f88828901610cc6565b969995985093965092949392505050565b600080600080600080600060c0888a031215610d9b57600080fd5b8735610da681610c88565b96506020880135610db681610c88565b95506040880135610dc681610c88565b94506060880135610dd681610c88565b93506080880135925060a088013567ffffffffffffffff811115610df957600080fd5b610e058a828b01610cc6565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610e3157600080fd5b8635610e3c81610c88565b95506020870135610e4c81610c88565b945060408701359350610e6160608801610cad565b9250608087013567ffffffffffffffff811115610e7d57600080fd5b610e8989828a01610cc6565b979a9699509497509295939492505050565b600060208284031215610ead57600080fd5b8151610eb881610c88565b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610c7e606083018486610ebf565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152610f8e60c083018486610ebf565b9998505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152610fdb608083018486610ebf565b979650505050505050565b60005b83811015611001578181015183820152602001610fe956
3855b83811115611010576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260008351806060840152611051816080850160208801610fe6565b63ffffffff93909316604083015250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160800192915050565b600082516110a4818460208701610fe6565b9190910192915050565b6000602082840312156110c057600080fd5b81518015158114610eb857600080fdfea264697066735822122010667ebcc24792729564391d0b930bac1cb56e230a93bcfd2f78b11ecc51757e64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80633cb747bf116100505780633cb747bf146100ca578063662a633a146100ea578063a3a79548146100fd57600080fd5b806332b7006d1461006c57806336c717c114610081575b600080fd5b61007f61007a366004610d0f565b610110565b005b6001546100a19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6000546100a19073ffffffffffffffffffffffffffffffffffffffff1681565b61007f6100f8366004610d80565b610126565b61007f61010b366004610e18565b6106c1565b61011f853333878787876106d8565b5050505050565b60015473ffffffffffffffffffffffffffffffffffffffff1661015e60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661025360005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561029857600080fd5b505afa1580156102ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d09190610e9b565b73ffffffffffffffffffffffffffffffffffffffff1614610373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d657373616765000000000000000000000000000000006064820152608401610214565b61039d877f1d1d8b6300000000000000000000000000000000000000000000000000000000610a32565b801561045357508673ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156103ec57600080fd5b505af1158015610400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104249190610e9b565b73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16145b15610567576040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018690528816906340c10f1990604401600060405180830381600087803b1580156104c857600080fd5b505af11580156104dc573d6000803e3d6000fd5b505050508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fb0444523268717a02698be47d0803aa7468c00acbed2f8bd93a0459cde61dd898888888860405161055a9493929190610f08565b60405180910390a46106b7565b600063a9f9e67560e01b8989888a89898960405160240161058e9796959493929190610f3e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526001549091506106339073ffffffffffffffffffffffffffffffffffffffff16600083610a57565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f7ea89a4591614515571c2b51f5ea06494056f261c10ab1ed8c03c7590d87bce0898989896040516106ad9493929190610f08565b60405180910390a4505b5050505050505050565b6106d0863387878787876106d8565b505050505050565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081523360048201526024810185905273ffffffffffffffffffffffffffffffffffffffff881690639dc29fac90604401600060405180830381600087803b15801561074657600080fd5b505af115801561075a573d6000803e3d6000fd5b5050505060008773ffffffffffffffffffffffffffffffffffffffff1663c01e1bd66040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e09190610e9b565b9050606073ffffffffffffffffffffffffffffffffffffffff891673deaddeaddeaddeaddeaddeaddeaddeaddead000014156108d5576040517f1532ec340000000000000000000000000000000000000000000000000000000090610851908a908a908a9089908990602401610f9b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529050610994565b6040517fa9f9e67500000000000000000000000000000000000000000000000000000000906109149084908c908c908c908c908b908b90602401610f3e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915290505b6001546109b89073ffffffffffffffffffffffffffffffffffffffff168683610a57565b3373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f73d170910aba9e6d50b102db522b1dbcd796216f5128b445aa2135272886497e8a8a89896040516106ad9493929190610f08565b6000610a3d83610ae8565b8015610a4e5750610a4e8383610b4c565b90505b92915050565b6000546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690633dbb202b90610ab190869085908790600401611016565b600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050505050565b6000610b14827f01ffc9a700000000000000000000000000000000000000000000000000000000610b4c565b8015610a515750610b45827fffffffff00000000000000000000000000000000000000000000000000000000610b4c565b1592915050565b604080517fffffffff00000000000000000000000000000000000000000000000000000000831660248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a7000000000000000000000000000000000000000000000000000000001790529051600091908290819073ffffffffffffffffffffffffffffffffffffffff87169061753090610c06908690611092565b6000604051808303818686fa925050503d8060008114610c42576040519150601f19603f3d011682016040523d82523d6000602084013e610c47565b606091505b5091509150602081511015610c625760009350505050610a51565b818015610c7e575080806020019051810190610c7e91906110ae565b9695505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610caa57600080fd5b50565b803563ffffffff81168114610cc157600080fd5b919050565b60008083601f840112610cd857600080fd5b50813567ffffffffffffffff811115610cf057600080fd5b602083019150836020828501011115610d0857600080fd5b9250929050565b600080600080600060808688031215610d2757600080fd5b8535610d3281610c88565b945060208601359350610d4760408701610cad565b9250606086013567ffffffffffffffff811115610d6357600080fd5b610d6f88828901610cc6565b969995985093965092949392505050565b600080600080600080600060c0888a031215610d9b57600080fd5b8735610da681610c88565b96506020880135610db681610c88565b95506040880135610dc681610c88565b94506060880135610dd681610c88565b93506080880135925060a088013567ffffffffffffffff811115610df957600080fd5b610e058a828b01610cc6565b989b979a50959850939692959293505050565b60008060008060008060a08789031215610e3157600080fd5b8635610e3c81610c88565b95506020870135610e4c81610c88565b945060408701359350610e6160608801610cad565b9250608087013567ffffffffffffffff811115610e7d57600080fd5b610e8989828a01610cc6565b979a9699509497509295939492505050565b600060208284031215610ead57600080fd5b8151610eb881610c88565b9392505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000610c7e606083018486610ebf565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a0830152610f8e60c083018486610ebf565b9998505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015260806060830152610fdb608083018486610ebf565b979650505050505050565b60005b83811015611001578181015183820152602001610fe956
3855b83811115611010576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260008351806060840152611051816080850160208801610fe6565b63ffffffff93909316604083015250601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160160800192915050565b600082516110a4818460208701610fe6565b9190910192915050565b6000602082840312156110c057600080fd5b81518015158114610eb857600080fdfea264697066735822122010667ebcc24792729564391d0b930bac1cb56e230a93bcfd2f78b11ecc51757e64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},8354:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L2StandardTokenFactory","sourceName":"contracts/L2/messaging/L2StandardTokenFactory.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_l1Token","type":"address"},{"indexed":true,"internalType":"address","name":"_l2Token","type":"address"}],"name":"StandardL2TokenCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"createStandardL2Token","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506117bc806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063896f93d114610030575b600080fd5b61004361003e36600461025f565b610045565b005b73ffffffffffffffffffffffffffffffffffffffff83166100c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d7573742070726f76696465204c3120746f6b656e2061646472657373000000604482015260640160405180910390fd5b60007342000000000000000000000000000000000000108484846040516100ec90610178565b6100f99493929190610359565b604051809103906000f080158015610115573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a350505050565b6113d7806103b083390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126101c557600080fd5b813567ffffffffffffffff808211156101e0576101e0610185565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561022657610226610185565b8160405283815286602085880101111561023f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848
385603121561027457600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b9250602084013567ffffffffffffffff808211156102b557600080fd5b6102c1878388016101b4565b935060408601359150808211156102d757600080fd5b506102e4868287016101b4565b9150509250925092565b6000815180845260005b81811015610314576020818501810151868301820152016102f8565b81811115610326576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261039260808301856102ee565b82810360608401526103a481856102ee565b97965050505050505056fe60806040523480156200001157600080fd5b50604051620013d7380380620013d783398101604081905262000034916200022f565b8151829082906200004d9060039060208501906200009f565b508051620000639060049060208401906200009f565b5050600580546001600160a01b039586166001600160a01b031991821617909155600680549690951695169490941790925550620002fc915050565b828054620000ad90620002bf565b90600052602060002090601f016020900481019282620000d157600085556200011c565b82601f10620000ec57805160ff19168380011785556200011c565b828001600101855582156200011c579182015b828111156200011c578251825591602001919060010190620000ff565b506200012a9291506200012e565b5090565b5b808211156200012a57600081556001016200012f565b80516001600160a01b03811681146200015d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018a57600080fd5b81516001600160401b0380821115620001a757620001a762000162565b604051601f8301601f19908116603f01168101908282118183101715620001d257620001d262000162565b81604052838152602092508683858801011115620001ef57600080fd5b600091505b83821015620002135785820183015181830184015290820190620001f4565b83821115620002255760008385830101525b9695505050505050565b600080600080608085870312156200024657600080fd5b620002518562000145565b9350620002616020860162000145565b60408601519093506001600160401b03808211156200027f57600080fd5b6200028d8883890162000178565b93506060870151915080821115620002a457600080fd5b50620002b38782880162000178565b91505092959194509250565b600181811c90821680620002d457607f821691505b60208210811415620002f657634e487b7160e01b600052602260045260246000fd5b50919050565b6110cb806200030c6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610e4a565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610e93565b610118610150366004610f2f565b610425565b6002545b604051908152602001610124565b610118610175366004610f59565b61043b565b60405160128152602001610124565b610118610197366004610f2f565b61050c565b6101af6101aa366004610f2f565b610555565b005b6101596101bf366004610f95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561061a565b6101af6101fd366004610f2f565b610629565b610118610210366004610f2f565b6106e2565b610118610223366004610f2f565b6107a0565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610fb0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610fe3565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610fe3565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b60006104323384846107ad565b50600192915050565b600061044884848461092d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104f45760405162461bcd60e51b8152
38560206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050185338584036107ad565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610432918590610550908690611066565b6107ad565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b6105c68282610b93565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161060e91815260200190565b60405180910390a25050565b6060600480546103a290610fe3565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106905760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b61069a8282610c99565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161060e91815260200190565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104eb565b61079633858584036107ad565b5060019392505050565b600061043233848461092d565b73ffffffffffffffffffffffffffffffffffffffff83166108355760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff82166108be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166109b65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff8216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610adb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610b1f908490611066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b8591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610bf65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104eb565b8060026000828254610c089190611066565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610c42908490611066565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610d225760405162461bcd60e51b8152
38560206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610dfa90849061107e565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610920565b600060208284031215610e5c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e8c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ec057858101830151858201604001528201610ea4565b81811115610ed2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f2a57600080fd5b919050565b60008060408385031215610f4257600080fd5b610f4b83610f06565b946020939093013593505050565b60008060006060848
3856031215610f6e57600080fd5b610f7784610f06565b9250610f8560208501610f06565b9150604084013590509250925092565b600060208284031215610fa757600080fd5b610e8c82610f06565b60008060408385031215610fc357600080fd5b610fcc83610f06565b9150610fda60208401610f06565b90509250929050565b600181811c90821680610ff757607f821691505b60208210811415611031577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561107957611079611037565b500190565b60008282101561109057611090611037565b50039056fea264697066735822122069a2d33039157f3f2f180571262ca2a5d0a3a24d33bf9448f3b7c2ce9ff757f964736f6c63430008090033a2646970667358221220d2e13f28319115807ec7308d1cd88642a8542d0b838e00b8769f8a85d696f26764736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063896f93d114610030575b600080fd5b61004361003e36600461025f565b610045565b005b73ffffffffffffffffffffffffffffffffffffffff83166100c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d7573742070726f76696465204c3120746f6b656e2061646472657373000000604482015260640160405180910390fd5b60007342000000000000000000000000000000000000108484846040516100ec90610178565b6100f99493929190610359565b604051809103906000f080158015610115573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a350505050565b6113d7806103b083390190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126101c557600080fd5b813567ffffffffffffffff808211156101e0576101e0610185565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561022657610226610185565b8160405283815286602085880101111561023f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848
385603121561027457600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461029857600080fd5b9250602084013567ffffffffffffffff808211156102b557600080fd5b6102c1878388016101b4565b935060408601359150808211156102d757600080fd5b506102e4868287016101b4565b9150509250925092565b6000815180845260005b81811015610314576020818501810151868301820152016102f8565b81811115610326576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152506080604083015261039260808301856102ee565b82810360608401526103a481856102ee565b97965050505050505056fe60806040523480156200001157600080fd5b50604051620013d7380380620013d783398101604081905262000034916200022f565b8151829082906200004d9060039060208501906200009f565b508051620000639060049060208401906200009f565b5050600580546001600160a01b039586166001600160a01b031991821617909155600680549690951695169490941790925550620002fc915050565b828054620000ad90620002bf565b90600052602060002090601f016020900481019282620000d157600085556200011c565b82601f10620000ec57805160ff19168380011785556200011c565b828001600101855582156200011c579182015b828111156200011c578251825591602001919060010190620000ff565b506200012a9291506200012e565b5090565b5b808211156200012a57600081556001016200012f565b80516001600160a01b03811681146200015d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018a57600080fd5b81516001600160401b0380821115620001a757620001a762000162565b604051601f8301601f19908116603f01168101908282118183101715620001d257620001d262000162565b81604052838152602092508683858801011115620001ef57600080fd5b600091505b83821015620002135785820183015181830184015290820190620001f4565b83821115620002255760008385830101525b9695505050505050565b600080600080608085870312156200024657600080fd5b620002518562000145565b9350620002616020860162000145565b60408601519093506001600160401b03808211156200027f57600080fd5b6200028d8883890162000178565b93506060870151915080821115620002a457600080fd5b50620002b38782880162000178565b91505092959194509250565b600181811c90821680620002d457607f821691505b60208210811415620002f657634e487b7160e01b600052602260045260246000fd5b50919050565b6110cb806200030c6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610e4a565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610e93565b610118610150366004610f2f565b610425565b6002545b604051908152602001610124565b610118610175366004610f59565b61043b565b60405160128152602001610124565b610118610197366004610f2f565b61050c565b6101af6101aa366004610f2f565b610555565b005b6101596101bf366004610f95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561061a565b6101af6101fd366004610f2f565b610629565b610118610210366004610f2f565b6106e2565b610118610223366004610f2f565b6107a0565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610fb0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610fe3565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610fe3565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b60006104323384846107ad565b50600192915050565b600061044884848461092d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104f45760405162461bcd60e51b8152
38560206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050185338584036107ad565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610432918590610550908690611066565b6107ad565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b6105c68282610b93565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161060e91815260200190565b60405180910390a25050565b6060600480546103a290610fe3565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106905760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b61069a8282610c99565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161060e91815260200190565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104eb565b61079633858584036107ad565b5060019392505050565b600061043233848461092d565b73ffffffffffffffffffffffffffffffffffffffff83166108355760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff82166108be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166109b65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff8216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610adb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610b1f908490611066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b8591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610bf65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104eb565b8060026000828254610c089190611066565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610c42908490611066565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610d225760405162461bcd60e51b8152
38560206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610dfa90849061107e565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610920565b600060208284031215610e5c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e8c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ec057858101830151858201604001528201610ea4565b81811115610ed2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f2a57600080fd5b919050565b60008060408385031215610f4257600080fd5b610f4b83610f06565b946020939093013593505050565b60008060006060848
3856031215610f6e57600080fd5b610f7784610f06565b9250610f8560208501610f06565b9150604084013590509250925092565b600060208284031215610fa757600080fd5b610e8c82610f06565b60008060408385031215610fc357600080fd5b610fcc83610f06565b9150610fda60208401610f06565b90509250929050565b600181811c90821680610ff757607f821691505b60208210811415611031577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561107957611079611037565b500190565b60008282101561109057611090611037565b50039056fea264697066735822122069a2d33039157f3f2f180571262ca2a5d0a3a24d33bf9448f3b7c2ce9ff757f964736f6c63430008090033a2646970667358221220d2e13f28319115807ec7308d1cd88642a8542d0b838e00b8769f8a85d696f26764736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},62673:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"OVM_DeployerWhitelist","sourceName":"contracts/L2/predeploys/OVM_DeployerWhitelist.sol","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"}],"name":"WhitelistDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"deployer","type":"address"},{"indexed":false,"internalType":"bool","name":"whitelisted","type":"bool"}],"name":"WhitelistStatusChanged","type":"event"},{"inputs":[],"name":"enableArbitraryContractDeployment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"name":"isDeployerAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"name":"setWhitelistedDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506106a8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c80639b19251a116100505780639b19251a146100e9578063b1540a011461011c578063bdc7b54f1461012f57600080fd5b806308fd63221461007757806313af40351461008c5780638da5cb5b1461009f575b600080fd5b61008a610085366004610614565b610137565b005b61008a61009a366004610650565b610271565b6000546100bf9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61010c6100f7366004610650565b60016020526000908152604090205460ff1681565b60405190151581526020016100e0565b61010c61012a366004610650565b61047c565b61008a6104cd565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084016101da565b73ffffffffffffffffffffffffffffffffffffffff81166103e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f4f564d5f4465706c6f79657257686974656c6973743a2063616e206f6e6c792060448201527f62652064697361626c65642076696120656e61626c654172626974726172794360648201527f6f
3856e74726163744465706c6f796d656e74000000000000000000000000000000608482015260a4016101da565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff1615806104c7575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084016101da565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461060f57600080fd5b919050565b6000806040838503121561062757600080fd5b610630836105eb565b91506020830135801515811461064557600080fd5b809150509250929050565b60006020828403121561066257600080fd5b61066b826105eb565b939250505056fea264697066735822122045a02b3906eca00a51b37c2965ab13be381f71f60af681951849865fb2daa75f64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100725760003560e01c80639b19251a116100505780639b19251a146100e9578063b1540a011461011c578063bdc7b54f1461012f57600080fd5b806308fd63221461007757806313af40351461008c5780638da5cb5b1461009f575b600080fd5b61008a610085366004610614565b610137565b005b61008a61009a366004610650565b610271565b6000546100bf9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61010c6100f7366004610650565b60016020526000908152604090205460ff1681565b60405190151581526020016100e0565b61010c61012a366004610650565b61047c565b61008a6104cd565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f8daaf060c3306c38e068a75c054bf96ecd85a3db1252712c4d93632744c42e0d910160405180910390a15050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610318576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084016101da565b73ffffffffffffffffffffffffffffffffffffffff81166103e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f4f564d5f4465706c6f79657257686974656c6973743a2063616e206f6e6c792060448201527f62652064697361626c65642076696120656e61626c654172626974726172794360648201527f6f6e74726163744465706c6f796d656e74000000000000000000000000000000608482015260a4016101da565b6000546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff1615806104c7575073ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205460ff165b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460448201527f6865206f776e6572206f66207468697320636f6e74726163742e00000000000060648201526084016101da565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681527fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd49060200160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b803573ffffffffffffffffffffffffffffffffffffffff8116811461060f57600080fd5b919050565b6000806040838503121561062757600080fd5b610630836105eb565b91506020830135801515811461064557600080fd5b809150509250929050565b60006020828403121561066257600080fd5b61066b826105eb565b939250505056fea264697066735822122045a02b3906eca00a51b37c2965ab13be381f71f60af681951849865fb2daa75f64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},13624:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"OVM_ETH","sourceName":"contracts/L2/predeploys/OVM_ETH.sol","abi":[{"input
385s":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60806040523480156200001157600080fd5b5073420000000000000000000000000000000000001060006040518060400160405280600581526020016422ba3432b960d91b8152506040518060400160405280600381526020016208aa8960eb1b815250818181600390805190602001906200007d929190620000cf565b50805162000093906004906020840190620000cf565b5050600580546001600160a01b039586166001600160a01b031991821617909155600680549690951695169490941790925550620001b2915050565b828054620000dd9062000175565b90600052602060002090601f0160209004810192826200010157600085556200014c565b82601f106200011c57805160ff19168380011785556200014c565b828001600101855582156200014c579182015b828111156200014c5782518255916020019190600101906200012f565b506200015a9291506200015e565b5090565b5b8082111
38556200015a57600081556001016200015f565b600181811c908216806200018a57607f821691505b60208210811415620001ac57634e487b7160e01b600052602260045260246000fd5b50919050565b610eee80620001c26000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610c6d565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610cb6565b610118610150366004610d52565b610425565b6002545b604051908152602001610124565b610118610175366004610d7c565b6104db565b60405160128152602001610124565b610118610197366004610d52565b61058c565b6101af6101aa366004610d52565b61063d565b005b6101596101bf366004610db8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561071c565b6101af6101fd366004610d52565b61072b565b610118610210366004610d52565b6107fe565b610118610223366004610d52565b6108af565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610dd3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610e06565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e06565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f4f564d5f4554483a20617070726f76652069732064697361626c65642070656e60448201527f64696e67206675727468657220636f6d6d756e6974792064697363757373696f60648201527f6e2e000000000000000000000000000000000000000000000000000000000000608482015260009060a4015b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f4f564d5f4554483a207472616e7366657246726f6d2069732064697361626c6560448201527f642070656e64696e67206675727468657220636f6d6d756e697479206469736360648201527f757373696f6e2e00000000000000000000000000000000000000000000000000608482015260009060a4016104d2565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4f564d5f4554483a20696e637265617365416c6c6f77616e636520697320646960448201527f7361626c65642070656e64696e67206675727468657220636f6d6d756e69747960648201527f2064697363757373696f6e2e0000000000000000000000000000000000000000608482015260009060a4016104d2565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104d2565b6106c88282610960565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161071091815260200190565b60405180910390a25050565b6060600480546103a290610e06565b60065473ffffffffffffffffffffffffffffffffffffffff1633146107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104d2565b6107b68282610a80565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161071091815260200190565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4f564d5f4554483a206465637265617365416c6c6f77616e636520697320646960448201527f7361626c65642070656e64696e67206675727468657220636f6d6d756e69747960648201527f2064697363757373696f6e2e0000000000000000000000000000000000000000608482015260009060a4016104d2565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f564d5f4554483a207472616e736665722069732064697361626c656420706560448201527f6e64696e67206675727468657220636f6d6d756e69747920646973637573736960648201527f6f
3856e2e0000000000000000000000000000000000000000000000000000000000608482015260009060a4016104d2565b73ffffffffffffffffffffffffffffffffffffffff82166109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104d2565b80600260008282546109ef9190610e89565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610a29908490610e89565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104d2565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104d2565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610c15908490610ea1565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060208284031215610c7f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610caf57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ce357858101830151858201604001528201610cc7565b81811115610cf5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d4d57600080fd5b919050565b60008060408385031215610d6557600080fd5b610d6e83610d29565b946020939093013593505050565b60008060006060848
3856031215610d9157600080fd5b610d9a84610d29565b9250610da860208501610d29565b9150604084013590509250925092565b600060208284031215610dca57600080fd5b610caf82610d29565b60008060408385031215610de657600080fd5b610def83610d29565b9150610dfd60208401610d29565b90509250929050565b600181811c90821680610e1a57607f821691505b60208210811415610e54577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610e9c57610e9c610e5a565b500190565b600082821015610eb357610eb3610e5a565b50039056fea2646970667358221220b71535a5111461b42945e5d842957b3a5926f7ed07d271872f6da21952b5f8b464736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610c6d565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610cb6565b610118610150366004610d52565b610425565b6002545b604051908152602001610124565b610118610175366004610d7c565b6104db565b60405160128152602001610124565b610118610197366004610d52565b61058c565b6101af6101aa366004610d52565b61063d565b005b6101596101bf366004610db8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561071c565b6101af6101fd366004610d52565b61072b565b610118610210366004610d52565b6107fe565b610118610223366004610d52565b6108af565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610dd3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610e06565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610e06565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f4f564d5f4554483a20617070726f76652069732064697361626c65642070656e60448201527f64696e67206675727468657220636f6d6d756e6974792064697363757373696f60648201527f6e2e000000000000000000000000000000000000000000000000000000000000608482015260009060a4015b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f4f564d5f4554483a207472616e7366657246726f6d2069732064697361626c6560448201527f642070656e64696e67206675727468657220636f6d6d756e697479206469736360648201527f757373696f6e2e00000000000000000000000000000000000000000000000000608482015260009060a4016104d2565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4f564d5f4554483a20696e637265617365416c6c6f77616e636520697320646960448201527f7361626c65642070656e64696e67206675727468657220636f6d6d756e69747960648201527f2064697363757373696f6e2e0000000000000000000000000000000000000000608482015260009060a4016104d2565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104d2565b6106c88282610960565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93c
385de1e73087d944c0ea20544137d41213968858260405161071091815260200190565b60405180910390a25050565b6060600480546103a290610e06565b60065473ffffffffffffffffffffffffffffffffffffffff1633146107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104d2565b6107b68282610a80565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161071091815260200190565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f4f564d5f4554483a206465637265617365416c6c6f77616e636520697320646960448201527f7361626c65642070656e64696e67206675727468657220636f6d6d756e69747960648201527f2064697363757373696f6e2e0000000000000000000000000000000000000000608482015260009060a4016104d2565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f564d5f4554483a207472616e736665722069732064697361626c656420706560448201527f6e64696e67206675727468657220636f6d6d756e69747920646973637573736960648201527f6f6e2e0000000000000000000000000000000000000000000000000000000000608482015260009060a4016104d2565b73ffffffffffffffffffffffffffffffffffffffff82166109dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104d2565b80600260008282546109ef9190610e89565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610a29908490610e89565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104d2565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104d2565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610c15908490610ea1565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600060208284031215610c7f57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610caf57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ce357858101830151858201604001528201610cc7565b81811115610cf5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610d4d57600080fd5b919050565b60008060408385031215610d6557600080fd5b610d6e83610d29565b946020939093013593505050565b60008060006060848
3856031215610d9157600080fd5b610d9a84610d29565b9250610da860208501610d29565b9150604084013590509250925092565b600060208284031215610dca57600080fd5b610caf82610d29565b60008060408385031215610de657600080fd5b610def83610d29565b9150610dfd60208401610d29565b90509250929050565b600181811c90821680610e1a57607f821691505b60208210811415610e54577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610e9c57610e9c610e5a565b500190565b600082821015610eb357610eb3610e5a565b50039056fea2646970667358221220b71535a5111461b42945e5d842957b3a5926f7ed07d271872f6da21952b5f8b464736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},21023:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"OVM_GasPriceOracle","sourceName":"contracts/L2/predeploys/OVM_GasPriceOracle.sol","abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"DecimalsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"GasPriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"L1BaseFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"OverheadUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"ScalarUpdated","type":"event"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"getL1Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"getL1GasUsed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1BaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_decimals","type":"uint256"}],"name":"setDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gasPrice","type":"uint256"}],"name":"setGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"name":"setL1BaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_overhead","type":"uint256"}],"name":"setOverhead","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_scalar","type":"uint256"}],"name":"setScalar","outputs":[],"stateMutability":"nonpayable","type":"function"}
385,{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50604051610e55380380610e5583398101604081905261002f91610167565b61003833610047565b61004181610097565b50610197565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031633146100f65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811661015b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100ed565b61016481610047565b50565b60006020828403121561017957600080fd5b81516001600160a01b038116811461019057600080fd5b9392505050565b610caf806101a66000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638c8885c811610097578063de26c4a111610066578063de26c4a1146101cc578063f2fde38b146101df578063f45e65d8146101f2578063fe173b97146101fb57600080fd5b80638c8885c81461016b5780638da5cb5b1461017e578063bede39b5146101a6578063bf1fe420146101b957600080fd5b806349948e0e116100d357806349948e0e14610134578063519b4bd3146101475780637046559714610150578063715018a61461016357600080fd5b80630c18c162146100fa578063313ce567146101165780633577afc51461011f575b600080fd5b61010360035481565b6040519081526020015b60405180910390f35b61010360055481565b61013261012d3660046108d0565b610204565b005b610103610142366004610918565b6102c6565b61010360025481565b61013261015e3660046108d0565b610322565b6101326103d8565b6101326101793660046108d0565b610465565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b6101326101b43660046108d0565b61051b565b6101326101c73660046108d0565b6105d1565b6101036101da366004610918565b610687565b6101326101ed3660046109e7565b61072b565b61010360045481565b61010360015481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60038190556040518181527f32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4906020015b60405180910390a150565b6000806102d283610687565b90506000600254826102e49190610a53565b90506000600554600a6102f79190610bb2565b90506000600454836103099190610a53565b905060006103178383610bbe565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60048190556040518181527f3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b610463600061085b565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60058190556040518181527fd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff16331461059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60028190556040518181527f351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60018190556040518181527ffcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396906020016102bb565b600080805b8351811015610704578381815181106106a7576106a7610bf9565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166106e4576106dd600483610c28565b91506106f2565b6106ef601083610c28565b91505b806106fc81610c40565b91505061068c565b506000600354826107159190610c28565b905061072381610440610c28565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b73ffffffffffffffffffffffffffffffffffffffff811661084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610281565b6108588161085b565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108e257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561092a57600080fd5b813567ffffffffffffffff8082111561094257600080fd5b818401915084601f83011261095657600080fd5b813581811115610968576109686108e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156109ae576109ae6108e9565b816040528281528760208487010111156109c757600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156109f957600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a1d57600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a8b57610a8b610a24565b500290565b600181815b80851115610ae957817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610acf57610acf610a24565b80851615610adc57918102915b93841c9390800290610a95565b509250929050565b600082610b0057506001610bac565b81610b0d57506000610bac565b8160018114610b235760028114610b2d57610b49565b6001915050610bac565b60ff841115610b3e57610b3e610a24565b50506001821b610bac565b5060208310610133831016604e8410600b8410161715610b6c575081810a610bac565b610b768383610a90565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ba857610ba8610a24565b0290505b92915050565b6000610a1d8383610af1565b600082610bf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115610c3b57610c3b610a24565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c7257610c72610a24565b506001019056fea2646970667358221220b949ef5f9defd6c0aab
3856259672d00d239cb8854c9972ba1866af1c6ec6433d4c64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638c8885c811610097578063de26c4a111610066578063de26c4a1146101cc578063f2fde38b146101df578063f45e65d8146101f2578063fe173b97146101fb57600080fd5b80638c8885c81461016b5780638da5cb5b1461017e578063bede39b5146101a6578063bf1fe420146101b957600080fd5b806349948e0e116100d357806349948e0e14610134578063519b4bd3146101475780637046559714610150578063715018a61461016357600080fd5b80630c18c162146100fa578063313ce567146101165780633577afc51461011f575b600080fd5b61010360035481565b6040519081526020015b60405180910390f35b61010360055481565b61013261012d3660046108d0565b610204565b005b610103610142366004610918565b6102c6565b61010360025481565b61013261015e3660046108d0565b610322565b6101326103d8565b6101326101793660046108d0565b610465565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161010d565b6101326101b43660046108d0565b61051b565b6101326101c73660046108d0565b6105d1565b6101036101da366004610918565b610687565b6101326101ed3660046109e7565b61072b565b61010360045481565b61010360015481565b60005473ffffffffffffffffffffffffffffffffffffffff16331461028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60038190556040518181527f32740b35c0ea213650f60d44366b4fb211c9033b50714e4a1d34e65d5beb9bb4906020015b60405180910390a150565b6000806102d283610687565b90506000600254826102e49190610a53565b90506000600554600a6102f79190610bb2565b90506000600454836103099190610a53565b905060006103178383610bbe565b979650505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60048190556040518181527f3336cd9708eaf2769a0f0dc0679f30e80f15dcd88d1921b5a16858e8b85c591a906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b610463600061085b565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60058190556040518181527fd68112a8707e326d08be3656b528c1bcc5bbbfc47f4177e2179b14d8640838c1906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff16331461059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60028190556040518181527f351fb23757bb5ea0546c85b7996ddd7155f96b939ebaa5ff7bc49c75f27f2c44906020016102bb565b60005473ffffffffffffffffffffffffffffffffffffffff163314610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b60018190556040518181527ffcdccc6074c6c42e4bd578aa9870c697dc976a270968452d2b8c8dc369fae396906020016102bb565b600080805b8351811015610704578381815181106106a7576106a7610bf9565b01602001517fff00000000000000000000000000000000000000000000000000000000000000166106e4576106dd600483610c28565b91506106f2565b6106ef601083610c28565b91505b806106fc81610c40565b91505061068c565b506000600354826107159190610c28565b905061072381610440610c28565b949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146107ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610281565b73ffffffffffffffffffffffffffffffffffffffff811661084f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610281565b6108588161085b565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156108e257600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561092a57600080fd5b813567ffffffffffffffff8082111561094257600080fd5b818401915084601f83011261095657600080fd5b813581811115610968576109686108e9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156109ae576109ae6108e9565b816040528281528760208487010111156109c757600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156109f957600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a1d57600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a8b57610a8b610a24565b500290565b600181815b80851115610ae957817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610acf57610acf610a24565b80851615610adc57918102915b93841c9390800290610a95565b509250929050565b600082610b0057506001610bac565b81610b0d57506000610bac565b8160018114610b235760028114610b2d57610b49565b6001915050610bac565b60ff841115610b3e57610b3e610a24565b50506001821b610bac565b5060208310610133831016604e8410600b8410161715610b6c575081810a610bac565b610b768383610a90565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ba857610ba8610a24565b0290505b92915050565b6000610a1d8383610af1565b600082610bf4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008219821115610c3b57610c3b610a24565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610c7257610c72610a24565b506001019056fea2646970667358221220b949ef5f9defd6c0aab
3856259672d00d239cb8854c9972ba1866af1c6ec6433d4c64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},71425:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"OVM_L2ToL1MessagePasser","sourceName":"contracts/L2/predeploys/OVM_L2ToL1MessagePasser.sol","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"L2ToL1Message","type":"event"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"passMessageToL1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506102c8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806382e3702d1461003b578063cafa81dc14610072575b600080fd5b61005e610049366004610112565b60006020819052908152604090205460ff1681565b604051901515815260200160405180910390f35b61008561008036600461015a565b610087565b005b6001600080833360405160200161009f929190610229565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529
3851815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60006020828403121561012457600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561016c57600080fd5b813567ffffffffffffffff8082111561018457600080fd5b818401915084601f83011261019857600080fd5b8135818111156101aa576101aa61012b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f0576101f061012b565b8160405282815287602084870101111561020957600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835160005b8181101561024a5760208187018101518583015201610230565b81811115610259576000828501525b5060609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea2646970667358221220d836baf0739bec24cef040cc8b2c24969df1a65ce8dcdb49d35d9528caff8b7f64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c806382e3702d1461003b578063cafa81dc14610072575b600080fd5b61005e610049366004610112565b60006020819052908152604090205460ff1681565b604051901515815260200160405180910390f35b61008561008036600461015a565b610087565b005b6001600080833360405160200161009f929190610229565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00181529
3851815281516020928301208352908201929092520160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905550565b60006020828403121561012457600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561016c57600080fd5b813567ffffffffffffffff8082111561018457600080fd5b818401915084601f83011261019857600080fd5b8135818111156101aa576101aa61012b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156101f0576101f061012b565b8160405282815287602084870101111561020957600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000835160005b8181101561024a5760208187018101518583015201610230565b81811115610259576000828501525b5060609390931b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016919092019081526014019291505056fea2646970667358221220d836baf0739bec24cef040cc8b2c24969df1a65ce8dcdb49d35d9528caff8b7f64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},64399:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"OVM_SequencerFeeVault","sourceName":"contracts/L2/predeploys/OVM_SequencerFeeVault.sol","abi":[{"inputs":[{"internalType":"address","name":"_l1FeeWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MIN_WITHDRAWAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"bytecode":"0x608060405234801561001057600080fd5b506040516103de3803806103de83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61034b806100936000396000f3fe6080604052600436106100385760003560e01c80633ccfd60b14610044578063d3e5792b1461005b578063d4ff92181461008a57600080fd5b3661003f57005b600080fd5b34801561005057600080fd5b506100596100dc565b005b34801561006757600080fd5b5061007767d02ab486cedc000081565b6040519081526020015b60405180910390f35b34801561009657600080fd5b506000546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610081565b67d02ab486cedc000047101561019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605760248201527f4f564d5f53657175656e6365724665655661756c743a2077697468647261776160448201527f6c20616d6f756e74206d7573742062652067726561746572207468616e206d6960648201527f6e696d756d207769746864726177616c20616d6f756e74000000000000000000608482015260a40160405180910390fd5b600080546040805160208101825283815290517fa3a795480000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109363a3a79548936102309373deaddeaddeaddeaddeaddeaddeaddeaddead00009373ffffffffffffffffffffffffffffffffffffffff909216924792909190600401610264565b600060405180830381600087803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835260208188168185015286604085015263ffffffff8616606085015260a06080850152845191508160a085015260005b828110156102cb5785810182015185820160c0015281016102af565b828111156102dd57600060c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c001969550505050505056fea26469706673582212202380a0ef41967ef02ffabeecc94f28b588cb989aa8d64908f942558d7e378c3b64736f6c63430008090033","deployedBytecode":"0x6080604052600436106100385760003560e01c80633ccfd60b14610044578063d3e5792b1461005b578063d4ff92181461008a57600080fd5b3661003f57005b600080fd5b34801561005057600080fd5b506100596100dc565b005b34801561006757600080fd5b5061007767d02ab486cedc000081565b6040519081526020015b60405180910390f35b34801561009657600080fd5b506000546100b79073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610081565b
38567d02ab486cedc000047101561019e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605760248201527f4f564d5f53657175656e6365724665655661756c743a2077697468647261776160448201527f6c20616d6f756e74206d7573742062652067726561746572207468616e206d6960648201527f6e696d756d207769746864726177616c20616d6f756e74000000000000000000608482015260a40160405180910390fd5b600080546040805160208101825283815290517fa3a795480000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000109363a3a79548936102309373deaddeaddeaddeaddeaddeaddeaddeaddead00009373ffffffffffffffffffffffffffffffffffffffff909216924792909190600401610264565b600060405180830381600087803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835260208188168185015286604085015263ffffffff8616606085015260a06080850152845191508160a085015260005b828110156102cb5785810182015185820160c0015281016102af565b828111156102dd57600060c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c001969550505050505056fea26469706673582212202380a0ef41967ef02ffabeecc94f28b588cb989aa8d64908f942558d7e378c3b64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},74103:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"WETH9","sourceName":"contracts/L2/predeploys/WETH9.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007
385a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6107f9806101246000396000f3fe6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b
38560006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a7231582091c18790e0cca5011d2518024840ee00fecc67e11f56fd746f2cf84d5b583e0064736f6c63430005110032","deployedBytecode":"0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b
38560006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a7231582091c18790e0cca5011d2518024840ee00fecc67e11f56fd746f2cf84d5b583e0064736f6c63430005110032","linkReferences":{},"deployedLinkReferences":{}}')},69018:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"iOVM_L1BlockNumber","sourceName":"contracts/L2/predeploys/iOVM_L1BlockNumber.sol","abi":[{"inputs":[],"name":"getL1BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},29766:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"iOVM_L2ToL1MessagePasser","sourceName":"contracts/L2/predeploys/iOVM_L2ToL1MessagePasser.sol","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"}],"name":"L2ToL1Message","type":"event"},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"}],"name":"passMessageToL1","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},26812:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L1ChugSplashProxy","sourceName":"contracts/chugsplash/L1ChugSplashProxy.sol","abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_code","type":"bytes"}],"name":"setCode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"bytes32","name":"_value","type":"bytes32"}],"name":"setStorage","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50604051610a5d380380610a5d83398101604081905261002f9161005d565b610057817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b5061008d565b60006020828403121561006f57600080fd5b81516001600160a01b038116811461008657600080fd5b9392505050565b6109c18061009c6000396000f3fe60806040526004361061005a5760003560e01c8063893d20e811610043578063893d20e8146100a45780639b0b0fda146100e2578063aaf10f42146101025761005a565b806313af4035146100645780636c5d4ad014610084575b610062610117565b005b34801561007057600080fd5b5061006261007f366004610792565b6103ba565b34801561009057600080fd5b5061006261009f3660046107fe565b61044b565b3480156100b057600080fd5b506100b9610601565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ee57600080fd5b506100626100fd3660046108cd565b610698565b34801561010e57600080fd5b506100b9610706565b60006101417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101c3919061092a565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b5091509150818015610216575080516020145b156102c8576000818060200190518101906102319190610936565b905080156102c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006102f27f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102bd565b3660008037600080366000845af43d6000803e806103b4573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610413575033155b1561044357610440817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610440610117565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104a4575033155b156104435760006104d37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f8251602084012014156104e8575050565b60405160009061051e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161094f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f7965642e0000000000000000000000000060648201526084016102bd565b6105fb817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061062b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610662575033155b1561068d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610695610117565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106f1575033155b156106fa579055565b610702610117565b5050565b60006107307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610767575033155b1561068d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107a457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107c857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561081057600080fd5b813567ffffffffffffffff8082111561082857600080fd5b818401915084601f83011261083c57600080fd5b81358181111561084e5761084e6107cf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610894576108946107cf565b816040528281528760208487010111156108ad57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108e057600080fd5b50508035926020909101359150565b6000815160005b8181101561091057602081850181015186830152016108f6565b8181111561091f576000828601525b509290920192915050565b60006107c882846108ef565b60006020828403121561094857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610983600d8301846108ef565b94935050505056fea2646970667358221220aea34fd8cdcf3a9cced029d5f7b1e628f42ad1514501878e0040df2afddb6e7164736f6c63430008090033","deployedBytecode":"0x60806040526004361061005a5760003560e01c8063893d20e811610043578063893d20e8146100a45780639b0b0fda146100e2578063aaf10f42146101025761005a565b806313af4035146100645780636c5d4ad014610084575b610062610117565b005b34801561007057600080fd5b5061006261007f366004610792565b6103ba565b34801561009057600080fd5b5061006261009f3660046107fe565b61044b565b3480156100b057600080fd5b506100b9610601565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100ee57600080fd5b506100626100fd3660046108cd565b610698565b34801561010e57600080fd5b506100b9610706565b60006101417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7947262000000000000000000000000000000000000000000000000000000001790529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8516916101c3919061092a565b600060405180830381855afa9150503d80600081146101fe576040519150601f19603f3d011682016040523d82523d6000602084013e610203565b606091505b5091509150818015610216575080516020145b156102c8576000818060200190518101906102319190610936565b905080156102c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4c314368756753706c61736850726f78793a2073797374656d2069732063757260448201527f72656e746c79206265696e67207570677261646564000000000000000000000060648201526084015b60405180910390fd5b505b60006102f27f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4c314368756753706c61736850726f78793a20696d706c656d656e746174696f60448201527f6e206973206e6f7420736574207965740000000000000000000000000000000060648201526084016102bd565b3660008037600080366000845af43d6000803e806103b4573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610413575033155b1561044357610440817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b50565b610440610117565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104a4575033155b156104435760006104d37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b9050803f8251602084012014156104e8575050565b60405160009061051e907f600d380380600d6000396000f30000000000000000000000000000000000000090859060200161094f565b604051602081830303815290604052905060008151602083016000f084516020860120909150813f146105d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f4c314368756753706c61736850726f78793a20636f646520776173206e6f742060448201527f636f72726563746c79206465706c6f7965642e0000000000000000000000000060648201526084016102bd565b6105fb817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50505050565b600061062b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610662575033155b1561068d57507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b610695610117565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106f1575033155b156106fa579055565b610702610117565b5050565b60006107307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610767575033155b1561068d57507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000602082840312156107a457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146107c857600080fd5b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561081057600080fd5b813567ffffffffffffffff8082111561082857600080fd5b818401915084601f83011261083c57600080fd5b81358181111561084e5761084e6107cf565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610894576108946107cf565b816040528281528760208487010111156108ad57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156108e057600080fd5b50508035926020909101359150565b6000815160005b8181101561091057602081850181015186830152016108f6565b8181111561091f576000828601525b509290920192915050565b60006107c882846108ef565b60006020828403121561094857600080fd5b5051919050565b7fffffffffffffffffffffffffff00000000000000000000000000000000000000831681526000610983600d8301846108ef565b94935050505056fea2646970667358221220aea34fd8cdcf3a9cced029d5f7b1e628f42ad1514501878e0040df2afddb6e7164736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},80283:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"iL1ChugSplashDeployer","sourceName":"contracts/chugsplash/interfaces/iL1ChugSplashDeployer.sol","abi":[{"input
385s":[],"name":"isUpgrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},36764:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"CrossDomainEnabled","sourceName":"contracts/libraries/bridge/CrossDomainEnabled.sol","abi":[{"inputs":[{"internalType":"address","name":"_messenger","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"messenger","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5060405161013d38038061013d83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b60ab806100926000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80633cb747bf14602d575b600080fd5b600054604c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f3fea264697066735822122007712a382b03013a51c1c5af10d9e7b9b516e09be353a5f94af5d0263a013ea064736f6c63430008090033","deployedBytecode":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c80633cb747bf14602d575b600080fd5b600054604c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f3fea264697066735822122007712a382b03013a51c1c5af10d9e7b9b516e09be353a5f94af5d0263a013ea064736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},24054:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"ICrossDomainMessenger","sourceName":"contracts/libraries/bridge/ICrossDomainMessenger.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"FailedRelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"msgHash","type":"bytes32"}],"name":"RelayedMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"messageNonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasLimit","type":"uint256"}],"name":"SentMessage","type":"event"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_gasLimit","type":"uint32"}],"name":"sendMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},7849:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_CrossDomainUtils","sourceName":"contracts/libraries/bridge/Lib_CrossDomainUtils.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122060e64a9ccca3ea023c0ba81dbda8783559d3eec6a4d1d8ef8418badc967c072664736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122060e64a9ccca3ea023c0ba81dbda8783559d3eec6a4d1d8ef8418badc967c072664736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},47981:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_OVMCodec","sourceName":"contracts/libraries/codec/Lib_OVMCodec.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c2a5d11f9555d16a4e338a80443d30b1ec346c6a32a3a2423851829c61a564664736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c2a5d11f9555d16a4e338a80443d30b1ec346c6a32a3a2423851829c61a564664736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},76915:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_DefaultValues","sourceName":"contracts/libraries/constants/Lib_DefaultValues.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220063c5ffd8afe3ee3c085661f8b942ed207ae0c52f76c705ce32343804219a1be64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220063c5ffd8afe3ee3c085661f8b942ed207ae0c52f76c705ce32343804219a1be64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},65902:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_PredeployAddresses","sourceName":"contracts/libraries/constants/Lib_PredeployAddresses.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122056cad517f08aabd21cc0b53f664298b5b8af8f91610a5d788b7cd5a14d12078b64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122056cad517f08aabd21cc0b53f664298b5b8af8f91610a5d788b7cd5a14d12078b64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},87849:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_AddressManager","sourceName":"contracts/libraries/resolver/Lib_AddressManager.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"_name","type":"string"},{"indexed":false,"internalType":"address","name":"_newAddress","type":"address"},{"indexed":false,"internalType":"address","name":"_oldAddress","type":"address"}],"name":"AddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}
385,{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_address","type":"address"}],"name":"setAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107028061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046105e4565b610184565b6100906100da366004610632565b6102d0565b6100746100ed36600461066f565b61030c565b60005473ffffffffffffffffffffffffffffffffffffffff163314610178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610182600061043c565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610205576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b6000610210836104b1565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000083161790925591519293501690610273908590610691565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006102df846104b1565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b73ffffffffffffffffffffffffffffffffffffffff8116610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161016f565b6104398161043c565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016104c49190610691565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261052157600080fd5b813567ffffffffffffffff8082111561053c5761053c6104e1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610582576105826104e1565b8160405283815286602085880101111561059b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146105df57600080fd5b919050565b600080604083850312156105f757600080fd5b823567ffffffffffffffff81111561060e57600080fd5b61061a85828601610510565b925050610629602084016105bb565b90509250929050565b60006020828403121561064457600080fd5b813567ffffffffffffffff81111561065b57600080fd5b61066784828501610510565b949350505050565b60006020828403121561068157600080fd5b61068a826105bb565b9392505050565b6000825160005b818110156106b25760208186018101518583015201610698565b818111156106c1576000828501525b50919091019291505056fea2646970667358221220882d6a267e1fbcc015c1726b422a6847e08c6be7e987e8b5ec1f7e85aa5095bb64736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100675760003560e01c80639b2ea4bd116100505780639b2ea4bd146100b9578063bf40fac1146100cc578063f2fde38b146100df57600080fd5b8063715018a61461006c5780638da5cb5b14610076575b600080fd5b6100746100f2565b005b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b6100746100c73660046105e4565b610184565b6100906100da366004610632565b6102d0565b6100746100ed36600461066f565b61030c565b60005473ffffffffffffffffffffffffffffffffffffffff163314610178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b610182600061043c565b565b60005473ffffffffffffffffffffffffffffffffffffffff163314610205576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b6000610210836104b1565b60008181526001602052604090819020805473ffffffffffffffffffffffffffffffffffffffff8681167fffffffffffffffffffffffff000000000000000000000000000000000000000083161790925591519293501690610273908590610691565b6040805191829003822073ffffffffffffffffffffffffffffffffffffffff808716845284166020840152917f9416a153a346f93d95f94b064ae3f148b6460473c6e82b3f9fc2521b873fcd6c910160405180910390a250505050565b6000600160006102df846104b1565b815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff1692915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461038d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161016f565b73ffffffffffffffffffffffffffffffffffffffff8116610430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161016f565b6104398161043c565b50565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816040516020016104c49190610691565b604051602081830303815290604052805190602001209050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261052157600080fd5b813567ffffffffffffffff8082111561053c5761053c6104e1565b604051601f8301
3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610582576105826104e1565b8160405283815286602085880101111561059b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803573ffffffffffffffffffffffffffffffffffffffff811681146105df57600080fd5b919050565b600080604083850312156105f757600080fd5b823567ffffffffffffffff81111561060e57600080fd5b61061a85828601610510565b925050610629602084016105bb565b90509250929050565b60006020828403121561064457600080fd5b813567ffffffffffffffff81111561065b57600080fd5b61066784828501610510565b949350505050565b60006020828403121561068157600080fd5b61068a826105bb565b9392505050565b6000825160005b818110156106b25760208186018101518583015201610698565b818111156106c1576000828501525b50919091019291505056fea2646970667358221220882d6a267e1fbcc015c1726b422a6847e08c6be7e987e8b5ec1f7e85aa5095bb64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},31298:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_AddressResolver","sourceName":"contracts/libraries/resolver/Lib_AddressResolver.sol","abi":[{"inputs":[],"name":"libAddressManager","outputs":[{"internalType":"contract Lib_AddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"name":"resolve","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},51652:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_ResolvedDelegateProxy","sourceName":"contracts/libraries/resolver/Lib_ResolvedDelegateProxy.sol","abi":[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}],"bytecode":"0x608060405234801561001057600080fd5b506040516105b53803806105b583398101604081905261002f91610125565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b038716179055828252909120825161006e92840190610076565b505050610252565b82805461008290610217565b90600052602060002090601f0160209004810192826100a457600085556100ea565b82601f106100bd57805160ff19168380011785556100ea565b828001600101855582156100ea579182015b828111156100ea5782518255916020019190600101906100cf565b506100f69291506100fa565b5090565b5b808211156100f657600081556001016100fb565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561013857600080fd5b82516001600160a01b038116811461014f57600080fd5b602084810151919350906001600160401b038082111561016e57600080fd5b818601915086601f83011261018257600080fd5b8151818111156101945761019461010f565b604051601f8201601f19908116603f011681019083821181831017156101bc576101bc61010f565b8160405282815289868487010111156101d457600080fd5b600093505b828410156101f657848401860151818501870152928501926101d9565b828411156102075760008684830101525b8096505050505050509250929050565b600181811c9082168061022b57607f821691505b6020821081141561024c57634e487b7160e01b600052602260045260246000fd5b50919050565b610354806102616000396000f3fe608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101f2565b60206040518083038186803b15801561008557600080fd5b505afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906102d1565b905073ffffffffffffffffffffffffffffffffffffffff8116610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201527f65642e0000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1660003660405161019192919061030e565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b509092509050600182151514156101ea57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061021457607f831692505b85831081141561024b577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b8786018381526020018180156102685760018114610297576102c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825287820196506102c2565b60008b81526020902060005b868110156102bc578154848201529
385085019089016102a3565b83019750505b50949998505050505050505050565b6000602082840312156102e357600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461030757600080fd5b9392505050565b818382376000910190815291905056fea2646970667358221220d66a7dad92a7f7528f41181719174e1d244423b8bb730d2884645c76cfa0944064736f6c63430008090033","deployedBytecode":"0x608060408181523060009081526001602090815282822054908290529181207fbf40fac1000000000000000000000000000000000000000000000000000000009093529173ffffffffffffffffffffffffffffffffffffffff9091169063bf40fac19061006d9060846101f2565b60206040518083038186803b15801561008557600080fd5b505afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906102d1565b905073ffffffffffffffffffffffffffffffffffffffff8116610166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201527f65642e0000000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1660003660405161019192919061030e565b600060405180830381855af49150503d80600081146101cc576040519150601f19603f3d011682016040523d82523d6000602084013e6101d1565b606091505b509092509050600182151514156101ea57805160208201f35b805160208201fd5b600060208083526000845481600182811c91508083168061021457607f831692505b85831081141561024b577f4e487b710000000000000000000000000000000000000000000000000000000085526022600452602485fd5b8786018381526020018180156102685760018114610297576102c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616825287820196506102c2565b60008b81526020902060005b868110156102bc578154848201529085019089016102a3565b83019750505b50949998505050505050505050565b6000602082840312156102e357600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461030757600080fd5b9392505050565b818382376000910190815291905056fea2646970667358221220d66a7dad92a7f7528f41181719174e1d244423b8bb730d2884645c76cfa0944064736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},76134:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_RLPReader","sourceName":"contracts/libraries/rlp/Lib_RLPReader.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209b0105ac3644e4fdf76d616b816e1142d8df6b59717045de630c5b5bf5c4a49e64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209b0105ac3644e4fdf76d616b816e1142d8df6b59717045de630c5b5bf5c4a49e64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},57474:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_RLPWriter","sourceName":"contracts/libraries/rlp/Lib_RLPWriter.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220946ae63101b895e34c026fce9aa6f03d577c9012d8837976e8dc3a57ae0a2ef064736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220946ae63101b895e34c026fce9aa6f03d577c9012d8837976e8dc3a57ae0a2ef064736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},61256:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_MerkleTrie","sourceName":"contracts/libraries/trie/Lib_MerkleTrie.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220214650a5ec3e1d09ab69aa832632dcca9858b098070c9e81cdae9075c0e89eef64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220214650a5ec3e1d09ab69aa832632dcca9858b098070c9e81cdae9075c0e89eef64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},32045:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_SecureMerkleTrie","sourceName":"contracts/libraries/trie/Lib_SecureMerkleTrie.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202660de7bb8aa0cc344e5d40ecf3a0bb218888dff6bd046588cf63c7f310cc10f64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202660de7bb8aa0cc344e5d40ecf3a0bb218888dff6bd046588cf63c7f310cc10f64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},6760:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_Buffer","sourceName":"contracts/libraries/utils/Lib_Buffer.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220594b214017d57365da3ea1c77083baf56a0e2bbeb0c3e002e311ad4566a5a88e64736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220594b214017d57365da3ea1c77083baf56a0e2bbeb0c3e002e311ad4566a5a88e64736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},93523:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_Bytes32Utils","sourceName":"contracts/libraries/utils/Lib_Bytes32Utils.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016d3dffa07e555b0803ae61d773778a6b28a769ef91e47cb00040ecc7414705764736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122016d3dffa07e555b0803ae61d773778a6b28a769ef91e47cb00040ecc7414705764736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},16957:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_BytesUtils","sourceName":"contracts/libraries/utils/Lib_BytesUtils.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122017e44b43285912c440c4689616a765b1f83f985ef6c2257842a876b03fa23ec964736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122017e44b43285912c440c4689616a765b1f83f985ef6c2257842a876b03fa23ec964736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},71775:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"Lib_MerkleTree","sourceName":"contracts/libraries/utils/Lib_MerkleTree.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b7c3be019aefbed37a33a16f751525cd016777745cc3de03701a42894fef404664736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b7c3be019aefbed37a33a16f751525cd016777745cc3de03701a42894fef404664736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},62671:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"AddressAliasHelper","sourceName":"contracts/standards/AddressAliasHelper.sol","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207829434f027696874d561ec0adb447d98559e472900c36a38c8a3d107364652364736f6c63430008090033","deployedBytecode":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207829434f027696874d561ec0adb447d98559e472900c36a38c8a3d107364652364736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')}
385,71869:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"IL2StandardERC20","sourceName":"contracts/standards/IL2StandardERC20.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x","deployedBytecode":"0x","linkReferences":{},"deployedLinkReferences":{}}')},64441:function(e){"use strict";e.exports=JSON.parse('{"_format":"hh-sol-artifact-1","contractName":"L2StandardERC20","sourceName":"contracts/standards/L2StandardERC20.sol","abi":[{"inputs":[{"internalType":"address","name":"_l2Bridge","type":"address"},{"internalType":"address","name":"_l1Token","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"}
385,{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60806040523480156200001157600080fd5b50604051620013d7380380620013d783398101604081905262000034916200022f565b8151829082906200004d9060039060208501906200009f565b508051620000639060049060208401906200009f565b5050600580546001600160a01b039586166001600160a01b031991821617909155600680549690951695169490941790925550620002fc915050565b828054620000ad90620002bf565b90600052602060002090601f016020900481019282620000d157600085556200011c565b82601f10620000ec57805160ff19168380011785556200011c565b828001600101855582156200011c579182015b828111156200011c578251825591602001919060010190620000ff565b506200012a9291506200012e565b5090565b5b808211156200012a57600081556001016200012f565b80516001600160a01b03811681146200015d57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200018a57600080fd5b81516001600160401b0380821115620001a757620001a762000162565b604051601f8301601f19908116603f01168101908282118183101715620001d257620001d262000162565b81604052838152602092508683858801011115620001ef57600080fd5b600091505b8382101562000213578582018301518183018401529
3850820190620001f4565b83821115620002255760008385830101525b9695505050505050565b600080600080608085870312156200024657600080fd5b620002518562000145565b9350620002616020860162000145565b60408601519093506001600160401b03808211156200027f57600080fd5b6200028d8883890162000178565b93506060870151915080821115620002a457600080fd5b50620002b38782880162000178565b91505092959194509250565b600181811c90821680620002d457607f821691505b60208210811415620002f657634e487b7160e01b600052602260045260246000fd5b50919050565b6110cb806200030c6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610e4a565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610e93565b610118610150366004610f2f565b610425565b6002545b604051908152602001610124565b610118610175366004610f59565b61043b565b60405160128152602001610124565b610118610197366004610f2f565b61050c565b6101af6101aa366004610f2f565b610555565b005b6101596101bf366004610f95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561061a565b6101af6101fd366004610f2f565b610629565b610118610210366004610f2f565b6106e2565b610118610223366004610f2f565b6107a0565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610fb0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610fe3565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610fe3565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b60006104323384846107ad565b50600192915050565b600061044884848461092d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050185338584036107ad565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610432918590610550908690611066565b6107ad565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b6105c68282610b93565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161060e91815260200190565b60405180910390a25050565b6060600480546103a290610fe3565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106905760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b61069a8282610c99565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161060e91815260200190565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107895760405162461bcd60e51b8152
38560206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104eb565b61079633858584036107ad565b5060019392505050565b600061043233848461092d565b73ffffffffffffffffffffffffffffffffffffffff83166108355760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff82166108be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166109b65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff8216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610adb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610b1f908490611066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b8591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610bf65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104eb565b8060026000828254610c089190611066565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610c42908490611066565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610d225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610dfa90849061107e565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610920565b600060208284031215610e5c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e8c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ec057858101830151858201604001528201610ea4565b81811115610ed2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f2a57600080fd5b919050565b60008060408385031215610f4257600080fd5b610f4b83610f06565b946020939093013593505050565b60008060006060848
3856031215610f6e57600080fd5b610f7784610f06565b9250610f8560208501610f06565b9150604084013590509250925092565b600060208284031215610fa757600080fd5b610e8c82610f06565b60008060408385031215610fc357600080fd5b610fcc83610f06565b9150610fda60208401610f06565b90509250929050565b600181811c90821680610ff757607f821691505b60208210811415611031577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561107957611079611037565b500190565b60008282101561109057611090611037565b50039056fea264697066735822122069a2d33039157f3f2f180571262ca2a5d0a3a24d33bf9448f3b7c2ce9ff757f964736f6c63430008090033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610e4a565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610e93565b610118610150366004610f2f565b610425565b6002545b604051908152602001610124565b610118610175366004610f59565b61043b565b60405160128152602001610124565b610118610197366004610f2f565b61050c565b6101af6101aa366004610f2f565b610555565b005b6101596101bf366004610f95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561061a565b6101af6101fd366004610f2f565b610629565b610118610210366004610f2f565b6106e2565b610118610223366004610f2f565b6107a0565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610fb0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610fe3565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610fe3565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b60006104323384846107ad565b50600192915050565b600061044884848461092d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050185338584036107ad565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610432918590610550908690611066565b6107ad565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b6105c68282610b93565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161060e91815260200190565b60405180910390a25050565b6060600480546103a290610fe3565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106905760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b61069a8282610c99565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161060e91815260200190565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107895760405162461bcd60e51b8152
38560206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104eb565b61079633858584036107ad565b5060019392505050565b600061043233848461092d565b73ffffffffffffffffffffffffffffffffffffffff83166108355760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff82166108be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166109b65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff8216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610adb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610b1f908490611066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b8591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610bf65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104eb565b8060026000828254610c089190611066565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610c42908490611066565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610d225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610dfa90849061107e565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610920565b600060208284031215610e5c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e8c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ec057858101830151858201604001528201610ea4565b81811115610ed2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f2a57600080fd5b919050565b60008060408385031215610f4257600080fd5b610f4b83610f06565b946020939093013593505050565b60008060006060848
3856031215610f6e57600080fd5b610f7784610f06565b9250610f8560208501610f06565b9150604084013590509250925092565b600060208284031215610fa757600080fd5b610e8c82610f06565b60008060408385031215610fc357600080fd5b610fcc83610f06565b9150610fda60208401610f06565b90509250929050565b600181811c90821680610ff757607f821691505b60208210811415611031577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561107957611079611037565b500190565b60008282101561109057611090611037565b50039056fea264697066735822122069a2d33039157f3f2f180571262ca2a5d0a3a24d33bf9448f3b7c2ce9ff757f964736f6c63430008090033","linkReferences":{},"deployedLinkReferences":{}}')},90200:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"gasPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getL1Fee","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getL1GasUsed","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isEcotone","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"l1BaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"overhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"scalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610fb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b6006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b610903610
3855c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a","sourceMap":"1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b
3856006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b6109036105c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9
385082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a","sourceMap":"1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2951:202;;;:::i;:::-;;;160:25:357;;;148:2;133:18;2951:202:144;;;;;;;;2115:338;;;:::i;:::-;;1249:36;;1284:1;1249:36;;4561:82;1284:1;4561:82;;1835:196;;;;;;:::i;:::-;;:::i;1486:21::-;;;;;;;;;;;;1535:14:357;;1528:22;1510:41;;1498:2;1483:18;1486:21:144;1370:187:357;3568:124:144;;;:::i;1355:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4267:141::-;;;:::i;:::-;;;2397:10:357;2385:23;;;2367:42;;2355:2;2340:18;4267:141:144;2223:192:357;2746:86:144;2812:13;2746:86;;4022:133;;;:::i;4975:280::-;;;;;;:::i;:::-;;:::i;3268:196::-;;;:::i;3790:130::-;;;:::i;2951:202::-;2992:7;3020:9;;;;3019:10;3011:63;;;;;;;2622:2:357;3011:63:144;;;2604:21:357;2661:2;2641:18;;;2634:30;2700:34;2680:18;;;2673:62;2771:10;2751:18;;;2744:38;2799:19;;3011:63:144;;;;;;;;;1455:42:199;3091:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3084:62;;2951:202;:::o;2115:338::-;1455:42:199;2191:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2177:73;;:10;:73;;;2156:185;;;;;;;3538:2:357;2156:185:144;;;3520:21:357;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;3687:34;3667:18;;;3660:62;3759:3;3738:19;;;3731:32;3780:19;;2156:185:144;3336:469:357;2156:185:144;2359:9;;;;:18;2351:69;;;;;;;4012:2:357;2351:69:144;;;3994:21:357;4051:2;4031:18;;;4024:30;4090:34;4070:18;;;4063:62;4161:8;4141:18;;;4134:36;4187:19;;2351:69:144;3810:402:357;2351:69:144;2430:9;:16;;;;2442:4;2430:16;;;2115:338::o;1835:196::-;1896:7;1919:9;;;;1915:70;;;1951:23;1968:5;1951:16;:23::i;:::-;1944:30;1835:196;-1:-1:-1;;1835:196:144:o;1915:70::-;2001:23;2018:5;2001:16;:23::i;3568:124::-;3610:7;1455:42:199;3636:47:144;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:141;4317:6;1455:42:199;4342:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4022:133::-;4068:6;1455:42:199;4093:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4975:280;5038:7;5057:17;5077:22;5093:5;5077:15;:22::i;:::-;5113:9;;5057:42;;-1:-1:-1;5113:9:144;;5109:56;;;5145:9;4975:280;-1:-1:-1;;4975:280:144:o;5109:56::-;1455:42:199;5193:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5181:67;;:9;:67;:::i;:::-;5174:74;4975:280;-1:-1:-1;;;4975:280:144:o;3268:196::-;3307:7;3335:9;;;;3334:10;3326:61;;;;;;;5026:2:357;3326:61:144;;;5008:21:357;5065:2;5045:18;;;5038:30;5104:34;5084:18;;;5077:62;5175:8;5155:18;;;5148:36;5201:19;;3326:61:144;4824:402:357;3326:61:144;1455:42:199;3404:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:130;3834:7;1455:42:199;3860:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6015:393;6084:7;6103:17;6123:22;6139:5;6123:15;:22::i;:::-;6103:42;;6155:21;6202:11;:9;:11::i;:::-;6179:15;:13;:15::i;:::-;:20;;6197:2;6179:20;:::i;:::-;:34;;;;;;:::i;:::-;6155:58;;6223:25;6273:13;:11;:13::i;:::-;6251:19;:17;:19::i;:::-;:35;;;;;;:::i;:::-;6223:63;-1:-1:-1;6296:11:144;6323:33;6223:63;6323:13;:33;:::i;:::-;6310:47;;:9;:47;:::i;:::-;6296:61;-1:-1:-1;6386:14:144;1284:1;6386:2;:14;:::i;:::-;6381:19;;:2;:19;:::i;:::-;6374:27;;:3;:27;:::i;:::-;6367:34;6015:393;-1:-1:-1;;;;;;6015:393:144:o;5468:351::-;5537:7;5556:17;5576:22;5592:5;5576:15;:22::i;:::-;5556:42;;5608:11;1455:42:199;5720:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5694:11;:9;:11::i;:::-;1455:42:199;5635:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5623:67;;:9;:67;:::i;:::-;5622:83;;;;:::i;:::-;:151;;;;:::i;:::-;5608:165;-1:-1:-1;5797:14:144;1284:1;5797:2;:14;:::i;:::-;5790:22;;:3;:22;:::i;:::-;5783:29;5468:351;-1:-1:-1;;;;5468:351:144:o;6610:366::-;6741:12;;6678:7;;;;;6763:173;6787:6;6783:1;:10;6763:173;;;6818:5;6824:1;6818:8;;;;;;;;:::i;:::-;;;;;;;6830:1;6818:13;6814:112;;6851:10;6860:1;6851:10;;:::i;:::-;;;6814:112;;;6900:11;6909:2;6900:11;;:::i;:::-;;;6814:112;6795:3;;;;:::i;:::-;;;;6763:173;;;-1:-1:-1;6952:17:144;:5;6961:7;6952:17;:::i;196:184:357:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:980;453:6;506:2;494:9;485:7;481:23;477:32;474:52;;;522:1;519;512:12;474:52;562:9;549:23;591:18;632:2;624:6;621:14;618:34;;;648:1;645;638:12;618:34;686:6;675:9;671:22;661:32;;731:7;724:4;720:2;716:13;712:27;702:55;;753:1;750;743:12;702:55;789:2;776:16;811:2;807;804:10;801:36;;;817:18;;:::i;:::-;951:2;945:9;1013:4;1005:13;;856:66;1001:22;;;1025:2;997:31;993:40;981:53;;;1049:18;;;1069:22;;;1046:46;1043:72;;;1095:18;;:::i;:::-;1135:10;1131:2;1124:22;1170:2;1162:6;1155:18;1210:7;1205:2;1200;1196;1192:11;1188:20;1185:33;1182:53;;;1231:1;1228;1221:12;1182:53;1287:2;1282;1278;1274:11;1269:2;1261:6;1257:15;1244:46;1332:1;1310:15;;;1327:2;1306:24;1299:35;;;;-1:-1:-1;1314:6:357;385:980;-1:-1:-1;;;;;385:980:357:o;1562:656::-;1674:4;1703:2;1732;1721:9;1714:21;1764:6;1758:13;1807:6;1802:2;1791:9;1787:18;1780:34;1832:1;1842:140;1856:6;1853:1;1850:13;1842:140;;;1951:14;;;1947:23;;1941:30;1917:17;;;1936:2;1913:26;1906:66;1871:10;;1842:140;;;2000:6;1997:1;1994:13;1991:91;;;2070:1;2065:2;2056:6;2045:9;2041:22;2037:31;2030:42;1991:91;-1:-1:-1;2134:2:357;2122:15;2139:66;2118:88;2103:104;;;;2209:2;2099:113;;1562:656;-1:-1:-1;;;1562:656:357:o;2829:184::-;2899:6;2952:2;2940:9;2931:7;2927:23;2923:32;2920:52;;;2968:1;2965;2958:12;2920:52;-1:-1:-1;2991:16:357;;2829:184;-1:-1:-1;2829:184:357:o;3018:313::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3189:9;3183:16;3239:42;3232:5;3228:54;3221:5;3218:65;3208:93;;3297:1;3294;3287:12;4217:280;4286:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:52;;;4355:1;4352;4345:12;4307:52;4387:9;4381:16;4437:10;4430:5;4426:22;4419:5;4416:33;4406:61;;4463:1;4460;4453:12;4502:184;4554:77;4551:1;4544:88;4651:4;4648:1;4641:15;4675:4;4672:1;4665:15;4691:128;4731:3;4762:1;4758:6;4755:1;4752:13;4749:39;;;4768:18;;:::i;:::-;-1:-1:-1;4804:9:357;;4691:128::o;5231:262::-;5270:7;5302:10;5339:2;5336:1;5332:10;5369:2;5366:1;5362:10;5425:3;5421:2;5417:12;5412:3;5409:21;5402:3;5395:11;5388:19;5384:47;5381:73;;;5434:18;;:::i;:::-;5474:13;;5231:262;-1:-1:-1;;;;5231:262:357:o;5498:228::-;5538:7;5664:1;5596:66;5592:74;5589:1;5586:81;5581:1;5574:9;5567:17;5563:105;5560:131;;;5671:18;;:::i;:::-;-1:-1:-1;5711:9:357;;5498:228::o;5731:482::-;5820:1;5863:5;5820:1;5877:330;5898:7;5888:8;5885:21;5877:330;;;6017:4;5949:66;5945:77;5939:4;5936:87;5933:113;;;6026:18;;:::i;:::-;6076:7;6066:8;6062:22;6059:55;;;6096:16;;;;6059:55;6175:22;;;;6135:15;;;;5877:330;;;5881:3;5731:482;;;;;:::o;6218:866::-;
3856267:5;6297:8;6287:80;;-1:-1:-1;6338:1:357;6352:5;;6287:80;6386:4;6376:76;;-1:-1:-1;6423:1:357;6437:5;;6376:76;6468:4;6486:1;6481:59;;;;6554:1;6549:130;;;;6461:218;;6481:59;6511:1;6502:10;;6525:5;;;6549:130;6586:3;6576:8;6573:17;6570:43;;;6593:18;;:::i;:::-;-1:-1:-1;;6649:1:357;6635:16;;6664:5;;6461:218;;6763:2;6753:8;6750:16;6744:3;6738:4;6735:13;6731:36;6725:2;6715:8;6712:16;6707:2;6701:4;6698:12;6694:35;6691:77;6688:159;;;-1:-1:-1;6800:19:357;;;6832:5;;6688:159;6879:34;6904:8;6898:4;6879:34;:::i;:::-;7009:6;6941:66;6937:79;6928:7;6925:92;6922:118;;;7020:18;;:::i;:::-;7058:20;;6218:866;-1:-1:-1;;;6218:866:357:o;7089:131::-;7149:5;7178:36;7205:8;7199:4;7178:36;:::i;7225:274::-;7265:1;7291;7281:189;;7326:77;7323:1;7316:88;7427:4;7424:1;7417:15;7455:4;7452:1;7445:15;7281:189;-1:-1:-1;7484:9:357;;7225:274::o;7504:184::-;7556:77;7553:1;7546:88;7653:4;7650:1;7643:15;7677:4;7674:1;7667:15;7693:195;7732:3;7763:66;7756:5;7753:77;7750:103;;7833:18;;:::i;:::-;-1:-1:-1;7880:1:357;7869:13;;7693:195::o","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","baseFee()":"6ef25c3a","baseFeeScalar()":"c5985918","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","decimals()":"313ce567","gasPrice()":"fe173b97","getL1Fee(bytes)":"49948e0e","getL1GasUsed(bytes)":"de26c4a1","isEcotone()":"4ef6e224","l1BaseFee()":"519b4bd3","overhead()":"0c18c162","scalar()":"f45e65d8","setEcotone()":"22b90ab3","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"name\\":\\"DECIMALS\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"baseFee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"baseFeeScalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint32\\",\\"name\\":\\"\\",\\"type\\":\\"uint32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"blobBaseFee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"blobBaseFeeScalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint32\\",\\"name\\":\\"\\",\\"type\\":\\"uint32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"decimals\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"pure\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"gasPrice\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_data\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"getL1Fee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_data\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"getL1GasUsed\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"isEcotone\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l1BaseFee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"overhead\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}
385,{\\"inputs\\":[],\\"name\\":\\"scalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"setEcotone\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@custom:predeploy 0x420000000000000000000000000000000000000F\\",\\"kind\\":\\"dev\\",\\"methods\\":{\\"baseFee()\\":{\\"returns\\":{\\"_0\\":\\"Current L2 base fee.\\"}},\\"baseFeeScalar()\\":{\\"returns\\":{\\"_0\\":\\"Current base fee scalar.\\"}},\\"blobBaseFee()\\":{\\"returns\\":{\\"_0\\":\\"Current blob base fee.\\"}},\\"blobBaseFeeScalar()\\":{\\"returns\\":{\\"_0\\":\\"Current blob base fee scalar.\\"}},\\"decimals()\\":{\\"custom:legacy\\":\\"@notice Retrieves the number of decimals used in the scalar.\\",\\"returns\\":{\\"_0\\":\\"Number of decimals used in the scalar.\\"}},\\"gasPrice()\\":{\\"returns\\":{\\"_0\\":\\"Current L2 gas price (base fee).\\"}},\\"getL1Fee(bytes)\\":{\\"params\\":{\\"_data\\":\\"Unsigned fully RLP-encoded transaction to get the L1 fee for.\\"},\\"returns\\":{\\"_0\\":\\"L1 fee that should be paid for the tx\\"}},\\"getL1GasUsed(bytes)\\":{\\"params\\":{\\"_data\\":\\"Unsigned fully RLP-encoded transaction to get the L1 gas for.\\"},\\"returns\\":{\\"_0\\":\\"Amount of L1 gas used to publish the transaction.\\"}},\\"l1BaseFee()\\":{\\"returns\\":{\\"_0\\":\\"Latest known L1 base fee.\\"}},\\"overhead()\\":{\\"custom:legacy\\":\\"@notice Retrieves the current fee overhead.\\",\\"returns\\":{\\"_0\\":\\"Current fee overhead.\\"}},\\"scalar()\\":{\\"custom:legacy\\":\\"@notice Retrieves the current fee scalar.\\",\\"returns\\":{\\"_0\\":\\"Current fee scalar.\\"}}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"1.2.0\\"}},\\"title\\":\\"GasPriceOracle\\",\\"version\\":1},\\"userdoc\\":{\\"kind\\":\\"user\\",\\"methods\\":{\\"DECIMALS()\\":{\\"notice\\":\\"Number of decimals used in the scalar.\\"},\\"baseFee()\\":{\\"notice\\":\\"Retrieves the current base fee.\\"},\\"baseFeeScalar()\\":{\\"notice\\":\\"Retrieves the current base fee scalar.\\"},\\"blobBaseFee()\\":{\\"notice\\":\\"Retrieves the current blob base fee.\\"},\\"blobBaseFeeScalar()\\":{\\"notice\\":\\"Retrieves the current blob base fee scalar.\\"},\\"gasPrice()\\":{\\"notice\\":\\"Retrieves the current gas price (base fee).\\"},\\"getL1Fee(bytes)\\":{\\"notice\\":\\"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters.\\"},\\"getL1GasUsed(bytes)\\":{\\"notice\\":\\"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature.\\"},\\"isEcotone()\\":{\\"notice\\":\\"Indicates whether the network has gone through the Ecotone upgrade.\\"},\\"l1BaseFee()\\":{\\"notice\\":\\"Retrieves the latest known L1 base fee.\\"},\\"setEcotone()\\":{\\"notice\\":\\"Set chain to be Ecotone chain (callable by depositor account)\\"},\\"version()\\":{\\"notice\\":\\"Semantic version.\\"}},\\"notice\\":\\"This contract maintains the variables responsible for computing the L1 portion of the total fee charged on L2. Before Bedrock, this contract held variables in state that were read during the state transition function to compute the L1 portion of the transaction fee. After Bedrock, this contract now simply proxies the L1Block contract, which has the values used to compute the L1 portion of the fee in its state. The contract exposes an API that is useful for knowing how large the L1 portion of the transaction fee will be. The following events were deprecated with Bedrock: - event OverheadUpdated(uint256 overhead); - event ScalarUpdated(uint256 scalar); - event DecimalsUpdated(uint256 decimals);
385\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L2/GasPriceOracle.sol\\":\\"GasPriceOracle\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"src/L2/GasPriceOracle.sol\\":{\\"keccak256\\":\\"0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7\\",\\"dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H\\"]},\\"src/L2/L1Block.sol\\":{\\"keccak256\\":\\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\\",\\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\\"]},\\"src/libraries/Predeploys.sol\\":{\\"keccak256\\":\\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\\",\\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getL1Fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"view","type":"function","name":"getL1GasUsed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isEcotone","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1BaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}
385,{"inputs":[],"stateMutability":"view","type":"function","name":"overhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"scalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"baseFee()":{"returns":{"_0":"Current L2 base fee."}},"baseFeeScalar()":{"returns":{"_0":"Current base fee scalar."}},"blobBaseFee()":{"returns":{"_0":"Current blob base fee."}},"blobBaseFeeScalar()":{"returns":{"_0":"Current blob base fee scalar."}},"decimals()":{"custom:legacy":"@notice Retrieves the number of decimals used in the scalar.","returns":{"_0":"Number of decimals used in the scalar."}},"gasPrice()":{"returns":{"_0":"Current L2 gas price (base fee)."}},"getL1Fee(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 fee for."},"returns":{"_0":"L1 fee that should be paid for the tx"}},"getL1GasUsed(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 gas for."},"returns":{"_0":"Amount of L1 gas used to publish the transaction."}},"l1BaseFee()":{"returns":{"_0":"Latest known L1 base fee."}},"overhead()":{"custom:legacy":"@notice Retrieves the current fee overhead.","returns":{"_0":"Current fee overhead."}},"scalar()":{"custom:legacy":"@notice Retrieves the current fee scalar.","returns":{"_0":"Current fee scalar."}}},"version":1},"userdoc":{"kind":"user","methods":{"DECIMALS()":{"notice":"Number of decimals used in the scalar."},"baseFee()":{"notice":"Retrieves the current base fee."},"baseFeeScalar()":{"notice":"Retrieves the current base fee scalar."},"blobBaseFee()":{"notice":"Retrieves the current blob base fee."},"blobBaseFeeScalar()":{"notice":"Retrieves the current blob base fee scalar."},"gasPrice()":{"notice":"Retrieves the current gas price (base fee)."},"getL1Fee(bytes)":{"notice":"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters."},"getL1GasUsed(bytes)":{"notice":"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature."},"isEcotone()":{"notice":"Indicates whether the network has gone through the Ecotone upgrade."},"l1BaseFee()":{"notice":"Retrieves the latest known L1 base fee."},"setEcotone()":{"notice":"Set chain to be Ecotone chain (callable by depositor account)"},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/GasPriceOracle.sol":"GasPriceOracle"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/GasPriceOracle.sol":{"keccak256":"0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1","urls":["bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7","dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H"],"license":"MIT"},"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":89850,"contract":"src/L2/GasPriceOracle.sol:GasPriceOracle","label":"isEcotone","offset":0,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}}
385,"userdoc":{"version":1,"kind":"user","methods":{"DECIMALS()":{"notice":"Number of decimals used in the scalar."},"baseFee()":{"notice":"Retrieves the current base fee."},"baseFeeScalar()":{"notice":"Retrieves the current base fee scalar."},"blobBaseFee()":{"notice":"Retrieves the current blob base fee."},"blobBaseFeeScalar()":{"notice":"Retrieves the current blob base fee scalar."},"gasPrice()":{"notice":"Retrieves the current gas price (base fee)."},"getL1Fee(bytes)":{"notice":"Computes the L1 portion of the fee based on the size of the rlp encoded input transaction, the current L1 base fee, and the various dynamic parameters."},"getL1GasUsed(bytes)":{"notice":"Computes the amount of L1 gas used for a transaction. Adds 68 bytes of padding to account for the fact that the input does not have a signature."},"isEcotone()":{"notice":"Indicates whether the network has gone through the Ecotone upgrade."},"l1BaseFee()":{"notice":"Retrieves the latest known L1 base fee."},"setEcotone()":{"notice":"Set chain to be Ecotone chain (callable by depositor account)"},"version()":{"notice":"Semantic version."}},"notice":"This contract maintains the variables responsible for computing the L1 portion of the total fee charged on L2. Before Bedrock, this contract held variables in state that were read during the state transition function to compute the L1 portion of the transaction fee. After Bedrock, this contract now simply proxies the L1Block contract, which has the values used to compute the L1 portion of the fee in its state. The contract exposes an API that is useful for knowing how large the L1 portion of the transaction fee will be. The following events were deprecated with Bedrock: - event OverheadUpdated(uint256 overhead); - event ScalarUpdated(uint256 scalar); - event DecimalsUpdated(uint256 decimals);"},"devdoc":{"version":1,"kind":"dev","methods":{"baseFee()":{"returns":{"_0":"Current L2 base fee."}},"baseFeeScalar()":{"returns":{"_0":"Current base fee scalar."}},"blobBaseFee()":{"returns":{"_0":"Current blob base fee."}},"blobBaseFeeScalar()":{"returns":{"_0":"Current blob base fee scalar."}},"decimals()":{"returns":{"_0":"Number of decimals used in the scalar."}},"gasPrice()":{"returns":{"_0":"Current L2 gas price (base fee)."}},"getL1Fee(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 fee for."},"returns":{"_0":"L1 fee that should be paid for the tx"}},"getL1GasUsed(bytes)":{"params":{"_data":"Unsigned fully RLP-encoded transaction to get the L1 gas for."},"returns":{"_0":"Amount of L1 gas used to publish the transaction."}},"l1BaseFee()":{"returns":{"_0":"Latest known L1 base fee."}},"overhead()":{"returns":{"_0":"Current fee overhead."}},"scalar()":{"returns":{"_0":"Current fee scalar."}}},"title":"GasPriceOracle"},"ast":{"absolutePath":"src/L2/GasPriceOracle.sol","id":90203,"exportedSymbols":{"GasPriceOracle":[90202],"ISemver":[109417],"L1Block":[90318],"Predeploys":[104124]},"nodeType":"SourceUnit","src":"32:6947:144","nodes":[{"id":89830,"nodeType":"PragmaDirective","src":"32:23:144","nodes":[],"literals":["solidity","0.8",".15"]},{"id":89832,"nodeType":"ImportDirective","src":"57:52:144","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":89831,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"66:7:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89834,"nodeType":"ImportDirective","src":"110:58:144","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":89833,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"119:10:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89836,"nodeType":"ImportDirective","src":"169:45:144","nodes":[],"absolutePath":"src/L2/L1Block.sol","file":"src/L2/L1Block.sol","nameLocation":"-1:-1:-1","scope":90203,"sourceUnit":90319,"symbolAliases":[{"foreign":{"id":89835,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"178:7:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90202,"nodeType":"ContractDefinition","src":"1153:5825:144","nodes":[{"id":89843,"no
385deType":"VariableDeclaration","src":"1249:36:144","nodes":[],"constant":true,"documentation":{"id":89840,"nodeType":"StructuredDocumentation","src":"1194:50:144","text":"@notice Number of decimals used in the scalar."},"functionSelector":"2e0f2625","mutability":"constant","name":"DECIMALS","nameLocation":"1273:8:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36","id":89842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1284:1:144","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"public"},{"id":89847,"nodeType":"VariableDeclaration","src":"1355:40:144","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":89844,"nodeType":"StructuredDocumentation","src":"1292:58:144","text":"@notice Semantic version.\\n @custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1378:7:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":89845,"name":"string","nodeType":"ElementaryTypeName","src":"1355:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":89846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1388:7:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \\"1.2.0\\""},"value":"1.2.0"},"visibility":"public"},{"id":89850,"nodeType":"VariableDeclaration","src":"1486:21:144","nodes":[],"constant":false,"documentation":{"id":89848,"nodeType":"StructuredDocumentation","src":"1402:79:144","text":"@notice Indicates whether the network has gone through the Ecotone upgrade."},"functionSelector":"4ef6e224","mutability":"mutable","name":"isEcotone","nameLocation":"1498:9:144","scope":90202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":89849,"name":"bool","nodeType":"ElementaryTypeName","src":"1486:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":89870,"nodeType":"FunctionDefinition","src":"1835:196:144","nodes":[],"body":{"id":89869,"nodeType":"Block","src":"1905:126:144","nodes":[],"statements":[{"condition":{"id":89858,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"1919:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89864,"nodeType":"IfStatement","src":"1915:70:144","trueBody":{"id":89863,"nodeType":"Block","src":"1930:55:144","statements":[{"expression":{"arguments":[{"id":89860,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89853,"src":"1968:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":89859,"name":"_getL1FeeEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90148,"src":"1951:16:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) view returns (uint256)"}},"id":89861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1951:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89857,"id":89862,"nodeType":"Return","src":"1944:30:144"}]}},{"expression":{"arguments":[{"id":89866,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89853,"src":"2018:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":89865,"name":"_getL1FeeBedrock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90097,"src":"2001:16:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) view returns (uint256)"}},"id":89867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2001:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89857,"id":89868,"nodeType":"Return","src":"1994:30:144"}]},"documentation":{"id":89851,"nodeType":"StructuredDocumentation","src":"1514:316:144","text":"@notice Computes the L1 portion of the fee based on the size of the rlp encoded input\\n transaction, the current L1 base fee, and the various dynamic parameters.\\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\\n @return L1 fee that should be paid for the tx"},"functionSelector":"49948e0e","implemented":true,"kind":"function","modifiers":[],"name":"getL1Fee","nameLocation":"1844:8:144","parameters":{"id":89854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89853,"mutability":"mutable","name":"_data","nameLocation":"1866:5:144","nodeType":"VariableDeclaration","scope":89870,"src":"1853:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":89852,"name":"bytes","nodeType":"ElementaryTypeName","src":"1853:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1852:20:144"},"returnParameters":{"id":89857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89856,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89870,"src":"1896:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89855,"name":"uint256","nodeType":"ElementaryTypeName","src":"1896:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1895:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":89899,"nodeType":"FunctionDefinition","src":"2115:338:144","nodes":[],"body":{"id":89898,"nodeType":"Block","src":"2146:307:144","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":89883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":89875,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2177:3:144","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":89876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2177:10:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89878,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2199:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"2199:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89877,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"2191:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2191:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEPOSITOR_ACCOUNT","nodeType":"MemberAccess","referencedDeclaration":90213,"src":"2191:57:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":89882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2191:59:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2177:73:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e2073657420697345636f746f6e6520666c6167","id":89884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2264:67:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c","typeString":"literal_string \\"GasPriceOracle: only the depositor account can set isEcotone flag\\""},"value":"GasPriceOracle: only the depositor account can set isEcotone flag"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c","typeString":"literal_string \\"GasPriceOracle: only the depositor account can set isEcotone flag\\""}],"id":89874,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2156:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2156:185:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89886,"nodeType":"ExpressionStatement","src":"2156:185:144"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":89890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89888,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"2359:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":89889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2372:5:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2359:18:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a2045636f746f6e6520616c726561647920616374697665","id":89891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2379:40:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39","typeString":"literal_string \\"GasPriceOracle: Ecotone already active\\""},"value":"GasPriceOracle: Ecotone already active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39","typeString":"literal_string \\"GasPriceOracle: Ecotone already active\\""}],"id":89887,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2351:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2351:69:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89893,"nodeType":"ExpressionStatement","src":"2351:69:144"},{"expression":{"id":89896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":89894,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"2430:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":89895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2442
385:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2430:16:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":89897,"nodeType":"ExpressionStatement","src":"2430:16:144"}]},"documentation":{"id":89871,"nodeType":"StructuredDocumentation","src":"2037:73:144","text":"@notice Set chain to be Ecotone chain (callable by depositor account)"},"functionSelector":"22b90ab3","implemented":true,"kind":"function","modifiers":[],"name":"setEcotone","nameLocation":"2124:10:144","parameters":{"id":89872,"nodeType":"ParameterList","parameters":[],"src":"2134:2:144"},"returnParameters":{"id":89873,"nodeType":"ParameterList","parameters":[],"src":"2146:0:144"},"scope":90202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":89909,"nodeType":"FunctionDefinition","src":"2568:87:144","nodes":[],"body":{"id":89908,"nodeType":"Block","src":"2618:37:144","nodes":[],"statements":[{"expression":{"expression":{"id":89905,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2635:5:144","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":89906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","src":"2635:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89904,"id":89907,"nodeType":"Return","src":"2628:20:144"}]},"documentation":{"id":89900,"nodeType":"StructuredDocumentation","src":"2459:104:144","text":"@notice Retrieves the current gas price (base fee).\\n @return Current L2 gas price (base fee)."},"functionSelector":"fe173b97","implemented":true,"kind":"function","modifiers":[],"name":"gasPrice","nameLocation":"2577:8:144","parameters":{"id":89901,"nodeType":"ParameterList","parameters":[],"src":"2585:2:144"},"returnParameters":{"id":89904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89903,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89909,"src":"2609:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89919,"nodeType":"FunctionDefinition","src":"2746:86:144","nodes":[],"body":{"id":89918,"nodeType":"Block","src":"2795:37:144","nodes":[],"statements":[{"expression":{"expression":{"id":89915,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2812:5:144","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":89916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","src":"2812:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89914,"id":89917,"nodeType":"Return","src":"2805:20:144"}]},"documentation":{"id":89910,"nodeType":"StructuredDocumentation","src":"2661:80:144","text":"@notice Retrieves the current base fee.\\n @return Current L2 base fee."},"functionSelector":"6ef25c3a","implemented":true,"kind":"function","modifiers":[],"name":"baseFee","nameLocation":"2755:7:144","parameters":{"id":89911,"nodeType":"ParameterList","parameters":[],"src":"2762:2:144"},"returnParameters":{"id":89914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89919,"src":"2786:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89912,"name":"uint256","nodeType":"ElementaryTypeName","src":"2786:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2785:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"}
385,{"id":89939,"nodeType":"FunctionDefinition","src":"2951:202:144","nodes":[],"body":{"id":89938,"nodeType":"Block","src":"3001:152:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":89927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3019:10:144","subExpression":{"id":89926,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"3020:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a206f7665726865616428292069732064657072656361746564","id":89928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3031:42:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf","typeString":"literal_string \\"GasPriceOracle: overhead() is deprecated\\""},"value":"GasPriceOracle: overhead() is deprecated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf","typeString":"literal_string \\"GasPriceOracle: overhead() is deprecated\\""}],"id":89925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3011:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:63:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89930,"nodeType":"ExpressionStatement","src":"3011:63:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89932,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3099:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3099:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89931,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3091:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3091:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"3091:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3091:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89924,"id":89937,"nodeType":"Return","src":"3084:62:144"}]},"documentation":{"id":89920,"nodeType":"StructuredDocumentation","src":"2838:108:144","text":"@custom:legacy\\n @notice Retrieves the current fee overhead.\\n @return Current fee overhead."},"functionSelector":"0c18c162","implemented":true,"kind":"function","modifiers":[],"name":"overhead","nameLocation":"2960:8:144","parameters":{"id":89921,"n
385odeType":"ParameterList","parameters":[],"src":"2968:2:144"},"returnParameters":{"id":89924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89939,"src":"2992:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89922,"name":"uint256","nodeType":"ElementaryTypeName","src":"2992:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2991:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89959,"nodeType":"FunctionDefinition","src":"3268:196:144","nodes":[],"body":{"id":89958,"nodeType":"Block","src":"3316:148:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":89947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3334:10:144","subExpression":{"id":89946,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"3335:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"47617350726963654f7261636c653a207363616c617228292069732064657072656361746564","id":89948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3346:40:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3","typeString":"literal_string \\"GasPriceOracle: scalar() is deprecated\\""},"value":"GasPriceOracle: scalar() is deprecated"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3","typeString":"literal_string \\"GasPriceOracle: scalar() is deprecated\\""}],"id":89945,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3326:7:144","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":89949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:61:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89950,"nodeType":"ExpressionStatement","src":"3326:61:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89952,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3412:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3412:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89951,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3404:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3404:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeScalar","nodeType":"MemberAccess","referencedDeclaration":90243,"src":"3404:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3404:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89944,"id":89957,"nodeType":"Return","src":"3397:60:144"}]},"documentation":{"id":89940,"nodeType":"StructuredDocumentation","src":"3159:104:144","text":"@custom:legacy\\n @notice Retrieves the current fee scalar.\\n @return Current fee scalar."},"functionSelector":"f45e65d8","implemented":true,"kind":"function","modifiers":[],"name":"scalar","nameLocation":"3277:6:144","parameters":{"id":89941,"nodeType":"ParameterList","parameters":[],"src":"3283:2:144"},"returnParameters":{"id":89944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89943,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89959,"src":"3307:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89942,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3306:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89973,"nodeType":"FunctionDefinition","src":"3568:124:144","nodes":[],"body":{"id":89972,"nodeType":"Block","src":"3619:73:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89966,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3644:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3644:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89965,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3636:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3636:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"basefee","nodeType":"MemberAccess","referencedDeclaration":90222,"src":"3636:47:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3636:49:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89964,"id":89971,"nodeType":"Return","src":"3629:56:144"}]},"documentation":{"id":89960,"nodeType":"StructuredDocumentation","src":"3470:93:144","text":"@notice Retrieves the latest known L1 base fee.\\n @return Latest known L1 base fee."},"functionSelector":"519b4bd3","implemented":true,"kind":"function","modifiers":[],"name":"l1BaseFee","nameLocation":"3577:9:144","parameters":{"id":89961,"nodeType":"ParameterList","parameters":[],"src":"3586:2:144"},"returnParameters":{"id":89964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89973,"src":"3610:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89962,"name":"uint256","nodeType":"ElementaryTypeName","src":"3610:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3609:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":89987,"nodeType":"FunctionDefinition","src":"3790:130:144","nodes":[],"body":{"id":89986,"nodeType":"Block","src":"3843:77:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89980,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"3868:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"3868:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89979,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"3860:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"blobBaseFee","nodeType":"MemberAccess","referencedDeclaration":90246,"src":"3860:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":89984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3860:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":89978,"id":89985,"nodeType":"Return","src":"3853:60:144"}]},"documentation":{"id":89974,"nodeType":"StructuredDocumentation","src":"3698:87:144","text":"@notice Retrieves the current blob base fee.\\n @return Current blob base fee."},"functionSelector":"f8206140","implemented":true,"kind":"function","modifiers":[],"name":"blobBaseFee","nameLocation":"3799:11:144","parameters":{"id":89975,"nodeType":"ParameterList","parameters":[],"src":"3810:2:144"},"returnParameters":{"id":89978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":89987,"src":"3834:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3834:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3833:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90001,"nodeType":"FunctionDefinition","src":"4022:133:144","nodes":[],"body":{"id":90000,"nodeType":"Block","src":"4076:79:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":89994,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"4101:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":89995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"4101:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":89993,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"4093:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":89996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":89997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"baseFeeScalar","nodeType":"MemberAccess","referencedDeclaration":90234,"src":"4093:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint32_$","typeString":"function () view external returns (uint32)"}},"id":89998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":89992,"id":89999,"nodeType":"Return","src":"4086:62:144"}]},"documentation":{"id":89988,"nodeType":"StructuredDocumentation","src":"3926:91:144","text":"@notice Retrieves the current base fee scalar.\\n @return Current base fee scalar."},"functionSelector":"c5985918","implemented":true,"kind":"function","modifiers":[],"name":"baseFeeScalar","nameLocation":"4031:13:144","parameters":{"id":89989,"nodeType":"ParameterList","parameters":[],"src":"4044:2:144"},"returnParameters":{"id":89992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90001,"src":"4068:6:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":89990,"name":"uint32","nodeType":"ElementaryTypeName","src":"4068:6:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4067:8:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90015,"nodeType":"FunctionDefinition","src":"4267:141:144","nodes":[],"body":{"id":90014,"nodeType":"Block","src":"4325:83:144","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90008,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"4350:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"4350:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90007,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"4342:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"blobBaseFeeScalar","nodeType":"MemberAccess","referencedDeclaration":90231,"src":"4342:57:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint32_$","typeString":"function () view external returns (uint32)"}},"id":90012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:59:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":90006,"id":90013,"nodeType":"Return","src":"4335:66:144"}]},"documentation":{"id":90002,"nodeType":"StructuredDocumentation","src":"4161:101:144","text":"@notice Retrieves the current blob base fee scalar.\\n @return Current blob base fee scalar."}
385,"functionSelector":"68d5dca6","implemented":true,"kind":"function","modifiers":[],"name":"blobBaseFeeScalar","nameLocation":"4276:17:144","parameters":{"id":90003,"nodeType":"ParameterList","parameters":[],"src":"4293:2:144"},"returnParameters":{"id":90006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90015,"src":"4317:6:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90004,"name":"uint32","nodeType":"ElementaryTypeName","src":"4317:6:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"4316:8:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90024,"nodeType":"FunctionDefinition","src":"4561:82:144","nodes":[],"body":{"id":90023,"nodeType":"Block","src":"4611:32:144","nodes":[],"statements":[{"expression":{"id":90021,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"4628:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90020,"id":90022,"nodeType":"Return","src":"4621:15:144"}]},"documentation":{"id":90016,"nodeType":"StructuredDocumentation","src":"4414:142:144","text":"@custom:legacy\\n @notice Retrieves the number of decimals used in the scalar.\\n @return Number of decimals used in the scalar."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"4570:8:144","parameters":{"id":90017,"nodeType":"ParameterList","parameters":[],"src":"4578:2:144"},"returnParameters":{"id":90020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90024,"src":"4602:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90018,"name":"uint256","nodeType":"ElementaryTypeName","src":"4602:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4601:9:144"},"scope":90202,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":90053,"nodeType":"FunctionDefinition","src":"4975:280:144","nodes":[],"body":{"id":90052,"nodeType":"Block","src":"5047:208:144","nodes":[],"statements":[{"assignments":[90033],"declarations":[{"constant":false,"id":90033,"mutability":"mutable","name":"l1GasUsed","nameLocation":"5065:9:144","nodeType":"VariableDeclaration","scope":90052,"src":"5057:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90032,"name":"uint256","nodeType":"ElementaryTypeName","src":"5057:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90037,"initialValue":{"arguments":[{"id":90035,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90027,"src":"5093:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90034,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"5077:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5077:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5057:42:144"},{"condition":{"id":90038,"name":"isEcotone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89850,"src":"5113:9:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90042,"nodeType":"IfStatement","src":"5109:56:144","trueBody":{"id":90041,"nodeType":"Block","src":"5124:41:144","statements":[{"expression":{"id":90039,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90033,"src":"5145:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90031,"id":90040,"nodeType":"Return","src":"5138:16:144"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90043,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90033,"src":"5181:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90045,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5201:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5201:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90044,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5193:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5193:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"5193:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5193:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5181:67:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90031,"id":90051,"nodeType":"Return","src":"5174:74:144"}]},"documentation":{"id":90025,"nodeType":"StructuredDocumentation","src":"4649:321:144","text":"@notice Computes the amount of L1 gas used for a transaction. Adds 68 bytes\\n of padding to account for the fact that the input does not have a signature.\\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\\n @return Amount of L1 gas used to publish the transaction."},"functionSelector":"de26c4a1","implemented":true,"kind":"function","modifiers":[],"name":"getL1GasUsed","nameLocation":"4984:12:144","parameters":{"id":90028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90027,"mutability":"mutable","name":"_data","nameLocation":"5010:5:144","nodeType":"VariableDeclaration","scope":90053,"src":"4997:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90026,"name":"bytes","nodeType":"ElementaryTypeName","src":"4997:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4996:20:144"},"returnParameters":{"id":90031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90030,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90053,"src":"5038:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5038:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5037:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90097,"nodeType":"FunctionDefinition","src":"5468:351:144","nodes":[],"body":{"id":90096,"nodeType":"Block","src":"5546:273:144","nodes":[],"statements":[{"assignments":[90062],"declarations":[{"constant":false,"id":90062,"mutability":"mutable","name":"l1GasUsed","nameLocation":"5564:9:144","nodeType":"VariableDeclaration","scope":90096,"src":"5556:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90061,"name":"uint256","nodeType":"ElementaryTypeName","src":"5556:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90066,"initialValue":{"arguments":[{"id":90064,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90056,"src":"5592:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90063,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"5576:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5576:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5556:42:144"},{"assignments":[90068],"declarations":[{"constant":false,"id":90068,"mutability":"mutable","name":"fee","nameLocation":"5616:3:144","nodeType":"VariableDeclaration","scope":90096,"src":"5608:11:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90067,"name":"uint256","nodeType":"ElementaryTypeName","src":"5608:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90088,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90069,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90062,"src":"5623:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90071,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5643:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5643:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90070,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5635:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5635:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeOverhead","nodeType":"MemberAccess","referencedDeclaration":90240,"src":"5635:53:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5635:55:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5623:67:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90077,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5622:69:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90078,"name":"l1BaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89973,"src":"5694:9:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5694:11:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5622:83:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":90082,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"5728:10:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L1_BLOCK_ATTRIBUTES","nodeType":"MemberAccess","referencedDeclaration":104027,"src":"5728:30:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90081,"name":"L1Block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90318,"src":"5720:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1Block_$90318_$","typeString":"type(contract L1Block)"}},"id":90084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L1Block_$90318","typeString":"contract L1Block"}},"id":90085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l1FeeScalar","nodeType":"MemberAccess","referencedDeclaration":90243,"src":"5720:51:144","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":90086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5622:151:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5608:165:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90089,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90068,"src":"5790:3:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":90090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5797:2:144","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":90091,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"5803:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5797:14:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90093,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5796:16:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5790:22:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90060,"id":90095,"nodeType":"Return","src":"5783:29:144"}]},"documentation":{"id":90054,"nodeType":"StructuredDocumentation","src":"5261:202:144","text":"@notice Computation of the L1 portion of the fee for Bedrock.\\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\\n @return L1 fee that should be paid for the tx"},"implemented":true,"kind":"function","modifiers":[],"name":"_getL1FeeBedrock","nameLocation":"5477:16:144","parameters":{"id":90057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90056,"mutability":"mutable","name":"_data","nameLocation":"5507:5:144","nodeType":"VariableDeclaration","scope":90097,"src":"5494:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90055,"name":"bytes","nodeType":"ElementaryTypeName","src":"5494:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5493:20:144"},"returnParameters":{"id":90060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90097,"src":"5537:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90058,"name":"uint256","nodeType":"ElementaryTypeName","src":"5537:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5536:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90148,"nodeType":"FunctionDefinition","src":"6015:393:144","nodes":[],"body":{"id":90147,"nodeType":"Block","src":"6093:315:144","nodes":[],"statements":[{"assignments":[90106],"declarations":[{"constant":false,"id":90106,"mutability":"mutable","name":"l1GasUsed","nameLocation":"6111:9:144","nodeType":"VariableDeclaration","scope":90147,"src":"6103:17:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6103:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90110,"initialValue":{"arguments":[{"id":90108,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90100,"src":"6139:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":90107,"name":"_getCalldataGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90201,"src":"6123:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":90109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6123:22:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6103:42:144"},{"assignments":[90112],"declarations":[{"constant":false,"id":90112,"mutability":"mutable","name":"scaledBaseFee","nameLocation":"6163:13:144","nodeType":"VariableDeclaration","scope":90147,"src":"6155:21:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6155:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90120,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":90116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90113,"name":"baseFeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90001,"src":"6179:13:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint32_$","typeString":"function () view returns (uint32)"}},"id":90114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6179:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":90115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6197:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6179:20:144","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90117,"name":"l1BaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89973,"src":"6202:9:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6202:11:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6179:34:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6155:58:144"},{"assignments":[90122],"declarations":[{"constant":false,"id":90122,"mutability":"mutable","name":"scaledBlobBaseFee","nameLocation":"6231:17:144","nodeType":"VariableDeclaration","scope":90147,"src":"6223:25:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90121,"name":"uint256","nodeType":"ElementaryTypeName","src":"6223:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90123,"name":"blobBaseFeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90015,"src":"6251:17:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint32_$","typeString":"function () view returns (uint32)"}},"id":90124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6251:19:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":90125,"name":"blobBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89987,"src":"6273:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":90126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6273:13:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6251:35:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6223:63:144"},{"assignments":[90130],"declarations":[{"constant":false,"id":90130,"mutability":"mutable","name":"fee","nameLocation":"6304:3:144","nodeType":"VariableDeclaration","scope":90147,"src":"6296:11:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90129,"name":"uint256","nodeType":"ElementaryTypeName","src":"6296:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90137,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90131,"name":"l1GasUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90106,"src":"6310:9:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90132,"name":"scaledBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90112,"src":"6323:13:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":90133,"name":"scaledBlobBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90122,"src":"6339:17:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6323:33:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6322:35:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6310:47:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6296:61:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90138,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90130,"src":"6374:3:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValu
385e":"3136","id":90139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6381:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":90140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6386:2:144","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":90141,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89843,"src":"6392:8:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6386:14:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6381:19:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":90144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6380:21:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6374:27:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90104,"id":90146,"nodeType":"Return","src":"6367:34:144"}]},"documentation":{"id":90098,"nodeType":"StructuredDocumentation","src":"5825:185:144","text":"@notice L1 portion of the fee after Ecotone.\\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\\n @return L1 fee that should be paid for the tx"},"implemented":true,"kind":"function","modifiers":[],"name":"_getL1FeeEcotone","nameLocation":"6024:16:144","parameters":{"id":90101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90100,"mutability":"mutable","name":"_data","nameLocation":"6054:5:144","nodeType":"VariableDeclaration","scope":90148,"src":"6041:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90099,"name":"bytes","nodeType":"ElementaryTypeName","src":"6041:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6040:20:144"},"returnParameters":{"id":90104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90148,"src":"6084:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90102,"name":"uint256","nodeType":"ElementaryTypeName","src":"6084:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6083:9:144"},"scope":90202,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90201,"nodeType":"FunctionDefinition","src":"6610:366:144","nodes":[],"body":{"id":90200,"nodeType":"Block","src":"6687:289:144","nodes":[],"statements":[{"assignments":[90157],"declarations":[{"constant":false,"id":90157,"mutability":"mutable","name":"total","nameLocation":"6705:5:144","nodeType":"VariableDeclaration","scope":90200,"src":"6697:13:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90156,"name":"uint256","nodeType":"ElementaryTypeName","src":"6697:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90159,"initialValue":{"hexValue":"30","id":90158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6713:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6697:17:144"},{"assignments":[90161],"declarations":[{"constant":false,"id":90161,"mutability":"mutable","name":"length","nameLocation":"6732:6:144","nodeType":"VariableDeclaration","scope":90200,"src":"6724:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90160,"name":"uint256","nodeType":"ElementaryTypeName","src":"6724:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90164,"initialValue":{"expression":{"id":90162,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90151,"src":"6741:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":90163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6741:12:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6724:29:144"},{"body":{"id":90191,"nodeType":"Block","src":"6800:136:144","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":90179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":90175,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90151,"src":"6818:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":90177,"indexExpression":{"id":90176,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6824:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6818:8:144","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":90178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6830:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6818:13:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":90189,"nodeType":"Block","src":"6882:44:144","statements":[{"expression":{"id":90187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90185,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6900:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":90186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6909:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6900:11:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90188,"nodeType":"ExpressionStatement","src":"6900:11:144"}]},"id":90190,"nodeType":"IfStatement","src":"6814:112:144","trueBody":{"id":90184,"nodeType":"Block","src":"6833:43:144","statements":[{"expression":{"id":90182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90180,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6851:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":90181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6860:1:144","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"6851:10:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}
385,"id":90183,"nodeType":"ExpressionStatement","src":"6851:10:144"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90169,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6783:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":90170,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90161,"src":"6787:6:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6783:10:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":90192,"initializationExpression":{"assignments":[90166],"declarations":[{"constant":false,"id":90166,"mutability":"mutable","name":"i","nameLocation":"6776:1:144","nodeType":"VariableDeclaration","scope":90192,"src":"6768:9:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90165,"name":"uint256","nodeType":"ElementaryTypeName","src":"6768:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":90168,"initialValue":{"hexValue":"30","id":90167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6780:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6768:13:144"},"loopExpression":{"expression":{"id":90173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6795:3:144","subExpression":{"id":90172,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90166,"src":"6795:1:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90174,"nodeType":"ExpressionStatement","src":"6795:3:144"},"nodeType":"ForStatement","src":"6763:173:144"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":90198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90193,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90157,"src":"6952:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"},"id":90196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3638","id":90194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6961:2:144","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":90195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6966:2:144","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"6961:7:144","typeDescriptions":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"}}],"id":90197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6960:9:144","typeDescriptions":{"typeIdentifier":"t_rational_1088_by_1","typeString":"int_const 1088"}},"src":"6952:17:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":90155,"id":90199,"nodeType":"Return","src":"6945:24:144"}]},"documentation":{"id":90149,"nodeType":"StructuredDocumentation","src":"6414:191:144","text":"@notice L1 gas estimation calculation.\\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\\n @return Amount of L1 gas used to publish the transaction."},"implemented":true,"kind":"function","modifiers":[],"name":"_getCalldataGas","nameLocation":"6619:15:144","parameters":{"id":90152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90151,"mutability":"mutable","name":"_data","nameLocation":"6648:5:144","nodeType":"VariableDeclaration","scope":90201,"src":"6635:18:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90150,"name":"bytes","nodeType":"ElementaryTypeName","src":"6635:5:144","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6634:20:144"},"returnParameters":{"id":90155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90201,"src":"6678:7:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90153,"name":"uint256","nodeType":"ElementaryTypeName","src":"6678:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6677:9:144"},"scope":90202,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":89838,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1180:7:144"},"id":89839,"nodeType":"InheritanceSpecifier","src":"1180:7:144"}],"canonicalName":"GasPriceOracle","contractDependencies":[],"contractKind":"contract","documentation":{"id":89837,"nodeType":"StructuredDocumentation","src":"216:937:144","text":"@custom:proxied\\n @custom:predeploy 0x420000000000000000000000000000000000000F\\n @title GasPriceOracle\\n @notice This contract maintains the variables responsible for computing the L1 portion of the\\n total fee charged on L2. Before Bedrock, this contract held variables in state that were\\n read during the state transition function to compute the L1 portion of the transaction\\n fee. After Bedrock, this contract now simply proxies the L1Block contract, which has\\n the values used to compute the L1 portion of the fee in its state.\\n The contract exposes an API that is useful for knowing how large the L1 portion of the\\n transaction fee will be. The following events were deprecated with Bedrock:\\n - event OverheadUpdated(uint256 overhead);\\n - event ScalarUpdated(uint256 scalar);\\n - event DecimalsUpdated(uint256 decimals);"},"fullyImplemented":true,"linearizedBaseContracts":[90202,109417],"name":"GasPriceOracle","nameLocation":"1162:14:144","scope":90203,"usedErrors":[]}],"license":"MIT"},"id":144}')},37453:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"function","name":"DEPOSITOR_ACCOUNT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"baseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"basefee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"batcherHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"blobBaseFeeScalar","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"hash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"l1FeeOverhead","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"l1FeeScalar","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"number","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"sequenceNumber","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"setL1BlockValues","inputs":[{"name":"_number","type":"uint64","internalType":"uint64"},{"name":"_timestamp","type":"uint64","internalType":"uint64"},{"name":"_basefee","type":"uint256","internalType":"uint256"},{"name":"_hash","type":"bytes32","internalType":"bytes32"},{"name":"_sequenceNumber","type":"uint64","internalType":"uint64"},{"name":"_batcherHash","type":"bytes32","internalType":"bytes32"},{"name":"_l1FeeOverhead","type":"uint256","internalType":"uint256"},{"name":"_l1FeeScalar","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1BlockValuesEcotone","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timestamp","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061053e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b
38561029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b6104728961042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638381f58a11610097578063c598591811610066578063c598591814610229578063e591b28214610249578063e81b2c6d14610289578063f82061401461029257600080fd5b80638381f58a146101e35780638b239f73146101f75780639e8c496614610200578063b80777ea1461020957600080fd5b806354fd4d50116100d357806354fd4d50146101335780635cf249691461017c57806364ca23ef1461018557806368d5dca6146101b257600080fd5b8063015d8eb9146100fa57806309bd5a601461010f578063440a5e201461012b575b600080fd5b61010d61010836600461044c565b61029b565b005b61011860025481565b6040519081526020015b60405180910390f35b61010d6103da565b61016f6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161012291906104be565b61011860015481565b6003546101999067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610122565b6003546101ce9068010000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001610122565b6000546101999067ffffffffffffffff1681565b61011860055481565b61011860065481565b6000546101999068010000000000000000900467ffffffffffffffff1681565b6003546101ce906c01000000000000000000000000900463ffffffff1681565b61026473deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610122565b61011860045481565b61011860075481565b3373deaddeaddeaddeaddeaddeaddeaddeaddead000114610342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60448201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000606482015260840160405180910390fd5b6000805467ffffffffffffffff98891668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909116998916999099179890981790975560019490945560029290925560038054919094167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000009190911617909255600491909155600555600655565b3373deaddeaddeaddeaddeaddeaddeaddeaddead00011461040357633cc50b456000526004601cfd5b60043560801c60035560143560801c600055602435600155604435600755606435600255608435600455565b803567ffffffffffffffff8116811461044757600080fd5b919050565b600080600080600080600080610100898b03121561046957600080fd5b61047289
38561042f565b975061048060208a0161042f565b9650604089013595506060890135945061049c60808a0161042f565b979a969950949793969560a0850135955060c08501359460e001359350915050565b600060208083528351808285015260005b818110156104eb578581018301518582016040015282016104cf565b818111156104fd576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea164736f6c634300080f000a","sourceMap":"588:4256:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2494:660;;;;;;:::i;:::-;;:::i;:::-;;1071:19;;;;;;;;;1014:25:357;;;1002:2;987:18;1071:19:145;;;;;;;;3886:956;;;:::i;1961:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1001:22::-;;;;;;1156:28;;;;;;;;;;;;2067:18:357;2055:31;;;2037:50;;2025:2;2010:18;1156:28:145;1893:200:357;1298:31:145;;;;;;;;;;;;;;;2272:10:357;2260:23;;;2242:42;;2230:2;2215:18;1298:31:145;2098:192:357;840:20:145;;;;;;;;;1680:28;;;;;;1821:26;;;;;;931:23;;;;;;;;;;;;1438:27;;;;;;;;;;;;680:86;;724:42;680:86;;;;;2471:42:357;2459:55;;;2441:74;;2429:2;2414:18;680:86:145;2295:226:357;1539:26:145;;;;;;1899;;;;;;2494:660;2789:10;724:42;2789:31;2781:103;;;;;;;2728:2:357;2781:103:145;;;2710:21:357;2767:2;2747:18;;;2740:30;2806:34;2786:18;;;2779:62;2877:29;2857:18;;;2850:57;2924:19;;2781:103:145;;;;;;;;2895:6;:16;;;2921:22;;;;;;;;;2895:16;;;2921:22;;;;;;;;;;;2895:16;2953:18;;;;2981:4;:12;;;;3003:14;:32;;;;;;2895:16;3003:32;;;;;;;;3045:11;:26;;;;3081:13;:30;3121:11;:26;2494:660::o;3886:956::-;4036:8;4046:17;4029:233;;;4096:10;4090:4;4083:24;4194:4;4188;4181:18;4029:233;4453:1;4440:15;4435:3;4431:25;4410:19;4403:54;4566:2;4553:16;4548:3;4544:26;4531:11;4524:47;4618:2;4605:16;4591:12;4584:38;4684:2;4671:16;4653;4646:42;4743:3;4730:17;4719:9;4712:36;4810:3;4797:17;4779:16;4772:43;3886:956::o;14:171:357:-;81:20;;141:18;130:30;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:673::-;309:6;317;325;333;341;349;357;365;418:3;406:9;397:7;393:23;389:33;386:53;;;435:1;432;425:12;386:53;458:28;476:9;458:28;:::i;:::-;448:38;;505:37;538:2;527:9;523:18;505:37;:::i;:::-;495:47;;589:2;578:9;574:18;561:32;551:42;;640:2;629:9;625:18;612:32;602:42;;663:38;696:3;685:9;681:19;663:38;:::i;:::-;190:673;;;;-1:-1:-1;190:673:357;;;;653:48;748:3;733:19;;720:33;;-1:-1:-1;800:3:357;785:19;;772:33;;852:3;837:19;824:33;;-1:-1:-1;190:673:357;-1:-1:-1;;190:673:357:o;1050:656::-;1162:4;1191:2;1220;1209:9;1202:21;1252:6;1246:13;1295:6;1290:2;1279:9;1275:18;1268:34;1320:1;1330:140;1344:6;1341:1;1338:13;1330:140;;;1439:14;;;1435:23;;1429:30;1405:17;;;1424:2;1401:26;1394:66;1359:10;;1330:140;;;1488:6;1485:1;1482:13;1479:91;;;1558:1;1553:2;1544:6;1533:9;1529:22;1525:31;1518:42;1479:91;-1:-1:-1;1622:2:357;1610:15;1627:66;1606:88;1591:104;;;;1697:2;1587:113;;1050:656;-1:-1:-1;;;1050:656:357:o","linkReferences":{}},"methodIdentifiers":{"DEPOSITOR_ACCOUNT()":"e591b282","baseFeeScalar()":"c5985918","basefee()":"5cf24969","batcherHash()":"e81b2c6d","blobBaseFee()":"f8206140","blobBaseFeeScalar()":"68d5dca6","hash()":"09bd5a60","l1FeeOverhead()":"8b239f73","l1FeeScalar()":"9e8c4966","number()":"8381f58a","sequenceNumber()":"64ca23ef","setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":"015d8eb9","setL1BlockValuesEcotone()":"440a5e20","timestamp()":"b80777ea","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"name\\":\\"DEPOSITOR_ACCOUNT\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"baseFeeScalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint32\\",\\"name\\":\\"\\",\\"type\\":\\"uint32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"basefee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}
385,{\\"inputs\\":[],\\"name\\":\\"batcherHash\\",\\"outputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"blobBaseFee\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"blobBaseFeeScalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint32\\",\\"name\\":\\"\\",\\"type\\":\\"uint32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"hash\\",\\"outputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l1FeeOverhead\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l1FeeScalar\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"number\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"sequenceNumber\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"_number\\",\\"type\\":\\"uint64\\"},{\\"internalType\\":\\"uint64\\",\\"name\\":\\"_timestamp\\",\\"type\\":\\"uint64\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_basefee\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"_hash\\",\\"type\\":\\"bytes32\\"},{\\"internalType\\":\\"uint64\\",\\"name\\":\\"_sequenceNumber\\",\\"type\\":\\"uint64\\"},{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"_batcherHash\\",\\"type\\":\\"bytes32\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_l1FeeOverhead\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_l1FeeScalar\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"setL1BlockValues\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"setL1BlockValuesEcotone\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"timestamp\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@custom:predeploy 0x4200000000000000000000000000000000000015\\",\\"kind\\":\\"dev\\",\\"methods\\":{\\"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)\\":{\\"custom:legacy\\":\\"@notice Updates the L1 block values.\\",\\"params\\":{\\"_basefee\\":\\"L1 basefee.\\",\\"_batcherHash\\":\\"Versioned hash to authenticate batcher by.\\",\\"_hash\\":\\"L1 blockhash.\\",\\"_l1FeeOverhead\\":\\"L1 fee overhead.\\",\\"_l1FeeScalar\\":\\"L1 fee scalar.\\",\\"_number\\":\\"L1 blocknumber.\\",\\"_sequenceNumber\\":\\"Number of L2 blocks since epoch start.\\",\\"_timestamp\\":\\"L1 timestamp.\\"}}},\\"stateVariables\\":{\\"l1FeeOverhead\\":{\\"custom:legacy\\":\\"\\"},\\"l1FeeScalar\\":{\\"custom:legacy\\":\\"\\"},\\"version\\":{\\"custom:semver\\":\\"1.2.0\\"}},\\"title\\":\\"L1Block\\",\\"version\\":1},\\"userdoc\\":{\\"kind\\":\\"user\\",\\"methods\\":{\\"DEPOSITOR_ACCOUNT()\\":{\\"notice\\":\\"Address of the special depositor account.\\"},\\"baseFeeScalar()\\":{\\"notice\\":\\"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.\\"},\\"basefee()\\":{\\"notice\\":\\"The latest L1 base fee.\\"},\\"batcherHash()\\":{\\"notice\\":\\"The versioned hash to authenticate the batcher by.\\"},\\"blobBaseFee()\\":{\\"notice\\":\\"The latest L1 blob base fee.\\"},\\"blobBaseFeeScalar()\\":{\\"notice\\":\\"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.\\"},\\"hash()\\":{\\"notice\\":\\"The latest L1 blockhash.\\"},\\"l1FeeOverhead()\\":{\\"notice\\":\\"The overhead value applied to the L1 portion of the transaction fee.\\"},\\"l1FeeScalar()\\":{\\"notice\\":\\"The scalar value applied to the L1 portion of the transaction fee.\\"},\\"number()\\":{\\"notice\\":\\"The latest L1 block number known by the L2 system.\\"},\\"sequenceNumber()\\":{\\"notice\\":\\"The number of L2 blocks in the same epoch.\\"},\\"setL1BlockValuesEcotone()\\":{\\"notice\\":\\"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Param
385s are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by.\\"},\\"timestamp()\\":{\\"notice\\":\\"The latest L1 timestamp known by the L2 system.\\"}},\\"notice\\":\\"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\\\\\"depositor\\\\\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch.\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L2/L1Block.sol\\":\\"L1Block\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"src/L2/L1Block.sol\\":{\\"keccak256\\":\\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\\",\\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}
385,{"inputs":[],"stateMutability":"view","type":"function","name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValues"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setL1BlockValuesEcotone"},{"inputs":[],"stateMutability":"view","type":"function","name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"custom:legacy":"@notice Updates the L1 block values.","params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"version":1},"userdoc":{"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."},"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L1Block.sol":"L1Block"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L1Block.sol":{"keccak256":"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6","urls":["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7","dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":90216,"contract":"src/L2/L1Block.sol:L1Block","label":"number","offset":0,"slot":"0","type":"t_uint64"},{"astId":90219,"contract":"src/L2/L1Block.sol:L1Block","label":"timestamp","offset":8,"slot":"0","type":"t_uint64"},{"astId":90222,"contract":"src/L2/L1Block.sol:L1Block","label":"basefee","offset":0,"slot":"1","type":"t_uint256"},{"astId":90225,"contract":"src/L2/L1Block.sol:L1Block","label":"hash","offset":0,"slot":"2","type":"t_bytes32"},{"astId":90228,"contract":"src/L2/L1Block.sol:L1Block","label":"sequenceNumber","offset":0,"slot":"3","type":"t_uint64"},{"astId":90231,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFeeScalar","offset":8,"slot":"3","type":"t_uint32"},{"astId":90234,"contract":"src/L2/L1Block.sol:L1Block","label":"baseFeeScalar","offset":12,"slot":"3","type":"t_uint32"},{"astId":90237,"contract":"src/L2/L1Block.sol:L1Block","label":"batcherHash","offset":0,"slot":"4","type":"t_bytes32"},{"astId":90240,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeOverhead","offset":0,"slot":"5","type":"t_uint256"},{"astId":90243,"contract":"src/L2/L1Block.sol:L1Block","label":"l1FeeScalar","offset":0,"slot":"6","type":"t_uint256"},{"astId":90246,"contract":"src/L2/L1Block.sol:L1Block","label":"blobBaseFee","offset":0,"slot":"7","type":"t_uint256"}],"types":{"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"userdoc":{"version":1,"kind":"user","methods":{"DEPOSITOR_ACCOUNT()":{"notice":"Address of the special depositor account."},"baseFeeScalar()":{"notice":"The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"basefee()":{"notice":"The latest L1 base fee."},"batcherHash()":{"notice":"The versioned hash to authenticate the batcher by."},"blobBaseFee()":{"notice":"The latest L1 blob base fee."},"blobBaseFeeScalar()":{"notice":"The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"hash()":{"notice":"The latest L1 blockhash."}
385,"l1FeeOverhead()":{"notice":"The overhead value applied to the L1 portion of the transaction fee."},"l1FeeScalar()":{"notice":"The scalar value applied to the L1 portion of the transaction fee."},"number()":{"notice":"The latest L1 block number known by the L2 system."},"sequenceNumber()":{"notice":"The number of L2 blocks in the same epoch."},"setL1BlockValuesEcotone()":{"notice":"Updates the L1 block values for an Ecotone upgraded chain. Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size. Params are expected to be in the following order: 1. _baseFeeScalar L1 base fee scalar 2. _blobBaseFeeScalar L1 blob base fee scalar 3. _sequenceNumber Number of L2 blocks since epoch start. 4. _timestamp L1 timestamp. 5. _number L1 blocknumber. 6. _basefee L1 base fee. 7. _blobBaseFee L1 blob base fee. 8. _hash L1 blockhash. 9. _batcherHash Versioned hash to authenticate batcher by."},"timestamp()":{"notice":"The latest L1 timestamp known by the L2 system."}},"notice":"The L1Block predeploy gives users access to information about the last known L1 block. Values within this contract are updated once per epoch (every L1 block) and can only be set by the \\"depositor\\" account, a special system address. Depositor account transactions are created by the protocol whenever we move to a new epoch."},"devdoc":{"version":1,"kind":"dev","methods":{"setL1BlockValues(uint64,uint64,uint256,bytes32,uint64,bytes32,uint256,uint256)":{"params":{"_basefee":"L1 basefee.","_batcherHash":"Versioned hash to authenticate batcher by.","_hash":"L1 blockhash.","_l1FeeOverhead":"L1 fee overhead.","_l1FeeScalar":"L1 fee scalar.","_number":"L1 blocknumber.","_sequenceNumber":"Number of L2 blocks since epoch start.","_timestamp":"L1 timestamp."}}},"title":"L1Block"},"ast":{"absolutePath":"src/L2/L1Block.sol","id":90319,"exportedSymbols":{"ISemver":[109417],"L1Block":[90318]},"nodeType":"SourceUnit","src":"32:4813:145","nodes":[{"id":90204,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90206,"nodeType":"ImportDirective","src":"57:52:145","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90319,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90205,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"66:7:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90318,"nodeType":"ContractDefinition","src":"588:4256:145","nodes":[{"id":90213,"nodeType":"VariableDeclaration","src":"680:86:145","nodes":[],"constant":true,"documentation":{"id":90210,"nodeType":"StructuredDocumentation","src":"622:53:145","text":"@notice Address of the special depositor account."},"functionSelector":"e591b282","mutability":"constant","name":"DEPOSITOR_ACCOUNT","nameLocation":"704:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90211,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:145","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307844656144444561444465416444654164444541644445616464654164644541644445416430303031","id":90212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"724:42:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001"},"visibility":"public"},{"id":90216,"nodeType":"VariableDeclaration","src":"840:20:145","nodes":[],"constant":false,"documentation":{"id":90214,"nodeType":"StructuredDocumentation","src":"773:62:145","text":"@notice The latest L1 block number known by the L2 system."},"functionSelector":"8381f58a","mutability":"mutable","name":"number","nameLocation":"854:6:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90215,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90219,"nodeType":"VariableDeclaration","src":"931:23:145","
385nodes":[],"constant":false,"documentation":{"id":90217,"nodeType":"StructuredDocumentation","src":"867:59:145","text":"@notice The latest L1 timestamp known by the L2 system."},"functionSelector":"b80777ea","mutability":"mutable","name":"timestamp","nameLocation":"945:9:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90218,"name":"uint64","nodeType":"ElementaryTypeName","src":"931:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90222,"nodeType":"VariableDeclaration","src":"1001:22:145","nodes":[],"constant":false,"documentation":{"id":90220,"nodeType":"StructuredDocumentation","src":"961:35:145","text":"@notice The latest L1 base fee."},"functionSelector":"5cf24969","mutability":"mutable","name":"basefee","nameLocation":"1016:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90221,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90225,"nodeType":"VariableDeclaration","src":"1071:19:145","nodes":[],"constant":false,"documentation":{"id":90223,"nodeType":"StructuredDocumentation","src":"1030:36:145","text":"@notice The latest L1 blockhash."},"functionSelector":"09bd5a60","mutability":"mutable","name":"hash","nameLocation":"1086:4:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1071:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90228,"nodeType":"VariableDeclaration","src":"1156:28:145","nodes":[],"constant":false,"documentation":{"id":90226,"nodeType":"StructuredDocumentation","src":"1097:54:145","text":"@notice The number of L2 blocks in the same epoch."},"functionSelector":"64ca23ef","mutability":"mutable","name":"sequenceNumber","nameLocation":"1170:14:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90227,"name":"uint64","nodeType":"ElementaryTypeName","src":"1156:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":90231,"nodeType":"VariableDeclaration","src":"1298:31:145","nodes":[],"constant":false,"documentation":{"id":90229,"nodeType":"StructuredDocumentation","src":"1191:102:145","text":"@notice The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func."},"functionSelector":"68d5dca6","mutability":"mutable","name":"blobBaseFeeScalar","nameLocation":"1312:17:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90230,"name":"uint32","nodeType":"ElementaryTypeName","src":"1298:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90234,"nodeType":"VariableDeclaration","src":"1438:27:145","nodes":[],"constant":false,"documentation":{"id":90232,"nodeType":"StructuredDocumentation","src":"1336:97:145","text":"@notice The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func."},"functionSelector":"c5985918","mutability":"mutable","name":"baseFeeScalar","nameLocation":"1452:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90233,"name":"uint32","nodeType":"ElementaryTypeName","src":"1438:6:145","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"public"},{"id":90237,"nodeType":"VariableDeclaration","src":"1539:26:145","nodes":[],"constant":false,"documentation":{"id":90235,"nodeType":"StructuredDocumentation","src":"1472:62:145","text":"@notice The versioned hash to authenticate the batcher by."},"functionSelector":"e81b2c6d","mutability":"mutable","name":"batcherHash","nameLocation":"1554:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":90240,"nodeType":"VariableDeclaration","src":"1680:28:145","
385nodes":[],"constant":false,"documentation":{"id":90238,"nodeType":"StructuredDocumentation","src":"1572:103:145","text":"@notice The overhead value applied to the L1 portion of the transaction fee.\\n @custom:legacy"},"functionSelector":"8b239f73","mutability":"mutable","name":"l1FeeOverhead","nameLocation":"1695:13:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1680:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90243,"nodeType":"VariableDeclaration","src":"1821:26:145","nodes":[],"constant":false,"documentation":{"id":90241,"nodeType":"StructuredDocumentation","src":"1715:101:145","text":"@notice The scalar value applied to the L1 portion of the transaction fee.\\n @custom:legacy"},"functionSelector":"9e8c4966","mutability":"mutable","name":"l1FeeScalar","nameLocation":"1836:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90242,"name":"uint256","nodeType":"ElementaryTypeName","src":"1821:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90246,"nodeType":"VariableDeclaration","src":"1899:26:145","nodes":[],"constant":false,"documentation":{"id":90244,"nodeType":"StructuredDocumentation","src":"1854:40:145","text":"@notice The latest L1 blob base fee."},"functionSelector":"f8206140","mutability":"mutable","name":"blobBaseFee","nameLocation":"1914:11:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1899:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":90250,"nodeType":"VariableDeclaration","src":"1961:40:145","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90247,"nodeType":"StructuredDocumentation","src":"1932:24:145","text":"@custom:semver 1.2.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1984:7:145","scope":90318,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90248,"name":"string","nodeType":"ElementaryTypeName","src":"1961:6:145","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e322e30","id":90249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1994:7:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a","typeString":"literal_string \\"1.2.0\\""},"value":"1.2.0"},"visibility":"public"},{"id":90311,"nodeType":"FunctionDefinition","src":"2494:660:145","nodes":[],"body":{"id":90310,"nodeType":"Block","src":"2771:383:145","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":90271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2789:3:145","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2789:10:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90273,"name":"DEPOSITOR_ACCOUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90213,"src":"2803:17:145","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2789:31:145","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e20736574204c3120626c6f636b2076616c756573","id":90275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2822:61:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \\"L1Block: only the depositor account can set L1 block values\\""},"value":"L1Block: only the depositor account can set L1 block values"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c76ba7c08c4e35ee9214a1ee03dd5f5eafa75e54f6dcd9b82029d1cceb0d7b","typeString":"literal_string \\"L1Block: only the depositor account can set L1 block values\\""}],"id":90270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2781:7:145","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2781:103:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90277,"nodeType":"ExpressionStatement","src":"2781:103:145"},{"expression":{"id":90280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90278,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90216,"src":"2895:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90279,"name":"_number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90253,"src":"2904:7:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2895:16:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90281,"nodeType":"ExpressionStatement","src":"2895:16:145"},{"expression":{"id":90284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90282,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90219,"src":"2921:9:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90283,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90255,"src":"2933:10:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2921:22:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90285,"nodeType":"ExpressionStatement","src":"2921:22:145"},{"expression":{"id":90288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90286,"name":"basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90222,"src":"2953:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90287,"name":"_basefee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90257,"src":"2963:8:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2953:18:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90289,"nodeType":"ExpressionStatement","src":"2953:18:145"},{"expression":{"id":90292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90290,"name":"hash","no
385deType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90225,"src":"2981:4:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90291,"name":"_hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90259,"src":"2988:5:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2981:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90293,"nodeType":"ExpressionStatement","src":"2981:12:145"},{"expression":{"id":90296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90294,"name":"sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90228,"src":"3003:14:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90295,"name":"_sequenceNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90261,"src":"3020:15:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3003:32:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":90297,"nodeType":"ExpressionStatement","src":"3003:32:145"},{"expression":{"id":90300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90298,"name":"batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90237,"src":"3045:11:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90299,"name":"_batcherHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90263,"src":"3059:12:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3045:26:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":90301,"nodeType":"ExpressionStatement","src":"3045:26:145"},{"expression":{"id":90304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90302,"name":"l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90240,"src":"3081:13:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90303,"name":"_l1FeeOverhead","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90265,"src":"3097:14:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3081:30:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90305,"nodeType":"ExpressionStatement","src":"3081:30:145"},{"expression":{"id":90308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":90306,"name":"l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90243,"src":"3121:11:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":90307,"name":"_l1FeeScalar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90267,"src":"3135:12:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3121:26:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":90309,"nodeType":"ExpressionStatement","src":"3121:26:145"}]},"documentation":{"id":90251,"nodeType":"StructuredDocumentation","src":"2008:481:145","text":"@custom:legacy\\n @notice Updates the L1 block values.\\n @param _number L1 blocknumber.\\n @param _timestamp L1 timestamp.\\n @param _basefee L1 basefee.\\n @param _hash L1 blockhash.\\n @param _sequenceNumber Number of L2 blocks since epoch start.\\n @param _batcherHash Versioned hash to authenticate batcher by.\\n @param _l1FeeOverhead L1 fee overhead.\\n @param _l1FeeScalar L1 fee scalar."},"functionSelector":"015d8eb9","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValues","nameLocation":"2503:16:145","parameters":{"id":90268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90253,"mutability":"mutable","name":"_number","nameLocation":"2536:7:145","nodeType":"VariableDeclaration","scope":90311,"src":"2529:14:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90252,"name":"uint64","nodeType":"ElementaryTypeName","src":"2529:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90255,"mutability":"mutable","name":"_timestamp","nameLocation":"2560:10:145","nodeType":"VariableDeclaration","scope":90311,"src":"2553:17:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90254,"name":"uint64","nodeType":"ElementaryTypeName","src":"2553:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90257,"mutability":"mutable","name":"_basefee","nameLocation":"2588:8:145","nodeType":"VariableDeclaration","scope":90311,"src":"2580:16:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90259,"mutability":"mutable","name":"_hash","nameLocation":"2614:5:145","nodeType":"VariableDeclaration","scope":90311,"src":"2606:13:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2606:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90261,"mutability":"mutable","name":"_sequenceNumber","nameLocation":"2636:15:145","nodeType":"VariableDeclaration","scope":90311,"src":"2629:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90260,"name":"uint64","nodeType":"ElementaryTypeName","src":"2629:6:145","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90263,"mutability":"mutable","name":"_batcherHash","nameLocation":"2669:12:145","
385nodeType":"VariableDeclaration","scope":90311,"src":"2661:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":90262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2661:7:145","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":90265,"mutability":"mutable","name":"_l1FeeOverhead","nameLocation":"2699:14:145","nodeType":"VariableDeclaration","scope":90311,"src":"2691:22:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90264,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90267,"mutability":"mutable","name":"_l1FeeScalar","nameLocation":"2731:12:145","nodeType":"VariableDeclaration","scope":90311,"src":"2723:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2519:230:145"},"returnParameters":{"id":90269,"nodeType":"ParameterList","parameters":[],"src":"2771:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90317,"nodeType":"FunctionDefinition","src":"3886:956:145","nodes":[],"body":{"id":90316,"nodeType":"Block","src":"3930:912:145","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"3949:887:145","statements":[{"body":{"nodeType":"YulBlock","src":"4065:197:145","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4090:4:145","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"4096:10:145","type":"","value":"0x3cc50b45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4083:6:145"},"nodeType":"YulFunctionCall","src":"4083:24:145"},"nodeType":"YulExpressionStatement","src":"4083:24:145"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4188:4:145","type":"","value":"0x1C"},{"kind":"number","nodeType":"YulLiteral","src":"4194:4:145","type":"","value":"0x04"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4181:6:145"},"nodeType":"YulFunctionCall","src":"4181:18:145"},"nodeType":"YulExpressionStatement","src":"4181:18:145"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"caller","nodeType":"YulIdentifier","src":"4036:6:145"},"nodeType":"YulFunctionCall","src":"4036:8:145"},{"name":"DEPOSITOR_ACCOUNT","nodeType":"YulIdentifier","src":"4046:17:145"}],"functionName":{"name":"xor","nodeType":"YulIdentifier","src":"4032:3:145"},"nodeType":"YulFunctionCall","src":"4032:32:145"},"nodeType":"YulIf","src":"4029:233:145"},{"nodeType":"YulVariableDeclaration","src":"4275:27:145","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4300:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4287:12:145"},"nodeType":"YulFunctionCall","src":"4287:15:145"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"4279:4:145","type":""}]},{"expression":{"arguments":[{"name":"sequenceNumber.slot","nodeType":"YulIdentifier","src":"4410:19:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4435:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4453:1:145","type":"","value":"4"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4440:12:145"},"nodeType":"YulFunctionCall","src":"4440:15:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4431:3:145"},"nodeType":"YulFunctionCall","src":"4431:25:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4403:6:145"},"nodeType":"YulFunctionCall","src":"4403:54:145"},"nodeType":"YulExpressionStatement","src":"4403:54:145"},{"expression":{"arguments":[{"name":"number.slot","nodeType":"YulIdentifier","src":"4531:11:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4548:3:145","type":"","value":"128"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4566:2:145","type":"","value":"20"}
385],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4553:12:145"},"nodeType":"YulFunctionCall","src":"4553:16:145"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4544:3:145"},"nodeType":"YulFunctionCall","src":"4544:26:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4524:6:145"},"nodeType":"YulFunctionCall","src":"4524:47:145"},"nodeType":"YulExpressionStatement","src":"4524:47:145"},{"expression":{"arguments":[{"name":"basefee.slot","nodeType":"YulIdentifier","src":"4591:12:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4618:2:145","type":"","value":"36"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4605:12:145"},"nodeType":"YulFunctionCall","src":"4605:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4584:6:145"},"nodeType":"YulFunctionCall","src":"4584:38:145"},"nodeType":"YulExpressionStatement","src":"4584:38:145"},{"expression":{"arguments":[{"name":"blobBaseFee.slot","nodeType":"YulIdentifier","src":"4653:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4684:2:145","type":"","value":"68"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4671:12:145"},"nodeType":"YulFunctionCall","src":"4671:16:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4646:6:145"},"nodeType":"YulFunctionCall","src":"4646:42:145"},"nodeType":"YulExpressionStatement","src":"4646:42:145"},{"expression":{"arguments":[{"name":"hash.slot","nodeType":"YulIdentifier","src":"4719:9:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4743:3:145","type":"","value":"100"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4730:12:145"},"nodeType":"YulFunctionCall","src":"4730:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4712:6:145"},"nodeType":"YulFunctionCall","src":"4712:36:145"},"nodeType":"YulExpressionStatement","src":"4712:36:145"},{"expression":{"arguments":[{"name":"batcherHash.slot","nodeType":"YulIdentifier","src":"4779:16:145"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4810:3:145","type":"","value":"132"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4797:12:145"},"nodeType":"YulFunctionCall","src":"4797:17:145"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4772:6:145"},"nodeType":"YulFunctionCall","src":"4772:43:145"},"nodeType":"YulExpressionStatement","src":"4772:43:145"}]},"evmVersion":"london","externalReferences":[{"declaration":90213,"isOffset":false,"isSlot":false,"src":"4046:17:145","valueSize":1},{"declaration":90222,"isOffset":false,"isSlot":true,"src":"4591:12:145","suffix":"slot","valueSize":1},{"declaration":90237,"isOffset":false,"isSlot":true,"src":"4779:16:145","suffix":"slot","valueSize":1},{"declaration":90246,"isOffset":false,"isSlot":true,"src":"4653:16:145","suffix":"slot","valueSize":1},{"declaration":90225,"isOffset":false,"isSlot":true,"src":"4719:9:145","suffix":"slot","valueSize":1},{"declaration":90216,"isOffset":false,"isSlot":true,"src":"4531:11:145","suffix":"slot","valueSize":1},{"declaration":90228,"isOffset":false,"isSlot":true,"src":"4410:19:145","suffix":"slot","valueSize":1}],"id":90315,"nodeType":"InlineAssembly","src":"3940:896:145"}]},"documentation":{"id":90312,"nodeType":"StructuredDocumentation","src":"3160:721:145","text":"@notice Updates the L1 block values for an Ecotone upgraded chain.\\n Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size.\\n Params are expected to be in the following order:\\n 1. _baseFeeScalar L1 base fee scalar\\n 2. _blobBaseFeeScalar L1 blob base fee scalar\\n 3. _sequenceNumber Number of L2 blocks since epoch start.\\n 4. _timestamp L1 timestamp.\\n 5. _number L1 blocknumber.\\n 6. _basefee L1 base fee.\\n 7. _blobBaseFee L1 blob base fee.\\n 8. _hash L1 blockhash.\\n 9. _batcherHash Versioned hash to authenticate batcher by."},"functionSelector":"440a5e20","implemented":true,"kind":"function","modifiers":[],"name":"setL1BlockValuesEcotone","nameLocation":"3895:23:145","parameters":{"id":90313,"nodeType":"ParameterList","parameters":[],"src":"3918:2:145"},"returnParameters":{"id":90314,"nodeType":"ParameterList","parameters":[],"src":"3930:0:145"},"scope":90318,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":90208,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"608:7:145"},"id":90209,"nodeType":"InheritanceSpecifier","src":"608:7:145"}],"canonicalName":"L1Block","contractDependencies":[],"contractKind":"contract","documentation":{"id":90207,"n
385odeType":"StructuredDocumentation","src":"111:477:145","text":"@custom:proxied\\n @custom:predeploy 0x4200000000000000000000000000000000000015\\n @title L1Block\\n @notice The L1Block predeploy gives users access to information about the last known L1 block.\\n Values within this contract are updated once per epoch (every L1 block) and can only be\\n set by the \\"depositor\\" account, a special system address. Depositor account transactions\\n are created by the protocol whenever we move to a new epoch."},"fullyImplemented":true,"linearizedBaseContracts":[90318,109417],"name":"L1Block","nameLocation":"597:7:145","scope":90319,"usedErrors":[]}],"license":"MIT"},"id":145}')},42353:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"OTHER_MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"PORTAL","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CALL_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CONSTANT_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_GAS_CHECK_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_RESERVED_GAS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"baseGas","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"},{"name":"_portal","type":"address","internalType":"contract OptimismPortal"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"otherMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"portal","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimismPortal"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"messageNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SentMessageExtension1","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b6200027f565b600054600160a81b900460ff16158080156200004e57506000546001600160a01b90910460ff16105b806200008557506200006b30620001b960201b620014d61760201c565b158015620000855750600054600160a01b900460ff166001145b620000ee5760405162461bcd60e51b8152
38560206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b17905580156200011c576000805460ff60a81b1916600160a81b1790555b60fb80546001600160a01b038086166001600160a01b03199283161790925560fc8054928516929091169190911790556200016b734200000000000000000000000000000000000007620001c8565b8015620001b4576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620002375760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e5565b60cc546001600160a01b03166200025d5760cc80546001600160a01b03191661dead1790555b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b611f94806200028f6000396000f3fe6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f
3856e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;1159:163;;;;;;;;;-1:-1:-1;1206:109:130::1;1263:1;::::0;1206:10:::1;:109::i;:::-;701:2432:::0;;1542:296;3111:19:27;3134:13;-1:-1:-1;;;3134:13:27;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;-1:-1:-1;;;3197:12:27;;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;-1:-1:-1;;;3268:12:27;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;;;3368:16:27;-1:-1:-1;;;3368:16:27;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:27;-1:-1:-1;;;3428:20:27;;;3394:65;1651:16:130::1;:36:::0;;-1:-1:-1;;;;;1651:36:130;;::::1;-1:-1:-1::0;;;;;;1651:36:130;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;18503:636:223:-;4910:13:27;;-1:-1:-1;;;4910:13:27;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;18988:16:223::1;::::0;-1:-1:-1;;;;;18988:16:223::1;18984:107;;19034:16;:46:::0;;-1:-1:-1;;;;;;19034:46:223::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;-1:-1:-1;;;;;;19100:32:223::1;-1:-1:-1::0;;;;;19100:32:223;;;::::1;::::0;;;::::1;::::0;;18503:636::o;628:407:357:-;701:2432:130;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101805760003560e01c80635c975abb116100d6578063a4e7f8bd1161007f578063d764ad0b11610059578063d764ad0b14610463578063db505d8014610476578063ecc70428146104a357600080fd5b8063a4e7f8bd146103e3578063b1b1b20914610413578063b28ade251461044357600080fd5b806383a74074116100b057806383a74074146103a15780638cbeeef2146102b85780639fce812c146103b857600080fd5b80635c975abb1461033a5780636425666b1461035f5780636e296e451461038
385c57600080fd5b80633dbb202b116101385780634c1d6a69116101125780634c1d6a69146102b857806354fd4d50146102ce5780635644cfdf1461032457600080fd5b80633dbb202b1461025b5780633f827a5a14610270578063485cc9551461029857600080fd5b80630ff754ea116101695780630ff754ea146101cd5780632828d7e81461021957806335e80ab31461022e57600080fd5b8063028f85f7146101855780630c568498146101b8575b600080fd5b34801561019157600080fd5b5061019a601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101c457600080fd5b5061019a603f81565b3480156101d957600080fd5b5060fc5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101af565b34801561022557600080fd5b5061019a604081565b34801561023a57600080fd5b5060fb546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b61026e610269366004611a22565b610508565b005b34801561027c57600080fd5b50610285600181565b60405161ffff90911681526020016101af565b3480156102a457600080fd5b5061026e6102b3366004611a89565b610765565b3480156102c457600080fd5b5061019a619c4081565b3480156102da57600080fd5b506103176040518060400160405280600581526020017f322e332e3000000000000000000000000000000000000000000000000000000081525081565b6040516101af9190611b2d565b34801561033057600080fd5b5061019a61138881565b34801561034657600080fd5b5061034f6109d3565b60405190151581526020016101af565b34801561036b57600080fd5b5060fc546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039857600080fd5b506101f4610a6c565b3480156103ad57600080fd5b5061019a62030d4081565b3480156103c457600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166101f4565b3480156103ef57600080fd5b5061034f6103fe366004611b47565b60ce6020526000908152604090205460ff1681565b34801561041f57600080fd5b5061034f61042e366004611b47565b60cb6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061019a61045e366004611b60565b610b53565b61026e610471366004611bb4565b610bc1565b34801561048257600080fd5b5060cf546101f49073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104af57600080fd5b506104fa60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016101af565b60cf5461063a9073ffffffffffffffffffffffffffffffffffffffff16610530858585610b53565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061059c60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c6040516024016105b89796959493929190611c83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526114f2565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a3385856106bf60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b866040516106d1959493929190611ce2565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b6000547501000000000000000000000000000000000000000000900460ff16158080156107b0575060005460017401000000000000000000000000000000000000000090910460ff16105b806107e25750303b1580156107e2575060005474010000000000000000000000000000000000000000900460ff166001145b610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156108f957600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b60fb805473ffffffffffffffffffffffffffffffffffffffff8086167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560fc80549285169290911691909117905561096b73420000000000000000000000000000000000000761158b565b80156109ce57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60fb54604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a679190611d30565b905090565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f74207365740000000000000000000000606482015260840161086a565b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f610b6f604063ffffffff8816611d81565b610b799190611db1565b610b84601088611d81565b610b919062030d40611dff565b610b9b9190611dff565b610ba59190611dff565b610baf9190611dff565b610bb99190611dff565b949350505050565b610bc96109d3565b15610c30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f43726f7373446f6d61696e4d657373656e6765723a2070617573656400000000604482015260640161086a565b60f087901c60028110610ceb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f
3856e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161086a565b8061ffff16600003610de0576000610d3c878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506116c7915050565b600081815260cb602052604090205490915060ff1615610dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161086a565b505b6000610e26898989898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116e692505050565b9050610e30611709565b15610e6857853414610e4457610e44611e2b565b600081815260ce602052604090205460ff1615610e6357610e63611e2b565b610fba565b3415610f1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161086a565b600081815260ce602052604090205460ff16610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161086a565b610fc3876117e5565b15611076576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161086a565b600081815260cb602052604090205460ff1615611115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161086a565b61113685611127611388619c40611dff565b67ffffffffffffffff1661182b565b158061115c575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b1561127557600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b50506114cd565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061130688619c405a6112c99190611e5a565b8988888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061184992505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156113bc57600082815260cb602052604090205460ff161561135957611359611e2b565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26114c9565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016114c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161086a565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60fc546040517fe9e05c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063e9e05c42908490611553908890839089906000908990600401611e71565b6000604051808303818588803b15801561156c57600080fd5b505af1158015611580573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161086a565b60cc5473ffffffffffffffffffffffffffffffffffffffff166116805760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006116d585858585611863565b805190602001209050949350505050565b60006116f68787878787876118fc565b8051906020012090509695505050505050565b60fc5460009073ffffffffffffffffffffffffffffffffffffffff1633148015610a67575060cf5460fc54604080517f9bf62d82000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691639bf62d82916004808201926020929091908290030181865afa1580156117a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c99190611ec9565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff8216301480611825575060fc5473ffffffffffffffffffffffffffffffffffffffff8381169116145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b60608484848460405160240161187c9493929190611ee6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161191996959493929190611f30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff811681146119bd57600080fd5b50565b60008083601f8401126119d257600080fd5b50813567ffffffffffffffff8111156119ea57600080fd5b602083019150836020828501011115611a0257600080fd5b9250929050565b803563ffffffff81168114611a1d57600080fd5b919050565b60008060008060608587031215611a3857600080fd5b8435611a438161199b565b9350602085013567ffffffffffffffff811115611a5f57600080fd5b611a6b878288016119c0565b9094509250611a7e905060408601611a09565b905092959194509250565b60008060408385031215611a9c57600080fd5b8235611aa78161199b565b91506020830135611ab78161199b565b809150509250929050565b6000815180845260005b81811015611ae857602081850181015186830182015201611acc565b81811115611afa576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b406020830184611ac2565b9392505050565b600060208284031215611b5957600080fd5b5035919050565b600080600060408486031215611b7557600080fd5b833567ffffffffffffffff811115611b8c57600080fd5b611b98868287016119c0565b9094509250611bab905060208501611a09565b90509250925092565b600080600080600080600060c0888a031215611bcf57600080fd5b873596506020880135611be18161199b565b95506040880135611bf18161199b565b9450606088013593506080880135925060a088013567ffffffffffffffff811115611c1b57600080fd5b611c278a828b016119c0565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611cd560c083018486611c3a565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611d12608083018688611c3a565b905083604083015263ffffffff831660608301529695505050505050565b600060208284031215611d4257600080fd5b81518015158114611b4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611da857611da8611d52565b02949350505050565b600067ffffffffffffffff80841680611df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611e2257611e22611d52565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611e6c57611e6c611d52565b500390565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015267ffffffffffffffff84166040820152821515606082015260a060808201526000611ebe60a0830184611ac2565b979650505050505050565b600060208284031215611edb57600080fd5b8151611b408161199b565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611f1f6080830185611ac2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611f7b60c0830184611ac2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"701:2432:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:53:223;;;;;;;;;;;;4507:2;4456:53;;;;;188:18:357;176:31;;;158:50;;146:2;131:18;4456:53:223;;;;;;;;4301:64;;;;;;;;;;;;4363:2;4301:64;;2107:87:130;;;;;;;;;;-1:-1:-1;2181:6:130;;;;2107:87;;;427:42:357;415:55;;;397:74;;385:2;370:18;2107:87:130;219:258:357;4146:62:223;;;;;;;;;;;;4206:2;4146:62;;822:40:130;;;;;;;;;;-1:-1:-1;822:40:130;;;;;;;;8628:995:223;;;;;;:::i;:::-;;:::i;:::-;;3879:42;;;;;;;;;;;;3920:1;3879:42;;;;;2213:6:357;2201:19;;;2183:38;;2171:2;2156:18;3879:42:223;2039:188:357;1542:296:130;;;;;;;;;;-1:-1:-1;1542:296:130;;;;;:::i;:::-;;:::i;4597:51:223:-;;;;;;;;;;;;4642:6;4597:51;;1048:40:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4943:53:223:-;;;;;;;;;;;;4991:5;4943:53;;3028:103:130;;;;;;;;;;;;;:::i;:::-;;;3601:14:357;;3594:22;3576:41;;3564:2;3549:18;3028:103:130;3436:187:357;950:28:130;;;;;;;;;;-1:-1:-1;950:28:130;;;;;;;;15764:250:223;;;;;;;;;;;;;:::i;3999:56::-;;;;;;;;;;;;4048:7;3999:56;;16317:108;;;;;;;;;;-1:-1:-1;16404:14:223;;;;16317:108;;6234:46;;;;;;;;;;-1:-1:-1;6234:46:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;5252:50;;;;;;;;;;-1:-1:-1;5252:50:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;17493:894;;;;;;;;;;-1:-1:-1;17493:894:223;;;;;:::i;:::-;;:::i;10311:5066::-;;;;;;:::i;:::-;;:::i;6386:42::-;;;;;;;;;;-1:-1:-1;6386:42:223;;;;;;;;16746:134;;;;;;;;;;;;16847:8;;;;4855:18:195;4852:30;;3028:103:130;16746:134:223;;;5835:25:357;;;5823:2;5808:18;16746:134:223;5689:177:357;8628:995:223;9128:14;;9088:326;;9128:14;;9168:31;9176:8;;9186:12;9168:7;:31::i;:::-;9221:9;9291:26;9319:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9319:14:223;9335:10;9347:7;9356:9;9367:12;9381:8;;9251:152;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9088:12;:326::i;:::-;9442:7;9430:72;;;9451:10;9463:8;;9473:14;16847:8;;;;4855:18:195;4852:30;;3028:103:130;9473:14:223;9489:12;9430:72;;;;;;;;;;:::i;:::-;;;;;;;;9517:44;;9551:9;5835:25:357;;9539:10:223;;9517:44;;5823:2:357;5808:18;9517:44:223;;;;;;;-1:-1:-1;;9598:8:223;9596:10;;;;;;;;;;;;;;;;-1:-1:-1;;8628:995:223:o;1542:296:130:-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;;;3284:1;3268:17;3219:66;3157:201;;;;;;;7634:2:357;3157:201:27;;;7616:21:357;7673:2;7653:18;;;7646:30;7712:34;7692:18;;;7685:62;7783:16;7763:18;;;7756:44;7817:19;;3157:201:27;;;;;;;;;3368:12;:16;;;;;;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;1651:16:130::1;:36:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;1697:6:::1;:16:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;1723:108:::1;480:42:199;1723:27:130;:108::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;7999:36:357;;3553:14:27;;7987:2:357;7972:18;3553:14:27;;;;;;;3479:99;3101:483;1542:296:130;;:::o;3028:103::-;3099:16;;:25;;;;;;;;3076:4;;3099:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3092:32;;3028:103;:::o;15764:250:223:-;15859:16;;15819:7;;15859:47;:16;:47;;15838:135;;;;;;;8530:2:357;15838:135:223;;;8512:21:357;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;8679:23;8659:18;;;8652:51;8720:19;;15838:135:223;8328:417:357;15838:135:223;-1:-1:-1;15991:16:223;;;;;15764:250::o;17493:894::-;17577:6;4991:5;4796:6;;4363:2;17806:49;4206:2;17806:49;;;;:::i;:::-;17805:90;;;;:::i;:::-;17703:51;4507:2;17710:8;17703:51;:::i;:::-;17639:116;;4048:7;17639:116;:::i;:::-;:257;;;;:::i;:::-;:412;;;;:::i;:::-;:587;;;;:::i;:::-;:741;;;;:::i;:::-;17595:785;17493:894;-1:-1:-1;;;;17493:894:223:o;10311:5066::-;10722:8;:6;:8::i;:::-;:17;10714:58;;;;;;;10015:2:357;10714:58:223;;;9997:21:357;10054:2;10034:18;;;10027:30;10093;10073:18;;;10066:58;10141:18;;
38510714:58:223;9813:352:357;10714:58:223;5444:3:195;5440:16;;;10869:1:223;10859:11;;10851:101;;;;;;;10372:2:357;10851:101:223;;;10354:21:357;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:34;10501:18;;;10494:62;10593:15;10572:19;;;10565:44;10626:19;;10851:101:223;10170:481:357;10851:101:223;11154:7;:12;;11165:1;11154:12;11150:247;;11182:15;11200:68;11233:7;11242;11251:8;;11200:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11261:6:223;;-1:-1:-1;11200:32:223;;-1:-1:-1;;11200:68:223:i;:::-;11290:27;;;;:18;:27;;;;;;11182:86;;-1:-1:-1;11290:27:223;;:36;11282:104;;;;;;;10858:2:357;11282:104:223;;;10840:21:357;10897:2;10877:18;;;10870:30;10936:34;10916:18;;;10909:62;11007:25;10987:18;;;10980:53;11050:19;;11282:104:223;10656:419:357;11282:104:223;11168:229;11150:247;11567:21;11603:90;11636:6;11644:7;11653;11662:6;11670:12;11684:8;;11603:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11603:32:223;;-1:-1:-1;;;11603:90:223:i;:::-;11567:126;;11708:19;:17;:19::i;:::-;11704:506;;;11897:6;11884:9;:19;11877:27;;;;:::i;:::-;11926:29;;;;:14;:29;;;;;;;;11925:30;11918:38;;;;:::i;:::-;11704:506;;;11995:9;:14;11987:107;;;;;;;11471:2:357;11987:107:223;;;11453:21:357;11510:2;11490:18;;;11483:30;11549:34;11529:18;;;11522:62;11620:34;11600:18;;;11593:62;11692:18;11671:19;;;11664:47;11728:19;;11987:107:223;11269:484:357;11987:107:223;12117:29;;;;:14;:29;;;;;;;;12109:90;;;;;;;11960:2:357;12109:90:223;;;11942:21:357;11999:2;11979:18;;;11972:30;12038:34;12018:18;;;12011:62;12109:18;12089;;;12082:46;12145:19;;12109:90:223;11758:412:357;12109:90:223;12241:24;12257:7;12241:15;:24::i;:::-;:33;12220:135;;;;;;;12377:2:357;12220:135:223;;;12359:21:357;12416:2;12396:18;;;12389:30;12455:34;12435:18;;;12428:62;12526:34;12506:18;;;12499:62;12598:5;12577:19;;;12570:34;12621:19;;12220:135:223;12175:471:357;12220:135:223;12374:33;;;;:18;:33;;;;;;;;:42;12366:109;;;;;;;12853:2:357;12366:109:223;;;12835:21:357;12892:2;12872:18;;;12865:30;12931:34;12911:18;;;12904:62;13002:24;12982:18;;;12975:52;13044:19;;12366:109:223;12651:418:357;12366:109:223;13169:77;13188:12;13202:43;4991:5;4796:6;13202:43;:::i;:::-;13169:77;;:18;:77::i;:::-;13168:78;:145;;;-1:-1:-1;13266:16:223;;:47;:16;1338:42:192;13266:47:223;;13168:145;13151:919;;;13338:29;;;;:14;:29;;;;;;:36;;;;13370:4;13338:36;;;13393:35;13353:13;;13393:35;;;13908:41;:9;:41;13904:135;;13969:55;;;;;13276:2:357;13969:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;13969:55:223;13074:409:357;13904:135:223;14053:7;;;;13151:919;14080:16;:26;;;;;;;;;;-1:-1:-1;14131:72:223;14145:7;4796:6;14154:9;:30;;;;:::i;:::-;14186:6;14194:8;;14131:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14131:13:223;;-1:-1:-1;;;14131:72:223:i;:::-;14213:16;:46;;;;1338:42:192;14213:46:223;;;14116:87;-1:-1:-1;14270:1101:223;;;;14484:33;;;;:18;:33;;;;;;;;:42;14477:50;;;;:::i;:::-;14541:33;;;;:18;:33;;;;;;:40;;;;14577:4;14541:40;;;14600:29;14560:13;;14600:29;;;14270:1101;;;14660:29;;;;:14;:29;;;;;;:36;;;;14692:4;14660:36;;;14715:35;14675:13;;14715:35;;;15230:41;:9;:41;15226:135;;15291:55;;;;;13276:2:357;15291:55:223;;;13258:21:357;13315:2;13295:18;;;13288:30;13354:34;13334:18;;;13327:62;13425:15;13405:18;;;13398:43;13458:19;;15291:55:223;13074:409:357;15226:135:223;10537:4840;;;10311:5066;;;;;;;;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;2241::130:-;2358:6;;:196;;;;;:6;;;;;:25;;2392:6;;2358:196;;2420:3;;2392:6;;2476:9;;2358:6;;2538:5;;2358:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:320;;;;:::o;18503:636:223:-;4910:13:27;;;;;;;4902:69;;;;;;;14412:2:357;4902:69:27;;;14394:21:357;14451:2;14431:18;;;14424:30;14490:34;14470:18;;;14463:62;14561:13;14541:18;;;14534:41;14592:19;;4902:69:27;14210:407:357;4902:69:27;18988:16:223::1;::::0;:30:::1;:16;18984:107;;19034:16;:46:::0;;;::::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18503:636::o;3100:305:196:-;3289:7;3329:68;3365:7;3374;3383:5;3390:6;3329:35;:68::i;:::-;3319:79;;;;;;3312:86;;3100:305;;;;;;:::o;3877:375::-;4117:7;4157:87;4193:6;4201:7;4210;4219:6;4227:9;4238:5;4157:35;:87::i;:::-;4147:98;;;;;;4140:105;;3877:375;;;;;;;;:::o;2608:168:130:-;2714:6;;2669:4;;2714:6;;2692:10;:29;:77;;;;-1:-1:-1;2754:14:130;;2725:6;;:17;;;;;;;;2754:14;;;;;2725:6;;;;:15;;:17;;;;;;;;;;;;;;;:6;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;;2685:84;;2608:168;:::o;2823:158::-;2897:4;2920:24;;;2939:4;2920:24;;:54;;-1:-1:-1;2967:6:130;;;2948:26;;;2967:6;;2948:26;2920:54;2913:61;2823:158;-1:-1:-1;;2823:158:130:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;1202:536::-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;3073:336:195:-;3264:12;3370:7;3379;3388:5;3395:6;3299:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3073:336:195;;;;;;:::o;3883:516::-;4125:12;4272:6;4292:7;4313;4334:6;4354:9;4377:5;4160:232;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:516:195;;;;;;;;:::o;739:154:357:-;825:42;818:5;814:54;807:5;804:65;794:93;;883:1;880;873:12;794:93;739:154;:::o;898:347::-;949:8;959:6;1013:3;1006:4;998:6;994:17;990:27;980:55;;1031:1;1028;1021:12;980:55;-1:-1:-1;1054:20:357;;1097:18;1086:30;;1083:50;;;1129:1;1126;1119:12;1083:50;1166:4;1158:6;1154:17;1142:29;;1218:3;1211:4;1202:6;1194;1190:19;1186:30;1183:39;
3851180:59;;;1235:1;1232;1225:12;1180:59;898:347;;;;;:::o;1250:163::-;1317:20;;1377:10;1366:22;;1356:33;;1346:61;;1403:1;1400;1393:12;1346:61;1250:163;;;:::o;1418:616::-;1505:6;1513;1521;1529;1582:2;1570:9;1561:7;1557:23;1553:32;1550:52;;;1598:1;1595;1588:12;1550:52;1637:9;1624:23;1656:31;1681:5;1656:31;:::i;:::-;1706:5;-1:-1:-1;1762:2:357;1747:18;;1734:32;1789:18;1778:30;;1775:50;;;1821:1;1818;1811:12;1775:50;1860:58;1910:7;1901:6;1890:9;1886:22;1860:58;:::i;:::-;1937:8;;-1:-1:-1;1834:84:357;-1:-1:-1;1991:37:357;;-1:-1:-1;2024:2:357;2009:18;;1991:37;:::i;:::-;1981:47;;1418:616;;;;;;;:::o;2232:438::-;2350:6;2358;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;2466:9;2453:23;2485:31;2510:5;2485:31;:::i;:::-;2535:5;-1:-1:-1;2592:2:357;2577:18;;2564:32;2605:33;2564:32;2605:33;:::i;:::-;2657:7;2647:17;;;2232:438;;;;;:::o;2675:531::-;2717:3;2755:5;2749:12;2782:6;2777:3;2770:19;2807:1;2817:162;2831:6;2828:1;2825:13;2817:162;;;2893:4;2949:13;;;2945:22;;2939:29;2921:11;;;2917:20;;2910:59;2846:12;2817:162;;;2997:6;2994:1;2991:13;2988:87;;;3063:1;3056:4;3047:6;3042:3;3038:16;3034:27;3027:38;2988:87;-1:-1:-1;3120:2:357;3108:15;3125:66;3104:88;3095:98;;;;3195:4;3091:109;;2675:531;-1:-1:-1;;2675:531:357:o;3211:220::-;3360:2;3349:9;3342:21;3323:4;3380:45;3421:2;3410:9;3406:18;3398:6;3380:45;:::i;:::-;3372:53;3211:220;-1:-1:-1;;;3211:220:357:o;4121:180::-;4180:6;4233:2;4221:9;4212:7;4208:23;4204:32;4201:52;;;4249:1;4246;4239:12;4201:52;-1:-1:-1;4272:23:357;;4121:180;-1:-1:-1;4121:180:357:o;4306:481::-;4384:6;4392;4400;4453:2;4441:9;4432:7;4428:23;4424:32;4421:52;;;4469:1;4466;4459:12;4421:52;4509:9;4496:23;4542:18;4534:6;4531:30;4528:50;;;4574:1;4571;4564:12;4528:50;4613:58;4663:7;4654:6;4643:9;4639:22;4613:58;:::i;:::-;4690:8;;-1:-1:-1;4587:84:357;-1:-1:-1;4744:37:357;;-1:-1:-1;4777:2:357;4762:18;;4744:37;:::i;:::-;4734:47;;4306:481;;;;;:::o;4792:892::-;4907:6;4915;4923;4931;4939;4947;4955;5008:3;4996:9;4987:7;4983:23;4979:33;4976:53;;;5025:1;5022;5015:12;4976:53;5061:9;5048:23;5038:33;;5121:2;5110:9;5106:18;5093:32;5134:31;5159:5;5134:31;:::i;:::-;5184:5;-1:-1:-1;5241:2:357;5226:18;;5213:32;5254:33;5213:32;5254:33;:::i;:::-;5306:7;-1:-1:-1;5360:2:357;5345:18;;5332:32;;-1:-1:-1;5411:3:357;5396:19;;5383:33;;-1:-1:-1;5467:3:357;5452:19;;5439:33;5495:18;5484:30;;5481:50;;;5527:1;5524;5517:12;5481:50;5566:58;5616:7;5607:6;5596:9;5592:22;5566:58;:::i;:::-;4792:892;;;;-1:-1:-1;4792:892:357;;-1:-1:-1;4792:892:357;;;;5540:84;;-1:-1:-1;;;4792:892:357:o;5871:325::-;5959:6;5954:3;5947:19;6011:6;6004:5;5997:4;5992:3;5988:14;5975:43;;6063:1;6056:4;6047:6;6042:3;6038:16;6034:27;6027:38;5929:3;6185:4;6115:66;6110:2;6102:6;6098:15;6094:88;6089:3;6085:98;6081:109;6074:116;;5871:325;;;;:::o;6201:697::-;6496:6;6485:9;6478:25;6459:4;6522:42;6612:2;6604:6;6600:15;6595:2;6584:9;6580:18;6573:43;6664:2;6656:6;6652:15;6647:2;6636:9;6632:18;6625:43;;6704:6;6699:2;6688:9;6684:18;6677:34;6760:10;6752:6;6748:23;6742:3;6731:9;6727:19;6720:52;6809:3;6803;6792:9;6788:19;6781:32;6830:62;6887:3;6876:9;6872:19;6864:6;6856;6830:62;:::i;:::-;6822:70;6201:697;-1:-1:-1;;;;;;;;;6201:697:357:o;6903:524::-;7155:42;7147:6;7143:55;7132:9;7125:74;7235:3;7230:2;7219:9;7215:18;7208:31;7106:4;7256:62;7313:3;7302:9;7298:19;7290:6;7282;7256:62;:::i;:::-;7248:70;;7354:6;7349:2;7338:9;7334:18;7327:34;7409:10;7401:6;7397:23;7392:2;7381:9;7377:18;7370:51;6903:524;;;;;;;;:::o;8046:277::-;8113:6;8166:2;8154:9;8145:7;8141:23;8137:32;8134:52;;;8182:1;8179;8172:12;8134:52;8214:9;8208:16;8267:5;8260:13;8253:21;8246:5;8243:32;8233:60;;8289:1;8286;8279:12;8750:184;8802:77;8799:1;8792:88;8899:4;8896:1;8889:15;8923:4;8920:1;8913:15;8939:270;8978:7;9010:18;9055:2;9052:1;9048:10;9085:2;9082:1;9078:10;9141:3;9137:2;9133:12;9128:3;9125:21;9118:3;9111:11;9104:19;9100:47;9097:73;;;9150:18;;:::i;:::-;9190:13;;8939:270;-1:-1:-1;;;;8939:270:357:o;9214:353::-;9253:1;9279:18;9324:2;9321:1;9317:10;9346:3;9336:191;;9383:77;9380:1;9373:88;9484:4;9481:1;9474:15;9512:4;9509:1;9502:15;9336:191;9545:10;;9541:20;;;;;9214:353;-1:-1:-1;;9214:353:357:o;9572:236::-;9611:3;9639:18;9684:2;9681:1;9677:10;9714:2;9711:1;9707:10;9745:3;9741:2;9737:12;9732:3;9729:21;9726:47;;;9753:18;;:::i;:::-;9789:13;;9572:236;-1:-1:-1;;;;9572:236:357:o;11080:184::-;11132:77;11129:1;11122:88;11229:4;11226:1;11219:15;11253:4;11250:1;11243:15;13488:125;13528:4;13556:1;13553;13550:8;13547:34;;;13561:18;;:::i;:::-;-1:-1:-1;13598:9:357;;13488:125::o;13618:587::-;13881:42;13873:6;13869:55;13858:9;13851:74;13961:6;13956:2;13945:9;
38513941:18;13934:34;14016:18;14008:6;14004:31;13999:2;13988:9;13984:18;13977:59;14086:6;14079:14;14072:22;14067:2;14056:9;14052:18;14045:50;14132:3;14126;14115:9;14111:19;14104:32;13832:4;14153:46;14194:3;14183:9;14179:19;14171:6;14153:46;:::i;:::-;14145:54;13618:587;-1:-1:-1;;;;;;;13618:587:357:o;14622:251::-;14692:6;14745:2;14733:9;14724:7;14720:23;14716:32;14713:52;;;14761:1;14758;14751:12;14713:52;14793:9;14787:16;14812:31;14837:5;14812:31;:::i;14878:512::-;15072:4;15101:42;15182:2;15174:6;15170:15;15159:9;15152:34;15234:2;15226:6;15222:15;15217:2;15206:9;15202:18;15195:43;;15274:3;15269:2;15258:9;15254:18;15247:31;15295:46;15336:3;15325:9;15321:19;15313:6;15295:46;:::i;:::-;15287:54;;15377:6;15372:2;15361:9;15357:18;15350:34;14878:512;;;;;;;:::o;15395:656::-;15682:6;15671:9;15664:25;15645:4;15708:42;15798:2;15790:6;15786:15;15781:2;15770:9;15766:18;15759:43;15850:2;15842:6;15838:15;15833:2;15822:9;15818:18;15811:43;;15890:6;15885:2;15874:9;15870:18;15863:34;15934:6;15928:3;15917:9;15913:19;15906:35;15978:3;15972;15961:9;15957:19;15950:32;15999:46;16040:3;16029:9;16025:19;16017:6;15999:46;:::i;:::-;15991:54;15395:656;-1:-1:-1;;;;;;;;15395:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","MIN_GAS_CALLDATA_OVERHEAD()":"028f85f7","MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":"0c568498","MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":"2828d7e8","OTHER_MESSENGER()":"9fce812c","PORTAL()":"0ff754ea","RELAY_CALL_OVERHEAD()":"4c1d6a69","RELAY_CONSTANT_OVERHEAD()":"83a74074","RELAY_GAS_CHECK_BUFFER()":"5644cfdf","RELAY_RESERVED_GAS()":"8cbeeef2","baseGas(bytes,uint32)":"b28ade25","failedMessages(bytes32)":"a4e7f8bd","initialize(address,address)":"485cc955","messageNonce()":"ecc70428","otherMessenger()":"db505d80","paused()":"5c975abb","portal()":"6425666b","relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","sendMessage(address,bytes,uint32)":"3dbb202b","successfulMessages(bytes32)":"b1b1b209","superchainConfig()":"35e80ab3","version()":"54fd4d50","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"msgHash\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"FailedRelayedMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"uint8\\",\\"name\\":\\"version\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"Initialized\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"msgHash\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"RelayedMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"target\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"message\\",\\"type\\":\\"bytes\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"messageNonce\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"gasLimit\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"SentMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"value\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"SentMessageExtension1\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"MESSAGE_VERSION\\",\\"outputs\\":[{\\"internalType\\":\\"uint16\\",\\"name\\":\\"\\",\\"type\\":\\"uint16\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_CALLDATA_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR\\",\\"outputs\\"
385:[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"OTHER_MESSENGER\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"PORTAL\\",\\"outputs\\":[{\\"internalType\\":\\"contract OptimismPortal\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_CALL_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_CONSTANT_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_GAS_CHECK_BUFFER\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_RESERVED_GAS\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"}],\\"name\\":\\"baseGas\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"pure\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"failedMessages\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"contract SuperchainConfig\\",\\"name\\":\\"_superchainConfig\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"contract OptimismPortal\\",\\"name\\":\\"_portal\\",\\"type\\":\\"address\\"}],\\"name\\":\\"initialize\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"messageNonce\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"otherMessenger\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"paused\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"portal\\",\\"outputs\\":[{\\"internalType\\":\\"contract OptimismPortal\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_nonce\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_sender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_target\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_value\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"relayMessage\\",\\"outputs\\":[],\\"stateMutability\\":\\"payable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_target\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"}
385],\\"name\\":\\"sendMessage\\",\\"outputs\\":[],\\"stateMutability\\":\\"payable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"successfulMessages\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"superchainConfig\\",\\"outputs\\":[{\\"internalType\\":\\"contract SuperchainConfig\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"xDomainMessageSender\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@title L1CrossDomainMessenger\\",\\"kind\\":\\"dev\\",\\"methods\\":{\\"OTHER_MESSENGER()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"CrossDomainMessenger contract on the other chain.\\"}},\\"PORTAL()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Contract of the OptimismPortal on this chain.\\"}},\\"baseGas(bytes,uint32)\\":{\\"params\\":{\\"_message\\":\\"Message to compute the amount of required gas for.\\",\\"_minGasLimit\\":\\"Minimum desired gas limit when message goes to target.\\"},\\"returns\\":{\\"_0\\":\\"Amount of gas required to guarantee message receipt.\\"}},\\"initialize(address,address)\\":{\\"params\\":{\\"_portal\\":\\"Contract of the OptimismPortal contract on this network.\\",\\"_superchainConfig\\":\\"Contract of the SuperchainConfig contract on this network.\\"}},\\"messageNonce()\\":{\\"returns\\":{\\"_0\\":\\"Nonce of the next message to be sent, with added message version.\\"}},\\"paused()\\":{\\"returns\\":{\\"_0\\":\\"Whether or not the contract is paused.\\"}},\\"relayMessage(uint256,address,address,uint256,uint256,bytes)\\":{\\"params\\":{\\"_message\\":\\"Message to send to the target.\\",\\"_minGasLimit\\":\\"Minimum amount of gas that the message can be executed with.\\",\\"_nonce\\":\\"Nonce of the message being relayed.\\",\\"_sender\\":\\"Address of the user who sent the message.\\",\\"_target\\":\\"Address that the message is targeted at.\\",\\"_value\\":\\"ETH value to send with the message.\\"}},\\"sendMessage(address,bytes,uint32)\\":{\\"params\\":{\\"_message\\":\\"Message to trigger the target address with.\\",\\"_minGasLimit\\":\\"Minimum gas limit that the message can be executed with.\\",\\"_target\\":\\"Target contract or wallet address.\\"}},\\"xDomainMessageSender()\\":{\\"returns\\":{\\"_0\\":\\"Address of the sender of the currently executing message on the other chain.\\"}}},\\"stateVariables\\":{\\"portal\\":{\\"custom:network-specific\\":\\"\\"},\\"version\\":{\\"custom:semver\\":\\"2.3.0\\"}},\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"FailedRelayedMessage(bytes32)\\":{\\"notice\\":\\"Emitted whenever a message fails to be relayed on this chain.\\"},\\"RelayedMessage(bytes32)\\":{\\"notice\\":\\"Emitted whenever a message is successfully relayed on this chain.\\"},\\"SentMessage(address,address,bytes,uint256,uint256)\\":{\\"notice\\":\\"Emitted whenever a message is sent to the other chain.\\"},\\"SentMessageExtension1(address,uint256)\\":{\\"notice\\":\\"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"MESSAGE_VERSION()\\":{\\"notice\\":\\"Current message version identifier.\\"},\\"MIN_GAS_CALLDATA_OVERHEAD()\\":{\\"notice\\":\\"Extra gas added to base gas for each byte of calldata in a message.\\"},\\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()\\":{\\"notice\\":\\"Denominator for dynamic overhead added to the base gas for a message.\\"},\\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()\\":{\\"notice\\":\\"Numerator for dynamic overhead added to the base gas for a message.\\"},\\"OTHER_MESSENGER()\\":{\\"notice\\":\\"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\\"},\\"PORTAL()\\":{\\"notice\\":\\"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead.\\"},\\"RELAY_CALL_OVERHEAD()\\":{\\"notice\\":\\"Gas reserved for performing the external
385call in `relayMessage`.\\"},\\"RELAY_CONSTANT_OVERHEAD()\\":{\\"notice\\":\\"Constant overhead added to the base gas for a message.\\"},\\"RELAY_GAS_CHECK_BUFFER()\\":{\\"notice\\":\\"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`.\\"},\\"RELAY_RESERVED_GAS()\\":{\\"notice\\":\\"Gas reserved for finalizing the execution of `relayMessage` after the safe call.\\"},\\"baseGas(bytes,uint32)\\":{\\"notice\\":\\"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely.\\"},\\"constructor\\":{\\"notice\\":\\"Constructs the L1CrossDomainMessenger contract.\\"},\\"failedMessages(bytes32)\\":{\\"notice\\":\\"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt.\\"},\\"initialize(address,address)\\":{\\"notice\\":\\"Initializes the contract.\\"},\\"messageNonce()\\":{\\"notice\\":\\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\\"},\\"otherMessenger()\\":{\\"notice\\":\\"CrossDomainMessenger contract on the other chain.\\"},\\"paused()\\":{\\"notice\\":\\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\\"},\\"portal()\\":{\\"notice\\":\\"Contract of the OptimismPortal.\\"},\\"relayMessage(uint256,address,address,uint256,uint256,bytes)\\":{\\"notice\\":\\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\\"},\\"sendMessage(address,bytes,uint32)\\":{\\"notice\\":\\"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\\"},\\"successfulMessages(bytes32)\\":{\\"notice\\":\\"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.\\"},\\"superchainConfig()\\":{\\"notice\\":\\"Contract of the SuperchainConfig.\\"},\\"version()\\":{\\"notice\\":\\"Semantic version.\\"},\\"xDomainMessageSender()\\":{\\"notice\\":\\"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it.\\"}},\\"notice\\":\\"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible for sending and receiving data on the L1 side. Users are encouraged to use this interface instead of interacting with lower-level contracts directly.\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L1/L1CrossDomainMessenger.sol\\":\\"L1CrossDomainMessenger\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\\":{\\"keccak256\\":\\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\\",\\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\\",\\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\\":{\\"keccak256\\":\\"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\\",\\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\\":{\\"keccak256\\":\\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\\",\\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\\"]},\\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\\",\\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\":{\\"keccak256\\":\\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\\",\\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\\":{\\"keccak256\\":\\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\\",\\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\\":{\\"keccak256\\":\\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\\",\\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\\"]},\\"lib/solmate/src/utils/FixedPointMathLib.sol\\":{\\"keccak256\\":\\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\\",\\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\\"]},\\"src/L1/L1CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1\\",\\"dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18\\"]},\\"src/L1/L2OutputOracle.sol\\":{\\"keccak256\\":\\"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303\\",\\"dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww\\"]},\\"src/L1/OptimismPortal.sol\\":{\\"keccak256\\":\\"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2\\",\\"dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k\\"]},\\"src/L1/ResourceMetering.sol\\":{\\"keccak256\\":\\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\\",\\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\\"]},\\"src/L1/SuperchainConfig.sol\\":{\\"keccak256\\":\\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\\",\\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\\"]},\\"src/L1/SystemConfig.sol\\":{\\"keccak256\\":\\"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce\\",\\"dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f\\"]},\\"src/libraries/Arithmetic.sol\\":{\\"keccak256\\":\\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\\",\\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\\"]},\\"src/libraries/Burn.sol\\":{\\"keccak256\\":\\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\\",\\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\\"]},\\"src/libraries/Bytes.sol\\":{\\"keccak256\\":\\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\\",\\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\\"]},\\"src/libraries/Constants.sol\\":{\\"keccak256\\":\\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\\",\\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\\"]},\\"src/libraries/Encoding.sol\\":{\\"keccak256\\":\\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\\",\\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\\"]},\\"src/libraries/Hashing.sol\\":{\\"keccak256\\":\\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\\",\\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\\"]},\\"src/libraries/PortalErrors.sol\\":{\\"keccak256\\":\\"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957
385ab55bdade129adcf558\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1\\",\\"dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU\\"]},\\"src/libraries/Predeploys.sol\\":{\\"keccak256\\":\\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\\",\\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\\"]},\\"src/libraries/SafeCall.sol\\":{\\"keccak256\\":\\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\\",\\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\\"]},\\"src/libraries/Storage.sol\\":{\\"keccak256\\":\\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\\",\\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\\"]},\\"src/libraries/Types.sol\\":{\\"keccak256\\":\\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\\",\\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\\"]},\\"src/libraries/rlp/RLPReader.sol\\":{\\"keccak256\\":\\"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a\\",\\"dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj\\"]},\\"src/libraries/rlp/RLPWriter.sol\\":{\\"keccak256\\":\\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\\",\\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\\"]},\\"src/libraries/trie/MerkleTrie.sol\\":{\\"keccak256\\":\\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f
38500947fec4437c064fe74\\",\\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\\"]},\\"src/libraries/trie/SecureMerkleTrie.sol\\":{\\"keccak256\\":\\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\\",\\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\\"]},\\"src/universal/CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\\",\\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/vendor/AddressAliasHelper.sol\\":{\\"keccak256\\":\\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\\",\\"license\\":\\"Apache-2.0\\",\\"urls\\":[\\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\\",\\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"uint256","name":"messageNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false}],"type":"event","name":"SentMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SentMessageExtension1","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTAL","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CALL_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CONSTANT_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_GAS_CHECK_BUFFER","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_RESERVED_GAS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}
385,{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"pure","type":"function","name":"baseGas","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"},{"internalType":"contract OptimismPortal","name":"_portal","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"portal","outputs":[{"internalType":"contract OptimismPortal","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"OTHER_MESSENGER()":{"custom:legacy":"","returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"custom:legacy":"","returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external
385call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1CrossDomainMessenger.sol":"L1CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1CrossDomainMessenger.sol":{"keccak256":"0x1a93450f3f9e2262b32e7831709b01d4491befb79a90cc24509b569103674e06","urls":["bzz-raw://2896f906f07fb6ceb7fea3cb31a10b8289db628142cb0612d9890d62bce265b1","dweb:/ipfs/QmYGAMecafbcT4LRBbDCYFj6mPCa3u5hNGUq2tfjWU3s18"],"license":"MIT"},"src/L1/L2OutputOracle.sol":{"keccak256":"0x342c5084f3c640c90530122bd78372c011d6162e698dd8c8daec9496fef01d42","urls":["bzz-raw://8700a3d486bd62cbb861ff80175b8040336940515791073af6a036db7c2df303","dweb:/ipfs/QmSGKTH84rVHWgMg4d6GQZCmCJ16KuUuTsMwPMDdJxCsww"],"license":"MIT"},"src/L1/OptimismPortal.sol":{"keccak256":"0xf46a1158e86edcbb157d0b06a32db37867c0bc9d2aeeed6a8110547c7537201a","urls":["bzz-raw://0aeb33d425db200953063e3576403b78c50e3a5e7b4f56ef4bead28919406ee2","dweb:/ipfs/QmUFb1rEQnCFrGRZQPHgFFWJQ48SR7wodiSFLgQKu8Jx6k"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L1/SystemConfig.sol":{"keccak256":"0xc3d6392cbc44e38ddc93b84b82b08ab8e813df771a48926db3f94edde8f2b64a","urls":["bzz-raw://d326d644dc59a57a71f4ff6eaa5c6d1464697c7df337b641fe82091b9050e6ce","dweb:/ipfs/Qmd6tNzBmm8V4cpcMNyFWbWnKPNMRoysmmA62rZjGqpg7f"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Bytes.sol":{"keccak256":"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859","urls":["bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782","dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/PortalErrors.sol":{"keccak256":"0x57adcaa45a1ce9c5af04d0fe4ecbc86e6ff3f947f7957
385ab55bdade129adcf558","urls":["bzz-raw://3cf485f11085ad6d1ba1386fdb340f65eb1048187692ad3d9eb8816e290140c1","dweb:/ipfs/Qmb423b45TLV8PdhFa8Hs72eom5D2C5q4gVcYGNzDh4EMU"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPReader.sol":{"keccak256":"0x99731a39bc10203719d448117b0e6ef47771890440d595d118084d7988d59afb","urls":["bzz-raw://1dbeb75d0cc8de58350cc15df8867bf97d8492e0617b1c62733ace6155c6915a","dweb:/ipfs/QmNiXzskPE72h93F8EXT8wAXKzEh2EERLbubdVMfwTQbtj"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/libraries/trie/MerkleTrie.sol":{"keccak256":"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c","urls":["bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f
38500947fec4437c064fe74","dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"],"license":"MIT"},"src/libraries/trie/SecureMerkleTrie.sol":{"keccak256":"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288","urls":["bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681","dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":108324,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_0_0_20","offset":0,"slot":"0","type":"t_address"},{"astId":46970,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":108331,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_1_0_1600","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":108334,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_51_0_20","offset":0,"slot":"51","type":"t_address"},{"astId":108339,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_52_0_1568","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":108342,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_101_0_1","offset":0,"slot":"101","type":"t_bool"},{"astId":108347,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_102_0_1568","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":108350,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_151_0_32","offset":0,"slot":"151","type":"t_uint256"},{"astId":108355,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_152_0_1568","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":108360,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_201_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108365,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"spacer_202_0_32","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108410,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108413,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"xDomainMsgSender","offset":0,"slot":"204","type":"t_address"},{"astId":108416,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"205","type":"t_uint240"},{"astId":108421,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"failedMessages","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108425,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"otherMessenger","offset":0,"slot":"207","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108430,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"__gap","offset":0,"slot":"208","type":"t_array(t_uint256)43_storage"},{"astId":84986,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"superchainConfig","offset":0,"slot":"251","type":"t_contract(SuperchainConfig)88793"},{"astId":84990,"contract":"src/L1/L1CrossDomainMessenger.sol:L1CrossDomainMessenger","label":"portal","offset":0,"slot":"252","type":"t_contract(OptimismPortal)87104"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)43_storage":{"encoding":"inplace","label":"uint256[43]","numberOfBytes":"1376","base":"t_uint256"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","
385numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(OptimismPortal)87104":{"encoding":"inplace","label":"contract OptimismPortal","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"PORTAL()":{"notice":"Getter function for the OptimismPortal contract on this chain. Public getter is legacy and will be removed in the future. Use `portal()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L1CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address,address)":{"notice":"Initializes the contract."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"portal()":{"notice":"Contract of the OptimismPortal."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"superchainConfig()":{"notice":"Contract of the SuperchainConfig."},"version()":{"notice":"Semantic version."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."}
385,"SentMessage(address,address,bytes,uint256,uint256)":{"notice":"Emitted whenever a message is sent to the other chain."},"SentMessageExtension1(address,uint256)":{"notice":"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough."}},"notice":"The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible for sending and receiving data on the L1 side. Users are encouraged to use this interface instead of interacting with lower-level contracts directly."},"devdoc":{"version":1,"kind":"dev","methods":{"OTHER_MESSENGER()":{"returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"PORTAL()":{"returns":{"_0":"Contract of the OptimismPortal on this chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address,address)":{"params":{"_portal":"Contract of the OptimismPortal contract on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}}},"ast":{"absolutePath":"src/L1/L1CrossDomainMessenger.sol","id":85146,"exportedSymbols":{"CrossDomainMessenger":[108888],"ISemver":[109417],"L1CrossDomainMessenger":[85145],"OptimismPortal":[87104],"Predeploys":[104124],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:3102:130","nodes":[{"id":84967,"nodeType":"PragmaDirective","src":"32:23:130","nodes":[],"literals":["solidity","0.8",".15"]},{"id":84969,"nodeType":"ImportDirective","src":"57:58:130","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":84968,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"66:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84971,"nodeType":"ImportDirective","src":"116:59:130","nodes":[],"absolutePath":"src/L1/OptimismPortal.sol","file":"src/L1/OptimismPortal.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":87105,"symbolAliases":[{"foreign":{"id":84970,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"125:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84973,"nodeType":"ImportDirective","src":"176:78:130","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":84972,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"185:20:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84975,"nodeType":"ImportDirective","src":"255:52:130","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":84974,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"264:7:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84977,"nodeType":"ImportDirective","src":"308:63:130","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85146,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":84976,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"317:16:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85145,"nodeType":"ContractDefinition","src":"701:2432:130","nodes":[{"id":84986,"nodeType":"VariableDeclaration","src":"822:40:130","nodes":[],"constant":false,"documentation":{"id":84983,"nodeType":"StructuredDocumentation","src":"772:45:130","text":"@notice Contract of the SuperchainConfig."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"846:16:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":84985,"nodeType":"UserDefinedTypeName","pathNode":{"id":84984,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"822:16:130"},"referencedDeclaration":88793,"src":"822:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":84990,"nodeType":"VariableDeclaration","src":"950:28:130","nodes":[],"constant":false,"documentation":{"id":84987,"nodeType":"StructuredDocumentation","src":"869:76:130","text":"@notice Contract of the OptimismPortal.\\n @custom:network-specific"}
385,"functionSelector":"6425666b","mutability":"mutable","name":"portal","nameLocation":"972:6:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":84989,"nodeType":"UserDefinedTypeName","pathNode":{"id":84988,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"950:14:130"},"referencedDeclaration":87104,"src":"950:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"public"},{"id":84994,"nodeType":"VariableDeclaration","src":"1048:40:130","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":84991,"nodeType":"StructuredDocumentation","src":"985:58:130","text":"@notice Semantic version.\\n @custom:semver 2.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1071:7:130","scope":85145,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84992,"name":"string","nodeType":"ElementaryTypeName","src":"1048:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e332e30","id":84993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1081:7:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_22fd31a466cd79bdd552fae6268088a4b5436c44416a9eb8cc3035d8d9e397ab","typeString":"literal_string \\"2.3.0\\""},"value":"2.3.0"},"visibility":"public"},{"id":85019,"nodeType":"FunctionDefinition","src":"1159:163:130","nodes":[],"body":{"id":85018,"nodeType":"Block","src":"1196:126:130","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1263:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1255:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85002,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:130","typeDescriptions":{}}},"id":85005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85001,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"1238:16:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1238:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1308:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1300:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85010,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:130","typeDescriptions":{}}},"id":85013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1300:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1292:8:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85008,"name":"address","nodeType":"ElementaryTypeName","src":"1292:8:130","stateMutability":"payable","typeDescriptions":{}}},"id":85014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1292:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85007,"name":"OptimismPortal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87104,"src":"1277:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OptimismPortal_$87104_$","typeString":"type(contract OptimismPortal)"}},"id":85015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1277:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85000,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85047,"src":"1206:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_SuperchainConfig_$88793_$_t_contract$_OptimismPortal_$87104_$returns$__$","typeString":"function (contract SuperchainConfig,contract OptimismPortal)"}},"id":85016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_superchainConfig","_portal"],"nodeType":"FunctionCall","src":"1206:109:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85017,"nodeType":"ExpressionStatement","src":"1206:109:130"}]},"documentation":{"id":84995,"nodeType":"StructuredDocumentation","src":"1095:59:130","text":"@notice Constructs the L1CrossDomainMessenger contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":84998,"kind":"baseConstructorSpecifier","modifierName":{"id":84997,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1173:20:130"},"nodeType":"ModifierInvocation","src":"1173:22:130"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84996,"nodeType":"ParameterList","parameters":[],"src":"1170:2:130"},"returnParameters":{"id":84999,"nodeType":"ParameterList","parameters":[],"src":"1196:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85047,"nodeType":"FunctionDefinition","src":"1542:296:130","nodes":[],"body":{"id":85046,"nodeType":"Block","src":"1641:197:130","nodes":[],"statements":[{"expression":{"id":85033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85031,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"1651:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85032,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85023,"src":"1670:17:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"1651:36:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85034,"nodeType":"ExpressionStatement","src":"1651:36:130"},{"expression":{"id":85037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85035,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"1697:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85036,"name":"_portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85026,"src":"1706:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"src":"1697:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85038,"nodeType":"ExpressionStatement","src":"1697:16:130"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":85041,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1791:10:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","no
385deType":"MemberAccess","referencedDeclaration":104004,"src":"1791:36:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85040,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1770:20:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1770:58:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85039,"name":"__CrossDomainMessenger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108852,"src":"1723:27:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":85044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherMessenger"],"nodeType":"FunctionCall","src":"1723:108:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85045,"nodeType":"ExpressionStatement","src":"1723:108:130"}]},"documentation":{"id":85020,"nodeType":"StructuredDocumentation","src":"1328:209:130","text":"@notice Initializes the contract.\\n @param _superchainConfig Contract of the SuperchainConfig contract on this network.\\n @param _portal Contract of the OptimismPortal contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85029,"kind":"modifierInvocation","modifierName":{"id":85028,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"1629:11:130"},"nodeType":"ModifierInvocation","src":"1629:11:130"}],"name":"initialize","nameLocation":"1551:10:130","parameters":{"id":85027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85023,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1579:17:130","nodeType":"VariableDeclaration","scope":85047,"src":"1562:34:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85022,"nodeType":"UserDefinedTypeName","pathNode":{"id":85021,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1562:16:130"},"referencedDeclaration":88793,"src":"1562:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"},{"constant":false,"id":85026,"mutability":"mutable","name":"_portal","nameLocation":"1613:7:130","nodeType":"VariableDeclaration","scope":85047,"src":"1598:22:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85025,"nodeType":"UserDefinedTypeName","pathNode":{"id":85024,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"1598:14:130"},"referencedDeclaration":87104,"src":"1598:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"1561:60:130"},"returnParameters":{"id":85030,"nodeType":"ParameterList","parameters":[],"src":"1641:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85057,"nodeType":"FunctionDefinition","src":"2107:87:130","nodes":[],"body":{"id":85056,"nodeType":"Block","src":"2164:30:130","nodes":[],"statements":[{"expression":{"id":85054,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2181:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"functionReturnParameters":85053,"id":85055,"nodeType":"Return","src":"2174:13:130"}]},"documentation":{"id":85048,"nodeType":"StructuredDocumentation","src":"1844:258:130","text":"@notice Getter function for the OptimismPortal contract on this chain.\\n Public getter is legacy and will be removed in the future. Use `portal()` instead.\\n @return Contract of the OptimismPortal on this chain.\\n @custom:legacy"},"functionSelector":"0ff754ea","implemented":true,"kind":"function","modifiers":[],"name":"PORTAL","nameLocation":"2116:6:130","parameters":{"id":85049,"nodeType":"ParameterList","parameters":[],"src":"2122:2:130"},"returnParameters":{"id":85053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85057,"src":"2148:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"},"typeName":{"id":85051,"nodeType":"UserDefinedTypeName","pathNode":{"id":85050,"name":"OptimismPortal","nodeType":"IdentifierPath","referencedDeclaration":87104,"src":"2148:14:130"},"referencedDeclaration":87104,"src":"2148:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"visibility":"internal"}],"src":"2147:16:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":85083,"nodeType":"FunctionDefinition","src":"2241:320:130","nodes":[],"body":{"id":85082,"nodeType":"Block","src":"2348:213:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":85075,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85060,"src":"2420:3:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85076,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2445:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85077,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85062,"src":"2476:9:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"66616c7365","id":85078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2512:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":85079,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85066,"src":"2538:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":85070,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2358:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"depositTransaction","nodeType":"MemberAccess","referencedDeclaration":87068,"src":"2358:25:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":85073,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85064,"src":"2392:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2358:42:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,uint256,uint64,bool,bytes memory) payable external"}},"id":85080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_to","_value","_gasLimit","_isCreation","_data"],"nodeType":"FunctionCall","src":"2358:196:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85081,"nodeType":"ExpressionStatement","src":"2358:196:130"}]},"baseFunctions":[108864],"documentation":{"id":85058,"nodeType":"StructuredDocumentation","src":"2200:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"2250:12:130","overrides":{"id":85068,"nodeType":"OverrideSpecifier","overrides":[],"src":"2339:8:130"},"parameters":{"id":85067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85060,"mutability":"mutable","name":"_to","nameLocation":"2271:3:130","nodeType":"VariableDeclaration","scope":85083,"src":"2263:11:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85059,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85062,"mutability":"mutable","name":"_gasLimit","nameLocation":"2283:9:130","nodeType":"VariableDeclaration","scope":85083,"src":"2276:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":85061,"name":"uint64","nodeType":"ElementaryTypeName","src":"2276:6:130","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":85064,"mutability":"mutable","name":"_value","nameLocation":"2302:6:130","nodeType":"VariableDeclaration","scope":85083,"src":"2294:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85063,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85066,"mutability":"mutable","name":"_data","nameLocation":"2323:5:130","nodeType":"VariableDeclaration","scope":85083,"src":"2310:18:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85065,"name":"bytes","nodeType":"ElementaryTypeName","src":"2310:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2262:67:130"},"returnParameters":{"id":85069,"nodeType":"ParameterList","parameters":[],"src":"2348:0:130"},"scope":85145,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":85108,"nodeType":"FunctionDefinition","src":"2608:168:130","nodes":[],"body":{"id":85107,"nodeType":"Block","src":"2675:101:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":85090,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2692:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":85091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2692:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85094,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2714:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85092,"name":"address","nodeType":"ElementaryTypeName","src":"2706:7:130","typeDescriptions":{}}},"id":85095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2692:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85097,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2725:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}},"id":85098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"l2Sender","nodeType":"MemberAccess","referencedDeclaration":86489,"src":"2725:15:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":85099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85102,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"2754:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":85101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2746:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85100,"name":"address","nodeType":"ElementaryTypeName","src":"2746:7:130","typeDescriptions":{}}},"id":85103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2725:44:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2692:77:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85089,"id":85106,"nodeType":"Return","src":"2685:84:130"}]},"baseFunctions":[108870],"documentation":{"id":85084,"nodeType":"StructuredDocumentation","src":"2567:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"2617:17:130","overrides":{"id":85086,"nodeType":"OverrideSpecifier","overrides":[],"src":"2651:8:130"},"parameters":{"id":85085,"nodeType":"ParameterList","parameters":[],"src":"2634:2:130"},"returnParameters":{"id":85089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85088,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85108,"src":"2669:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85087,"name":"bool","nodeType":"ElementaryTypeName","src":"2669:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2668:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85132,"nodeType":"FunctionDefinition","src":"2823:158:130","nodes":[],"body":{"id":85131,"nodeType":"Block","src":"2903:78:130","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85117,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2920:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85120,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2939:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1CrossDomainMessenger_$85145","typeString":"contract L1CrossDomainMessenger"}],"id":85119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2931:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85118,"name":"address","nodeType":"ElementaryTypeName","src":"2931:7:130","typeDescriptions":{}}},"id":85121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2931:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2920:24:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85123,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85111,"src":"2948:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":85126,"name":"portal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84990,"src":"2967:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismPortal_$87104","typeString":"contract OptimismPortal"}],"id":85125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2959:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85124,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:130","typeDescriptions":{}}},"id":85127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:15:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2948:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2920:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85116,"id":85130,"nodeType":"Return","src":"2913:61:130"}]},"baseFunctions":[108878],"documentation":{"id":85109,"nodeType":"StructuredDocumentation","src":"2782:36:130","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"2832:15:130","overrides":{"id":85113,"nodeType":"OverrideSpecifier","overrides":[],"src":"2879:8:130"},"parameters":{"id":85112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85111,"mutability":"mutable","name":"_target","nameLocation":"2856:7:130","nodeType":"VariableDeclaration","scope":85132,"src":"2848:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85110,"name":"address","nodeType":"ElementaryTypeName","src":"2848:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2847:17:130"},"returnParameters":{"id":85116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85132,"src":"2897:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85114,"name":"bool","nodeType":"ElementaryTypeName","src":"2897:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2896:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":85144,"nodeType":"FunctionDefinition","src":"3028:103:130","nodes":[],"body":{"id":85143,"nodeType":"Block","src":"3082:49:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85139,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84986,"src":"3099:16:130","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"3099:23:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3099:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85138,"id":85142,"nodeType":"Return","src":"3092:32:130"}]}
385,"baseFunctions":[108887],"documentation":{"id":85133,"nodeType":"StructuredDocumentation","src":"2987:36:130","text":"@inheritdoc CrossDomainMessenger"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"3037:6:130","overrides":{"id":85135,"nodeType":"OverrideSpecifier","overrides":[],"src":"3058:8:130"},"parameters":{"id":85134,"nodeType":"ParameterList","parameters":[],"src":"3043:2:130"},"returnParameters":{"id":85138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85144,"src":"3076:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85136,"name":"bool","nodeType":"ElementaryTypeName","src":"3076:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3075:6:130"},"scope":85145,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":84979,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"736:20:130"},"id":84980,"nodeType":"InheritanceSpecifier","src":"736:20:130"},{"baseName":{"id":84981,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"758:7:130"},"id":84982,"nodeType":"InheritanceSpecifier","src":"758:7:130"}],"canonicalName":"L1CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":84978,"nodeType":"StructuredDocumentation","src":"373:328:130","text":"@custom:proxied\\n @title L1CrossDomainMessenger\\n @notice The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible\\n for sending and receiving data on the L1 side. Users are encouraged to use this\\n interface instead of interacting with lower-level contracts directly."},"fullyImplemented":true,"linearizedBaseContracts":[85145,109417,108888,108366,47114,108325],"name":"L1CrossDomainMessenger","nameLocation":"710:22:130","scope":85146,"usedErrors":[]}],"license":"MIT"},"id":130}')},75033:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deposits","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_messenger","type":"address","internalType":"contract CrossDomainMessenger"},{"name":"_superchainConfig","type":"address","internalType":"contract SuperchainConfig"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"superchainConfig","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SuperchainConfig"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001f60008062000025565b62000234565b600054610100900460ff1615808015620000465750600054600160ff909116105b8062000076575062000063306200018a60201b62000b141760201c565b15801562000076575060005460ff166001145b620000df5760405162461bcd60e51b8152
38560206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000103576000805461ff0019166101001790555b603280546001600160a01b0319166001600160a01b0384161790556200013e8373420000000000000000000000000000000000001462000199565b801562000185576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff16620002065760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d6565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b6113e980620002446000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f742062652061646472657373283029
38500000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848
385603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:131:-:0;;;1492:155;;;;;;;;;-1:-1:-1;1531:109:131::1;1585:1;::::0;1531:10:::1;:109::i;:::-;922:4498:::0;;1869:318;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;1987:16:131::1;:36:::0;;-1:-1:-1;;;;;;1987:36:131::1;-1:-1:-1::0;;;;;1987:36:131;::::1;;::::0;;2033:147:::1;2079:10:::0;786:42:199::1;2033:19:131;:147::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;1869:318:131;;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;3212:9:224::1;:22:::0;;-1:-1:-1;;;;;3212:22:224;;::::1;-1:-1:-1::0;;;;;;3212:22:224;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;628:407:357:-;922:4498:131;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80635d93a3fc11610081578063927ede2d1161005b578063927ede2d14610231578063aa5574521461024f578063c89701a21461026257600080fd5b80635d93a3fc146101cc578063761f4493146102005780637f46ddb21461021357600080fd5b8063485cc955116100b2578063485cc9551461015857806354fd4d501461016b5780635c975abb146101b457600080fd5b806335e80ab3146100d95780633687011a146101235780633cb747bf14610138575b600080fd5b6032546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610136610131366004610fe1565b610282565b005b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b610136610166366004611064565b61032e565b6101a76040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161011a9190611108565b6101bc610518565b604051901515815260200161011a565b6101bc6101da366004611122565b603160209081526000938452604080852082529284528284209052825290205460ff1681565b61013661020e366004611163565b6105b1565b60025473ffffffffffffffffffffffffffffffffffffffff166100f9565b60015473ffffffffffffffffffffffffffffffffffffffff166100f9565b61013661025d3660046111fb565b610a58565b6002546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b333b15610316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103268686333388888888610b30565b505050505050565b600054610100900460ff161580801561034e5750600054600160ff909116105b806103685750303b158015610368575060005460ff166001145b6103f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161030d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84161790556104b083734200000000000000000000000000000000000014610e70565b801561051357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b603254604080517f5c975abb000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691635c975abb9160048083019260209291908290030181865afa158015610588573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ac9190611272565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156106865750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa15801561064a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066e9190611294565b73ffffffffffffffffffffffffffffffffffffffff16145b610712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161030d565b61071a610518565b15610781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4c314552433732314272696467653a2070617573656400000000000000000000604482015260640161030d565b3073ffffffffffffffffffffffffffffffffffffffff881603610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff8088166000908152603160209081526040808320938a1683529281528282208683529052205460ff1615156001146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4c314552433732314272696467653a20546f6b656e204944206973206e6f742060448201527f657363726f77656420696e20746865204c312042726964676500000000000000606482015260840161030d565b73ffffffffffffffffffffffffffffffffffffffff87811660008181526031602090815260408083208b8616845282528083208884529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820152918616602483015260448201859052906342842e0e90606401600060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac87878787604051610a4794939291906112fa565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff8516610afb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f742062652061646472657373283029
38500000000000000000000000000000000606482015260840161030d565b610b0b8787338888888888610b30565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161030d565b600063761f449360e01b888a8989898888604051602401610bfa979695949392919061133a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000959095169490941790935273ffffffffffffffffffffffffffffffffffffffff8c81166000818152603186528381208e8416825286528381208b82529095529382902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590517f23b872dd000000000000000000000000000000000000000000000000000000008152908a166004820152306024820152604481018890529092506323b872dd90606401600060405180830381600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b50506001546002546040517f3dbb202b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9283169450633dbb202b9350610db1929091169085908990600401611397565b600060405180830381600087803b158015610dcb57600080fd5b505af1158015610ddf573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a589898888604051610e5d94939291906112fa565b60405180910390a4505050505050505050565b600054610100900460ff16610f07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161030d565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b73ffffffffffffffffffffffffffffffffffffffff81168114610f7c57600080fd5b50565b803563ffffffff81168114610f9357600080fd5b919050565b60008083601f840112610faa57600080fd5b50813567ffffffffffffffff811115610fc257600080fd5b602083019150836020828501011115610fda57600080fd5b9250929050565b60008060008060008060a08789031215610ffa57600080fd5b863561100581610f5a565b9550602087013561101581610f5a565b94506040870135935061102a60608801610f7f565b9250608087013567ffffffffffffffff81111561104657600080fd5b61105289828a01610f98565b979a9699509497509295939492505050565b6000806040838503121561107757600080fd5b823561108281610f5a565b9150602083013561109281610f5a565b809150509250929050565b6000815180845260005b818110156110c3576020818501810151868301820152016110a7565b818111156110d5576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061111b602083018461109d565b9392505050565b60008060006060848
385603121561113757600080fd5b833561114281610f5a565b9250602084013561115281610f5a565b929592945050506040919091013590565b600080600080600080600060c0888a03121561117e57600080fd5b873561118981610f5a565b9650602088013561119981610f5a565b955060408801356111a981610f5a565b945060608801356111b981610f5a565b93506080880135925060a088013567ffffffffffffffff8111156111dc57600080fd5b6111e88a828b01610f98565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561121657600080fd5b873561122181610f5a565b9650602088013561123181610f5a565b9550604088013561124181610f5a565b94506060880135935061125660808901610f7f565b925060a088013567ffffffffffffffff8111156111dc57600080fd5b60006020828403121561128457600080fd5b8151801515811461111b57600080fd5b6000602082840312156112a657600080fd5b815161111b81610f5a565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006113306060830184866112b1565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a083015261138a60c0830184866112b1565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006113c6606083018561109d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"922:4498:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1279:40;;;;;;;;;;;;216:42:357;204:55;;;186:74;;174:2;159:18;1279:40:131;;;;;;;;5688:971:224;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;1869:318:131;;;;;;:::i;:::-;;:::i;1389:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2226:103::-;;;:::i;:::-;;;3420:14:357;;3413:22;3395:41;;3383:2;3368:18;2226:103:131;3255:187:357;1134:80:131;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3096:1207;;;;;;:::i;:::-;;:::i;3858:98:224:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;967:33::-;;;;;;;;;5688:971;6472:10;1465:19:59;:23;6444:89:224;;;;;;;6391:2:357;6444:89:224;;;6373:21:357;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;6540:15;6520:18;;;6513:43;6573:19;;6444:89:224;;;;;;;;;6544:108;6566:11;6579:12;6593:10;6605;6617:8;6627:12;6641:10;;6544:21;:108::i;:::-;5688:971;;;;;;:::o;1869:318:131:-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;6805:2:357;3146:190:43;;;6787:21:357;6844:2;6824:18;;;6817:30;6883:34;6863:18;;;6856:62;6954:16;6934:18;;;6927:44;6988:19;;3146:190:43;6603:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1987:16:131::1;:36:::0;;;::::1;;::::0;::::1;;::::0;;2033:147:::1;2079:10:::0;786:42:199::1;2033:19:131;:147::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;7170:36:357;;3531:14:43;;7158:2:357;7143:18;3531:14:43;;;;;;;3457:99;3090:472;1869:318:131;;:::o;2226:103::-;2297:16;;:25;;;;;;;;2274:4;;2297:16;;;:23;;:25;;;;;;;;;;;;;;:16;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2290:32;;2226:103;:::o;3096:1207::-;2669:9:224;;;;2647:10;:32;:92;;;;-1:-1:-1;2727:11:224;;;2683:9;:32;;;;;;;;2727:11;;;;;2683:9;;;;:30;;:32;;;;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;2647:92;2626:202;;;;;;;7957:2:357;2626:202:224;;;7939:21:357;7996:2;7976:18;;;7969:30;8035:34;8015:18;;;8008:62;8106:33;8086:18;;;8079:61;8157:19;;2626:202:224;7755:427:357;2626:202:224;3359:8:131::1;:6;:8::i;:::-;:17;3351:52;;;::::0;::::1;::::0;;8389:2:357;3351:52:131::1;::::0;::::1;8371:21:357::0;8428:2;8408:18;;;8401:30;8467:24;8447:18;;;8440:52;8509:18;;3351:52:131::1;8187:346:357::0;3351:52:131::1;3444:4;3421:28;::::0;::::1;::::0;3413:83:::1;;;::::0;::::1;::::0;;8740:2:357;3413:83:131::1;::::0;::::1;8722:21:357::0;8779:2;8759:18;;;8752:30;8818:34;8798:18;;;8791:62;8889:12;8869:18;;;8862:40;8919:19;;3413:83:131::1;8538:406:357::0;3413:83:131::1;3620:21;::::0;;::::1;;::::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;;:45;;;;;;;::::1;;:53;;:45:::0;:53:::1;3599:157;;;::::0;::::1;::::0;;9151:2:357;3599:157:131::1;::::0;::::1;9133:21:357::0;9190:2;9170:18;;;9163:30;9229:34;9209:18;;;9202:62;9300:27;9280:18;;;9273:55;9345:19;;3599:157:131::1;8949:421:357::0;3599:157:131::1;3878:21;::::0;;::::1;3926:5;3878:21:::0;;;:8:::1;:21;::::0;;;;;;;:35;;::::1;::::0;;;;;;;:45;;;;;;;;;;:53;;;::::1;::::0;;4053:90;;;;4107:4:::1;4053:90;::::0;::::1;9638:34:357::0;9708:15;;;9688:18;;;9681:43;9740:18;;;9733:34;;;3878:21:131;4053:37:::1;::::0;9550:18:357;;4053:90:131::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4263:5;4214:82;;4249:12;4214:82;;4236:11;4214:82;;;4270:3;4275:8;4285:10;;4214:82;;;;;;;;;:::i;:::-;;;;;;;;3096:1207:::0;;;;;;;:::o;7885:428:224:-;8124:17;;;8116:78;;;;;;;10750:2:357;8116:78:224;;;10732:21:357;10789:2;10769:18;;;10762:30;10828:34;10808:18;;;10801:62;10899:18;10879;;;10872:46;10935:19;;8116:78:224;10548:412:357;8116:78:224;8205:101;8227:11;8240:12;8254:10;8266:3;8271:8;8281:12;8295:10;;8205:21;:101::i;:::-;7885:428;;;;;;;:::o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;4342:1076:131:-;4628:26;;;4620:88;;;;;;;11167:2:357;4620:88:131;;;11149:21:357;11206:2;11186:18;;;11179:30;11245:34;11225:18;;;11218:62;11316:19;11296:18;;;11289:47;11353:19;;4620:88:131;10965:413:357;4620:88:131;4798:20;4857:44;;;4903:12;4917:11;4930:5;4937:3;4942:8;4952:10;;4821:151;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:21;;;;-1:-1:-1;5017:21:131;;;:8;:21;;;;;:35;;;;;;;;;;:45;;;;;;;;;;:52;;;;5065:4;5017:52;;;5079:88;;;;;9656:15:357;;;5079:88:131;;;9638:34:357;5140:4:131;9688:18:357;;;9681:43;9740:18;;;9733:34;;;4821:151:131;;-1:-1:-1;5079:33:131;;9550:18:357;;5079:88:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5211:9:131;;5252:11;;5211:103;;;;;:9;;;;;-1:-1:-1;5211:21:131;;-1:-1:-1;5211:103:131;;5252:11;;;;5276:7;;5299:12;;5211:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3855378:5;5329:82;;5364:12;5329:82;;5351:11;5329:82;;;5385:3;5390:8;5400:10;;5329:82;;;;;;;;;:::i;:::-;;;;;;;;4610:808;4342:1076;;;;;;;;:::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;;;;12719:2:357;4880:69:43;;;12701:21:357;12758:2;12738:18;;;12731:30;12797:34;12777:18;;;12770:62;12868:13;12848:18;;;12841:41;12899:19;;4880:69:43;12517:407:357;4880:69:43;3212:9:224::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;271:154:357:-;357:42;350:5;346:54;339:5;336:65;326:93;;415:1;412;405:12;326:93;271:154;:::o;430:163::-;497:20;;557:10;546:22;;536:33;;526:61;;583:1;580;573:12;526:61;430:163;;;:::o;598:347::-;649:8;659:6;713:3;706:4;698:6;694:17;690:27;680:55;;731:1;728;721:12;680:55;-1:-1:-1;754:20:357;;797:18;786:30;;783:50;;;829:1;826;819:12;783:50;866:4;858:6;854:17;842:29;;918:3;911:4;902:6;894;890:19;886:30;883:39;880:59;;;935:1;932;925:12;880:59;598:347;;;;;:::o;950:827::-;1055:6;1063;1071;1079;1087;1095;1148:3;1136:9;1127:7;1123:23;1119:33;1116:53;;;1165:1;1162;1155:12;1116:53;1204:9;1191:23;1223:31;1248:5;1223:31;:::i;:::-;1273:5;-1:-1:-1;1330:2:357;1315:18;;1302:32;1343:33;1302:32;1343:33;:::i;:::-;1395:7;-1:-1:-1;1449:2:357;1434:18;;1421:32;;-1:-1:-1;1472:37:357;1505:2;1490:18;;1472:37;:::i;:::-;1462:47;;1560:3;1549:9;1545:19;1532:33;1588:18;1580:6;1577:30;1574:50;;;1620:1;1617;1610:12;1574:50;1659:58;1709:7;1700:6;1689:9;1685:22;1659:58;:::i;:::-;950:827;;;;-1:-1:-1;950:827:357;;-1:-1:-1;950:827:357;;1736:8;;950:827;-1:-1:-1;;;950:827:357:o;2044:445::-;2169:6;2177;2230:2;2218:9;2209:7;2205:23;2201:32;2198:52;;;2246:1;2243;2236:12;2198:52;2285:9;2272:23;2304:31;2329:5;2304:31;:::i;:::-;2354:5;-1:-1:-1;2411:2:357;2396:18;;2383:32;2424:33;2383:32;2424:33;:::i;:::-;2476:7;2466:17;;;2044:445;;;;;:::o;2494:531::-;2536:3;2574:5;2568:12;2601:6;2596:3;2589:19;2626:1;2636:162;2650:6;2647:1;2644:13;2636:162;;;2712:4;2768:13;;;2764:22;;2758:29;2740:11;;;2736:20;;2729:59;2665:12;2636:162;;;2816:6;2813:1;2810:13;2807:87;;;2882:1;2875:4;2866:6;2861:3;2857:16;2853:27;2846:38;2807:87;-1:-1:-1;2939:2:357;2927:15;2944:66;2923:88;2914:98;;;;3014:4;2910:109;;2494:531;-1:-1:-1;;2494:531:357:o;3030:220::-;3179:2;3168:9;3161:21;3142:4;3199:45;3240:2;3229:9;3225:18;3217:6;3199:45;:::i;:::-;3191:53;3030:220;-1:-1:-1;;;3030:220:357:o;3447:456::-;3524:6;3532;3540;3593:2;3581:9;3572:7;3568:23;3564:32;3561:52;;;3609:1;3606;3599:12;3561:52;3648:9;3635:23;3667:31;3692:5;3667:31;:::i;:::-;3717:5;-1:-1:-1;3774:2:357;3759:18;;3746:32;3787:33;3746:32;3787:33;:::i;:::-;3447:456;;3839:7;;-1:-1:-1;;;3893:2:357;3878:18;;;;3865:32;;3447:456::o;3908:1038::-;4023:6;4031;4039;4047;4055;4063;4071;4124:3;4112:9;4103:7;4099:23;4095:33;4092:53;;;4141:1;4138;4131:12;4092:53;4180:9;4167:23;4199:31;4224:5;4199:31;:::i;:::-;4249:5;-1:-1:-1;4306:2:357;4291:18;;4278:32;4319:33;4278:32;4319:33;:::i;:::-;4371:7;-1:-1:-1;4430:2:357;4415:18;;4402:32;4443:33;4402:32;4443:33;:::i;:::-;4495:7;-1:-1:-1;4554:2:357;4539:18;;4526:32;4567:33;4526:32;4567:33;:::i;:::-;4619:7;-1:-1:-1;4673:3:357;4658:19;;4645:33;;-1:-1:-1;4729:3:357;4714:19;;4701:33;4757:18;4746:30;;4743:50;;;4789:1;4786;4779:12;4743:50;4828:58;4878:7;4869:6;4858:9;4854:22;4828:58;:::i;:::-;3908:1038;;;;-1:-1:-1;3908:1038:357;;-1:-1:-1;3908:1038:357;;;;4802:84;;-1:-1:-1;;;3908:1038:357:o;5215:969::-;5329:6;5337;5345;5353;5361;5369;5377;5430:3;5418:9;5409:7;5405:23;5401:33;5398:53;;;5447:1;5444;5437:12;5398:53;5486:9;5473:23;5505:31;5530:5;5505:31;:::i;:::-;5555:5;-1:-1:-1;5612:2:357;5597:18;;5584:32;5625:33;5584:32;5625:33;:::i;:::-;5677:7;-1:-1:-1;5736:2:357;5721:18;;5708:32;5749:33;5708:32;5749:33;:::i;:::-;5801:7;-1:-1:-1;5855:2:357;5840:18;;5827:32;;-1:-1:-1;5878:38:357;5911:3;5896:19;;5878:38;:::i;:::-;5868:48;;5967:3;5956:9;5952:19;5939:33;5995:18;5987:6;5984:30;5981:50;;;6027:1;6024;6017:12;7217:277;7284:6;7337:2;7325:9;7316:7;7312:23;7308:32;7305:52;;;7353:1;7350;7343:12;7305:52;7385:9;7379:16;7438:5;7431:13;7424:21;7417:5;7414:32;7404:60;;7460:1;7457;7450:12;7499:251;7569:6;7622:2;7610:9;7601:7;7597:23;7593:32;7590:52;;;7638:1;7635;7628:12;7590:52;7670:9;7664:16;7689:31;7714:5;7689:31;:::i;9778:325::-;9866:6;9861:3;9854:19;9918:6;9911:5;9904:4;9899:3;9895:14;9882:43;;9970:1;9963:4;9954:6;9949:3;9945:16;9941:27;9934:38;9836:3;10092:4;10022:66;10017:2;10009:6;10005:15;10001:88;9996:3;9992:98;9988:109;9981:116;;9778:325;;;;:::o;10108:435::-;10333:42;10325:6;10321:55;10310:9;10303:74;10413:6;10408:2;10397:9;10393:18;10386:34;10456:2;10451;10440:9;10436:18;10429:30;10284:4;10476:61;10533:2;10522:9;10518:18;10510:6;10502;10476:61;:::i;:::-;10468:69;10108:435;-1:-1:-1;;;;;;
38510108:435:357:o;11383:700::-;11643:4;11672:42;11753:2;11745:6;11741:15;11730:9;11723:34;11805:2;11797:6;11793:15;11788:2;11777:9;11773:18;11766:43;11857:2;11849:6;11845:15;11840:2;11829:9;11825:18;11818:43;11909:2;11901:6;11897:15;11892:2;11881:9;11877:18;11870:43;;11950:6;11944:3;11933:9;11929:19;11922:35;11994:3;11988;11977:9;11973:19;11966:32;12015:62;12072:3;12061:9;12057:19;12049:6;12041;12015:62;:::i;:::-;12007:70;11383:700;-1:-1:-1;;;;;;;;;11383:700:357:o;12088:424::-;12301:42;12293:6;12289:55;12278:9;12271:74;12381:2;12376;12365:9;12361:18;12354:30;12252:4;12401:45;12442:2;12431:9;12427:18;12419:6;12401:45;:::i;:::-;12393:53;;12494:10;12486:6;12482:23;12477:2;12466:9;12462:18;12455:51;12088:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","deposits(address,address,uint256)":"5d93a3fc","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address,address)":"485cc955","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","superchainConfig()":"35e80ab3","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenId\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"ERC721BridgeFinalized\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenId\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"ERC721BridgeInitiated\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"uint8\\",\\"name\\":\\"version\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"Initialized\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"MESSENGER\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"OTHER_BRIDGE\\",\\"outputs\\":[{\\"internalType\\":\\"contract StandardBridge\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"bridgeERC721\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}
385],\\"name\\":\\"bridgeERC721To\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"deposits\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_from\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"finalizeBridgeERC721\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"_messenger\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"contract SuperchainConfig\\",\\"name\\":\\"_superchainConfig\\",\\"type\\":\\"address\\"}],\\"name\\":\\"initialize\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"messenger\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"otherBridge\\",\\"outputs\\":[{\\"internalType\\":\\"contract StandardBridge\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"paused\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"superchainConfig\\",\\"outputs\\":[{\\"internalType\\":\\"contract SuperchainConfig\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"kind\\":\\"dev\\",\\"methods\\":{\\"MESSENGER()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Messenger contract on this domain.\\"}},\\"OTHER_BRIDGE()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Contract of the bridge on the other network.\\"}},\\"bridgeERC721(address,address,uint256,uint32,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_localToken\\":\\"Address of the ERC721 on this domain.\\",\\"_minGasLimit\\":\\"Minimum gas limit for the bridge message on the other domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 on the remote domain.\\",\\"_tokenId\\":\\"Token ID to bridge.\\"}},\\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_localToken\\":\\"Address of the ERC721 on this domain.\\",\\"_minGasLimit\\":\\"Minimum gas limit for the bridge message on the other domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 on the remote domain.\\",\\"_to\\":\\"Address to receive the token on the other domain.\\",\\"_tokenId\\":\\"Token ID to bridge.\\"}},\\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_from\\":\\"Address that triggered the bridge on the other domain.\\",\\"_localToken\\":\\"Address of the ERC721 token on this domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 token on the other domain.\\",\\"_to\\":\\"Address to receive the token on this domain.\\",\\"_tokenId\\":\\"ID of the token being deposited.\\"}},\\"initialize(address,address)\\":{\\"params\\":{\\"_messenger\\":\\"Contract of the CrossDomainMessenger on this network.\\",\\"_superchainConfig\\":\\"Contract of the SuperchainConfig contract on this network.\\"}},\\"paused()\\":{\\"returns\\":{\\"_0\\":\\"Whether or not the contract is paused.\\"}}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"2.1.0\\"}}
385,\\"title\\":\\"L1ERC721Bridge\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Emitted when an ERC721 bridge from the other network is finalized.\\"},\\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Emitted when an ERC721 bridge to the other network is initiated.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"MESSENGER()\\":{\\"notice\\":\\"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\\"},\\"OTHER_BRIDGE()\\":{\\"notice\\":\\"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\\"},\\"bridgeERC721(address,address,uint256,uint32,bytes)\\":{\\"notice\\":\\"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\\"},\\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\\":{\\"notice\\":\\"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\\"},\\"constructor\\":{\\"notice\\":\\"Constructs the L1ERC721Bridge contract.\\"},\\"deposits(address,address,uint256)\\":{\\"notice\\":\\"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token.\\"},\\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain.\\"},\\"initialize(address,address)\\":{\\"notice\\":\\"Initializes the contract.\\"},\\"messenger()\\":{\\"notice\\":\\"Messenger contract on this domain.\\"},\\"otherBridge()\\":{\\"notice\\":\\"Contract of the bridge on the other network.\\"},\\"paused()\\":{\\"notice\\":\\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\\"},\\"superchainConfig()\\":{\\"notice\\":\\"Address of the SuperchainConfig contract.\\"},\\"version()\\":{\\"notice\\":\\"Semantic version.\\"}},\\"notice\\":\\"The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as an escrow for ERC721 tokens deposited into L2.\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L1/L1ERC721Bridge.sol\\":\\"L1ERC721Bridge\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\\",\\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\\":{\\"keccak256\\":\\"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\\",\\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\\"]},\\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\\",\\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\\":{\\"keccak256\\":\\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\\",\\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\\":{\\"keccak256\\":\\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\\",\\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\\":{\\"keccak256\\":\\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\\",\\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\\":{\\"keccak256\\":\\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\\",\\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\\":{\\"keccak256\\":\\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\\",\\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\\":{\\"keccak256\\":\\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\\",\\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\":{\\"keccak256\\":\\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\\",\\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\":{\\"keccak256\\":\\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\\",\\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Context.sol\\":{\\"keccak256\\":\\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\\",\\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\\":{\\"keccak256\\":\\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\\",\\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\\":{\\"keccak256\\":\\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\\",\\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\\":{\\"keccak256\\":\\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\\",\\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPe
385C\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\\":{\\"keccak256\\":\\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\\",\\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\\"]},\\"lib/solmate/src/utils/FixedPointMathLib.sol\\":{\\"keccak256\\":\\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\\",\\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\\"]},\\"src/L1/L1ERC721Bridge.sol\\":{\\"keccak256\\":\\"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db\\",\\"dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK\\"]},\\"src/L1/ResourceMetering.sol\\":{\\"keccak256\\":\\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\\",\\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\\"]},\\"src/L1/SuperchainConfig.sol\\":{\\"keccak256\\":\\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\\",\\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\\"]},\\"src/L2/L2ERC721Bridge.sol\\":{\\"keccak256\\":\\"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f\\",\\"dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat\\"]},\\"src/libraries/Arithmetic.sol\\":{\\"keccak256\\":\\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\\",\\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\\"]},\\"src/libraries/Burn.sol\\":{\\"keccak256\\":\\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\\",\\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\\"]},\\"src/libraries/Constants.sol\\":{\\"keccak256\\":\\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\\",\\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\\"]},\\"src/libraries/Encoding.sol\\":{\\"keccak256\\":\\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\\",\\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\\"]},\\"src/libraries/Hashing.sol\\":{\\"keccak256\\":\\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\\",\\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\\"]},\\"src/libraries/Predeploys.sol\\":{\\"keccak256\\":\\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\\",\\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\\"]},\\"src/libraries/SafeCall.sol\\":{\\"keccak256\\":\\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\\",\\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\\"]},\\"src/libraries/Storage.sol\\":{\\"keccak256\\":\\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\\",\\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\\"]},\\"src/libraries/Types.sol\\":{\\"keccak256\\":\\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\\",\\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\\"]},\\"src/libraries/rlp/RLPWriter.sol\\":{\\"keccak256\\":\\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0
38570f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\\",\\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\\"]},\\"src/universal/CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\\",\\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\\"]},\\"src/universal/ERC721Bridge.sol\\":{\\"keccak256\\":\\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\\",\\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\\"]},\\"src/universal/IOptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\\",\\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\\"]},\\"src/universal/IOptimismMintableERC721.sol\\":{\\"keccak256\\":\\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\\",\\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/universal/OptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f
3851ceef90c5cd3a3a7\\",\\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\\"]},\\"src/universal/StandardBridge.sol\\":{\\"keccak256\\":\\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\\",\\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"deposits","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[{"internalType":"contract CrossDomainMessenger","name":"_messenger","type":"address"},{"internalType":"contract SuperchainConfig","name":"_superchainConfig","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]}
385,{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"superchainConfig","outputs":[{"internalType":"contract SuperchainConfig","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address,address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L1/L1ERC721Bridge.sol":"L1ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPe
385C"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1ERC721Bridge.sol":{"keccak256":"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd","urls":["bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db","dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L2/L2ERC721Bridge.sol":{"keccak256":"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9","urls":["bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f","dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://0
38570f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f
3851ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":108906,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":108910,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108914,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)111675"},{"astId":108919,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"},{"astId":85179,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"deposits","offset":0,"slot":"49","type":"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))"},{"astId":85183,"contract":"src/L1/L1ERC721Bridge.sol:L1ERC721Bridge","label":"superchainConfig","offset":0,"slot":"50","type":"t_contract(SuperchainConfig)88793"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_contract(SuperchainConfig)88793":{"encoding":"inplace","label":"contract SuperchainConfig","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_mapping(t_uint256,t_bool)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => mapping(uint256 => bool)))","numberOfBytes":"32","value":"t_mapping(t_address,t_mapping(t_uint256,t_bool))"},"t_mapping(t_address,t_mapping(t_uint256,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => bool))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_bool)"},"t_mapping(t_uint256,t_bool)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L1ERC721Bridge contract."},"deposits(address,address,uint256)":{"notice":"Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token by ID was deposited for a given L2 token."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address,address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"superchainConfig()":{"notice":"Address of the SuperchainConfig contract."},"version()":{"notice":"Semantic version."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}}
385,"notice":"The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as an escrow for ERC721 tokens deposited into L2."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L2. Data supplied here will not be used to execute any code on L2 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address,address)":{"params":{"_messenger":"Contract of the CrossDomainMessenger on this network.","_superchainConfig":"Contract of the SuperchainConfig contract on this network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L1ERC721Bridge"},"ast":{"absolutePath":"src/L1/L1ERC721Bridge.sol","id":85419,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ERC721Bridge":[109118],"IERC721":[52560],"ISemver":[109417],"L1ERC721Bridge":[85418],"L2ERC721Bridge":[90723],"Predeploys":[104124],"StandardBridge":[111675],"SuperchainConfig":[88793]},"nodeType":"SourceUnit","src":"32:5389:131","nodes":[{"id":85147,"nodeType":"PragmaDirective","src":"32:23:131","nodes":[],"literals":["solidity","0.8",".15"]},{"id":85149,"nodeType":"ImportDirective","src":"57:62:131","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":109119,"symbolAliases":[{"foreign":{"id":85148,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109118,"src":"66:12:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85151,"nodeType":"ImportDirective","src":"120:75:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":52561,"symbolAliases":[{"foreign":{"id":85150,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"129:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85153,"nodeType":"ImportDirective","src":"196:59:131","nodes":[],"absolutePath":"src/L2/L2ERC721Bridge.sol","file":"src/L2/L2ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":90724,"symbolAliases":[{"foreign":{"id":85152,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90723,"src":"205:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85155,"nodeType":"ImportDirective","src":"256:52:131","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":85154,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"265:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""}
385,{"id":85157,"nodeType":"ImportDirective","src":"309:58:131","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":85156,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"318:10:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85159,"nodeType":"ImportDirective","src":"368:78:131","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":85158,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"377:20:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85161,"nodeType":"ImportDirective","src":"447:66:131","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":85160,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"456:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85163,"nodeType":"ImportDirective","src":"514:56:131","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":85162,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"523:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85165,"nodeType":"ImportDirective","src":"571:63:131","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":85419,"sourceUnit":88794,"symbolAliases":[{"foreign":{"id":85164,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"580:16:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":85418,"nodeType":"ContractDefinition","src":"922:4498:131","nodes":[{"id":85179,"nodeType":"VariableDeclaration","src":"1134:80:131","nodes":[],"constant":false,"documentation":{"id":85171,"nodeType":"StructuredDocumentation","src":"977:152:131","text":"@notice Mapping of L1 token to L2 token to ID to boolean, indicating if the given L1 token\\n by ID was deposited for a given L2 token."},"functionSelector":"5d93a3fc","mutability":"mutable","name":"deposits","nameLocation":"1206:8:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"typeName":{"id":85178,"keyType":{"id":85172,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1134:64:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"},"valueType":{"id":85177,"keyType":{"id":85173,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1153:44:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueType":{"id":85176,"keyType":{"id":85174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1180:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1172:24:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueType":{"id":85175,"name":"bool","nodeType":"ElementaryTypeName","src":"1191:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}}},"visibility":"public"},{"id":85183,"nodeType":"VariableDeclaration","src":"1279:40:131","nodes":[],"constant":false,"documentation":{"id":85180,"nodeType":"StructuredDocumentation","src":"1221:53:131","text":"@notice Address of the SuperchainConfig contract."},"functionSelector":"35e80ab3","mutability":"mutable","name":"superchainConfig","nameLocation":"1303:16:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85182,"nodeType":"UserDefinedTypeName","pathNode":{"id":85181,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1279:16:131"},"referencedDeclaration":88793,"src":"1279:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"public"},{"id":85187,"nodeType":"VariableDeclaration","src":"1389:40:131","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":85184,"nodeType":"StructuredDocumentation","src":"1326:58:131","text":"@notice Semantic version.\\n @custom:semver 2.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1412:7:131","scope":85418,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":85185,"name":"string","nodeType":"ElementaryTypeName","src":"1389:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e312e30","id":85186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1422:7:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bb4aeded157fe72f9bc813a9dc1bd69961c5b5f35dafc6dc601ab742eacac6b","typeString":"literal_string \\"2.1.0\\""},"value":"2.1.0"},"visibility":"public"},{"id":85209,"nodeType":"FunctionDefinition","src":"1492:155:131","nodes":[],"body":{"id":85208,"nodeType":"Block","src":"1521:126:131","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":85197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1577:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85195,"name":"address","nodeType":"ElementaryTypeName","src":"1577:7:131","typeDescriptions":{}}},"id":85198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1577:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85194,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1556:20:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":85199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1556:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"hexValue":"30","id":85203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1634:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1626:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85201,"name":"address","nodeType":"ElementaryTypeName","src":"1626:7:131","typeDescriptions":{}}},"id":85204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85200,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88793,"src":"1609:16:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SuperchainConfig_$88793_$","typeString":"type(contract SuperchainConfig)"}},"id":85205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1609:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}],"id":85193,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85237,"src":"1531:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_SuperchainConfig_$88793_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract SuperchainConfig)"}},"id":85206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_superchainConfig"],"nodeType":"FunctionCall","src":"1531:109:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85207,"nodeType":"ExpressionStatement","src":"1531:109:131"}]},"documentation":{"id":85188,"nodeType":"StructuredDocumentation","src":"1436:51:131","text":"@notice Constructs the L1ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":85191,"kind":"baseConstructorSpecifier","modifierName":{"id":85190,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1506:12:131"},"nodeType":"ModifierInvocation","src":"1506:14:131"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":85189,"nodeType":"ParameterList","parameters":[],"src":"1503:2:131"},"returnParameters":{"id":85192,"nodeType":"ParameterList","parameters":[],"src":"1521:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85237,"nodeType":"FunctionDefinition","src":"1869:318:131","nodes":[],"body":{"id":85236,"nodeType":"Block","src":"1977:210:131","nodes":[],"statements":[{"expression":{"id":85223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":85221,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85183,"src":"1987:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":85222,"name":"_superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85216,"src":"2006:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"src":"1987:36:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85224,"nodeType":"ExpressionStatement","src":"1987:36:131"},{"expression":{"arguments":[{"id":85226,"name":"_messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85213,"src":"2079:10:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"arguments":[{"expression":{"id":85230,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2140:10:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":85231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_ERC721_BRIDGE","nodeType":"MemberAccess","referencedDeclaration":104012,"src":"2140:27:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2132:8:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":85228,"name":"address","nodeType":"ElementaryTypeName","src":"2132:8:131","stateMutability":"payable","typeDescriptions":{}}},"id":85232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2132:36:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":85227,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"2117:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":85233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2117:52:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85225,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108995,"src":"2033:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":85234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"2033:147:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85235,"nodeType":"ExpressionStatement","src":"2033:147:131"}]},"documentation":{"id":85210,"nodeType":"StructuredDocumentation","src":"1653:211:131","text":"@notice Initializes the contract.\\n @param _messenger Contract of the CrossDomainMessenger on this network.\\n @param _superchainConfig Contract of the SuperchainConfig contract on this network."},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":85219,"kind":"modifierInvocation","modifierName":{"id":85218,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"1965:11:131"},"nodeType":"ModifierInvocation","src":"1965:11:131"}],"name":"initialize","nameLocation":"1878:10:131","parameters":{"id":85217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85213,"mutability":"mutable","name":"_messenger","nameLocation":"1910:10:131","nodeType":"VariableDeclaration","scope":85237,"src":"1889:31:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":85212,"nodeType":"UserDefinedTypeName","pathNode":{"id":85211,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1889:20:131"},"referencedDeclaration":108888,"src":"1889:20:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"},{"constant":false,"id":85216,"mutability":"mutable","name":"_superchainConfig","nameLocation":"1939:17:131","nodeType":"VariableDeclaration","scope":85237,"src":"1922:34:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"},"typeName":{"id":85215,"nodeType":"UserDefinedTypeName","pathNode":{"id":85214,"name":"SuperchainConfig","nodeType":"IdentifierPath","referencedDeclaration":88793,"src":"1922:16:131"},"referencedDeclaration":88793,"src":"1922:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"visibility":"internal"}],"src":"1888:69:131"},"returnParameters":{"id":85220,"nodeType":"ParameterList","parameters":[],"src":"1977:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":85249,"nodeType":"FunctionDefinition","src":"2226:103:131","nodes":[],"body":{"id":85248,"nodeType":"Block","src":"2280:49:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":85244,"name":"superchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85183,"src":"2297:16:131","typeDescriptions":{"typeIdentifier":"t_contract$_SuperchainConfig_$88793","typeString":"contract SuperchainConfig"}},"id":85245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":88707,"src":"2297:23:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":85246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2297:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":85243,"id":85247,"nodeType":"Return","src":"2290:32:131"}]},"baseFunctions":[109024],"documentation":{"id":85238,"nodeType":"StructuredDocumentation","src":"2193:28:131","text":"@inheritdoc ERC721Bridge"},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"2235:6:131","overrides":{"id":85240,"nodeType":"OverrideSpecifier","overrides":[],"src":"2256:8:131"},"parameters":{"id":85239,"nodeType":"ParameterList","parameters":[],"src":"2241:2:131"}
385,"returnParameters":{"id":85243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":85249,"src":"2274:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":85241,"name":"bool","nodeType":"ElementaryTypeName","src":"2274:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2273:6:131"},"scope":85418,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":85330,"nodeType":"FunctionDefinition","src":"3096:1207:131","nodes":[],"body":{"id":85329,"nodeType":"Block","src":"3341:962:131","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":85268,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[85249],"referencedDeclaration":85249,"src":"3359:6:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":85269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3359:8:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":85270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3371:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3359:17:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20706175736564","id":85272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3378:24:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \\"L1ERC721Bridge: paused\\""},"value":"L1ERC721Bridge: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0547274687a86ca0a34590eabb05ad0a44aae82bbc5d30b7acda91288e349519","typeString":"literal_string \\"L1ERC721Bridge: paused\\""}],"id":85267,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3351:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3351:52:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85274,"nodeType":"ExpressionStatement","src":"3351:52:131"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85276,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3421:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":85279,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3444:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3436:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85277,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:131","typeDescriptions":{}}},"id":85280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3421:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":85282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3451:44:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \\"L1ERC721Bridge: local token cannot be self\\""},"value":"L1ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_218d51cceb2e9e86022eea81b17e23e1e964bba3aa5268e422fe8d05e54eb832","typeString":"literal_string \\"L1ERC721Bridge: local token cannot be self\\""}],"id":85275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3413:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3413:83:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85284,"nodeType":"ExpressionStatement","src":"3413:83:131"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":85294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85286,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"3620:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85288,"indexExpression":{"id":85287,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3629:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":85290,"indexExpression":{"id":85289,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"3642:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85292,"indexExpression":{"id":85291,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"3656:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3620:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":85293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3669:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3620:53:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a20546f6b656e204944206973206e6f7420657363726f77656420696e20746865204c3120427269646765","id":85295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3687:59:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \\"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\\""},"value":"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bee7d98e66133cf40de344b202cc1df78b20213eed80aaf4210604281fdaa6af","typeString":"literal_string \\"L1ERC721Bridge: Token ID is not escrowed in the L1 Bridge\\""}],"id":85285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3599:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3599:157:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85297,"nodeType":"ExpressionStatement","src":"3599:157:131"},{"expression":{"id":85306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85298,"
385name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"3878:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85302,"indexExpression":{"id":85299,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"3887:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":85303,"indexExpression":{"id":85300,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"3900:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3878:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85304,"indexExpression":{"id":85301,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"3914:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3878:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":85305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3926:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3878:53:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85307,"nodeType":"ExpressionStatement","src":"3878:53:131"},{"expression":{"arguments":[{"arguments":[{"id":85314,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4107:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4099:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85312,"name":"address","nodeType":"ElementaryTypeName","src":"4099:7:131","typeDescriptions":{}}},"id":85315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4099:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85316,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85258,"src":"4118:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85317,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"4132:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":85309,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"4061:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85308,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"4053:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$52560_$","typeString":"type(contract IERC721)"}},"id":85310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4053:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$52560","typeString":"contract IERC721"}},"id":85311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":52515,"src":"4053:37:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":85318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"4053:90:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85319,"nodeType":"ExpressionStatement","src":"4053:90:131"},{"eventCall":{"arguments":[{"id":85321,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85252,"src":"4236:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85322,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85254,"src":"4249:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85323,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85256,"src":"4263:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85324,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85258,"src":"4270:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85325,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85260,"src":"4275:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85326,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85262,"src":"4285:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85320,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108949,"src":"4214:21:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85328,"nodeType":"EmitStatement","src":"4209:87:131"}]},"documentation":{"id":85250,"nodeType":"StructuredDocumentation","src":"2335:756:131","text":"@notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the\\n recipient on this domain.\\n @param _localToken Address of the ERC721 token on this domain.\\n @param _remoteToken Address of the ERC721 token on the other domain.\\n @param _from Address that triggered the bridge on the other domain.\\n @param _to Address to receive the token on this domain.\\n @param _tokenId ID of the token being deposited.\\n @param _extraData Optional data to forward to L2.\\n Data supplied here will not be used to execute any code on L2 and is\\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":85265,"kind":"modifierInvocation","modifierName":{"id":85264,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":108974,"src":"3321:15:131"},"nodeType":"ModifierInvocation","src":"3321:15:131"}],"name":"finalizeBridgeERC721","nameLocation":"3105:20:131","parameters":{"id":85263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85252,"mutability":"mutable","name":"_localToken","nameLocation":"3143:11:131","nodeType":"VariableDeclaration","scope":85330,"src":"3135:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85251,"name":"address","nodeType":"ElementaryTypeName","src":"3135:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85254,"mutability":"mutable","name":"_remoteToken","nameLocation":"3172:12:131","nodeType":"VariableDeclaration","scope":85330,"src":"3164:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85253,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85256,"mutability":"mutable","name":"_from","nameLocation":"3202:5:131","nodeType":"VariableDeclaration","scope":85330,"src":"3194:13
385:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85255,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85258,"mutability":"mutable","name":"_to","nameLocation":"3225:3:131","nodeType":"VariableDeclaration","scope":85330,"src":"3217:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85257,"name":"address","nodeType":"ElementaryTypeName","src":"3217:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85260,"mutability":"mutable","name":"_tokenId","nameLocation":"3246:8:131","nodeType":"VariableDeclaration","scope":85330,"src":"3238:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3238:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85262,"mutability":"mutable","name":"_extraData","nameLocation":"3279:10:131","nodeType":"VariableDeclaration","scope":85330,"src":"3264:25:131","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85261,"name":"bytes","nodeType":"ElementaryTypeName","src":"3264:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3125:170:131"},"returnParameters":{"id":85266,"nodeType":"ParameterList","parameters":[],"src":"3341:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":85417,"nodeType":"FunctionDefinition","src":"4342:1076:131","nodes":[],"body":{"id":85416,"nodeType":"Block","src":"4610:808:131","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":85355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":85350,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"4628:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":85353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4652:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":85352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4644:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85351,"name":"address","nodeType":"ElementaryTypeName","src":"4644:7:131","typeDescriptions":{}}},"id":85354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4644:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:26:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c314552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":85356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4656:51:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \\"L1ERC721Bridge: remote token cannot be address(0)\\""},"value":"L1ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14e51418e54e820a40fc2643b1167465f7abe28f86e3d4e777c562f03e420dd1","typeString":"literal_string \\"L1ERC721Bridge: remote token cannot be address(0)\\""}],"id":85349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4620:7:131","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":85357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4620:88:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85358,"nodeType":"ExpressionStatement","src":"4620:88:131"},{"assignments":[85360],"declarations":[{"constant":false,"id":85360,"mutability":"mutable","name":"message","nameLocation":"4811:7:131","nodeType":"VariableDeclaration","scope":85416,"src":"4798:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":85359,"name":"bytes","nodeType":"ElementaryTypeName","src":"4798:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":85373,"initialValue":{"arguments":[{"expression":{"expression":{"id":85363,"name":"L2ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90723,"src":"4857:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2ERC721Bridge_$90723_$","typeString":"type(contract L2ERC721Bridge)"}},"id":85364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":90622,"src":"4857:35:131","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L2ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":85365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"4857:44:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":85366,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"4903:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85367,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"4917:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85368,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"4930:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85369,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85339,"src":"4937:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85370,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"4942:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85371,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85345,"src":"4952:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":85361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4821:3:131","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":85362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4821:22:131","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":85372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4821:151:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4798:174:131"},{"expression":{"id":85382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"id":85374,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85179,"src":"5017:8:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$_$","typeString":"mapping(address => mapping(address => mapping(uint256 => bool)))"}},"id":85378,"indexExpression":{"id":85375,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5026:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}}
385,"id":85379,"indexExpression":{"id":85376,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"5039:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5017:35:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":85380,"indexExpression":{"id":85377,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5053:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5017:45:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":85381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5065:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5017:52:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":85383,"nodeType":"ExpressionStatement","src":"5017:52:131"},{"expression":{"arguments":[{"id":85388,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"5121:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":85391,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5140:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1ERC721Bridge_$85418","typeString":"contract L1ERC721Bridge"}],"id":85390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5132:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85389,"name":"address","nodeType":"ElementaryTypeName","src":"5132:7:131","typeDescriptions":{}}},"id":85392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5132:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85393,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5156:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":85385,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5087:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":85384,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52560,"src":"5079:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$52560_$","typeString":"type(contract IERC721)"}},"id":85386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5079:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$52560","typeString":"contract IERC721"}},"id":85387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":52525,"src":"5079:33:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":85394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["from","to","tokenId"],"nodeType":"FunctionCall","src":"5079:88:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85395,"nodeType":"ExpressionStatement","src":"5079:88:131"},{"expression":{"arguments":[{"arguments":[{"id":85401,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108914,"src":"5252:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":85400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5244:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":85399,"name":"address","nodeType":"ElementaryTypeName","src":"5244:7:131","typeDescriptions":{}}},"id":85402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5244:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85403,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85360,"src":"5276:7:131","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":85404,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85343,"src":"5299:12:131","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":85396,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108910,"src":"5211:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"id":85398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":108520,"src":"5211:21:131","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":85405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5211:103:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85406,"nodeType":"ExpressionStatement","src":"5211:103:131"},{"eventCall":{"arguments":[{"id":85408,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85333,"src":"5351:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85409,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85335,"src":"5364:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85410,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85337,"src":"5378:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85411,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85339,"src":"5385:3:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":85412,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85341,"src":"5390:8:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":85413,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85345,"src":"5400:10:131","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":85407,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108934,"src":"5329:21:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":85414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5329:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85415,"nodeType":"EmitStatement","src":"5324:87:131"}]},"baseFunctions":[109117],"documentation":{"id":85331,"nodeType":"StructuredDocumentation","src":"4309:28:131","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4351:21:131","overrides":{"id":85347,"nodeType":"OverrideSpecifier","overrides":[],"src":"4597:8:131"},"parameters":{"id":85346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":85333,"mutability":"mutable","name":"_localToken","nameLocation":"4390:11:131","nodeType":"VariableDeclaration","scope":85417,"src":"4382:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85332,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85335,"mutability":"mutable","name":"_remoteToken","nameLocation":"4419:12:131","nodeType":"VariableDeclaration","scope":85417,"src":"4411:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85334,"name":"address","nodeType":"ElementaryTypeName","src":"4411:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85337,"mutability":"mutable","name":"_from","nameLocation":"4449:5:131","nodeType":"VariableDeclaration","scope":85417,"src":"4441:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}
385,"typeName":{"id":85336,"name":"address","nodeType":"ElementaryTypeName","src":"4441:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85339,"mutability":"mutable","name":"_to","nameLocation":"4472:3:131","nodeType":"VariableDeclaration","scope":85417,"src":"4464:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85338,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":85341,"mutability":"mutable","name":"_tokenId","nameLocation":"4493:8:131","nodeType":"VariableDeclaration","scope":85417,"src":"4485:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":85340,"name":"uint256","nodeType":"ElementaryTypeName","src":"4485:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":85343,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4518:12:131","nodeType":"VariableDeclaration","scope":85417,"src":"4511:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":85342,"name":"uint32","nodeType":"ElementaryTypeName","src":"4511:6:131","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":85345,"mutability":"mutable","name":"_extraData","nameLocation":"4555:10:131","nodeType":"VariableDeclaration","scope":85417,"src":"4540:25:131","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":85344,"name":"bytes","nodeType":"ElementaryTypeName","src":"4540:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4372:199:131"},"returnParameters":{"id":85348,"nodeType":"ParameterList","parameters":[],"src":"4610:0:131"},"scope":85418,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":85167,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"949:12:131"},"id":85168,"nodeType":"InheritanceSpecifier","src":"949:12:131"},{"baseName":{"id":85169,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"963:7:131"},"id":85170,"nodeType":"InheritanceSpecifier","src":"963:7:131"}],"canonicalName":"L1ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":85166,"nodeType":"StructuredDocumentation","src":"636:286:131","text":"@title L1ERC721Bridge\\n @notice The L1 ERC721 bridge is a contract which works together with the L2 ERC721 bridge to\\n make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\\n acts as an escrow for ERC721 tokens deposited into L2."},"fullyImplemented":true,"linearizedBaseContracts":[85418,109417,109118,49678],"name":"L1ERC721Bridge","nameLocation":"931:14:131","scope":85419,"usedErrors":[]}],"license":"MIT"},"id":131}')},1343:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"OTHER_MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CALL_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_CONSTANT_OVERHEAD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_GAS_CHECK_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"RELAY_RESERVED_GAS","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"baseGas","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"failedMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_l1CrossDomainMessenger","type":"address","internalType":"contract CrossDomainMessenger"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1CrossDomainMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"otherMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"successfulMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"FailedRelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"RelayedMessage","inputs":[{"name":"msgHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"SentMessage","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"messageNonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SentMessageExtension1","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000239565b600054600160a81b900460ff16158080156200004d57506000546001600160a01b90910460ff16105b806200008457506200006a306200017360201b620013071760201c565b158015620000845750600054600160a01b900460ff166001145b620000ed5760405162461bcd60e51b8152
38560206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b17905580156200011b576000805460ff60a81b1916600160a81b1790555b620001268262000182565b80156200016f576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054600160a81b900460ff16620001f15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000e4565b60cc546001600160a01b0316620002175760cc80546001600160a01b03191661dead1790555b60cf80546001600160a01b0319166001600160a01b0392909216919091179055565b611c8280620002496000396000f3fe60806040526004361061016a5760003560e01c806383a74074116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b146103c7578063db505d80146103da578063ecc704281461040757600080fd5b8063b1b1b20914610357578063b28ade2514610387578063c4d66de8146103a757600080fd5b80639fce812c116100b05780639fce812c146102fc578063a4e7f8bd14610327578063a7119869146102fc57600080fd5b806383a74074146102e55780638cbeeef21461020957600080fd5b80634c1d6a69116101225780635644cfdf116101075780635644cfdf146102755780635c975abb1461028b5780636e296e45146102ab57600080fd5b80634c1d6a691461020957806354fd4d501461021f57600080fd5b80632828d7e8116101535780632828d7e8146101b75780633dbb202b146101cc5780633f827a5a146101e157600080fd5b8063028f85f71461016f5780630c568498146101a2575b600080fd5b34801561017b57600080fd5b50610184601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101ae57600080fd5b50610184603f81565b3480156101c357600080fd5b50610184604081565b6101df6101da36600461177b565b61046c565b005b3480156101ed57600080fd5b506101f6600181565b60405161ffff9091168152602001610199565b34801561021557600080fd5b50610184619c4081565b34801561022b57600080fd5b506102686040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b604051610199919061184d565b34801561028157600080fd5b5061018461138881565b34801561029757600080fd5b5060005b6040519015158152602001610199565b3480156102b757600080fd5b506102c06106c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610199565b3480156102f157600080fd5b5061018462030d4081565b34801561030857600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102c0565b34801561033357600080fd5b5061029b610342366004611867565b60ce6020526000908152604090205460ff1681565b34801561036357600080fd5b5061029b610372366004611867565b60cb6020526000908152604090205460ff1681565b34801561039357600080fd5b506101846103a2366004611880565b6107b5565b3480156103b357600080fd5b506101df6103c23660046118d4565b610823565b6101df6103d53660046118f1565b610a22565b3480156103e657600080fd5b5060cf546102c09073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5061045e60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b604051908152602001610199565b60cf5461059e9073ffffffffffffffffffffffffffffffffffffffff166104948585856107b5565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061050060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161051c97969594939291906119c0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611323565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561062360cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610635959493929190611a1f565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f6107d1604063ffffffff8816611a9c565b
3856107db9190611acc565b6107e6601088611a9c565b6107f39062030d40611b1a565b6107fd9190611b1a565b6108079190611b1a565b6108119190611b1a565b61081b9190611b1a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff161580801561086e575060005460017401000000000000000000000000000000000000000090910460ff16105b806108a05750303b1580156108a0575060005474010000000000000000000000000000000000000000900460ff166001145b61092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161078f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156109b257600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b6109bb826113b1565b8015610a1e57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f
3856e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161078f565b8061ffff16600003610bd2576000610b2e878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506114ed915050565b600081815260cb602052604090205490915060ff1615610bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161078f565b505b6000610c18898989898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150c92505050565b9050610c6160cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610c9957853414610c7557610c75611b46565b600081815260ce602052604090205460ff1615610c9457610c94611b46565b610deb565b3415610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161078f565b600081815260ce602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161078f565b610df48761152f565b15610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161078f565b600081815260cb602052604090205460ff1615610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161078f565b610f6785610f58611388619c40611b1a565b67ffffffffffffffff16611584565b1580610f8d575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b156110a657600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b50506112fe565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061113788619c405a6110fa9190611b75565b8988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115a292505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156111ed57600082815260cb602052604090205460ff161561118a5761118a611b46565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26112fa565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061137990889088908790600401611b8c565b6000604051808303818588803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff1661145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161078f565b60cc5473ffffffffffffffffffffffffffffffffffffffff166114a65760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006114fb858585856115bc565b805190602001209050949350505050565b600061151c878787878787611655565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff821630148061157e575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b6060848484846040516024016115d59493929190611bd4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161167296959493929190611c1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461171657600080fd5b50565b60008083601f84011261172b57600080fd5b50813567ffffffffffffffff81111561174357600080fd5b60208301915083602082850101111561175b57600080fd5b9250929050565b803563ffffffff8116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b843561179c816116f4565b9350602085013567ffffffffffffffff8111156117b857600080fd5b6117c487828801611719565b90945092506117d7905060408601611762565b905092959194509250565b6000815180845260005b81811015611808576020818501810151868301820152016117ec565b8181111561181a576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061186060208301846117e2565b9392505050565b60006020828403121561187957600080fd5b5035919050565b60008060006040848603121561189557600080fd5b833567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611719565b90945092506118cb905060208501611762565b90509250925092565b6000602082840312156118e657600080fd5b8135611860816116f4565b600080600080600080600060c0888a03121561190c57600080fd5b87359650602088013561191e816116f4565b9550604088013561192e816116f4565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561195857600080fd5b6119648a828b01611719565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611a1260c083018486611977565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611a4f608083018688611977565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611ac357611ac3611a6d565b02949350505050565b600067ffffffffffffffff80841680611b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611b3d
38557611b3d611a6d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611b8757611b87611a6d565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000611bcb60608301846117e2565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611c0d60808301856117e2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611c6960c08301846117e2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"812:1752:147:-:0;;;1023:127;;;;;;;;;-1:-1:-1;1070:73:147::1;1137:1;1070:10;:73::i;:::-;812:1752:::0;;1278:175;3111:19:27;3134:13;-1:-1:-1;;;3134:13:27;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;-1:-1:-1;;;3197:12:27;;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:27;;-1:-1:-1;;;3268:12:27;;;;3284:1;3268:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:27;;216:2:357;3157:201:27;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3157:201:27;;;;;;;;;3368:12;:16;;-1:-1:-1;;;;3368:16:27;-1:-1:-1;;;3368:16:27;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;;;3428:20:27;-1:-1:-1;;;3428:20:27;;;3394:65;1373:73:147::1;1420:23:::0;1373:27:::1;:73::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;;;3513:21:27;;;3553:14;;-1:-1:-1;581:36:357;;3553:14:27;;569:2:357;554:18;3553:14:27;;;;;;;3479:99;3101:483;1278:175:147;:::o;1186:320:33:-;-1:-1:-1;;;;;1476:19:33;;:23;;;1186:320::o;18503:636:223:-;4910:13:27;;-1:-1:-1;;;4910:13:27;;;;4902:69;;;;-1:-1:-1;;;4902:69:27;;830:2:357;4902:69:27;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4902:69:27;628:407:357;4902:69:27;18988:16:223::1;::::0;-1:-1:-1;;;;;18988:16:223::1;18984:107;;19034:16;:46:::0;;-1:-1:-1;;;;;;19034:46:223::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;-1:-1:-1;;;;;;19100:32:223::1;-1:-1:-1::0;;;;;19100:32:223;;;::::1;::::0;;;::::1;::::0;;18503:636::o;628:407:357:-;812:1752:147;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061016a5760003560e01c806383a74074116100cb578063b1b1b2091161007f578063d764ad0b11610059578063d764ad0b146103c7578063db505d80146103da578063ecc704281461040757600080fd5b8063b1b1b20914610357578063b28ade2514610387578063c4d66de8146103a757600080fd5b80639fce812c116100b05780639fce812c146102fc578063a4e7f8bd14610327578063a7119869146102fc57600080fd5b806383a74074146102e55780638cbeeef21461020957600080fd5b80634c1d6a69116101225780635644cfdf116101075780635644cfdf146102755780635c975abb1461028b5780636e296e45146102ab57600080fd5b80634c1d6a691461020957806354fd4d501461021f57600080fd5b80632828d7e8116101535780632828d7e8146101b75780633dbb202b146101cc5780633f827a5a146101e157600080fd5b8063028f85f71461016f5780630c568498146101a2575b600080fd5b34801561017b57600080fd5b50610184601081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b3480156101ae57600080fd5b50610184603f81565b3480156101c357600080fd5b50610184604081565b6101df6101da36600461177b565b61046c565b005b3480156101ed57600080fd5b506101f6600181565b60405161ffff9091168152602001610199565b34801561021557600080fd5b50610184619c4081565b34801561022b57600080fd5b506102686040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b604051610199919061184d565b34801561028157600080fd5b5061018461138881565b34801561029757600080fd5b5060005b6040519015158152602001610199565b3480156102b757600080fd5b506102c06106c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610199565b3480156102f157600080fd5b5061018462030d4081565b34801561030857600080fd5b5060cf5473ffffffffffffffffffffffffffffffffffffffff166102c0565b34801561033357600080fd5b5061029b610342366004611867565b60ce6020526000908152604090205460ff1681565b34801561036357600080fd5b5061029b610372366004611867565b60cb6020526000908152604090205460ff1681565b34801561039357600080fd5b506101846103a2366004611880565b6107b5565b3480156103b357600080fd5b506101df6103c23660046118d4565b610823565b6101df6103d53660046118f1565b
385610a22565b3480156103e657600080fd5b5060cf546102c09073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5061045e60cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b604051908152602001610199565b60cf5461059e9073ffffffffffffffffffffffffffffffffffffffff166104948585856107b5565b347fd764ad0b0000000000000000000000000000000000000000000000000000000061050060cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b338a34898c8c60405160240161051c97969594939291906119c0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611323565b8373ffffffffffffffffffffffffffffffffffffffff167fcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a33858561062360cd547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b86604051610635959493929190611a1f565b60405180910390a260405134815233907f8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d5469060200160405180910390a2505060cd80547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808216600101167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b60cc5460009073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff215301610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d657360448201527f7361676553656e646572206973206e6f7420736574000000000000000000000060648201526084015b60405180910390fd5b5060cc5473ffffffffffffffffffffffffffffffffffffffff1690565b6000611388619c4080603f6107d1604063ffffffff8816611a9c565b6107db9190611acc565b6107e6601088611a9c565b6107f39062030d40611b1a565b6107fd9190611b1a565b6108079190611b1a565b6108119190611b1a565b61081b9190611b1a565b949350505050565b6000547501000000000000000000000000000000000000000000900460ff161580801561086e575060005460017401000000000000000000000000000000000000000090910460ff16105b806108a05750303b1580156108a0575060005474010000000000000000000000000000000000000000900460ff166001145b61092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161078f565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905580156109b257600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff1675010000000000000000000000000000000000000000001790555b6109bb826113b1565b8015610a1e57600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60f087901c60028110610add576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f43726f7373446f6d61696e4d657373656e6765723a206f6e6c7920766572736960448201527f6f
3856e2030206f722031206d657373616765732061726520737570706f7274656460648201527f20617420746869732074696d6500000000000000000000000000000000000000608482015260a40161078f565b8061ffff16600003610bd2576000610b2e878986868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508f92506114ed915050565b600081815260cb602052604090205490915060ff1615610bd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f43726f7373446f6d61696e4d657373656e6765723a206c65676163792077697460448201527f6864726177616c20616c72656164792072656c61796564000000000000000000606482015260840161078f565b505b6000610c18898989898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061150c92505050565b9050610c6160cf54337fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef0173ffffffffffffffffffffffffffffffffffffffff90811691161490565b15610c9957853414610c7557610c75611b46565b600081815260ce602052604090205460ff1615610c9457610c94611b46565b610deb565b3415610d4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605060248201527f43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d75737460448201527f206265207a65726f20756e6c657373206d6573736167652069732066726f6d2060648201527f612073797374656d206164647265737300000000000000000000000000000000608482015260a40161078f565b600081815260ce602052604090205460ff16610deb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520636160448201527f6e6e6f74206265207265706c6179656400000000000000000000000000000000606482015260840161078f565b610df48761152f565b15610ea7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e60448201527f64206d65737361676520746f20626c6f636b65642073797374656d206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a40161078f565b600081815260cb602052604090205460ff1615610f46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f43726f7373446f6d61696e4d657373656e6765723a206d65737361676520686160448201527f7320616c7265616479206265656e2072656c6179656400000000000000000000606482015260840161078f565b610f6785610f58611388619c40611b1a565b67ffffffffffffffff16611584565b1580610f8d575060cc5473ffffffffffffffffffffffffffffffffffffffff1661dead14155b156110a657600081815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555182917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff320161109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b50506112fe565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8a16179055600061113788619c405a6110fa9190611b75565b8988888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115a292505050565b60cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead179055905080156111ed57600082815260cb602052604090205460ff161561118a5761118a611b46565b600082815260cb602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a26112fa565b600082815260ce602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555183917f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f91a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff32016112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2060448201527f72656c6179206d65737361676500000000000000000000000000000000000000606482015260840161078f565b5050505b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b6040517fc2b3e5ac0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000169063c2b3e5ac90849061137990889088908790600401611b8c565b6000604051808303818588803b15801561139257600080fd5b505af11580156113a6573d6000803e3d6000fd5b505050505050505050565b6000547501000000000000000000000000000000000000000000900460ff1661145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161078f565b60cc5473ffffffffffffffffffffffffffffffffffffffff166114a65760cc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead1790555b60cf80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006114fb858585856115bc565b805190602001209050949350505050565b600061151c878787878787611655565b8051906020012090509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff821630148061157e575073ffffffffffffffffffffffffffffffffffffffff8216734200000000000000000000000000000000000016145b92915050565b600080603f83619c4001026040850201603f5a021015949350505050565b600080600080845160208601878a8af19695505050505050565b6060848484846040516024016115d59493929190611bd4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b606086868686868660405160240161167296959493929190611c1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461171657600080fd5b50565b60008083601f84011261172b57600080fd5b50813567ffffffffffffffff81111561174357600080fd5b60208301915083602082850101111561175b57600080fd5b9250929050565b803563ffffffff8116811461177657600080fd5b919050565b6000806000806060858703121561179157600080fd5b843561179c816116f4565b9350602085013567ffffffffffffffff8111156117b857600080fd5b6117c487828801611719565b90945092506117d7905060408601611762565b905092959194509250565b6000815180845260005b81811015611808576020818501810151868301820152016117ec565b8181111561181a576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061186060208301846117e2565b9392505050565b60006020828403121561187957600080fd5b5035919050565b60008060006040848603121561189557600080fd5b833567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611719565b90945092506118cb905060208501611762565b90509250925092565b6000602082840312156118e657600080fd5b8135611860816116f4565b600080600080600080600060c0888a03121561190c57600080fd5b87359650602088013561191e816116f4565b9550604088013561192e816116f4565b9450606088013593506080880135925060a088013567ffffffffffffffff81111561195857600080fd5b6119648a828b01611719565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b878152600073ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525085606083015263ffffffff8516608083015260c060a0830152611a1260c083018486611977565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff86168152608060208201526000611a4f608083018688611977565b905083604083015263ffffffff831660608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615611ac357611ac3611a6d565b02949350505050565b600067ffffffffffffffff80841680611b0e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910492915050565b600067ffffffffffffffff808316818516808303821115611b3d
38557611b3d611a6d565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b600082821015611b8757611b87611a6d565b500390565b73ffffffffffffffffffffffffffffffffffffffff8416815267ffffffffffffffff83166020820152606060408201526000611bcb60608301846117e2565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152611c0d60808301856117e2565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152611c6960c08301846117e2565b9897505050505050505056fea164736f6c634300080f000a","sourceMap":"812:1752:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4456:53:223;;;;;;;;;;;;4507:2;4456:53;;;;;188:18:357;176:31;;;158:50;;146:2;131:18;4456:53:223;;;;;;;;4301:64;;;;;;;;;;;;4363:2;4301:64;;4146:62;;;;;;;;;;;;4206:2;4146:62;;8628:995;;;;;;:::i;:::-;;:::i;:::-;;3879:42;;;;;;;;;;;;3920:1;3879:42;;;;;1693:6:357;1681:19;;;1663:38;;1651:2;1636:18;3879:42:223;1519:188:357;4597:51:223;;;;;;;;;;;;4642:6;4597:51;;912:40:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4943:53:223:-;;;;;;;;;;;;4991:5;4943:53;;21032:82;;;;;;;;;;-1:-1:-1;21079:4:223;21032:82;;;2638:14:357;;2631:22;2613:41;;2601:2;2586:18;21032:82:223;2473:187:357;15764:250:223;;;;;;;;;;;;;:::i;:::-;;;2841:42:357;2829:55;;;2811:74;;2799:2;2784:18;15764:250:223;2665:226:357;3999:56:223;;;;;;;;;;;;4048:7;3999:56;;16317:108;;;;;;;;;;-1:-1:-1;16404:14:223;;;;16317:108;;6234:46;;;;;;;;;;-1:-1:-1;6234:46:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;5252:50;;;;;;;;;;-1:-1:-1;5252:50:223;;;;;:::i;:::-;;;;;;;;;;;;;;;;17493:894;;;;;;;;;;-1:-1:-1;17493:894:223;;;;;:::i;:::-;;:::i;1278:175:147:-;;;;;;;;;;-1:-1:-1;1278:175:147;;;;;:::i;:::-;;:::i;10311:5066:223:-;;;;;;:::i;:::-;;:::i;6386:42::-;;;;;;;;;;-1:-1:-1;6386:42:223;;;;;;;;16746:134;;;;;;;;;;;;16847:8;;;;4855:18:195;4852:30;;16746:134:223;;;;5155:25:357;;;5143:2;5128:18;16746:134:223;5009:177:357;8628:995:223;9128:14;;9088:326;;9128:14;;9168:31;9176:8;;9186:12;9168:7;:31::i;:::-;9221:9;9291:26;9319:14;16847:8;;;;4855:18:195;4852:30;;16746:134:223;9319:14;9335:10;9347:7;9356:9;9367:12;9381:8;;9251:152;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9088:12;:326::i;:::-;9442:7;9430:72;;;9451:10;9463:8;;9473:14;16847:8;;;;4855:18:195;4852:30;;16746:134:223;9473:14;9489:12;9430:72;;;;;;;;;;:::i;:::-;;;;;;;;9517:44;;9551:9;5155:25:357;;9539:10:223;;9517:44;;5143:2:357;5128:18;9517:44:223;;;;;;;-1:-1:-1;;9598:8:223;9596:10;;;;;;;;;;;;;;;;-1:-1:-1;;8628:995:223:o;15764:250::-;15859:16;;15819:7;;15859:47;:16;:47;;15838:135;;;;;;;6954:2:357;15838:135:223;;;6936:21:357;6993:2;6973:18;;;6966:30;7032:34;7012:18;;;7005:62;7103:23;7083:18;;;7076:51;7144:19;;15838:135:223;;;;;;;;;-1:-1:-1;15991:16:223;;;;;15764:250::o;17493:894::-;17577:6;4991:5;4796:6;;4363:2;17806:49;4206:2;17806:49;;;;:::i;:::-;17805:90;;;;:::i;:::-;17703:51;4507:2;17710:8;17703:51;:::i;:::-;17639:116;;4048:7;17639:116;:::i;:::-;:257;;;;:::i;:::-;:412;;;;:::i;:::-;:587;;;;:::i;:::-;:741;;;;:::i;:::-;17595:785;17493:894;-1:-1:-1;;;;17493:894:223:o;1278:175:147:-;3111:19:27;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:27;;3212:1;3197:12;;;;;;:16;3179:34;3178:108;;;-1:-1:-1;3258:4:27;1476:19:33;:23;;;3219:66:27;;-1:-1:-1;3268:12:27;;;;;;;3284:1;3268:17;3219:66;3157:201;;;;;;;8439:2:357;3157:201:27;;;8421:21:357;8478:2;8458:18;;;8451:30;8517:34;8497:18;;;8490:62;8588:16;8568:18;;;8561:44;8622:19;;3157:201:27;8237:410:357;3157:201:27;3368:12;:16;;;;;;;;3394:65;;;;3428:13;:20;;;;;;;;3394:65;1373:73:147::1;1420:23;1373:27;:73::i;:::-;3483:14:27::0;3479:99;;;3529:5;3513:21;;;;;;3553:14;;-1:-1:-1;8804:36:357;;3553:14:27;;8792:2:357;8777:18;3553:14:27;;;;;;;3479:99;3101:483;1278:175:147;:::o;10311:5066:223:-;5444:3:195;5440:16;;;10869:1:223;10859:11;;10851:101;;;;;;;9410:2:357;10851:101:223;;;9392:21:357;9449:2;9429:18;;;9422:30;9488:34;9468:18;;;9461:62;9559:34;9539:18;;;9532:62;9631:15;9610:19;;;9603:44;9664:19;;10851:101:223;9208:481:357;10851:101:223;11154:7;:12;;11165:1;11154:12;11150:247;;11182:15;11200:68;11233:7;11242;11251:8;;11200:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11261:6:223;;-1:-1:-1;11200:32:223;;-1:-1:-1;;11200:68:223:i;:::-;11290:27;;;;:18;:27;;;;;;11182:86;;-1:-1:-1;11290:27:223;;:36;11282:104;;;;;;;9896:2:357;11282:104:223;;;9878:21:357;9935:2;9915:18;;;9908:30;9974:34;9954:18;;;9947:62;10045:25;10025:18;;;10018:53;10088:19;;11282:104:223;9694:419:357;11282:104:223;11168:229;11150:247;11567:21;11603:90;11636:6;11644:7;11653;11662:6;11670:12;11684:8;;11603:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11603:32:223;;-1:-1:-1;;;11603:90:223:i;:::-;11567:126;;11708:19;
3852307:14:147;;2284:10;1685:27:237;;2307:14:147;2249:73;;;2307:14;;2249:73;;2165:164;11708:19:223;11704:506;;;11897:6;11884:9;:19;11877:27;;;;:::i;:::-;11926:29;;;;:14;:29;;;;;;;;11925:30;11918:38;;;;:::i;:::-;11704:506;;;11995:9;:14;11987:107;;;;;;;10509:2:357;11987:107:223;;;10491:21:357;10548:2;10528:18;;;10521:30;10587:34;10567:18;;;10560:62;10658:34;10638:18;;;10631:62;10730:18;10709:19;;;10702:47;10766:19;;11987:107:223;10307:484:357;11987:107:223;12117:29;;;;:14;:29;;;;;;;;12109:90;;;;;;;10998:2:357;12109:90:223;;;10980:21:357;11037:2;11017:18;;;11010:30;11076:34;11056:18;;;11049:62;11147:18;11127;;;11120:46;11183:19;;12109:90:223;10796:412:357;12109:90:223;12241:24;12257:7;12241:15;:24::i;:::-;:33;12220:135;;;;;;;11415:2:357;12220:135:223;;;11397:21:357;11454:2;11434:18;;;11427:30;11493:34;11473:18;;;11466:62;11564:34;11544:18;;;11537:62;11636:5;11615:19;;;11608:34;11659:19;;12220:135:223;11213:471:357;12220:135:223;12374:33;;;;:18;:33;;;;;;;;:42;12366:109;;;;;;;11891:2:357;12366:109:223;;;11873:21:357;11930:2;11910:18;;;11903:30;11969:34;11949:18;;;11942:62;12040:24;12020:18;;;12013:52;12082:19;;12366:109:223;11689:418:357;12366:109:223;13169:77;13188:12;13202:43;4991:5;4796:6;13202:43;:::i;:::-;13169:77;;:18;:77::i;:::-;13168:78;:145;;;-1:-1:-1;13266:16:223;;:47;:16;1338:42:192;13266:47:223;;13168:145;13151:919;;;13338:29;;;;:14;:29;;;;;;:36;;;;13370:4;13338:36;;;13393:35;13353:13;;13393:35;;;13908:41;:9;:41;13904:135;;13969:55;;;;;12314:2:357;13969:55:223;;;12296:21:357;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;12463:15;12443:18;;;12436:43;12496:19;;13969:55:223;12112:409:357;13904:135:223;14053:7;;;;13151:919;14080:16;:26;;;;;;;;;;-1:-1:-1;14131:72:223;14145:7;4796:6;14154:9;:30;;;;:::i;:::-;14186:6;14194:8;;14131:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14131:13:223;;-1:-1:-1;;;14131:72:223:i;:::-;14213:16;:46;;;;1338:42:192;14213:46:223;;;14116:87;-1:-1:-1;14270:1101:223;;;;14484:33;;;;:18;:33;;;;;;;;:42;14477:50;;;;:::i;:::-;14541:33;;;;:18;:33;;;;;;:40;;;;14577:4;14541:40;;;14600:29;14560:13;;14600:29;;;14270:1101;;;14660:29;;;;:14;:29;;;;;;:36;;;;14692:4;14660:36;;;14715:35;14675:13;;14715:35;;;15230:41;:9;:41;15226:135;;15291:55;;;;;12314:2:357;15291:55:223;;;12296:21:357;12353:2;12333:18;;;12326:30;12392:34;12372:18;;;12365:62;12463:15;12443:18;;;12436:43;12496:19;;15291:55:223;12112:409:357;15226:135:223;10537:4840;;;10311:5066;;;;;;;;:::o;1186:320:33:-;1476:19;;;:23;;;1186:320::o;1849:269:147:-;1966:145;;;;;312:42:199;;1966:83:147;;2058:6;;1966:145;;2080:3;;2085:9;;2096:5;;1966:145;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1849:269;;;;:::o;18503:636:223:-;4910:13:27;;;;;;;4902:69;;;;;;;13296:2:357;4902:69:27;;;13278:21:357;13335:2;13315:18;;;13308:30;13374:34;13354:18;;;13347:62;13445:13;13425:18;;;13418:41;13476:19;;4902:69:27;13094:407:357;4902:69:27;18988:16:223::1;::::0;:30:::1;:16;18984:107;;19034:16;:46:::0;;;::::1;1338:42:192;19034:46:223;::::0;;18984:107:::1;19100:14;:32:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18503:636::o;3100:305:196:-;3289:7;3329:68;3365:7;3374;3383:5;3390:6;3329:35;:68::i;:::-;3319:79;;;;;;3312:86;;3100:305;;;;;;:::o;3877:375::-;4117:7;4157:87;4193:6;4201:7;4210;4219:6;4227:9;4238:5;4157:35;:87::i;:::-;4147:98;;;;;;4140:105;;3877:375;;;;;;;;:::o;2376:186:147:-;2450:4;2473:24;;;2492:4;2473:24;;:82;;-1:-1:-1;2501:54:147;;;312:42:199;2501:54:147;2473:82;2466:89;2376:186;-1:-1:-1;;2376:186:147:o;3615:365:200:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:200:o;1202:536::-;1305:4;1321:13;1668:1;1635;1594:9;1588:16;1554:2;1543:9;1539:18;1496:6;1454:7;1421:4;1395:302;1367:330;1202:536;-1:-1:-1;;;;;;1202:536:200:o;3073:336:195:-;3264:12;3370:7;3379;3388:5;3395:6;3299:103;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3073:336:195;;;;;;:::o;3883:516::-;4125:12;4272:6;4292:7;4313;4334:6;4354:9;4377:5;4160:232;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3883:516:195;;;;;;;;:::o;219:154:357:-;305:42;298:5;294:54;287:5;284:65;274:93;;363:1;360;353:12;274:93;219:154;:::o;378:347::-;429:8;439:6;493:3;486:4;478:6;474:17;470:27;460:55;;511:1;508;501:12;460:55;-1:-1:-1;534:20:357;;577:18;566:30;;563:50;;;609:1;606;599:12;563:50;646:4;638:6;634:17;622:29;;698:3;691:4;682:6;674;670:19;666:30;663:39;660:59;;;715:1;712;705:12;660:59;378:347;;;;;:::o;730:163::-;797:20;;857:10;846:22;;836:33;;826:61;;883:1;880;873:12;826:61;730:163;;;:::o;898:616::-;985:6;993;1001;1009;1062:2;1050:9;1041:7;1037:23;1033:32;1030:52;;;1078:1;1075;1068:12;1030:52;1117:9;1104:23;1136:31;1161:5;1136:31;:::i;:::-;1186:5;-1:-1:-1;1242:2:357;1227:18;;1214:32;1269:18;1258:30;;1255:50;;;1301:1;1298;1291:12;1255:50;1340:58;1390:7;1381:6;1370:9;1366:22;1340:58;:::i;:::-;1417:8;;-1:-1:-1;1314:84:357;-1:-1:-1;1471:37:357;;-1:-1:-1;1504:2:357;1489:18;;1471:37;:::i;:::-;1461:47;;898:616;;;;;;;:::o;1712:531::-;1754:3;1792:5;1786:12;1819:6;1814:3;1807:19;1844:1;1854:162;1868:6;1865:1;1862:13;1854:162;;;1930:4;1986:13;;;1982:22;;1976:29;1958:11;;;1954:20;;1947:59;1883:12;1854:162;;;2034:6;2031:1;2028:13;2025:87;;;2100:1;2093:4;2084:6;
3852079:3;2075:16;2071:27;2064:38;2025:87;-1:-1:-1;2157:2:357;2145:15;2162:66;2141:88;2132:98;;;;2232:4;2128:109;;1712:531;-1:-1:-1;;1712:531:357:o;2248:220::-;2397:2;2386:9;2379:21;2360:4;2417:45;2458:2;2447:9;2443:18;2435:6;2417:45;:::i;:::-;2409:53;2248:220;-1:-1:-1;;;2248:220:357:o;3158:180::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;-1:-1:-1;3309:23:357;;3158:180;-1:-1:-1;3158:180:357:o;3343:481::-;3421:6;3429;3437;3490:2;3478:9;3469:7;3465:23;3461:32;3458:52;;;3506:1;3503;3496:12;3458:52;3546:9;3533:23;3579:18;3571:6;3568:30;3565:50;;;3611:1;3608;3601:12;3565:50;3650:58;3700:7;3691:6;3680:9;3676:22;3650:58;:::i;:::-;3727:8;;-1:-1:-1;3624:84:357;-1:-1:-1;3781:37:357;;-1:-1:-1;3814:2:357;3799:18;;3781:37;:::i;:::-;3771:47;;3343:481;;;;;:::o;3829:278::-;3919:6;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4027:9;4014:23;4046:31;4071:5;4046:31;:::i;4112:892::-;4227:6;4235;4243;4251;4259;4267;4275;4328:3;4316:9;4307:7;4303:23;4299:33;4296:53;;;4345:1;4342;4335:12;4296:53;4381:9;4368:23;4358:33;;4441:2;4430:9;4426:18;4413:32;4454:31;4479:5;4454:31;:::i;:::-;4504:5;-1:-1:-1;4561:2:357;4546:18;;4533:32;4574:33;4533:32;4574:33;:::i;:::-;4626:7;-1:-1:-1;4680:2:357;4665:18;;4652:32;;-1:-1:-1;4731:3:357;4716:19;;4703:33;;-1:-1:-1;4787:3:357;4772:19;;4759:33;4815:18;4804:30;;4801:50;;;4847:1;4844;4837:12;4801:50;4886:58;4936:7;4927:6;4916:9;4912:22;4886:58;:::i;:::-;4112:892;;;;-1:-1:-1;4112:892:357;;-1:-1:-1;4112:892:357;;;;4860:84;;-1:-1:-1;;;4112:892:357:o;5191:325::-;5279:6;5274:3;5267:19;5331:6;5324:5;5317:4;5312:3;5308:14;5295:43;;5383:1;5376:4;5367:6;5362:3;5358:16;5354:27;5347:38;5249:3;5505:4;5435:66;5430:2;5422:6;5418:15;5414:88;5409:3;5405:98;5401:109;5394:116;;5191:325;;;;:::o;5521:697::-;5816:6;5805:9;5798:25;5779:4;5842:42;5932:2;5924:6;5920:15;5915:2;5904:9;5900:18;5893:43;5984:2;5976:6;5972:15;5967:2;5956:9;5952:18;5945:43;;6024:6;6019:2;6008:9;6004:18;5997:34;6080:10;6072:6;6068:23;6062:3;6051:9;6047:19;6040:52;6129:3;6123;6112:9;6108:19;6101:32;6150:62;6207:3;6196:9;6192:19;6184:6;6176;6150:62;:::i;:::-;6142:70;5521:697;-1:-1:-1;;;;;;;;;5521:697:357:o;6223:524::-;6475:42;6467:6;6463:55;6452:9;6445:74;6555:3;6550:2;6539:9;6535:18;6528:31;6426:4;6576:62;6633:3;6622:9;6618:19;6610:6;6602;6576:62;:::i;:::-;6568:70;;6674:6;6669:2;6658:9;6654:18;6647:34;6729:10;6721:6;6717:23;6712:2;6701:9;6697:18;6690:51;6223:524;;;;;;;;:::o;7174:184::-;7226:77;7223:1;7216:88;7323:4;7320:1;7313:15;7347:4;7344:1;7337:15;7363:270;7402:7;7434:18;7479:2;7476:1;7472:10;7509:2;7506:1;7502:10;7565:3;7561:2;7557:12;7552:3;7549:21;7542:3;7535:11;7528:19;7524:47;7521:73;;;7574:18;;:::i;:::-;7614:13;;7363:270;-1:-1:-1;;;;7363:270:357:o;7638:353::-;7677:1;7703:18;7748:2;7745:1;7741:10;7770:3;7760:191;;7807:77;7804:1;7797:88;7908:4;7905:1;7898:15;7936:4;7933:1;7926:15;7760:191;7969:10;;7965:20;;;;;7638:353;-1:-1:-1;;7638:353:357:o;7996:236::-;8035:3;8063:18;8108:2;8105:1;8101:10;8138:2;8135:1;8131:10;8169:3;8165:2;8161:12;8156:3;8153:21;8150:47;;;8177:18;;:::i;:::-;8213:13;;7996:236;-1:-1:-1;;;;7996:236:357:o;10118:184::-;10170:77;10167:1;10160:88;10267:4;10264:1;10257:15;10291:4;10288:1;10281:15;12526:125;12566:4;12594:1;12591;12588:8;12585:34;;;12599:18;;:::i;:::-;-1:-1:-1;12636:9:357;;12526:125::o;12656:433::-;12870:42;12862:6;12858:55;12847:9;12840:74;12962:18;12954:6;12950:31;12945:2;12934:9;12930:18;12923:59;13018:2;13013;13002:9;12998:18;12991:30;12821:4;13038:45;13079:2;13068:9;13064:18;13056:6;13038:45;:::i;:::-;13030:53;12656:433;-1:-1:-1;;;;;12656:433:357:o;13506:512::-;13700:4;13729:42;13810:2;13802:6;13798:15;13787:9;13780:34;13862:2;13854:6;13850:15;13845:2;13834:9;13830:18;13823:43;;13902:3;13897:2;13886:9;13882:18;13875:31;13923:46;13964:3;13953:9;13949:19;13941:6;13923:46;:::i;:::-;13915:54;;14005:6;14000:2;13989:9;13985:18;13978:34;13506:512;;;;;;;:::o;14023:656::-;14310:6;14299:9;14292:25;14273:4;14336:42;14426:2;14418:6;14414:15;14409:2;14398:9;14394:18;14387:43;14478:2;14470:6;14466:15;14461:2;14450:9;14446:18;14439:43;;14518:6;14513:2;14502:9;14498:18;14491:34;14562:6;14556:3;14545:9;14541:19;14534:35;14606:3;14600;14589:9;14585:19;14578:32;14627:46;14668:3;14657:9;14653:19;14645:6;14627:46;:::i;:::-;14619:54;14023:656;-1:-1:-1;;;;;;;;14023:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","MIN_GAS_CALLDATA_OVERHEAD()":"028f85f7","MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":"0c568498","MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":"2828d7e8","OTHER_MESSENGER()":"9fce812c","RELAY_CALL_OVERHEAD()":"4c1d6a69","RELAY_CONSTANT_OVERHEAD()":"83a74074","RELAY_GAS_CHECK_BUFFER()":"5644cfdf","RELAY_RESERVED_GAS()":"8cbeeef2","baseGas(bytes,uint32)":"b28ade25","failedMessages(bytes32)":"a4e7f8bd","initialize(address)":"c4d66de8","l1CrossDomainMessenger()":"a7119869","messageNonce()":"ecc70428","otherMessenger()":"db505d80","paused()":"5c975abb","relayMessage(uint256,address,address,uint256,uint256,bytes)":"d764ad0b","sendMessage(address,bytes,uint32)":"3dbb202b","successfulMessages(bytes32)":"b1b1b209","version()":"54fd4d50","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"}
385,{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"msgHash\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"FailedRelayedMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"uint8\\",\\"name\\":\\"version\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"Initialized\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"msgHash\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"RelayedMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"target\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"message\\",\\"type\\":\\"bytes\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"messageNonce\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"gasLimit\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"SentMessage\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"value\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"SentMessageExtension1\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"MESSAGE_VERSION\\",\\"outputs\\":[{\\"internalType\\":\\"uint16\\",\\"name\\":\\"\\",\\"type\\":\\"uint16\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_CALLDATA_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"OTHER_MESSENGER\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_CALL_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_CONSTANT_OVERHEAD\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_GAS_CHECK_BUFFER\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"RELAY_RESERVED_GAS\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"}],\\"name\\":\\"baseGas\\",\\"outputs\\":[{\\"internalType\\":\\"uint64\\",\\"name\\":\\"\\",\\"type\\":\\"uint64\\"}],\\"stateMutability\\":\\"pure\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"failedMessages\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"_l1CrossDomainMessenger\\",\\"type\\":\\"address\\"}
385],\\"name\\":\\"initialize\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l1CrossDomainMessenger\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"messageNonce\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"otherMessenger\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"paused\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_nonce\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_sender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_target\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_value\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"relayMessage\\",\\"outputs\\":[],\\"stateMutability\\":\\"payable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_target\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_message\\",\\"type\\":\\"bytes\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"}],\\"name\\":\\"sendMessage\\",\\"outputs\\":[],\\"stateMutability\\":\\"payable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"successfulMessages\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"xDomainMessageSender\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@custom:predeploy 0x4200000000000000000000000000000000000007\\",\\"kind\\":\\"dev\\",\\"methods\\":{\\"OTHER_MESSENGER()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"CrossDomainMessenger contract on the other chain.\\"}},\\"baseGas(bytes,uint32)\\":{\\"params\\":{\\"_message\\":\\"Message to compute the amount of required gas for.\\",\\"_minGasLimit\\":\\"Minimum desired gas limit when message goes to target.\\"},\\"returns\\":{\\"_0\\":\\"Amount of gas required to guarantee message receipt.\\"}},\\"initialize(address)\\":{\\"params\\":{\\"_l1CrossDomainMessenger\\":\\"L1CrossDomainMessenger contract on the other network.\\"}},\\"l1CrossDomainMessenger()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"L1CrossDomainMessenger contract.\\"}},\\"messageNonce()\\":{\\"returns\\":{\\"_0\\":\\"Nonce of the next message to be sent, with added message version.\\"}},\\"paused()\\":{\\"returns\\":{\\"_0\\":\\"Whether or not the contract is paused.\\"}},\\"relayMessage(uint256,address,address,uint256,uint256,bytes)\\":{\\"params\\":{\\"_message\\":\\"Message to send to the target.\\",\\"_minGasLimit\\":\\"Minimum amount of gas that the message can be executed with.\\",\\"_nonce\\":\\"Nonce of the message being relayed.\\",\\"_sender\\":\\"Address of the user who sent the message.\\",\\"_target\\":\\"Address that the message is targeted at.\\",\\"_value\\":\\"ETH value to send with the message.\\"}},\\"sendMessage(address,bytes,uint32)\\":{\\"params\\":{\\"_message\\":\\"Message to trigger the target address with.\\",\\"_minGasLimit\\":\\"Minimum gas limit that the message can be executed with.\\",\\"_target\\":\\"Target contract or wallet address.\\"}},\\"xDomainMessageSender()\\":{\\"returns\\":{\\"_0\\":\\"Address of the sender of the currently executing message on the other chain.\\"}}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"2.0.0\\"}}
385,\\"title\\":\\"L2CrossDomainMessenger\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"FailedRelayedMessage(bytes32)\\":{\\"notice\\":\\"Emitted whenever a message fails to be relayed on this chain.\\"},\\"RelayedMessage(bytes32)\\":{\\"notice\\":\\"Emitted whenever a message is successfully relayed on this chain.\\"},\\"SentMessage(address,address,bytes,uint256,uint256)\\":{\\"notice\\":\\"Emitted whenever a message is sent to the other chain.\\"},\\"SentMessageExtension1(address,uint256)\\":{\\"notice\\":\\"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"MESSAGE_VERSION()\\":{\\"notice\\":\\"Current message version identifier.\\"},\\"MIN_GAS_CALLDATA_OVERHEAD()\\":{\\"notice\\":\\"Extra gas added to base gas for each byte of calldata in a message.\\"},\\"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()\\":{\\"notice\\":\\"Denominator for dynamic overhead added to the base gas for a message.\\"},\\"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()\\":{\\"notice\\":\\"Numerator for dynamic overhead added to the base gas for a message.\\"},\\"OTHER_MESSENGER()\\":{\\"notice\\":\\"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\\"},\\"RELAY_CALL_OVERHEAD()\\":{\\"notice\\":\\"Gas reserved for performing the external call in `relayMessage`.\\"},\\"RELAY_CONSTANT_OVERHEAD()\\":{\\"notice\\":\\"Constant overhead added to the base gas for a message.\\"},\\"RELAY_GAS_CHECK_BUFFER()\\":{\\"notice\\":\\"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`.\\"},\\"RELAY_RESERVED_GAS()\\":{\\"notice\\":\\"Gas reserved for finalizing the execution of `relayMessage` after the safe call.\\"},\\"baseGas(bytes,uint32)\\":{\\"notice\\":\\"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely.\\"},\\"constructor\\":{\\"notice\\":\\"Constructs the L2CrossDomainMessenger contract.\\"},\\"failedMessages(bytes32)\\":{\\"notice\\":\\"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt.\\"},\\"initialize(address)\\":{\\"notice\\":\\"Initializer.\\"},\\"l1CrossDomainMessenger()\\":{\\"notice\\":\\"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\\"},\\"messageNonce()\\":{\\"notice\\":\\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\\"},\\"otherMessenger()\\":{\\"notice\\":\\"CrossDomainMessenger contract on the other chain.\\"},\\"paused()\\":{\\"notice\\":\\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\\"},\\"relayMessage(uint256,address,address,uint256,uint256,bytes)\\":{\\"notice\\":\\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\\"},\\"sendMessage(address,bytes,uint32)\\":{\\"notice\\":\\"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\\"},\\"successfulMessages(bytes32)\\":{\\"notice\\":\\"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again.\\"},\\"xDomainMessageSender()\\":{\\"notice\\":\\"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it.\\"}},\\"notice\\":\\"The L2CrossDomainMessenger is a high-level interface for message passing between L1 and L2 on the L2 side. Users are generally encouraged to use this contract instead of lower level message passing contracts.\\",\\"ver
385sion\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L2/L2CrossDomainMessenger.sol\\":\\"L2CrossDomainMessenger\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\\",\\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\\":{\\"keccak256\\":\\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\\",\\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\\"]},\\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\\",\\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\":{\\"keccak256\\":\\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\\",\\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\\":{\\"keccak256\\":\\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\\",\\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\\":{\\"keccak256\\":\\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\\",\\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\\"]},\\"lib/solmate/src/utils/FixedPointMathLib.sol\\":{\\"keccak256\\":\\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\\",\\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\\"]},\\"src/L1/ResourceMetering.sol\\":{\\"keccak256\\":\\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\\",\\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\\"]},\\"src/L2/L2CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b\\",\\"dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJV
385DU5VYDC\\"]},\\"src/L2/L2ToL1MessagePasser.sol\\":{\\"keccak256\\":\\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\\",\\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\\"]},\\"src/libraries/Arithmetic.sol\\":{\\"keccak256\\":\\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\\",\\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\\"]},\\"src/libraries/Burn.sol\\":{\\"keccak256\\":\\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\\",\\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\\"]},\\"src/libraries/Constants.sol\\":{\\"keccak256\\":\\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\\",\\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\\"]},\\"src/libraries/Encoding.sol\\":{\\"keccak256\\":\\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\\",\\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\\"]},\\"src/libraries/Hashing.sol\\":{\\"keccak256\\":\\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\\",\\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\\"]},\\"src/libraries/Predeploys.sol\\":{\\"keccak256\\":\\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\\",\\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\\"]},\\"src/libraries/SafeCall.sol\\":{\\"keccak256\\":\\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\\",\\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\\"]},\\"src/libraries/Types.sol\\":{\\"keccak256\\":\\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\\",\\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\\"]},\\"src/libraries/rlp/RLPWriter.sol\\":{\\"keccak256\\":\\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\\",\\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\\"]},\\"src/universal/CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\\",\\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/vendor/AddressAliasHelper.sol\\":{\\"keccak256\\":\\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\\",\\"license\\":\\"Apache-2.0\\",\\"urls\\":[\\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\\",\\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"}
385,"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"FailedRelayedMessage","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"msgHash","type":"bytes32","indexed":true}],"type":"event","name":"RelayedMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":false},{"internalType":"bytes","name":"message","type":"bytes","indexed":false},{"internalType":"uint256","name":"messageNonce","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false}],"type":"event","name":"SentMessage","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"SentMessageExtension1","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_CALLDATA_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CALL_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_CONSTANT_OVERHEAD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_GAS_CHECK_BUFFER","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RELAY_RESERVED_GAS","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"pure","type":"function","name":"baseGas","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"failedMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"contract CrossDomainMessenger","name":"_l1CrossDomainMessenger","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"l1CrossDomainMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherMessenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_minGasLimit","type":"uint256"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"}
385,{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"successfulMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"OTHER_MESSENGER()":{"custom:legacy":"","returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address)":{"params":{"_l1CrossDomainMessenger":"L1CrossDomainMessenger contract on the other network."}},"l1CrossDomainMessenger()":{"custom:legacy":"","returns":{"_0":"L1CrossDomainMessenger contract."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L2CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address)":{"notice":"Initializer."},"l1CrossDomainMessenger()":{"notice":"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2CrossDomainMessenger.sol":"L2CrossDomainMessenger"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L2/L2CrossDomainMessenger.sol":{"keccak256":"0xe6f3989bb296a3b8678a0d0734788cfdef8ed6632df10cba23af5a369293d355","urls":["bzz-raw://1ec3c85753657891b6c6bc5a7b941ac7cffd312f9589683e006f2d0f5b725f4b","dweb:/ipfs/QmTSLy4kv3ZVUR158NED6x31vy9J69wQunHWkJV
385DU5VYDC"],"license":"MIT"},"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/vendor/AddressAliasHelper.sol":{"keccak256":"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237","urls":["bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88","dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"],"license":"Apache-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":108324,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_0_0_20","offset":0,"slot":"0","type":"t_address"},{"astId":46970,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"_initialized","offset":20,"slot":"0","type":"t_uint8"},{"astId":46973,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"_initializing","offset":21,"slot":"0","type":"t_bool"},{"astId":108331,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_1_0_1600","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":108334,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_51_0_20","offset":0,"slot":"51","type":"t_address"},{"astId":108339,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_52_0_1568","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":108342,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_101_0_1","offset":0,"slot":"101","type":"t_bool"},{"astId":108347,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_102_0_1568","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":108350,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_151_0_32","offset":0,"slot":"151","type":"t_uint256"},{"astId":108355,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_152_0_1568","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":108360,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_201_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108365,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"spacer_202_0_32","offset":0,"slot":"202","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108410,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"successfulMessages","offset":0,"slot":"203","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108413,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"xDomainMsgSender","offset":0,"slot":"204","type":"t_address"},{"astId":108416,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"msgNonce","offset":0,"slot":"205","type":"t_uint240"},{"astId":108421,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"failedMessages","offset":0,"slot":"206","type":"t_mapping(t_bytes32,t_bool)"},{"astId":108425,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"otherMessenger","offset":0,"slot":"207","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108430,"contract":"src/L2/L2CrossDomainMessenger.sol:L2CrossDomainMessenger","label":"__gap","offset":0,"slot":"208","type":"t_array(t_uint256)43_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)43_storage":{"encoding":"inplace","label":"uint256[43]","numberOfBytes":"1376","base":"t_uint256"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","
385numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"Current message version identifier."},"MIN_GAS_CALLDATA_OVERHEAD()":{"notice":"Extra gas added to base gas for each byte of calldata in a message."},"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR()":{"notice":"Denominator for dynamic overhead added to the base gas for a message."},"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR()":{"notice":"Numerator for dynamic overhead added to the base gas for a message."},"OTHER_MESSENGER()":{"notice":"Retrieves the address of the paired CrossDomainMessenger contract on the other chain Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"RELAY_CALL_OVERHEAD()":{"notice":"Gas reserved for performing the external call in `relayMessage`."},"RELAY_CONSTANT_OVERHEAD()":{"notice":"Constant overhead added to the base gas for a message."},"RELAY_GAS_CHECK_BUFFER()":{"notice":"Gas reserved for the execution between the `hasMinGas` check and the external call in `relayMessage`."},"RELAY_RESERVED_GAS()":{"notice":"Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"baseGas(bytes,uint32)":{"notice":"Computes the amount of gas required to guarantee that a given message will be received on the other chain without running out of gas. Guaranteeing that a message will not run out of gas is important because this ensures that a message can always be replayed on the other chain if it fails to execute completely."},"constructor":{"notice":"Constructs the L2CrossDomainMessenger contract."},"failedMessages(bytes32)":{"notice":"Mapping of message hashes to a boolean if and only if the message has failed to be executed at least once. A message will not be present in this mapping if it successfully executed on the first attempt."},"initialize(address)":{"notice":"Initializer."},"l1CrossDomainMessenger()":{"notice":"Getter for the remote messenger. Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"otherMessenger()":{"notice":"CrossDomainMessenger contract on the other chain."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(address,bytes,uint32)":{"notice":"Sends a message to some target address on the other chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."},"successfulMessages(bytes32)":{"notice":"Mapping of message hashes to boolean receipt values. Note that a message will only be present in this mapping if it has successfully been relayed on this chain, and can therefore not be relayed again."},"xDomainMessageSender()":{"notice":"Retrieves the address of the contract or wallet that initiated the currently executing message on the other chain. Will throw an error if there is no message currently being executed. Allows the recipient of a call to see who triggered it."}},"events":{"FailedRelayedMessage(bytes32)":{"notice":"Emitted whenever a message fails to be relayed on this chain."},"RelayedMessage(bytes32)":{"notice":"Emitted whenever a message is successfully relayed on this chain."}
385,"SentMessage(address,address,bytes,uint256,uint256)":{"notice":"Emitted whenever a message is sent to the other chain."},"SentMessageExtension1(address,uint256)":{"notice":"Additional event data to emit, required as of Bedrock. Cannot be merged with the SentMessage event without breaking the ABI of this contract, this is good enough."}},"notice":"The L2CrossDomainMessenger is a high-level interface for message passing between L1 and L2 on the L2 side. Users are generally encouraged to use this contract instead of lower level message passing contracts."},"devdoc":{"version":1,"kind":"dev","methods":{"OTHER_MESSENGER()":{"returns":{"_0":"CrossDomainMessenger contract on the other chain."}},"baseGas(bytes,uint32)":{"params":{"_message":"Message to compute the amount of required gas for.","_minGasLimit":"Minimum desired gas limit when message goes to target."},"returns":{"_0":"Amount of gas required to guarantee message receipt."}},"initialize(address)":{"params":{"_l1CrossDomainMessenger":"L1CrossDomainMessenger contract on the other network."}},"l1CrossDomainMessenger()":{"returns":{"_0":"L1CrossDomainMessenger contract."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}},"relayMessage(uint256,address,address,uint256,uint256,bytes)":{"params":{"_message":"Message to send to the target.","_minGasLimit":"Minimum amount of gas that the message can be executed with.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_target":"Address that the message is targeted at.","_value":"ETH value to send with the message."}},"sendMessage(address,bytes,uint32)":{"params":{"_message":"Message to trigger the target address with.","_minGasLimit":"Minimum gas limit that the message can be executed with.","_target":"Target contract or wallet address."}},"xDomainMessageSender()":{"returns":{"_0":"Address of the sender of the currently executing message on the other chain."}}},"title":"L2CrossDomainMessenger"},"ast":{"absolutePath":"src/L2/L2CrossDomainMessenger.sol","id":90489,"exportedSymbols":{"AddressAliasHelper":[111913],"Constants":[103096],"CrossDomainMessenger":[108888],"ISemver":[109417],"L2CrossDomainMessenger":[90488],"L2ToL1MessagePasser":[91307],"Predeploys":[104124]},"nodeType":"SourceUnit","src":"32:2533:147","nodes":[{"id":90353,"nodeType":"PragmaDirective","src":"32:23:147","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90355,"nodeType":"ImportDirective","src":"57:71:147","nodes":[],"absolutePath":"src/vendor/AddressAliasHelper.sol","file":"src/vendor/AddressAliasHelper.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":111914,"symbolAliases":[{"foreign":{"id":90354,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"66:18:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90357,"nodeType":"ImportDirective","src":"129:58:147","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":90356,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"138:10:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90359,"nodeType":"ImportDirective","src":"188:78:147","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":90358,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"197:20:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90361,"nodeType":"ImportDirective","src":"267:52:147","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90360,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"276:7:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90363,"nodeType":"ImportDirective","src":"320:69:147","nodes":[],"absolutePath":"src/L2/L2ToL1MessagePasser.sol","file":"src/L2/L2ToL1MessagePasser.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":91308,"symbolAliases":[{"foreign":{"id":90362,"name":"L2ToL1MessagePasser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91307,"src":"329:19:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90365,"nodeType":"ImportDirective","src":"390:56:147","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":90489,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":90364,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"399:9:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90488,"nodeType":"ContractDefinition","src":"812:1752:147","nodes":[{"id":90374,"nodeType":"VariableDeclaration","src":"912:40:147","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90371,"nodeType":"StructuredDocumentation","src":"883:24:147","text":"@custom:semver 2.0.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"935:7:147","scope":90488,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90372,"name":"string","nodeType":"ElementaryTypeName","src":"912:6:147","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"322e302e30","id":90373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"945:7:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4bcb154e38601c389396fa918314da42d4626f13ef6d0ceb07e5f5d26b2fbc3","typeString":"literal_string \\"2.0.0\\""},"value":"2.0.0"},"visibility":"public"},{"id":90390,"nodeType":"FunctionDefinition","src":"1023:127:147","nodes":[],"body":{"id":90389,"nodeType":"Block","src":"1060:90:147","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":90384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1137:1:147","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1129:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90382,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:147","typeDescriptions":{}}},"id":90385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1129:10:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90381,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1108:20:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":90386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1108:32:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90380,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90404,"src":"1070:10:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":90387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l1CrossDomainMessenger"],"nodeType":"FunctionCall","src":"1070:73:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90388,"nodeType":"ExpressionStatement","src":"1070:73:147"}]},"documentation":{"id":90375,"nodeType":"StructuredDocumentation","src":"959:59:147","text":"@notice Constructs the L2CrossDomainMessenger contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":90378,"kind":"baseConstructorSpecifier","modifierName":{"id":90377,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1037:20:147"},"nodeType":"ModifierInvocation","src":"1037:22:147"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":90376,"nodeType":"ParameterList","parameters":[],"src":"1034:2:147"},"returnParameters":{"id":90379,"nodeType":"ParameterList","parameters":[],"src":"1060:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90404,"nodeType":"FunctionDefinition","src":"1278:175:147","nodes":[],"body":{"id":90403,"nodeType":"Block","src":"1363:90:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":90400,"name":"_l1CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90394,"src":"1420:23:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90399,"name":"__CrossDomainMessenger_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108852,"src":"1373:27:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$returns$__$","typeString":"function (contract CrossDomainMessenger)"}},"id":90401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_otherMessenger"],"nodeType":"FunctionCall","src":"1373:73:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90402,"nodeType":"ExpressionStatement","src":"1373:73:147"}]},"documentation":{"id":90391,"nodeType":"StructuredDocumentation","src":"1156:117:147","text":"@notice Initializer.\\n @param _l1CrossDomainMessenger L1CrossDomainMessenger contract on the other network."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":90397,"kind":"modifierInvocation","modifierName":{"id":90396,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":47034,"src":"1351:11:147"},"nodeType":"ModifierInvocation","src":"1351:11:147"}],"name":"initialize","nameLocation":"1287:10:147","parameters":{"id":90395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90394,"mutability":"mutable","name":"_l1CrossDomainMessenger","nameLocation":"1319:23:147","nodeType":"VariableDeclaration","scope":90404,"src":"1298:44:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}
385,"typeName":{"id":90393,"nodeType":"UserDefinedTypeName","pathNode":{"id":90392,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1298:20:147"},"referencedDeclaration":108888,"src":"1298:20:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"1297:46:147"},"returnParameters":{"id":90398,"nodeType":"ParameterList","parameters":[],"src":"1363:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90414,"nodeType":"FunctionDefinition","src":"1687:115:147","nodes":[],"body":{"id":90413,"nodeType":"Block","src":"1764:38:147","nodes":[],"statements":[{"expression":{"id":90411,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"1781:14:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"functionReturnParameters":90410,"id":90412,"nodeType":"Return","src":"1774:21:147"}]},"documentation":{"id":90405,"nodeType":"StructuredDocumentation","src":"1459:223:147","text":"@notice Getter for the remote messenger.\\n Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\\n @return L1CrossDomainMessenger contract.\\n @custom:legacy"},"functionSelector":"a7119869","implemented":true,"kind":"function","modifiers":[],"name":"l1CrossDomainMessenger","nameLocation":"1696:22:147","parameters":{"id":90406,"nodeType":"ParameterList","parameters":[],"src":"1718:2:147"},"returnParameters":{"id":90410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90414,"src":"1742:20:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},"typeName":{"id":90408,"nodeType":"UserDefinedTypeName","pathNode":{"id":90407,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"1742:20:147"},"referencedDeclaration":108888,"src":"1742:20:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"1741:22:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":90443,"nodeType":"FunctionDefinition","src":"1849:269:147","nodes":[],"body":{"id":90442,"nodeType":"Block","src":"1956:162:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":90437,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90417,"src":"2080:3:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90438,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90419,"src":"2085:9:147","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":90439,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90423,"src":"2096:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[{"expression":{"id":90430,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1994:10:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_TO_L1_MESSAGE_PASSER","nodeType":"MemberAccess","referencedDeclaration":104000,"src":"1994:34:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1986:8:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":90428,"name":"address","nodeType":"ElementaryTypeName","src":"1986:8:147","stateMutability":"payable","typeDescriptions":{}}},"id":90432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1986:43:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90427,"name":"L2ToL1MessagePasser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91307,"src":"1966:19:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L2ToL1MessagePasser_$91307_$","typeString":"type(contract L2ToL1MessagePasser)"}},"id":90433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:64:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}},"id":90434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"initiateWithdrawal","nodeType":"MemberAccess","referencedDeclaration":91293,"src":"1966:83:147","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) payable external"}},"id":90436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":90435,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90421,"src":"2058:6:147","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1966:100:147","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,uint256,bytes memory) payable external"}},"id":90440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:145:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90441,"nodeType":"ExpressionStatement","src":"1966:145:147"}]},"baseFunctions":[108864],"documentation":{"id":90415,"nodeType":"StructuredDocumentation","src":"1808:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"1858:12:147","overrides":{"id":90425,"nodeType":"OverrideSpecifier","overrides":[],"src":"1947:8:147"},"parameters":{"id":90424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90417,"mutability":"mutable","name":"_to","nameLocation":"1879:3:147","nodeType":"VariableDeclaration","scope":90443,"src":"1871:11:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90416,"name":"address","nodeType":"ElementaryTypeName","src":"1871:7:147","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90419,"mutability":"mutable","name":"_gasLimit","nameLocation":"1891:9:147","nodeType":"VariableDeclaration","scope":90443,"src":"1884:16:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":90418,"name":"uint64","nodeType":"ElementaryTypeName","src":"1884:6:147","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":90421,"mutability":"mutable","name":"_value","nameLocation":"1910:6:147","nodeType":"VariableDeclaration","scope":90443,"src":"1902:14:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:147","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90423,"mutability":"mutable","name":"_data","nameLocation":"1931:5:147","nodeType":"VariableDeclaration","scope":90443,"src":"1918:18:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90422,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1870:67:147"}
385,"returnParameters":{"id":90426,"nodeType":"ParameterList","parameters":[],"src":"1956:0:147"},"scope":90488,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":90462,"nodeType":"FunctionDefinition","src":"2165:164:147","nodes":[],"body":{"id":90461,"nodeType":"Block","src":"2232:97:147","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":90452,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2284:3:147","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":90453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2284:10:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":90450,"name":"AddressAliasHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111913,"src":"2249:18:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressAliasHelper_$111913_$","typeString":"type(library AddressAliasHelper)"}},"id":90451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"undoL1ToL2Alias","nodeType":"MemberAccess","referencedDeclaration":111912,"src":"2249:34:147","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_address_$","typeString":"function (address) pure returns (address)"}},"id":90454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:46:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90457,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108425,"src":"2307:14:147","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}],"id":90456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2299:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90455,"name":"address","nodeType":"ElementaryTypeName","src":"2299:7:147","typeDescriptions":{}}},"id":90458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2299:23:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2249:73:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":90449,"id":90460,"nodeType":"Return","src":"2242:80:147"}]},"baseFunctions":[108870],"documentation":{"id":90444,"nodeType":"StructuredDocumentation","src":"2124:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"2174:17:147","overrides":{"id":90446,"nodeType":"OverrideSpecifier","overrides":[],"src":"2208:8:147"},"parameters":{"id":90445,"nodeType":"ParameterList","parameters":[],"src":"2191:2:147"},"returnParameters":{"id":90449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90462,"src":"2226:4:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90447,"name":"bool","nodeType":"ElementaryTypeName","src":"2226:4:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2225:6:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":90487,"nodeType":"FunctionDefinition","src":"2376:186:147","nodes":[],"body":{"id":90486,"nodeType":"Block","src":"2456:106:147","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":90484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90471,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90465,"src":"2473:7:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90474,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2492:4:147","typeDescriptions":{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$90488","typeString":"contract L2CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2CrossDomainMessenger_$90488","typeString":"contract L2CrossDomainMessenger"}],"id":90473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2484:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90472,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:147","typeDescriptions":{}}},"id":90475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2484:13:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2473:24:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90477,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90465,"src":"2501:7:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":90480,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"2520:10:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_TO_L1_MESSAGE_PASSER","nodeType":"MemberAccess","referencedDeclaration":104000,"src":"2520:34:147","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2512:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90478,"name":"address","nodeType":"ElementaryTypeName","src":"2512:7:147","typeDescriptions":{}}},"id":90482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:43:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2501:54:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2473:82:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":90470,"id":90485,"nodeType":"Return","src":"2466:89:147"}]},"baseFunctions":[108878],"documentation":{"id":90463,"nodeType":"StructuredDocumentation","src":"2335:36:147","text":"@inheritdoc CrossDomainMessenger"},"implemented":true,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"2385:15:147","overrides":{"id":90467,"nodeType":"OverrideSpecifier","overrides":[],"src":"2432:8:147"},"parameters":{"id":90466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90465,"mutability":"mutable","name":"_target","nameLocation":"2409:7:147","nodeType":"VariableDeclaration","scope":90487,"src":"2401:15:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90464,"name":"address","nodeType":"ElementaryTypeName","src":"2401:7:147","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2400:17:147"},"returnParameters":{"id":90470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":90487,"src":"2450:4:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90468,"name":"bool","nodeType":"ElementaryTypeName","src":"2450:4:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2449:6:147"},"scope":90488,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":90367,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":108888,"src":"847:20:147"},"id":90368,"nodeType":"InheritanceSpecifier","src":"847:20:147"},{"baseName":{"id":90369,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"869:7:147"},"id":90370,"nodeType":"InheritanceSpecifier","src":"869:7:147"}],"canonicalName":"L2CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":90366,"nodeType":"StructuredDocumentation","src":"448:364:147","text":"@custom:proxied\\n @custom:predeploy 0x4200000000000000000000000000000000000007\\n @title L2CrossDomainMessenger\\n @notice The L2CrossDomainMessenger is a high-level interface for message passing between L1 and\\n L2 on the L2 side. Users are generally encouraged to use this contract instead of lower\\n level message passing contracts."},"fullyImplemented":true,"linearizedBaseContracts":[90488,109417,108888,108366,47114,108325],"name":"L2CrossDomainMessenger","nameLocation":"821:22:147","scope":90489,"usedErrors":[]}],"license":"MIT"},"id":147}')},96025:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"finalizeBridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_from","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_l1ERC721Bridge","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001e600062000024565b62000217565b600054610100900460ff1615808015620000455750600054600160ff909116105b8062000075575062000062306200016d60201b62000a3e1760201c565b15801562000075575060005460ff166001145b620000de5760405162461bcd60e51b8152
38560206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000102576000805461ff0019166101001790555b62000122734200000000000000000000000000000000000007836200017c565b801562000169576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b600054610100900460ff16620001e95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000d5565b600180546001600160a01b039384166001600160a01b03199182161790915560028054929093169116179055565b61160c80620002276000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b6040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f742062652061646472657373283029
38500000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c935
38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b9550604088013561146981611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:148:-:0;;;1576:98;;;;;;;;;-1:-1:-1;1615:52:148::1;1661:1;1615:10;:52::i;:::-;1389:4507:::0;;1813:263;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;1895:174:148::1;480:42:199;2042:15:148::0;1895:19:::1;:174::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;1813:263:148;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:43;;830:2:357;4880:69:43;;;812:21:357;869:2;849:18;;;842:30;908:34;888:18;;;881:62;-1:-1:-1;;;959:18:357;;;952:41;1010:19;;4880:69:43;628:407:357;4880:69:43;3212:9:224::1;:22:::0;;-1:-1:-1;;;;;3212:22:224;;::::1;-1:-1:-1::0;;;;;;3212:22:224;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;628:407:357:-;1389:4507:148;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80637f46ddb211610076578063aa5574521161005b578063aa557452146101c9578063c4d66de8146101dc578063c89701a2146101ef57600080fd5b80637f46ddb21461018d578063927ede2d146101ab57600080fd5b806354fd4d50116100a757806354fd4d50146101225780635c975abb1461016b578063761f44931461017a57600080fd5b80633687011a146100c35780633cb747bf146100d8575b600080fd5b6100d66100d136600461128a565b61020f565b005b6001546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61015e6040518060400160405280600581526020017f312e372e3000000000000000000000000000000000000000000000000000000081525081565b
3856040516101199190611378565b60405160008152602001610119565b6100d661018836600461138b565b6102bb565b60025473ffffffffffffffffffffffffffffffffffffffff166100f8565b60015473ffffffffffffffffffffffffffffffffffffffff166100f8565b6100d66101d7366004611423565b6107d9565b6100d66101ea36600461149a565b610895565b6002546100f89073ffffffffffffffffffffffffffffffffffffffff1681565b333b156102a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732314272696467653a206163636f756e74206973206e6f742065787460448201527f65726e616c6c79206f776e65640000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b38686333388888888610a5a565b505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff16331480156103905750600254600154604080517f6e296e45000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9384169390921691636e296e45916004808201926020929091908290030181865afa158015610354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037891906114b7565b73ffffffffffffffffffffffffffffffffffffffff16145b61041c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792060448201527f62652063616c6c65642066726f6d20746865206f746865722062726964676500606482015260840161029a565b3073ffffffffffffffffffffffffffffffffffffffff8816036104c1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e60448201527f6f742062652073656c6600000000000000000000000000000000000000000000606482015260840161029a565b6104eb877f74259ebf00000000000000000000000000000000000000000000000000000000610fc2565b610577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f4c324552433732314272696467653a206c6f63616c20746f6b656e20696e746560448201527f7266616365206973206e6f7420636f6d706c69616e7400000000000000000000606482015260840161029a565b8673ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e691906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b60448201527f656e20666f72204f7074696d69736d204d696e7461626c65204552433732312060648201527f6c6f63616c20746f6b656e000000000000000000000000000000000000000000608482015260a40161029a565b6040517fa144819400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820185905288169063a144819490604401600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac878787876040516107c8949392919061151d565b60405180910390a450505050505050565b73ffffffffffffffffffffffffffffffffffffffff851661087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4552433732314272696467653a206e667420726563697069656e742063616e6e60448201527f6f74206265206164647265737328302900000000000000000000000000000000606482015260840161029a565b61088c8787338888888888610a5a565b50505050505050565b600054610100900460ff16158080156108b55750600054600160ff909116105b806108cf5750303b1580156108cf575060005460ff166001145b61095b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161029a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156109b957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6109d773420000000000000000000000000000000000000783610fe5565b8015610a3a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff8716610afd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e60448201527f6e6f742062652061646472657373283029
385000000000000000000000000000000606482015260840161029a565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff891690636352211e90602401602060405180830381865afa158015610b68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8c91906114b7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4c324552433732314272696467653a205769746864726177616c206973206e6f60448201527f74206265696e6720696e69746961746564206279204e4654206f776e65720000606482015260840161029a565b60008873ffffffffffffffffffffffffffffffffffffffff1663d6c0b2c46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb791906114b7565b90508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6560448201527f73206e6f74206d6174636820676976656e2076616c7565000000000000000000606482015260840161029a565b6040517f9dc29fac00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018790528a1690639dc29fac90604401600060405180830381600087803b158015610de457600080fd5b505af1158015610df8573d6000803e3d6000fd5b50505050600063761f449360e01b828b8a8a8a8989604051602401610e23979695949392919061155d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260015460025492517f3dbb202b00000000000000000000000000000000000000000000000000000000815291935073ffffffffffffffffffffffffffffffffffffffff90811692633dbb202b92610f0292919091169085908a906004016115ba565b600060405180830381600087803b158015610f1c57600080fd5b505af1158015610f30573d6000803e3d6000fd5b505050508773ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fb7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a58a8a8989604051610fae949392919061151d565b60405180910390a450505050505050505050565b6000610fcd836110cf565b8015610fde5750610fde8383611134565b9392505050565b600054610100900460ff1661107c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161029a565b6001805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560028054929093169116179055565b60006110fb827f01ffc9a700000000000000000000000000000000000000000000000000000000611134565b801561112e575061112c827fffffffff00000000000000000000000000000000000000000000000000000000611134565b155b92915050565b604080517fffffffff000000000000000000000000000000000000000000000000000000008316602480830191909152825180830390910181526044909101909152602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825160009392849283928392918391908a617530fa92503d915060005190508280156111ec575060208210155b80156111f85750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461122557600080fd5b50565b803563ffffffff8116811461123c57600080fd5b919050565b60008083601f84011261125357600080fd5b50813567ffffffffffffffff81111561126b57600080fd5b60208301915083602082850101111561128357600080fd5b9250929050565b60008060008060008060a087890312156112a357600080fd5b86356112ae81611203565b955060208701356112be81611203565b9450604087013593506112d360608801611228565b9250608087013567ffffffffffffffff8111156112ef57600080fd5b6112fb89828a01611241565b979a9699509497509295939492505050565b6000815180845260005b8181101561133357602081850181015186830182015201611317565b81811115611345576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610fde602083018461130d565b600080600080600080600060c0888a0312156113a657600080fd5b87356113b181611203565b965060208801356113c181611203565b955060408801356113d181611203565b945060608801356113e181611203565b93506080880135925060a088013567ffffffffffffffff81111561140457600080fd5b6114108a828b01611241565b989b979a50959850939692959293505050565b600080600080600080600060c0888a03121561143e57600080fd5b873561144981611203565b9650602088013561145981611203565b955060408801356114698
3851611203565b94506060880135935061147e60808901611228565b925060a088013567ffffffffffffffff81111561140457600080fd5b6000602082840312156114ac57600080fd5b8135610fde81611203565b6000602082840312156114c957600080fd5b8151610fde81611203565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff851681528360208201526060604082015260006115536060830184866114d4565b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808a1683528089166020840152808816604084015280871660608401525084608083015260c060a08301526115ad60c0830184866114d4565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006115e9606083018561130d565b905063ffffffff8316604083015294935050505056fea164736f6c634300080f000a","sourceMap":"1389:4507:148:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5688:971:224;;;;;;:::i;:::-;;:::i;:::-;;829:37;;;;;;;;;;;;1732:42:357;1720:55;;;1702:74;;1690:2;1675:18;829:37:224;;;;;;;;1473:40:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4239:82:224:-;;;4286:4;2688:41:357;;2676:2;2661:18;4239:82:224;2548:187:357;2843:1275:148;;;;;;:::i;:::-;;:::i;3858:98:224:-;3938:11;;;;3858:98;;3511:99;3594:9;;;;3511:99;;7885:428;;;;;;:::i;:::-;;:::i;1813:263:148:-;;;;;;:::i;:::-;;:::i;967:33:224:-;;;;;;;;;5688:971;6472:10;1465:19:59;:23;6444:89:224;;;;;;;5483:2:357;6444:89:224;;;5465:21:357;5522:2;5502:18;;;5495:30;5561:34;5541:18;;;5534:62;5632:15;5612:18;;;5605:43;5665:19;;6444:89:224;;;;;;;;;6544:108;6566:11;6579:12;6593:10;6605;6617:8;6627:12;6641:10;;6544:21;:108::i;:::-;5688:971;;;;;;:::o;2843:1275:148:-;2669:9:224;;;;2647:10;:32;:92;;;;-1:-1:-1;2727:11:224;;;2683:9;:32;;;;;;;;2727:11;;;;;2683:9;;;;:30;;:32;;;;;;;;;;;;;;;:9;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;2647:92;2626:202;;;;;;;6153:2:357;2626:202:224;;;6135:21:357;6192:2;6172:18;;;6165:30;6231:34;6211:18;;;6204:62;6302:33;6282:18;;;6275:61;6353:19;;2626:202:224;5951:427:357;2626:202:224;3129:4:148::1;3106:28;::::0;::::1;::::0;3098:83:::1;;;::::0;::::1;::::0;;6585:2:357;3098:83:148::1;::::0;::::1;6567:21:357::0;6624:2;6604:18;;;6597:30;6663:34;6643:18;;;6636:62;6734:12;6714:18;;;6707:40;6764:19;;3098:83:148::1;6383:406:357::0;3098:83:148::1;3331:87;3363:11;3376:41;3331:31;:87::i;:::-;3310:188;;;::::0;::::1;::::0;;6996:2:357;3310:188:148::1;::::0;::::1;6978:21:357::0;7035:2;7015:18;;;7008:30;7074:34;7054:18;;;7047:62;7145:24;7125:18;;;7118:52;7187:19;;3310:188:148::1;6794:418:357::0;3310:188:148::1;3570:11;3546:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3530:66;;:12;:66;;;3509:188;;;::::0;::::1;::::0;;7419:2:357;3509:188:148::1;::::0;::::1;7401:21:357::0;7458:2;7438:18;;;7431:30;7497:34;7477:18;;;7470:62;7568:34;7548:18;;;7541:62;7640:13;7619:19;;;7612:42;7671:19;;3509:188:148::1;7217:479:357::0;3509:188:148::1;3898:60;::::0;;;;:45:::1;7893:55:357::0;;;3898:60:148::1;::::0;::::1;7875:74:357::0;7965:18;;;7958:34;;;3898:45:148;::::1;::::0;::::1;::::0;7848:18:357;;3898:60:148::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4078:5;4029:82;;4064:12;4029:82;;4051:11;4029:82;;;4085:3;4090:8;4100:10;;4029:82;;;;;;;;;:::i;:::-;;;;;;;;2843:1275:::0;;;;;;;:::o;7885:428:224:-;8124:17;;;8116:78;;;;;;;8975:2:357;8116:78:224;;;8957:21:357;9014:2;8994:18;;;8987:30;9053:34;9033:18;;;9026:62;9124:18;9104;;;9097:46;9160:19;;8116:78:224;8773:412:357;8116:78:224;8205:101;8227:11;8240:12;8254:10;8266:3;8271:8;8281:12;8295:10;;8205:21;:101::i;:::-;7885:428;;;;;;;:::o;1813:263:148:-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;9392:2:357;3146:190:43;;;9374:21:357;9431:2;9411:18;;;9404:30;9470:34;9450:18;;;9443:62;9541:16;9521:18;;;9514:44;9575:19;;3146:190:43;9190:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;1895:174:148::1;480:42:199;2042:15:148;1895:19;:174::i;:::-;3461:14:43::0;3457:99;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;9757:36:357;;3531:14:43;;9745:2:357;9730:18;3531:14:43;;;;;;;3457:99;3090:472;1813:263:148;:::o;1175:320:59:-;1465:19;;;:23;;;1175:320::o;4157:1737:148:-;4443:26;;;4435:88;;;;;;;10006:2:357;4435:88:148;;;9988:21:357;10045:2;10025:18;;;10018:30;10084:34;10064:18;;;10057:62;10155:19;10135:18;;;10128:47;10192:19;;4435:88:148;9804:413:357;4435:88:148;4637:54;;;;;;;;10368:25:357;;;4637:44:148;;;;;;10341:18:357;;4637:54:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4628:63;;:5;:63;;;4607:172;;;;;;;10606:2:357;4607:172:148;;;10588:21:357;10645:2;10625:18;;;10618:30;10684:34;10664:18;;;10657:62;10755:32;10735:18;;;10728:60;10805:19;;4607:172:148;10404:426:357;4607:172:148;4930:19;4976:11;4952:48;;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4930:72;;5035:12;5020:27;;:11;:27;;;5012:95;;;;;;;11037:2:357;5012:95:148;;;11019:21:357;11076:2;11056:18;;;11049:30;11115:34;11095:18;;;11088:62;11186:25;11166:18;;;11159:53;11229:19;;5012:95:148;10835:419:357;5012:95:148;5287:58;;;;;:41;7893:55:357;;;5287:58:148;;;7875:74:357;7965:18;;;7958:34;;;5287:41:148;;;;;7848:18:357;;5287:58:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5356:20;5415:44;;;5461:11;5474;5487:5;5494:3;5499:8;5509:10;;5379:150;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5632:9;;5673:11;;5632:103;;;;;5379:150;;-1:-1:-1;5632:9:148;;;;;:21;;:103;;5673:11;;;;;5379:150;;5720:12;;5632:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5854:5;5806:81;;5841:11;5806:81;;5828:11;5806:81;;;5861:3;5866:8;5876:10;;5806:81;;;;;;;;;:::i;:::-;;;;;;;;4425:1469;;4157:1737;;;;;;;;:::o;1333:274:67:-;1420:4;1527:23;1542:7;1527:14;:23::i;:::-;:73;;;;;1554:46;1579:7;1588:11;1554:24;:46::i;:::-;1520:80;1333:274;-1:-1:-1;;;1333:274:67:o;3043:234:224:-;4888:13:43;;;;;;;4880:69;;;;;;;12595:2:357;4880:69:43;;;12577:21:357;12634:2;12614:18;;;12607:30;12673:34;12653:18;;;12646:62;12744:13;12724:18;;;12717:41;12775:19;;4880:69:43;12393:407:357;4880:69:43;3212:9:224::1;:22:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;3244:11:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;3043:234::o;704:411:67:-;768:4;975:60;1000:7;1009:25;975:24;:60::i;:::-;:133;;;;-1:-1:-1;1052:56:67;1077:7;1086:21;1052:24;:56::i;:::-;1051:57;975:133;956:152;704:411;-1:-1:-1;;704:411:67:o;4223:638::-;4385:71;;;12979:66:357;12967:79;;4385:71:67;;;;12949:98:357;;;;4385:71:67;;;;;;;;;;12922:18:357;;;;4385:71:67;;;;;;;;;;;4408:34;4385:71;;;4664:20;;4316:4;;4385:71;4316:4;;;;;;4385:71;4316:4;;4664:20;4629:7;4622:5;4611:86;4600:97;;4724:16;4710:30;;4774:4;4768:11;4753:26;;4806:7;:29;;;;;4831:4;4817:10;:18;;4806:29;:48;;;;;4853:1;4839:11;:15;4806:48;4799:55;4223:638;-1:-1:-1;;;;;;;4223:638:67:o;14:154:357:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:163::-;240:20;;300:10;289:22;;279:33;;269:61;;326:1;323;316:12;269:61;173:163;;;:::o;341:347::-;392:8;402:6;456:3;449:4;441:6;437:17;433:27;423:55;;474:1;471;464:12;423:55;-1:-1:-1;497:20:357;;540:18;529:30;;526:50;;;572:1;569;562:12;526:50;609:4;601:6;597:17;585:29;;661:3;654:4;645:6;637;633:19;629:30;626:39;623:59;;;678:1;675;668:12;623:59;341:347;;;;;:::o;693:827::-;798:6;806;814;822;830;838;891:3;879:9;870:7;866:23;862:33;859:53;;;908:1;905;898:12;859:53;947:9;934:23;966:31;991:5;966:31;:::i;:::-;1016:5;-1:-1:-1;1073:2:357;1058:18;;1045:32;1086:33;1045:32;1086:33;:::i;:::-;1138:7;-1:-1:-1;1192:2:357;1177:18;;1164:32;;-1:-1:-1;1215:37:357;1248:2;1233:18;;1215:37;:::i;:::-;1205:47;;1303:3;1292:9;1288:19;1275:33;1331:18;1323:6;1320:30;1317:50;;;1363:1;1360;1353:12;1317:50;1402:58;1452:7;1443:6;1432:9;1428:22;1402:58;:::i;:::-;693:827;;;;-1:-1:-1;693:827:357;;-1:-1:-1;693:827:357;;1479:8;;693:827;-1:-1:-1;;;693:827:357:o;1787:531::-;1829:3;1867:5;1861:12;1894:6;1889:3;1882:19;
3851919:1;1929:162;1943:6;1940:1;1937:13;1929:162;;;2005:4;2061:13;;;2057:22;;2051:29;2033:11;;;2029:20;;2022:59;1958:12;1929:162;;;2109:6;2106:1;2103:13;2100:87;;;2175:1;2168:4;2159:6;2154:3;2150:16;2146:27;2139:38;2100:87;-1:-1:-1;2232:2:357;2220:15;2237:66;2216:88;2207:98;;;;2307:4;2203:109;;1787:531;-1:-1:-1;;1787:531:357:o;2323:220::-;2472:2;2461:9;2454:21;2435:4;2492:45;2533:2;2522:9;2518:18;2510:6;2492:45;:::i;2740:1038::-;2855:6;2863;2871;2879;2887;2895;2903;2956:3;2944:9;2935:7;2931:23;2927:33;2924:53;;;2973:1;2970;2963:12;2924:53;3012:9;2999:23;3031:31;3056:5;3031:31;:::i;:::-;3081:5;-1:-1:-1;3138:2:357;3123:18;;3110:32;3151:33;3110:32;3151:33;:::i;:::-;3203:7;-1:-1:-1;3262:2:357;3247:18;;3234:32;3275:33;3234:32;3275:33;:::i;:::-;3327:7;-1:-1:-1;3386:2:357;3371:18;;3358:32;3399:33;3358:32;3399:33;:::i;:::-;3451:7;-1:-1:-1;3505:3:357;3490:19;;3477:33;;-1:-1:-1;3561:3:357;3546:19;;3533:33;3589:18;3578:30;;3575:50;;;3621:1;3618;3611:12;3575:50;3660:58;3710:7;3701:6;3690:9;3686:22;3660:58;:::i;:::-;2740:1038;;;;-1:-1:-1;2740:1038:357;;-1:-1:-1;2740:1038:357;;;;3634:84;;-1:-1:-1;;;2740:1038:357:o;4047:969::-;4161:6;4169;4177;4185;4193;4201;4209;4262:3;4250:9;4241:7;4237:23;4233:33;4230:53;;;4279:1;4276;4269:12;4230:53;4318:9;4305:23;4337:31;4362:5;4337:31;:::i;:::-;4387:5;-1:-1:-1;4444:2:357;4429:18;;4416:32;4457:33;4416:32;4457:33;:::i;:::-;4509:7;-1:-1:-1;4568:2:357;4553:18;;4540:32;4581:33;4540:32;4581:33;:::i;:::-;4633:7;-1:-1:-1;4687:2:357;4672:18;;4659:32;;-1:-1:-1;4710:38:357;4743:3;4728:19;;4710:38;:::i;:::-;4700:48;;4799:3;4788:9;4784:19;4771:33;4827:18;4819:6;4816:30;4813:50;;;4859:1;4856;4849:12;5021:255;5088:6;5141:2;5129:9;5120:7;5116:23;5112:32;5109:52;;;5157:1;5154;5147:12;5109:52;5196:9;5183:23;5215:31;5240:5;5215:31;:::i;5695:251::-;5765:6;5818:2;5806:9;5797:7;5793:23;5789:32;5786:52;;;5834:1;5831;5824:12;5786:52;5866:9;5860:16;5885:31;5910:5;5885:31;:::i;8003:325::-;8091:6;8086:3;8079:19;8143:6;8136:5;8129:4;8124:3;8120:14;8107:43;;8195:1;8188:4;8179:6;8174:3;8170:16;8166:27;8159:38;8061:3;8317:4;8247:66;8242:2;8234:6;8230:15;8226:88;8221:3;8217:98;8213:109;8206:116;;8003:325;;;;:::o;8333:435::-;8558:42;8550:6;8546:55;8535:9;8528:74;8638:6;8633:2;8622:9;8618:18;8611:34;8681:2;8676;8665:9;8661:18;8654:30;8509:4;8701:61;8758:2;8747:9;8743:18;8735:6;8727;8701:61;:::i;:::-;8693:69;8333:435;-1:-1:-1;;;;;;8333:435:357:o;11259:700::-;11519:4;11548:42;11629:2;11621:6;11617:15;11606:9;11599:34;11681:2;11673:6;11669:15;11664:2;11653:9;11649:18;11642:43;11733:2;11725:6;11721:15;11716:2;11705:9;11701:18;11694:43;11785:2;11777:6;11773:15;11768:2;11757:9;11753:18;11746:43;;11826:6;11820:3;11809:9;11805:19;11798:35;11870:3;11864;11853:9;11849:19;11842:32;11891:62;11948:3;11937:9;11933:19;11925:6;11917;11891:62;:::i;:::-;11883:70;11259:700;-1:-1:-1;;;;;;;;;11259:700:357:o;11964:424::-;12177:42;12169:6;12165:55;12154:9;12147:74;12257:2;12252;12241:9;12237:18;12230:30;12128:4;12277:45;12318:2;12307:9;12303:18;12295:6;12277:45;:::i;:::-;12269:53;;12370:10;12362:6;12358:23;12353:2;12342:9;12338:18;12331:51;11964:424;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","finalizeBridgeERC721(address,address,address,address,uint256,bytes)":"761f4493","initialize(address)":"c4d66de8","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenId\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"ERC721BridgeFinalized\\",\\"type\\":\\"event\\"}
385,{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"tokenId\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"ERC721BridgeInitiated\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"uint8\\",\\"name\\":\\"version\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"Initialized\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"MESSENGER\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"OTHER_BRIDGE\\",\\"outputs\\":[{\\"internalType\\":\\"contract StandardBridge\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"bridgeERC721\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"uint32\\",\\"name\\":\\"_minGasLimit\\",\\"type\\":\\"uint32\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"bridgeERC721To\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_localToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_from\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_tokenId\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_extraData\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"finalizeBridgeERC721\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address payable\\",\\"name\\":\\"_l1ERC721Bridge\\",\\"type\\":\\"address\\"}],\\"name\\":\\"initialize\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"messenger\\",\\"outputs\\":[{\\"internalType\\":\\"contract CrossDomainMessenger\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"otherBridge\\",\\"outputs\\":[{\\"internalType\\":\\"contract StandardBridge\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"paused\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}
385,{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"kind\\":\\"dev\\",\\"methods\\":{\\"MESSENGER()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Messenger contract on this domain.\\"}},\\"OTHER_BRIDGE()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Contract of the bridge on the other network.\\"}},\\"bridgeERC721(address,address,uint256,uint32,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_localToken\\":\\"Address of the ERC721 on this domain.\\",\\"_minGasLimit\\":\\"Minimum gas limit for the bridge message on the other domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 on the remote domain.\\",\\"_tokenId\\":\\"Token ID to bridge.\\"}},\\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_localToken\\":\\"Address of the ERC721 on this domain.\\",\\"_minGasLimit\\":\\"Minimum gas limit for the bridge message on the other domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 on the remote domain.\\",\\"_to\\":\\"Address to receive the token on the other domain.\\",\\"_tokenId\\":\\"Token ID to bridge.\\"}},\\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\\":{\\"params\\":{\\"_extraData\\":\\"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.\\",\\"_from\\":\\"Address that triggered the bridge on the other domain.\\",\\"_localToken\\":\\"Address of the ERC721 token on this domain.\\",\\"_remoteToken\\":\\"Address of the ERC721 token on the other domain.\\",\\"_to\\":\\"Address to receive the token on this domain.\\",\\"_tokenId\\":\\"ID of the token being deposited.\\"}},\\"initialize(address)\\":{\\"params\\":{\\"_l1ERC721Bridge\\":\\"Address of the ERC721 bridge contract on the other network.\\"}},\\"paused()\\":{\\"returns\\":{\\"_0\\":\\"Whether or not the contract is paused.\\"}}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"1.7.0\\"}},\\"title\\":\\"L2ERC721Bridge\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Emitted when an ERC721 bridge from the other network is finalized.\\"},\\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Emitted when an ERC721 bridge to the other network is initiated.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"MESSENGER()\\":{\\"notice\\":\\"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead.\\"},\\"OTHER_BRIDGE()\\":{\\"notice\\":\\"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\\"},\\"bridgeERC721(address,address,uint256,uint32,bytes)\\":{\\"notice\\":\\"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\\"},\\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\\":{\\"notice\\":\\"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\\"},\\"constructor\\":{\\"notice\\":\\"Constructs the L2ERC721Bridge contract.\\"},\\"finalizeBridgeERC721(address,address,address,address,uint256,bytes)\\":{\\"notice\\":\\"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain.\\"},\\"initialize(address)\\":{\\"notice\\":\\"Initializes the contract.\\"},\\"messenger()\\":{\\"notice\\":\\"Messenger contract on this domain.\\"},\\"otherBridge()\\":{\\"notice\\":\\"Contract of the bridge on the other network.\\"},\\"paused()\\":{\\"notice\\":\\"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op.\\"}},\\"notice\\":\\"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge. This contract also acts as a burner for tokens being withdrawn. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2.\\",\\"ver
385sion\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L2/L2ERC721Bridge.sol\\":\\"L2ERC721Bridge\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\\",\\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\\"]},\\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\\":{\\"keccak256\\":\\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\\",\\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\\"]},\\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\\",\\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\\":{\\"keccak256\\":\\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\\",\\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\\":{\\"keccak256\\":\\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\\",\\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\\":{\\"keccak256\\":\\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\\",\\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\\":{\\"keccak256\\":\\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\\",\\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\\":{\\"keccak256\\":\\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\\",\\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\\":{\\"keccak256\\":\\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\\",\\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\\":{\\"keccak256\\":\\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\\",\\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\":{\\"keccak256\\":\\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\\",\\"dweb:/ipfs/QmPGWT2x3QHcKxqe
3856gRmAkdakhbaRgx3DLzcakHz5M4eXG\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Context.sol\\":{\\"keccak256\\":\\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\\",\\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\\":{\\"keccak256\\":\\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\\",\\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\\":{\\"keccak256\\":\\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\\",\\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\\":{\\"keccak256\\":\\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\\",\\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\\"]},\\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\\":{\\"keccak256\\":\\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\\",\\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\\"]},\\"lib/solmate/src/utils/FixedPointMathLib.sol\\":{\\"keccak256\\":\\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\\",\\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\\"]},\\"src/L1/L1ERC721Bridge.sol\\":{\\"keccak256\\":\\"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db\\",\\"dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK\\"]},\\"src/L1/ResourceMetering.sol\\":{\\"keccak256\\":\\"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409\\",\\"dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM\\"]},\\"src/L1/SuperchainConfig.sol\\":{\\"keccak256\\":\\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\\",\\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\\"]},\\"src/L2/L2ERC721Bridge.sol\\":{\\"keccak256\\":\\"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f\\",\\"dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat\\"]},\\"src/libraries/Arithmetic.sol\\":{\\"keccak256\\":\\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\\",\\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\\"]},\\"src/libraries/Burn.sol\\":{\\"keccak256\\":\\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\\",\\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\\"]},\\"src/libraries/Constants.sol\\":{\\"keccak256\\":\\"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b\\",\\"dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp\\"]},\\"src/libraries/Encoding.sol\\":{\\"keccak256\\":\\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\\",\\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\\"]},\\"src/libraries/Hashing.sol\\":{\\"keccak256\\":\\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\\",\\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\\"]},\\"src/libraries/Predeploys.sol\\":{\\"keccak256\\":\\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\\",\\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\\"]},\\"src/libraries/SafeCall.sol\\":{\\"keccak256\\":\\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\\",\\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\\"]},\\"src/libraries/Storage.sol\\":{\\"keccak256\\":\\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\\",\\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\\"]},\\"src/libraries/Types.sol\\":{\\"keccak256\\":\\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\\",\\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\\"]},\\"src/libraries/rlp/RLPWriter.sol\\":{\\"keccak256\\":\\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0
38570f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\\",\\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\\"]},\\"src/universal/CrossDomainMessenger.sol\\":{\\"keccak256\\":\\"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1\\",\\"dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n\\"]},\\"src/universal/ERC721Bridge.sol\\":{\\"keccak256\\":\\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\\",\\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\\"]},\\"src/universal/IOptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\\",\\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\\"]},\\"src/universal/IOptimismMintableERC721.sol\\":{\\"keccak256\\":\\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\\",\\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/universal/OptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f
3851ceef90c5cd3a3a7\\",\\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\\"]},\\"src/universal/StandardBridge.sol\\":{\\"keccak256\\":\\"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8\\",\\"dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"finalizeBridgeERC721"},{"inputs":[{"internalType":"address payable","name":"_l1ERC721Bridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ERC721Bridge.sol":"L2ERC721Bridge"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c5367764
38507b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPe
385C"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/L1ERC721Bridge.sol":{"keccak256":"0x2a3177a2b025bf7ac58450d7dfc7f4f984a265b651d9f57f83c4b43d9fe5ebdd","urls":["bzz-raw://2f24ea47b324c2683f3dd00f5b47c93bfe7b45fda3dd85c2fc08999c2f1e62db","dweb:/ipfs/QmTKM64r67YGyRamy2pwBA47N7HeD6fk5HEMd3nM3vNkAK"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0xde3ac62c60f27a3f1ba06eec94f4eda45e7ec5544c6a5d6b79543a7184e44408","urls":["bzz-raw://265a2845c4ff0d9076dd0505755cf2bdf799f4fdc09ef016865a26b51f5c3409","dweb:/ipfs/QmRzSdBD8jmQf3U9u2ATRAzzuyo6c5ugz8VA5ZM4vzoGiM"],"license":"MIT"},"src/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"license":"MIT"},"src/L2/L2ERC721Bridge.sol":{"keccak256":"0xcacb39a7b6e5d2d5293834195363397010130ab88d2f4de860277dae6d4265f9","urls":["bzz-raw://f6cdcf63276957f9ca614567394b11ab3f6877baa5a6d33bf54dd8022ca2021f","dweb:/ipfs/QmZQBBfjk2UPLFtKeTd5DJCTRWw1KxKbQMmWr8WVDzZsat"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0xe0aeec7d6e5d1e44a11405d3b5bfc384ea092c39bea0b763ab937a26fd427132","urls":["bzz-raw://11aa3bff9da26ca2545132ec7994866690446a5321023811c254410d9593bd9b","dweb:/ipfs/QmVxWqadxvdfkqdrhfWisDqeAthibn4HEE1P6o9aFxXLhp"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Predeploys.sol":{"keccak256":"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02","urls":["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663","dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://0
38570f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0x330ae1479e88fc8a8b5b27a84df935a092a47ad13e59d9b9ea4982ad31bbe7b0","urls":["bzz-raw://66bf5fb4e78a03dcad4b9a8e2d5ed135f8e989aa02090747386843383fa6b7d1","dweb:/ipfs/QmTp66RoF6EaKeBrrZBuYAu3dsMfKo8de2XY9iHHnqfN3n"],"license":"MIT"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f
3851ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x1a2f6afd7f14430ae2b797e09497c3dc860ed5db752e1847e30649668060c01d","urls":["bzz-raw://fefe1356cdeb5b324e4e63e1c723c08f9e244ef2ef133b9f5df0cc0d180eeaa8","dweb:/ipfs/QmZzR3zWKodwdwrdWwXUyh7G3qcFn2cjUQLrE45gRyQMn3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":108906,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":108910,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)108888"},{"astId":108914,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)111675"},{"astId":108919,"contract":"src/L2/L2ERC721Bridge.sol:L2ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"}],"types":{"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)108888":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)111675":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract. Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address. Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller\'s account on the other chain. Note that this function can only be called by EOAs. Smart contract wallets should use the `bridgeERC721To` function after ensuring that the recipient address on the remote chain exists. Also note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient\'s account on the other chain. Note that the current owner of the token on this chain must approve this contract to operate the NFT before it can be bridged. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge only supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"constructor":{"notice":"Constructs the L2ERC721Bridge contract."},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"notice":"Completes an ERC721 bridge from the other domain and sends the ERC721 token to the recipient on this domain."},"initialize(address)":{"notice":"Initializes the contract."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused. On L1 this function will check the SuperchainConfig for its paused status. On L2 this function should be a no-op."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}},"notice":"The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge. This contract also acts as a burner for tokens being withdrawn. **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to wait for the one-week challenge period to elapse before their Optimism-native NFT can be refunded on L2."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not be used to execute any code on the other chain and is only emitted as extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"finalizeBridgeERC721(address,address,address,address,uint256,bytes)":{"params":{"_extraData":"Optional data to forward to L1. Data supplied here will not be used to execute any code on L1 and is only emitted as extra data for the convenience of off-chain tooling.","_from":"Address that triggered the bridge on the other domain.","_localToken":"Address of the ERC721 token on this domain.","_remoteToken":"Address of the ERC721 token on the other domain.","_to":"Address to receive the token on this domain.","_tokenId":"ID of the token being deposited."}},"initialize(address)":{"params":{"_l1ERC721Bridge":"Address of the ERC721 bridge contract on the other network."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"title":"L2ERC721Bridge"},"ast":{"absolutePath":"src/L2/L2ERC721Bridge.sol","id":90724,"exportedSymbols":{"Constants":[103096],"CrossDomainMessenger":[108888],"ERC165Checker":[54434],"ERC721Bridge":[109118],"IOptimismMintableERC721":[109407],"ISemver":[109417],"L1ERC721Bridge":[85418],"L2ERC721Bridge":[90723],"Predeploys":[104124],"StandardBridge":[111675]},"nodeType":"SourceUnit","src":"32:5865:148","nodes":[{"id":90490,"nodeType":"PragmaDirective","src":"32:23:148","nodes":[],"literals":["solidity","0.8",".15"]},{"id":90492,"nodeType":"ImportDirective","src":"57:62:148","nodes":[],"absolutePath":"src/universal/ERC721Bridge.sol","file":"src/universal/ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109119,"symbolAliases":[{"foreign":{"id":90491,"name":"ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109118,"src":"66:12:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90494,"nodeType":"ImportDirective","src":"120:94:148","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":54435,"symbolAliases":[{"foreign":{"id":90493,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54434,"src":"129:13:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90496,"nodeType":"ImportDirective","src":"215:59:148","nodes":[],"absolutePath":"src/L1/L1ERC721Bridge.sol","file":"src/L1/L1ERC721Bridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":85419,"symbolAliases":[{"foreign":{"id":90495,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85418,"src":"224:14:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90498,"nodeType":"ImportDirective","src":"275:84:148","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC721.sol","file":"src/universal/IOptimismMintableERC721.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109408,"symbolAliases":[{"foreign":{"id":90497,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"284:23:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90500,"nodeType":"ImportDirective","src":"360:78:148","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":108889,"symbolAliases":[{"foreign":{"id":90499,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"369:20:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90502,"nodeType":"ImportDirective","src":"439:66:148","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":111676,"symbolAliases":[{"foreign":{"id":90501,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"448:14:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90504,"nodeType":"ImportDirective","src":"506:52:148","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":90503,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"515:7:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90506,"nodeType":"ImportDirective","src":"559:56:148","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":103097,"symbolAliases":[{"foreign":{"id":90505,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103096,"src":"568:9:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90508,"nodeType":"ImportDirective","src":"616:58:148","nodes":[],"absolutePath":"src/libraries/Predeploys.sol","file":"src/libraries/Predeploys.sol","nameLocation":"-1:-1:-1","scope":90724,"sourceUnit":104125,"symbolAliases":[{"foreign":{"id":90507,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"625:10:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":90723,"nodeType":"ContractDefinition","src":"1389:4507:148","nodes":[{"id":90517,"nodeType":"VariableDeclaration","src":"1473:40:148","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":90514,"nodeType":"StructuredDocumentation","src":"1444:24
385:148","text":"@custom:semver 1.7.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1496:7:148","scope":90723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":90515,"name":"string","nodeType":"ElementaryTypeName","src":"1473:6:148","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e372e30","id":90516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1506:7:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcd77289efc7773aa152b2b29fc41f05d9109a509f3f68a18547b233f97c1fdc","typeString":"literal_string \\"1.7.0\\""},"value":"1.7.0"},"visibility":"public"},{"id":90534,"nodeType":"FunctionDefinition","src":"1576:98:148","nodes":[],"body":{"id":90533,"nodeType":"Block","src":"1605:69:148","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":90528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1661:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1653:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90526,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:148","typeDescriptions":{}}},"id":90529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:10:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1645:8:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":90524,"name":"address","nodeType":"ElementaryTypeName","src":"1645:8:148","stateMutability":"payable","typeDescriptions":{}}},"id":90530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1645:19:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90523,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90553,"src":"1615:10:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":90531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_l1ERC721Bridge"],"nodeType":"FunctionCall","src":"1615:52:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90532,"nodeType":"ExpressionStatement","src":"1615:52:148"}]},"documentation":{"id":90518,"nodeType":"StructuredDocumentation","src":"1520:51:148","text":"@notice Constructs the L2ERC721Bridge contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":90521,"kind":"baseConstructorSpecifier","modifierName":{"id":90520,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1590:12:148"},"nodeType":"ModifierInvocation","src":"1590:14:148"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":90519,"nodeType":"ParameterList","parameters":[],"src":"1587:2:148"},"returnParameters":{"id":90522,"nodeType":"ParameterList","parameters":[],"src":"1605:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90553,"nodeType":"FunctionDefinition","src":"1813:263:148","nodes":[],"body":{"id":90552,"nodeType":"Block","src":"1885:191:148","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":90544,"name":"Predeploys","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104124,"src":"1962:10:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Predeploys_$104124_$","typeString":"type(library Predeploys)"}},"id":90545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"L2_CROSS_DOMAIN_MESSENGER","no
385deType":"MemberAccess","referencedDeclaration":104004,"src":"1962:36:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90543,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108888,"src":"1941:20:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CrossDomainMessenger_$108888_$","typeString":"type(contract CrossDomainMessenger)"}},"id":90546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:58:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},{"arguments":[{"id":90548,"name":"_l1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90537,"src":"2042:15:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":90547,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111675,"src":"2027:14:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StandardBridge_$111675_$","typeString":"type(contract StandardBridge)"}},"id":90549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2027:31:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"},{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90542,"name":"__ERC721Bridge_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108995,"src":"1895:19:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_CrossDomainMessenger_$108888_$_t_contract$_StandardBridge_$111675_$returns$__$","typeString":"function (contract CrossDomainMessenger,contract StandardBridge)"}},"id":90550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_messenger","_otherBridge"],"nodeType":"FunctionCall","src":"1895:174:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90551,"nodeType":"ExpressionStatement","src":"1895:174:148"}]},"documentation":{"id":90535,"nodeType":"StructuredDocumentation","src":"1680:128:148","text":"@notice Initializes the contract.\\n @param _l1ERC721Bridge Address of the ERC721 bridge contract on the other network."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":90540,"kind":"modifierInvocation","modifierName":{"id":90539,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"1873:11:148"},"nodeType":"ModifierInvocation","src":"1873:11:148"}],"name":"initialize","nameLocation":"1822:10:148","parameters":{"id":90538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90537,"mutability":"mutable","name":"_l1ERC721Bridge","nameLocation":"1849:15:148","nodeType":"VariableDeclaration","scope":90553,"src":"1833:31:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":90536,"name":"address","nodeType":"ElementaryTypeName","src":"1833:15:148","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"1832:33:148"},"returnParameters":{"id":90541,"nodeType":"ParameterList","parameters":[],"src":"1885:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":90622,"nodeType":"FunctionDefinition","src":"2843:1275:148","nodes":[],"body":{"id":90621,"nodeType":"Block","src":"3088:1030:148","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90572,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3106:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}
385,"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":90575,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3129:4:148","typeDescriptions":{"typeIdentifier":"t_contract$_L2ERC721Bridge_$90723","typeString":"contract L2ERC721Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ERC721Bridge_$90723","typeString":"contract L2ERC721Bridge"}],"id":90574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3121:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90573,"name":"address","nodeType":"ElementaryTypeName","src":"3121:7:148","typeDescriptions":{}}},"id":90576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3121:13:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3106:28:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e2063616e6e6f742062652073656c66","id":90578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:44:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \\"L2ERC721Bridge: local token cannot be self\\""},"value":"L2ERC721Bridge: local token cannot be self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e18be074e522c384c2b459d3f552ca9fb14628371ea9e81c37dfc2875bec911","typeString":"literal_string \\"L2ERC721Bridge: local token cannot be self\\""}],"id":90571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3098:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3098:83:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90580,"nodeType":"ExpressionStatement","src":"3098:83:148"},{"expression":{"arguments":[{"arguments":[{"id":90584,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3363:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"arguments":[{"id":90586,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3381:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}],"id":90585,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3376:4:148","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":90587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3376:29:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC721_$109407","typeString":"type(contract IOptimismMintableERC721)"}},"id":90588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3376:41:148","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":90582,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54434,"src":"3331:13:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC165Checker_$54434_$","typeString":"type(library ERC165Checker)"}},"id":90583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":54290,"src":"3331:31:148","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":90589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3331:87:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a206c6f63616c20746f6b656e20696e74657266616365206973206e6f7420636f6d706c69616e74","id":90590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3432:56:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \\"L2ERC721Bridge: local token interface is not compliant\\""},"value":"L2ERC721Bridge: local token interface is not compliant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07efea2f6062b2acb6eac32db41367de7f7d64803f2496130d2183dc5a0651ad","typeString":"literal_string \\"L2ERC721Bridge: local token interface is not compliant\\""}],"id":90581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3310:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3310:188:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90592,"nodeType":"ExpressionStatement","src":"3310:188:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90594,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90558,"src":"3530:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":90596,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3570:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90595,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3546:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":109400,"src":"3546:48:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":90599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3546:50:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3530:66:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2077726f6e672072656d6f746520746f6b656e20666f72204f7074696d69736d204d696e7461626c6520455243373231206c6f63616c20746f6b656e","id":90601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3610:77:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \\"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\\""},"value":"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a297b13cacd808a47e4a8cb030741295c70e2e66399d9c0dd47e18d6f766c6dd","typeString":"literal_string \\"L2ERC721Bridge: wrong remote token for Optimism Mintable ERC721 local token\\""}],"id":90593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3509:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3509:188:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90603,"nodeType":"ExpressionStatement","src":"3509:188:148"},{"expression":{"arguments":[{"id":90608,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90562,"src":"3944:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90609,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90564,"src":"3949:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90605,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"3922:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90604,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"3898:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeMint","nodeType":"MemberAccess","referencedDeclaration":109362,"src":"3898:45:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":90610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:60:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90611,"nodeType":"ExpressionStatement","src":"3898:60:148"},{"eventCall":{"arguments":[{"id":90613,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90556,"src":"4051:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90614,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90558,"src":"4064:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90615,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90560,"src":"4078:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90616,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90562,"src":"4085:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90617,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90564,"src":"4090:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90618,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90566,"src":"4100:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90612,"name":"ERC721BridgeFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108949,"src":"4029:21:148","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":90619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:82:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90620,"nodeType":"EmitStatement","src":"4024:87:148"}]},"documentation":{"id":90554,"nodeType":"StructuredDocumentation","src":"2082:756:148","text":"@notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the\\n recipient on this domain.\\n @param _localToken Address of the ERC721 token on this domain.\\n @param _remoteToken Address of the ERC721 token on the other domain.\\n @param _from Address that triggered the bridge on the other domain.\\n @param _to Address to receive the token on this domain.\\n @param _tokenId ID of the token being deposited.\\n @param _extraData Optional data to forward to L1.\\n Data supplied here will not be used to execute any code on L1 and is\\n only emitted as extra data for the convenience of off-chain tooling."},"functionSelector":"761f4493","implemented":true,"kind":"function","modifiers":[{"id":90569,"kind":"modifierInvocation","modifierName":{"id":90568,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":108974,"src":"3068:15:148"},"nodeType":"ModifierInvocation","src":"3068:15:148"}],"name":"finalizeBridgeERC721","nameLocation":"2852:20:148","parameters":{"id":90567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90556,"mutability":"mutable","name":"_localToken","nameLocation":"2890:11:148","nodeType":"VariableDeclaration","scope":90622,"src":"2882:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90555,"name":"address","nodeType":"ElementaryTypeName","src":"2882:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90558,"mutability":"mutable","name":"_remoteToken","nameLocation":"2919:12:148","nodeType":"VariableDeclaration","scope":90622,"src":"2911:20:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90557,"name":"address","nodeType":"ElementaryTypeName","src":"2911:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90560,"mutability":"mutable","name":"_from","nameLocation":"2949:5:148","nodeType":"VariableDeclaration","scope":90622,"src":"2941:13:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90559,"name":"address","nodeType":"ElementaryTypeName","src":"2941:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90562,"mutability":"mutable","name":"_to","nameLocation":"2972:3:148","nodeType":"VariableDeclaration","scope":90622,"src":"2964:11:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90561,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90564,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:148","nodeType":"VariableDeclaration","scope":90622,"src":"2985:16:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90563,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90566,"mutability":"mutable","name":"_extraData","nameLocation":"3026:10:148","nodeType":"VariableDeclaration","scope":90622,"src":"3011:25:148","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90565,"name":"bytes","nodeType":"ElementaryTypeName","src":"3011:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2872:170:148"},"returnParameters":{"id":90570,"nodeType":"ParameterList","parameters":[],"src":"3088:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":90722,"nodeType":"FunctionDefinition","src":"4157:1737:148","nodes":[],"body":{"id":90721,"nodeType":"Block","src":"4425:1469:148","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90642,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90627,"src":"4443:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}
385,"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":90645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4467:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":90644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4459:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90643,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:148","typeDescriptions":{}}},"id":90646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:10:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4443:26:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":90648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4471:51:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \\"L2ERC721Bridge: remote token cannot be address(0)\\""},"value":"L2ERC721Bridge: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dda13b674104cff93529fc9113589ef9eda6a9e3d2414ccc2ce12f79952de0f9","typeString":"literal_string \\"L2ERC721Bridge: remote token cannot be address(0)\\""}],"id":90641,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4435:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:88:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90650,"nodeType":"ExpressionStatement","src":"4435:88:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90652,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"4628:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":90657,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"4682:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90654,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"4661:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90653,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"4637:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":52493,"src":"4637:44:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":90658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4637:54:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4628:63:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a205769746864726177616c206973206e6f74206265696e6720696e69746961746564206279204e4654206f776e6572","id":90660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:64:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \\"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\\""},"value":"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ee75d9b9b0c7320a30e3101dd31a8695dfeba929ef037ce562e2025d1f1db7f","typeString":"literal_string \\"L2ERC721Bridge: Withdrawal is not being initiated by NFT owner\\""}],"id":90651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4607:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4607:172:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90662,"nodeType":"ExpressionStatement","src":"4607:172:148"},{"assignments":[90664],"declarations":[{"constant":false,"id":90664,"mutability":"mutable","name":"remoteToken","nameLocation":"4938:11:148","nodeType":"VariableDeclaration","scope":90721,"src":"4930:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90663,"name":"address","nodeType":"ElementaryTypeName","src":"4930:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":90670,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":90666,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"4976:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90665,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"4952:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remoteToken","nodeType":"MemberAccess","referencedDeclaration":109400,"src":"4952:48:148","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":90669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4952:50:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4930:72:148"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":90674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":90672,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5020:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":90673,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90627,"src":"5035:12:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5020:27:148","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c324552433732314272696467653a2072656d6f746520746f6b656e20646f6573206e6f74206d6174636820676976656e2076616c7565","id":90675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5049:57:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \\"L2ERC721Bridge: remote token does not match given value\\""},"value":"L2ERC721Bridge: remote token does not match given value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3a41ad0de9429285711503556faaaf7a96337a91d3717dc15ffb9a52d12e98d9","typeString":"literal_string \\"L2ERC721Bridge: remote token does not match given value\\""}],"id":90671,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5012:7:148","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":90676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5012:95:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90677,"nodeType":"ExpressionStatement","src":"5012:95:148"},{"expression":{"arguments":[{"id":90682,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5329:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90683,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5336:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":90679,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5311:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90678,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109407,"src":"5287:23:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$109407_$","typeString":"type(contract IOptimismMintableERC721)"}},"id":90680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:36:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptimismMintableERC721_$109407","typeString":"contract IOptimismMintableERC721"}},"id":90681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":109370,"src":"5287:41:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":90684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:58:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90685,"nodeType":"ExpressionStatement","src":"5287:58:148"},{"assignments":[90687],"declarations":[{"constant":false,"id":90687,"mutability":"mutable","name":"message","nameLocation":"5369:7:148","nodeType":"VariableDeclaration","scope":90721,"src":"5356:20:148","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":90686,"name":"bytes","nodeType":"ElementaryTypeName","src":"5356:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":90700,"initialValue":{"arguments":[{"expression":{"expression":{"id":90690,"name":"L1ERC721Bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85418,"src":"5415:14:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_L1ERC721Bridge_$85418_$","typeString":"type(contract L1ERC721Bridge)"}},"id":90691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeBridgeERC721","nodeType":"MemberAccess","referencedDeclaration":85330,"src":"5415:35:148","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function L1ERC721Bridge.finalizeBridgeERC721(address,address,address,address,uint256,bytes calldata)"}},"id":90692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"5415:44:148","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":90693,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5461:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90694,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5474:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90695,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5487:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90696,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90631,"src":"5494:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90697,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5499:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90698,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90637,"src":"5509:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":90688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5379:3:148","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":90689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5379:22:148","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":90699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5379:150:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5356:173:148"},{"expression":{"arguments":[{"arguments":[{"id":90706,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108914,"src":"5673:11:148","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$111675","typeString":"contract StandardBridge"}],"id":90705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5665:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90704,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:148","typeDescriptions":{}}},"id":90707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5665:20:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90708,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90687,"src":"5697:7:148","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":90709,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90635,"src":"5720:12:148","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":90701,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108910,"src":"5632:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$108888","typeString":"contract CrossDomainMessenger"}},"id":90703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":108520,"src":"5632:21:148","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":90710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_target","_message","_minGasLimit"],"nodeType":"FunctionCall","src":"5632:103:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90711,"nodeType":"ExpressionStatement","src":"5632:103:148"},{"eventCall":{"arguments":[{"id":90713,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90625,"src":"5828:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90714,"name":"remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90664,"src":"5841:11:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90715,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90629,"src":"5854:5:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90716,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90631,"src":"5861:3:148","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":90717,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90633,"src":"5866:8:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90718,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90637,"src":"5876:10:148","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":90712,"name":"ERC721BridgeInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108934,"src":"5806:21:148","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":90719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:81:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":90720,"nodeType":"EmitStatement","src":"5801:86:148"}]},"baseFunctions":[109117],"documentation":{"id":90623,"nodeType":"StructuredDocumentation","src":"4124:28:148","text":"@inheritdoc ERC721Bridge"},"implemented":true,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"4166:21:148","overrides":{"id":90639,"nodeType":"OverrideSpecifier","overrides":[],"src":"4412:8:148"},"parameters":{"id":90638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":90625,"mutability":"mutable","name":"_localToken","nameLocation":"4205:11:148","nodeType":"VariableDeclaration","scope":90722,"src":"4197:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90624,"name":"address","nodeType":"ElementaryTypeName","src":"4197:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90627,"mutability":"mutable","name":"_remoteToken","nameLocation":"4234:12:148","nodeType":"VariableDeclaration","scope":90722,"src":"4226:20:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90626,"name":"address","nodeType":"ElementaryTypeName","src":"4226:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90629,"mutability":"mutable","name":"_from","nameLocation":"4264:5:148","nodeType":"VariableDeclaration","scope":90722,"src":"4256:13:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90628,"name":"address","nodeType":"ElementaryTypeName","src":"4256:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90631,"mutability":"mutable","name":"_to","nameLocation":"4287:3:148","nodeType":"VariableDeclaration","scope":90722,"src":"4279:11:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":90630,"name":"address","nodeType":"ElementaryTypeName","src":"4279:7:148","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":90633,"mutability":"mutable","name":"_tokenId","nameLocation":"4308:8:148","nodeType":"VariableDeclaration","scope":90722,"src":"4300:16:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":90632,"name":"uint256","nodeType":"ElementaryTypeName","src":"4300:7:148","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":90635,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4333:12:148","nodeType":"VariableDeclaration","scope":90722,"src":"4326:19:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":90634,"name":"uint32","nodeType":"ElementaryTypeName","src":"4326:6:148","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":90637,"mutability":"mutable","name":"_extraData","nameLocation":"4370:10:148","nodeType":"VariableDeclaration","scope":90722,"src":"4355:25:148","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":90636,"name":"bytes","nodeType":"ElementaryTypeName","src":"4355:5:148","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4187:199:148"},"returnParameters":{"id":90640,"nodeType":"ParameterList","parameters":[],"src":"4425:0:148"},"scope":90723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":90510,"name":"ERC721Bridge","nodeType":"IdentifierPath","referencedDeclaration":109118,"src":"1416:12:148"},"id":90511,"nodeType":"InheritanceSpecifier","src":"1416:12:148"},{"baseName":{"id":90512,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"1430:7:148"},"id":90513,"nodeType":"InheritanceSpecifier","src":"1430:7:148"}],"canonicalName":"L2ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":90509,"nodeType":"StructuredDocumentation","src":"676:713:148","text":"@title L2ERC721Bridge\\n @notice The L2 ERC721 bridge is a contract which works together with the L1 ERC721 bridge to\\n make it possible to transfer ERC721 tokens from Ethereum to Optimism. This contract\\n acts as a minter for new tokens when it hears about deposits into the L1 ERC721 bridge.\\n This contract also acts as a burner for tokens being withdrawn.\\n **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This\\n bridge ONLY supports ERC721s originally deployed on Ethereum. Users will need to\\n wait for the one-week challenge period to elapse before their Optimism-native NFT\\n can be refunded on L2."},"fullyImplemented":true,"linearizedBaseContracts":[90723,109417,109118,49678],"name":"L2ERC721Bridge","nameLocation":"1398:14:148","scope":90724,"usedErrors":[]}],"license":"MIT"},"id":148}')},39572:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"MESSAGE_VERSION","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initiateWithdrawal","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_gasLimit","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"messageNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"sentMessages","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"MessagePassed","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"gasLimit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"withdrawalHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false}
385,{"type":"event","name":"WithdrawerBalanceBurnt","inputs":[{"name":"amount","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506106d3806100206000396000f3fe6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848
385603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806382e3702d1161004357806382e3702d1461012a578063c2b3e5ac1461016a578063ecc704281461017d57600080fd5b80633f827a5a1461009257806344df8e70146100bf57806354fd4d50146100d457600080fd5b3661008d5761008b33620186a0604051806020016040528060008152506101e2565b005b600080fd5b34801561009e57600080fd5b506100a7600181565b60405161ffff90911681526020015b60405180910390f35b3480156100cb57600080fd5b5061008b6103a6565b3480156100e057600080fd5b5061011d6040518060400160405280600581526020017f312e312e3000000000000000000000000000000000000000000000000000000081525081565b6040516100b691906104d1565b34801561013657600080fd5b5061015a6101453660046104eb565b60006020819052908152604090205460ff1681565b60405190151581526020016100b6565b61008b610178366004610533565b6101e2565b34801561018957600080fd5b506101d46001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b6040519081526020016100b6565b60006102786040518060c0016040528061023c6001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b815233602082015273ffffffffffffffffffffffffffffffffffffffff871660408201523460608201526080810186905260a0018490526103de565b600081815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055905073ffffffffffffffffffffffffffffffffffffffff8416336103136001547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e010000000000000000000000000000000000000000000000000000000000001790565b7f02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054348787876040516103489493929190610637565b60405180910390a45050600180547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8082168301167fffff0000000000000000000000000000000000000000000000000000000000009091161790555050565b476103b08161042b565b60405181907f7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f90600090a250565b80516020808301516040808501516060860151608087015160a0880151935160009761040e979096959101610667565b604051602081830303815290604052805190602001209050919050565b806040516104389061045a565b6040518091039082f0905080158015610455573d6000803e3d6000fd5b505050565b6008806106bf83390190565b6000815180845260005b8181101561048c57602081850181015186830182015201610470565b8181111561049e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104e46020830184610466565b9392505050565b6000602082840312156104fd57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060006060848
385603121561054857600080fd5b833573ffffffffffffffffffffffffffffffffffffffff8116811461056c57600080fd5b925060208401359150604084013567ffffffffffffffff8082111561059057600080fd5b818601915086601f8301126105a457600080fd5b8135818111156105b6576105b6610504565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156105fc576105fc610504565b8160405282815289602084870101111561061557600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b8481528360208201526080604082015260006106566080830185610466565b905082606083015295945050505050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a08301526106b260c0830184610466565b9897505050505050505056fe608060405230fffea164736f6c634300080f000a","sourceMap":"722:3696:150:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2474:68;2493:10;911:7;2532:9;;;;;;;;;;;;2474:18;:68::i;:::-;722:3696;;;;;981:42;;;;;;;;;;;;1022:1;981:42;;;;;188:6:357;176:19;;;158:38;;146:2;131:18;981:42:150;;;;;;;;2915:154;;;;;;;;;;;;;:::i;2307:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1094:44::-;;;;;;;;;;-1:-1:-1;1094:44:150;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;1318:14:357;;1311:22;1293:41;;1281:2;1266:18;1094:44:150;1153:187:357;3311:650:150;;;;;;:::i;:::-;;:::i;4282:134::-;;;;;;;;;;;;4383:8;;;;4855:18:195;4852:30;;4282:134:150;;;;2930:25:357;;;2918:2;2903:18;4282:134:150;2784:177:357;3311:650:150;3420:22;3445:297;3481:251;;;;;;;;3534:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3534:14;3481:251;;3574:10;3481:251;;;;;;;;;;;3642:9;3481:251;;;;;;;;;;;;;;;3445:22;:297::i;:::-;3753:12;:28;;;;;;;;;;:35;;;;3784:4;3753:35;;;3420:322;-1:-1:-1;3804:95:150;;;3834:10;3818:14;4383:8;;;;4855:18:195;4852:30;;4282:134:150;3818:14;3804:95;3855:9;3866;3877:5;3884:14;3804:95;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3936:8:150;3934:10;;;;;;;;;;;;;;;;-1:-1:-1;;3311:650:150:o;2915:154::-;2968:21;2999:17;2968:21;2999:8;:17::i;:::-;3031:31;;3054:7;;3031:31;;;;;2940:129;2915:154::o;4456:211:196:-;4590:9;;4601:10;;;;;4613;;;;;4625:9;;;;4636:12;;;;4650:8;;;;4579:80;;4543:7;;4579:80;;4590:9;;4601:10;4650:8;4579:80;;:::i;:::-;;;;;;;;;;;;;4569:91;;;;;;4562:98;;4456:211;;;:::o;224:86:190:-;292:7;273:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;224:86;:::o;-1:-1:-1:-;;;;;;;;:::o;207:531:357:-;249:3;287:5;281:12;314:6;309:3;302:19;339:1;349:162;363:6;360:1;357:13;349:162;;;425:4;481:13;;;477:22;;471:29;453:11;;;449:20;;442:59;378:12;349:162;;;529:6;526:1;523:13;520:87;;;595:1;588:4;579:6;574:3;570:16;566:27;559:38;520:87;-1:-1:-1;652:2:357;640:15;657:66;636:88;627:98;;;;727:4;623:109;;207:531;-1:-1:-1;;207:531:357:o;743:220::-;892:2;881:9;874:21;855:4;912:45;953:2;942:9;938:18;930:6;912:45;:::i;:::-;904:53;743:220;-1:-1:-1;;;743:220:357:o;968:180::-;1027:6;1080:2;1068:9;1059:7;1055:23;1051:32;1048:52;;;1096:1;1093;1086:12;1048:52;-1:-1:-1;1119:23:357;;968:180;-1:-1:-1;968:180:357:o;1345:184::-;1397:77;1394:1;1387:88;1494:4;1491:1;1484:15;1518:4;1515:1;1508:15;1534:1245;1620:6;1628;1636;1689:2;1677:9;1668:7;1664:23;1660:32;1657:52;;;1705:1;1702;1695:12;1657:52;1744:9;1731:23;1794:42;1787:5;1783:54;1776:5;1773:65;1763:93;;1852:1;1849;1842:12;1763:93;1875:5;-1:-1:-1;1927:2:357;1912:18;;1899:32;;-1:-1:-1;1982:2:357;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2365:2;2359:9;2427:4;2419:13;;2270:66;2415:22;;;2439:2;2411:31;2407:40;2395:53;;;2463:18;;;2483:22;;;2460:46;2457:72;;;2509:18;;:::i;:::-;2549:10;2545:2;2538:22;2584:2;2576:6;2569:18;2624:7;2619:2;2614;2610;2606:11;2602:20;2599:33;2596:53;;;2645:1;2642;2635:12;2596:53;2701:2;2696;2692;2688:11;2683:2;2675:6;2671:15;2658:46;2746:1;2741:2;2736;2728:6;2724:15;2720:24;2713:35;2767:6;2757:16;;;;;;;1534:1245;;;;;:::o;2966:433::-;3197:6;3186:9;3179:25;3240:6;3235:2;3224:9;3220:18;3213:34;3283:3;3278:2;3267:9;3263:18;3256:31;3160:4;3304:46;3345:3;3334:9;3330:19;3322:6;3304:46;:::i;:::-;3296:54;;3386:6;3381:2;3370:9;3366:18;3359:34;2966:433;;;;;;;:::o;3404:656::-;3691:6;3680:9;3673:25;3654:4;3717:42;3807:2;3799:6;3795:15;3790:2;3779:9;3775:18;3768:43;3859:2;3851:6;3847:15;3842:2;3831:9;3827:18;3820:43;;3899:6;3894:2;3883:9;3879:18;3872:34;3943:6;3937:3;3926:9;3922:19;3915:35;3987:3;3981;3970:9;3966:19;3959:32;4008:46;4049:3;4038:9;4034:19;4026:6;4008:46;:::i;:::-;4000:54;3404:656;-1:-1:-1;;;;;;;;3404:656:357:o","linkReferences":{}},"methodIdentifiers":{"MESSAGE_VERSION()":"3f827a5a","burn()":"44df8e70","initiateWithdrawal(address,uint256,bytes)":"c2b3e5ac","messageNonce()":"ecc70428","sentMessages(bytes32)":"82e3702d","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"anonymous\\"
385:false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"uint256\\",\\"name\\":\\"nonce\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"sender\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"target\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"value\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"gasLimit\\",\\"type\\":\\"uint256\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes\\",\\"name\\":\\"data\\",\\"type\\":\\"bytes\\"},{\\"indexed\\":false,\\"internalType\\":\\"bytes32\\",\\"name\\":\\"withdrawalHash\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"MessagePassed\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"WithdrawerBalanceBurnt\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"MESSAGE_VERSION\\",\\"outputs\\":[{\\"internalType\\":\\"uint16\\",\\"name\\":\\"\\",\\"type\\":\\"uint16\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"burn\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_target\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_gasLimit\\",\\"type\\":\\"uint256\\"},{\\"internalType\\":\\"bytes\\",\\"name\\":\\"_data\\",\\"type\\":\\"bytes\\"}],\\"name\\":\\"initiateWithdrawal\\",\\"outputs\\":[],\\"stateMutability\\":\\"payable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"messageNonce\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes32\\",\\"name\\":\\"\\",\\"type\\":\\"bytes32\\"}],\\"name\\":\\"sentMessages\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"stateMutability\\":\\"payable\\",\\"type\\":\\"receive\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@custom:predeploy 0x4200000000000000000000000000000000000016\\",\\"events\\":{\\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\\":{\\"params\\":{\\"data\\":\\"The data to be forwarded to the target on L1.\\",\\"gasLimit\\":\\"The minimum amount of gas that must be provided when withdrawing.\\",\\"nonce\\":\\"Unique value corresponding to each withdrawal.\\",\\"sender\\":\\"The L2 account address which initiated the withdrawal.\\",\\"target\\":\\"The L1 account address the call will be send to.\\",\\"value\\":\\"The ETH value submitted for withdrawal, to be forwarded to the target.\\",\\"withdrawalHash\\":\\"The hash of the withdrawal.\\"}},\\"WithdrawerBalanceBurnt(uint256)\\":{\\"params\\":{\\"amount\\":\\"Amount of ETh that was burned.\\"}}},\\"kind\\":\\"dev\\",\\"methods\\":{\\"initiateWithdrawal(address,uint256,bytes)\\":{\\"params\\":{\\"_data\\":\\"Data to forward to L1 target.\\",\\"_gasLimit\\":\\"Minimum gas limit for executing the message on L1.\\",\\"_target\\":\\"Address to call on L1 execution.\\"}},\\"messageNonce()\\":{\\"returns\\":{\\"_0\\":\\"Nonce of the next message to be sent, with added message version.\\"}}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"1.1.0\\"}},\\"title\\":\\"L2ToL1MessagePasser\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)\\":{\\"notice\\":\\"Emitted any time a withdrawal is initiated.\\"},\\"WithdrawerBalanceBurnt(uint256)\\":{\\"notice\\":\\"Emitted when the balance of this contract is burned.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"MESSAGE_VERSION()\\":{\\"notice\\":\\"The current message version identifier.\\"},\\"burn()\\":{\\"notice\\":\\"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap.\\"},\\"initiateWithdrawal(address,uint256,bytes)\\":{\\"notice\\":\\"Sends a message from L2 to L1.\\"},\\"messageNonce()\\":{\\"notice\\":\\"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures.\\"},\\"sentMessages(bytes32)\\":{\\"notice\\":\\"Includes the message hashes for all withdrawals\\"}},\\"notice\\":\\"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages.\\",\\"ver
385sion\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/L2/L2ToL1MessagePasser.sol\\":\\"L2ToL1MessagePasser\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"src/L2/L2ToL1MessagePasser.sol\\":{\\"keccak256\\":\\"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460\\",\\"dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61\\"]},\\"src/libraries/Burn.sol\\":{\\"keccak256\\":\\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\\",\\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\\"]},\\"src/libraries/Encoding.sol\\":{\\"keccak256\\":\\"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff\\",\\"dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA\\"]},\\"src/libraries/Hashing.sol\\":{\\"keccak256\\":\\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\\",\\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\\"]},\\"src/libraries/Types.sol\\":{\\"keccak256\\":\\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\\",\\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\\"]},\\"src/libraries/rlp/RLPWriter.sol\\":{\\"keccak256\\":\\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\\",\\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"uint256","name":"gasLimit","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"bytes32","name":"withdrawalHash","type":"bytes32","indexed":false}],"type":"event","name":"MessagePassed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":true}],"type":"event","name":"WithdrawerBalanceBurnt","anonymous":false}
385,{"inputs":[],"stateMutability":"view","type":"function","name":"MESSAGE_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"initiateWithdrawal"},{"inputs":[],"stateMutability":"view","type":"function","name":"messageNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"sentMessages","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/L2/L2ToL1MessagePasser.sol":"L2ToL1MessagePasser"},"evmVersion":"london","libraries":{}},"sources":{"src/L2/L2ToL1MessagePasser.sol":{"keccak256":"0x67f440defc45e97bf1494274a9061876cbdcb10625707c534a0cb04b1c057e21","urls":["bzz-raw://47900ccfcd1e4506d50dd3b14069da285eeb5f783020a0c74f58181b4c011460","dweb:/ipfs/QmNUtEAxiwXT8QDbCHsX3uT4h2fh6k9f8LvMrmRK2N7K61"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010","urls":["bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f","dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x1dafabcbd4877c7abe9698957b0a44b7e911cb8b11c1437a4ed897135669fa87","urls":["bzz-raw://6addfacefa26fdb44f56d73fa0172b97740de75629a962905ec2a20a28d40fff","dweb:/ipfs/QmboHMouqU19Rnbqrfo1gkfnuDBFcPiC9wsKgGtF2W1cNA"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://0
38570f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":91174,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"sentMessages","offset":0,"slot":"0","type":"t_mapping(t_bytes32,t_bool)"},{"astId":91177,"contract":"src/L2/L2ToL1MessagePasser.sol:L2ToL1MessagePasser","label":"msgNonce","offset":0,"slot":"1","type":"t_uint240"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint240":{"encoding":"inplace","label":"uint240","numberOfBytes":"30"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSAGE_VERSION()":{"notice":"The current message version identifier."},"burn()":{"notice":"Removes all ETH held by this contract from the state. Used to prevent the amount of ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to create a contract and self-destruct it to itself. Anyone can call this function. Not incentivized since this function is very cheap."},"initiateWithdrawal(address,uint256,bytes)":{"notice":"Sends a message from L2 to L1."},"messageNonce()":{"notice":"Retrieves the next message nonce. Message version will be added to the upper two bytes of the message nonce. Message version allows us to treat messages as having different structures."},"sentMessages(bytes32)":{"notice":"Includes the message hashes for all withdrawals"}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"notice":"Emitted any time a withdrawal is initiated."},"WithdrawerBalanceBurnt(uint256)":{"notice":"Emitted when the balance of this contract is burned."}},"notice":"The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from L2 to L1 can be stored. The storage root of this contract is pulled up to the top level of the L2 output to reduce the cost of proving the existence of sent messages."},"devdoc":{"version":1,"kind":"dev","methods":{"initiateWithdrawal(address,uint256,bytes)":{"params":{"_data":"Data to forward to L1 target.","_gasLimit":"Minimum gas limit for executing the message on L1.","_target":"Address to call on L1 execution."}},"messageNonce()":{"returns":{"_0":"Nonce of the next message to be sent, with added message version."}}},"events":{"MessagePassed(uint256,address,address,uint256,uint256,bytes,bytes32)":{"params":{"data":"The data to be forwarded to the target on L1.","gasLimit":"The minimum amount of gas that must be provided when withdrawing.","nonce":"Unique value corresponding to each withdrawal.","sender":"The L2 account address which initiated the withdrawal.","target":"The L1 account address the call will be send to.","value":"The ETH value submitted for withdrawal, to be forwarded to the target.","withdrawalHash":"The hash of the withdrawal."}},"WithdrawerBalanceBurnt(uint256)":{"params":{"amount":"Amount of ETh that was burned."}}},"title":"L2ToL1MessagePasser"},"ast":{"absolutePath":"src/L2/L2ToL1MessagePasser.sol","id":91308,"exportedSymbols":{"Burn":[102909],"Encoding":[103714],"Hashing":[103936],"ISemver":[109417],"L2ToL1MessagePasser":[91307],"Types":[104349]},"nodeType":"SourceUnit","src":"32:4387:150","nodes":[{"id":91148,"nodeType":"PragmaDirective","src":"32:23:150","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91150,"nodeType":"ImportDirective","src":"57:48:150","nodes":[],"absolutePath":"src/libraries/Types.sol","file":"src/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":104350,"symbolAliases":[{"foreign":{"id":91149,"name":"Types","no
385deType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"66:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91152,"nodeType":"ImportDirective","src":"106:52:150","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103937,"symbolAliases":[{"foreign":{"id":91151,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"115:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91154,"nodeType":"ImportDirective","src":"159:54:150","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":103715,"symbolAliases":[{"foreign":{"id":91153,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"168:8:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91156,"nodeType":"ImportDirective","src":"214:46:150","nodes":[],"absolutePath":"src/libraries/Burn.sol","file":"src/libraries/Burn.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":102926,"symbolAliases":[{"foreign":{"id":91155,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"223:4:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91158,"nodeType":"ImportDirective","src":"261:52:150","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":91157,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"270:7:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91307,"nodeType":"ContractDefinition","src":"722:3696:150","nodes":[{"id":91165,"nodeType":"VariableDeclaration","src":"857:61:150","nodes":[],"constant":true,"documentation":{"id":91162,"nodeType":"StructuredDocumentation","src":"768:84:150","text":"@notice The L1 gas limit set when eth is withdrawn using the receive() function."},"mutability":"constant","name":"RECEIVE_DEFAULT_GAS_LIMIT","nameLocation":"883:25:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91163,"name":"uint256","nodeType":"ElementaryTypeName","src":"857:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130305f303030","id":91164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"911:7:150","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100_000"},"visibility":"internal"},{"id":91169,"nodeType":"VariableDeclaration","src":"981:42:150","nodes":[],"constant":true,"documentation":{"id":91166,"nodeType":"StructuredDocumentation","src":"925:51:150","text":"@notice The current message version identifier."},"functionSelector":"3f827a5a","mutability":"constant","name":"MESSAGE_VERSION","nameLocation":"1004:15:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":91167,"name":"uint16","nodeType":"ElementaryTypeName","src":"981:6:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":91168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1022:1:150","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":91174,"nodeType":"VariableDeclaration","src":"1094:44:150","nodes":[],"constant":false,"documentation":{"id":91170,"nodeType":"StructuredDocumentation","src":"1030:59:150","text":"@notice Includes the message hashes for all withdrawals"},"functionSelector":"82e3702d","mutability":"mutable","name":"sentMessages","nameLocation":"1126:12:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":91173,"keyType":{"id":91171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1102:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1094:24:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":91172,"name":"bool","nodeType":"ElementaryTypeName","src":"1113:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"}
385,{"id":91177,"nodeType":"VariableDeclaration","src":"1205:25:150","nodes":[],"constant":false,"documentation":{"id":91175,"nodeType":"StructuredDocumentation","src":"1145:55:150","text":"@notice A unique value hashed with each withdrawal."},"mutability":"mutable","name":"msgNonce","nameLocation":"1222:8:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":91176,"name":"uint240","nodeType":"ElementaryTypeName","src":"1205:7:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"},{"id":91194,"nodeType":"EventDefinition","src":"1869:222:150","nodes":[],"anonymous":false,"documentation":{"id":91178,"nodeType":"StructuredDocumentation","src":"1237:627:150","text":"@notice Emitted any time a withdrawal is initiated.\\n @param nonce Unique value corresponding to each withdrawal.\\n @param sender The L2 account address which initiated the withdrawal.\\n @param target The L1 account address the call will be send to.\\n @param value The ETH value submitted for withdrawal, to be forwarded to the target.\\n @param gasLimit The minimum amount of gas that must be provided when withdrawing.\\n @param data The data to be forwarded to the target on L1.\\n @param withdrawalHash The hash of the withdrawal."},"eventSelector":"02a52367d10742d8032712c1bb8e0144ff1ec5ffda1ed7d70bb05a2744955054","name":"MessagePassed","nameLocation":"1875:13:150","parameters":{"id":91193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91180,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"1914:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1898:21:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91179,"name":"uint256","nodeType":"ElementaryTypeName","src":"1898:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91182,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1945:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1929:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91181,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91184,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"1977:6:150","nodeType":"VariableDeclaration","scope":91194,"src":"1961:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91183,"name":"address","nodeType":"ElementaryTypeName","src":"1961:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91186,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"2001:5:150","nodeType":"VariableDeclaration","scope":91194,"src":"1993:13:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91185,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91188,"indexed":false,"mutability":"mutable","name":"gasLimit","nameLocation":"2024:8:150","nodeType":"VariableDeclaration","scope":91194,"src":"2016:16:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91190,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"2048:4:150","
385nodeType":"VariableDeclaration","scope":91194,"src":"2042:10:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91189,"name":"bytes","nodeType":"ElementaryTypeName","src":"2042:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":91192,"indexed":false,"mutability":"mutable","name":"withdrawalHash","nameLocation":"2070:14:150","nodeType":"VariableDeclaration","scope":91194,"src":"2062:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2062:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1888:202:150"}},{"id":91199,"nodeType":"EventDefinition","src":"2219:53:150","nodes":[],"anonymous":false,"documentation":{"id":91195,"nodeType":"StructuredDocumentation","src":"2097:117:150","text":"@notice Emitted when the balance of this contract is burned.\\n @param amount Amount of ETh that was burned."},"eventSelector":"7967de617a5ac1cc7eba2d6f37570a0135afa950d8bb77cdd35f0d0b4e85a16f","name":"WithdrawerBalanceBurnt","nameLocation":"2225:22:150","parameters":{"id":91198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91197,"indexed":true,"mutability":"mutable","name":"amount","nameLocation":"2264:6:150","nodeType":"VariableDeclaration","scope":91199,"src":"2248:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2247:24:150"}},{"id":91203,"nodeType":"VariableDeclaration","src":"2307:40:150","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":91200,"nodeType":"StructuredDocumentation","src":"2278:24:150","text":"@custom:semver 1.1.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2330:7:150","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":91201,"name":"string","nodeType":"ElementaryTypeName","src":"2307:6:150","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e312e30","id":91202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2340:7:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_6815ba53416ba06aff1932cc76b3832272bafab9bc8e066be382e32b06ba5546","typeString":"literal_string \\"1.1.0\\""},"value":"1.1.0"},"visibility":"public"},{"id":91218,"nodeType":"FunctionDefinition","src":"2437:112:150","nodes":[],"body":{"id":91217,"nodeType":"Block","src":"2464:85:150","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":91208,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2493:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2493:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91210,"name":"RECEIVE_DEFAULT_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91165,"src":"2505:25:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":91213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2538:2:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \\"\\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \\"\\""}],"id":91212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2532:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":91211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2532:5:150","typeDescriptions":{}}},"id":91214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:9:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":91207,"name":"initiateWithdrawal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91293,"src":"2474:18:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":91215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2474:68:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91216,"nodeType":"ExpressionStatement","src":"2474:68:150"}]},"documentation":{"id":91204,"nodeType":"StructuredDocumentation","src":"2354:78:150","text":"@notice Allows users to withdraw ETH by sending directly to this contract."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":91205,"nodeType":"ParameterList","parameters":[],"src":"2444:2:150"},"returnParameters":{"id":91206,"nodeType":"ParameterList","parameters":[],"src":"2464:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":91241,"nodeType":"FunctionDefinition","src":"2915:154:150","nodes":[],"body":{"id":91240,"nodeType":"Block","src":"2940:129:150","nodes":[],"statements":[{"assignments":[91223],"declarations":[{"constant":false,"id":91223,"mutability":"mutable","name":"balance","nameLocation":"2958:7:150","nodeType":"VariableDeclaration","scope":91240,"src":"2950:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91222,"name":"uint256","nodeType":"ElementaryTypeName","src":"2950:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":91229,"initialValue":{"expression":{"arguments":[{"id":91226,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2976:4:150","typeDescriptions":{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L2ToL1MessagePasser_$91307","typeString":"contract L2ToL1MessagePasser"}],"id":91225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2968:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91224,"name":"address","nodeType":"ElementaryTypeName","src":"2968:7:150","typeDescriptions":{}}},"id":91227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2968:13:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":91228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2968:21:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2950:39:150"},{"expression":{"arguments":[{"id":91233,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3008:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":91230,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102909,"src":"2999:4:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Burn_$102909_$","typeString":"type(library Burn)"}},"id":91232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"eth","nodeType":"MemberAccess","referencedDeclaration":102881,"src":"2999:8:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2999:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91235,"nodeType":"ExpressionStatement","src":"2999:17:150"},{"eventCall":{"arguments":[{"id":91237,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91223,"src":"3054:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":91236,"name":"WithdrawerBalanceBurnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91199,"src":"3031:22:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":91238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3031:31:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}}
385,"id":91239,"nodeType":"EmitStatement","src":"3026:36:150"}]},"documentation":{"id":91219,"nodeType":"StructuredDocumentation","src":"2555:355:150","text":"@notice Removes all ETH held by this contract from the state. Used to prevent the amount of\\n ETH on L2 inflating when ETH is withdrawn. Currently only way to do this is to\\n create a contract and self-destruct it to itself. Anyone can call this function. Not\\n incentivized since this function is very cheap."},"functionSelector":"44df8e70","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2924:4:150","parameters":{"id":91220,"nodeType":"ParameterList","parameters":[],"src":"2928:2:150"},"returnParameters":{"id":91221,"nodeType":"ParameterList","parameters":[],"src":"2940:0:150"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":91293,"nodeType":"FunctionDefinition","src":"3311:650:150","nodes":[],"body":{"id":91292,"nodeType":"Block","src":"3410:551:150","nodes":[],"statements":[{"assignments":[91252],"declarations":[{"constant":false,"id":91252,"mutability":"mutable","name":"withdrawalHash","nameLocation":"3428:14:150","nodeType":"VariableDeclaration","scope":91292,"src":"3420:22:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":91251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3420:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":91268,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91257,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3534:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3534:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3574:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3574:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91261,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3610:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3642:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3642:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91264,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3679:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91265,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3712:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}
385],"expression":{"id":91255,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104349,"src":"3481:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Types_$104349_$","typeString":"type(library Types)"}},"id":91256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"WithdrawalTransaction","nodeType":"MemberAccess","referencedDeclaration":104348,"src":"3481:27:150","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_WithdrawalTransaction_$104348_storage_ptr_$","typeString":"type(struct Types.WithdrawalTransaction storage pointer)"}},"id":91266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nonce","sender","target","value","gasLimit","data"],"nodeType":"FunctionCall","src":"3481:251:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_WithdrawalTransaction_$104348_memory_ptr","typeString":"struct Types.WithdrawalTransaction memory"}],"expression":{"id":91253,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103936,"src":"3445:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$103936_$","typeString":"type(library Hashing)"}},"id":91254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashWithdrawal","nodeType":"MemberAccess","referencedDeclaration":103911,"src":"3445:22:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_WithdrawalTransaction_$104348_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"}},"id":91267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:297:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3420:322:150"},{"expression":{"id":91273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":91269,"name":"sentMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91174,"src":"3753:12:150","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":91271,"indexExpression":{"id":91270,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3766:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3753:28:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":91272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3784:4:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3753:35:150","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":91274,"nodeType":"ExpressionStatement","src":"3753:35:150"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":91276,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91306,"src":"3818:12:150","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":91277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3818:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":91278,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3834:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3834:10:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":91280,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91244,"src":"3846:7:150","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":91281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3855:3:150","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":91282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"3855:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91283,"name":"_gasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91246,"src":"3866:9:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":91284,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91248,"src":"3877:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}
385,{"id":91285,"name":"withdrawalHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91252,"src":"3884:14:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":91275,"name":"MessagePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91194,"src":"3804:13:150","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes32_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory,bytes32)"}},"id":91286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3804:95:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91287,"nodeType":"EmitStatement","src":"3799:100:150"},{"id":91291,"nodeType":"UncheckedBlock","src":"3910:45:150","statements":[{"expression":{"id":91289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3934:10:150","subExpression":{"id":91288,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"3936:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"id":91290,"nodeType":"ExpressionStatement","src":"3934:10:150"}]}]},"documentation":{"id":91242,"nodeType":"StructuredDocumentation","src":"3075:231:150","text":"@notice Sends a message from L2 to L1.\\n @param _target Address to call on L1 execution.\\n @param _gasLimit Minimum gas limit for executing the message on L1.\\n @param _data Data to forward to L1 target."},"functionSelector":"c2b3e5ac","implemented":true,"kind":"function","modifiers":[],"name":"initiateWithdrawal","nameLocation":"3320:18:150","parameters":{"id":91249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91244,"mutability":"mutable","name":"_target","nameLocation":"3347:7:150","nodeType":"VariableDeclaration","scope":91293,"src":"3339:15:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91243,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:150","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91246,"mutability":"mutable","name":"_gasLimit","nameLocation":"3364:9:150","nodeType":"VariableDeclaration","scope":91293,"src":"3356:17:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91245,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91248,"mutability":"mutable","name":"_data","nameLocation":"3388:5:150","nodeType":"VariableDeclaration","scope":91293,"src":"3375:18:150","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":91247,"name":"bytes","nodeType":"ElementaryTypeName","src":"3375:5:150","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3338:56:150"},"returnParameters":{"id":91250,"nodeType":"ParameterList","parameters":[],"src":"3410:0:150"},"scope":91307,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":91306,"nodeType":"FunctionDefinition","src":"4282:134:150","nodes":[],"body":{"id":91305,"nodeType":"Block","src":"4336:80:150","nodes":[],"statements":[{"expression":{"arguments":[{"id":91301,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91177,"src":"4383:8:150","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},{"id":91302,"name":"MESSAGE_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91169,"src":"4393:15:150","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint240","typeString":"uint240"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":91299,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103714,"src":"4353:8:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$103714_$","typeString":"type(library Encoding)"}},"id":91300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":103643,"src":"4353:29:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint240_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint240,uint16) pure returns (uint256)"}},"id":91303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4353:56:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}
385,"functionReturnParameters":91298,"id":91304,"nodeType":"Return","src":"4346:63:150"}]},"documentation":{"id":91294,"nodeType":"StructuredDocumentation","src":"3967:310:150","text":"@notice Retrieves the next message nonce. Message version will be added to the upper two\\n bytes of the message nonce. Message version allows us to treat messages as having\\n different structures.\\n @return Nonce of the next message to be sent, with added message version."},"functionSelector":"ecc70428","implemented":true,"kind":"function","modifiers":[],"name":"messageNonce","nameLocation":"4291:12:150","parameters":{"id":91295,"nodeType":"ParameterList","parameters":[],"src":"4303:2:150"},"returnParameters":{"id":91298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91306,"src":"4327:7:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:150","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4326:9:150"},"scope":91307,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91160,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"754:7:150"},"id":91161,"nodeType":"InheritanceSpecifier","src":"754:7:150"}],"canonicalName":"L2ToL1MessagePasser","contractDependencies":[102925],"contractKind":"contract","documentation":{"id":91159,"nodeType":"StructuredDocumentation","src":"315:407:150","text":"@custom:proxied\\n @custom:predeploy 0x4200000000000000000000000000000000000016\\n @title L2ToL1MessagePasser\\n @notice The L2ToL1MessagePasser is a dedicated contract where messages that are being sent from\\n L2 to L1 can be stored. The storage root of this contract is pulled up to the top level\\n of the L2 output to reduce the cost of proving the existence of sent messages."},"fullyImplemented":true,"linearizedBaseContracts":[91307,109417],"name":"L2ToL1MessagePasser","nameLocation":"731:19:150","scope":91308,"usedErrors":[]}],"license":"MIT"},"id":150}')},24194:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[{"name":"_bridge","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"l1Token","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"l2Bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}
385,{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b
38560405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b60008060006060848
38560312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000a","sourceMap":"833:4510:229:-:0;;;2268:292;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2440:5;2447:7;2044:5:45;:13;2440:5:229;2044::45;:13;:::i;:::-;-1:-1:-1;2067:7:45;:17;2077:7;2067;:17;:::i;:::-;-1:-1:-1;;;;;;;;2470:27:229;;::::1;;::::0;2507:16;;;::::1;;::::0;-1:-1:-1;;2533:20:229::1;;;::::0;833:4510;;14:177:357;93:13;;-1:-1:-1;;;;;135:31:357;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:885;382:5;435:3;428:4;420:6;416:17;412:27;402:55;;453:1;450;443:12;402:55;476:13;;-1:-1:-1;;;;;538:10:357;;;535:36;;;551:18;;:::i;:::-;626:2;620:9;594:2;680:13;;-1:-1:-1;;676:22:357;;;700:2;672:31;668:40;656:53;;;724:18;;;744:22;;;721:46;718:72;;;770:18;;:::i;:::-;810:10;806:2;799:22;845:2;837:6;830:18;867:4;857:14;;912:3;907:2;902;894:6;890:15;886:24;883:33;880:53;;;929:1;926;919:12;880:53;951:1;942:10;;961:133;975:2;972:1;969:9;961:133;;;1063:14;;;1059:23;;1053:30;1032:14;;;1028:23;;1021:63;986:10;;;;961:133;;;1112:2;1109:1;1106:9;1103:80;;;1171:1;1166:2;1161;1153:6;1149:15;1145:24;1138:35;1103:80;1201:6;328:885;-1:-1:-1;;;;;;328:885:357:o;1218:884::-;1342:6;1350;1358;1366;1374;1427:3;1415:9;1406:7;1402:23;1398:33;1395:53;;;1444:1;1441;1434:12;1395:53;1467:40;1497:9;1467:40;:::i;:::-;1457:50;;1526:49;1571:2;1560:9;1556:18;1526:49;:::i;:::-;1619:2;1604:18;;1598:25;1516:59;;-1:-1:-1;;;;;;1672:14:357;;;1669:34;;;1699:1;1696;1689:12;1669:34;1722:61;1775:7;1766:6;1755:9;1751:22;1722:61;:::i;:::-;1712:71;;1829:2;1818:9;1814:18;1808:25;1792:41;;1858:2;1848:8;1845:16;1842:36;;;1874:1;1871;1864:12;1842:36;;1897:63;1952:7;1941:8;1930:9;1926:24;1897:63;:::i;:::-;1887:73;;;2003:3;1992:9;1988:19;1982:26;2048:4;2041:5;2037:16;2030:5;2027:27;2017:55;;2068:1;2065;2058:12;2017:55;2091:5;2081:15;;;1218:884;;;;;;;;:::o;2107:380::-;2186:1;2182:12;;;;2229;;;2250:61;;2304:4;2296:6;2292:17;2282:27;;2250:61;2357:2;2349:6;2346:14;2326:18;2323:38;2320:161;;2403:10;2398:3;2394:20;2391:1;2384:31;2438:4;2435:1;2428:15;2466:4;2463:1;2456:15;2320:161;;2107:380;;;:::o;2618:545::-;2720:2;2715:3;2712:11;2709:448;;;2756:1;2781:5;2777:2;2770:17;2826:4;2822:2;2812:19;2896:2;2884:10;2880:19;2877:1;2873:27;2867:4;2863:38;2932:4;2920:10;2917:20;2914:47;;;-1:-1:-1;2955:4:357;2914:47;3010:2;3005:3;3001:12;2998:1;2994:20;2988:4;2984:31;2974:41;;3065:82;3083:2;3076:5;3073:13;3065:82;;;3128:17;;;3109:1;3098:13;3065:82;;;3069:3;;;2709:448;2618:545;;;:::o;3339:1352::-;3459:10;;-1:-1:-1;;;;;3481:30:357;;3478:56;;;3514:18;;:::i;:::-;3543:97;3633:6;3593:38;3625:4;3619:11;3593:38;:::i;:::-;3587:4;3543:97;:::i;:::-;3695:4;;3759:2;3748:14;;3776:1;3771:663;;;;4478:1;4495:6;4492:89;;;-1:-1:-1;4547:19:357;;;4541:26;4492:89;-1:-1:-1;;3296:1:357;3292:11;;;3288:24;3284:29;3274:40;3320:1;3316:11;;;3271:57;4594:81;;3741:944;;3771:663;2565:1;2558:14;;;2602:4;2589:18;;-1:-1:-1;;3807:20:357;;;3925:236;3939:7;3936:1;3933:14;3925:236;;;4028:19;;;4022:26;4007:42;;4120:27;;;;4088:1;4076:14;;;;3955:19;;3925:236;;;3929:3;4189:6;4180:7;4177:19;4174:201;;;4250:19;;;4244:26;-1:-1:-1;;4333:1:357;4329:14;;;4345:3;4325:24;4321:37;4317:42;4302:58;4287:74;;4174:201;-1:-1:-1;;;;;4421:1:357;4405:14;;;4401:22;4388:36;;-1:-1:-1;3339:1352:357:o;:::-;833:4510:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b
38560405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b60008060006060848
38560312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000a","sourceMap":"833:4510:229:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3616:519;;;;;;:::i;:::-;;:::i;:::-;;;516:14:357;;509:22;491:41;;479:2;464:18;3616:519:229;;;;;;;;1022:37;;;;;;;;719:42:357;707:55;;;689:74;;677:2;662:18;1022:37:229;543:226:357;2156:98:45;;;:::i;:::-;;;;;;;:::i;4433:197::-;;;;;;:::i;:::-;;:::i;3244:106::-;3331:12;;3244:106;;;2041:25:357;;;2029:2;2014:18;3244:106:45;1895:177:357;5192:286:45;;;;;;:::i;:::-;;:::i;5252:89:229:-;;;2582:4:357;5326:8:229;2570:17:357;2552:36;;2540:2;2525:18;5252:89:229;2410:184:357;5873:234:45;;;;;;:::i;:::-;;:::i;2739:254:229:-;;;;;;:::i;:::-;;:::i;:::-;;2009:40;;;;;;;;;;;;;;;;;;;;;3408:125:45;;;;;;:::i;:::-;3508:18;;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;3174:260:229:-;;;;;;:::i;:::-;;:::i;6594:427:45:-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;4434:80:229:-;4501:6;4434:80;;4248:85;4314:12;4248:85;;3976:149:45;;;;;;:::i;:::-;4091:18;;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;1129:31:229;;;;;3616:519;3695:4;3727:25;3844:38;3997:40;4054:22;;;;;;:48;;-1:-1:-1;4080:22:229;;;;;;;;4054:48;:74;;;-1:-1:-1;4106:22:229;;;;;;;;4054:74;4047:81;3616:519;-1:-1:-1;;;;;3616:519:229:o;2156:98:45:-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:60;4570:32:45;719:10:60;4586:7:45;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:45;;4433:197;-1:-1:-1;;;4433:197:45:o;5192:286::-;5319:4;719:10:60;5375:38:45;5391:4;719:10:60;5406:6:45;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:45;;5192:286;-1:-1:-1;;;;5192:286:45:o;5873:234::-;719:10:60;5961:4:45;4091:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;5961:4;;719:10:60;6015:64:45;;719:10:60;;4091:27:45;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2739:254:229:-;1845:10;:20;1859:6;1845:20;;1837:85;;;;;;;4021:2:357;1837:85:229;;;4003:21:357;4060:2;4040:18;;;4033:30;4099:34;4079:18;;;4072:62;4170:22;4150:18;;;4143:50;4210:19;;1837:85:229;;;;;;;;;2934:19:::1;2940:3;2945:7;2934:5;:19::i;:::-;2973:3;2968:18;;;2978:7;2968:18;;;;2041:25:357::0;;2029:2;2014:18;;1895:177;2968:18:229::1;;;;;;;;2739:254:::0;;:::o;2367:102:45:-;2423:13;2455:7;2448:14;;;;;:::i;3174:260:229:-;1845:10;:20;1859:6;1845:20;;1837:85;;;;;;;4021:2:357;1837:85:229;;;4003:21:357;4060:2;4040:18;;;4033:30;4099:34;4079:18;;;4072:62;4170:22;4150:18;;;4143:50;4210:19;;1837:85:229;3819:416:357;1837:85:229;3371:21:::1;3377:5;3384:7;3371:5;:21::i;:::-;3412:5;3407:20;;;3419:7;3407:20;;;;2041:25:357::0;;2029:2;2014:18;;1895:177;6594:427:45;719:10:60;6687:4:45;4091:18;;;:11;:18;;;;;;;;;:27;;;;;;;;;;6687:4;;719:10:60;6831:15:45;6811:16;:35;;6803:85;;;;;;;4442:2:357;6803:85:45;;;4424:21:357;4481:2;4461:18;;;4454:30;4520:34;4500:18;;;4493:62;4591:7;4571:18;;;4564:35;4616:19;;6803:85:45;4240:401:357;6803:85:45;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:60;3862:28:45;719:10:60;3879:2:45;3883:6;3862:9;:28::i;10110:370::-;10241:19;;;10233:68;;;;;;;4848:2:357;10233:68:45;;;4830:21:357;4887:2;4867:18;;;4860:30;4926:34;4906:18;;;4899:62;4997:6;4977:18;;;4970:34;5021:19;;10233:68:45;4646:400:357;10233:68:45;10319:21;;;10311:68;;;;;;;5253:2:357;10311:68:45;;;5235:21:357;5292:2;5272:18;;;5265:30;5331:34;5311:18;;;5304:62;5402:4;5382:18;;;5375:32;5424:19;;10311:68:45;5051:398:357;10311:68:45;10390:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;2041:25:357;;;10441:32:45;;2014:18:357;10441:32:45;;;;;;;;10110:370;;;:::o;10761:441::-;4091:18;;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;10977:17;10957:37;;10953:243;;11038:6;
38511018:16;:26;;11010:68;;;;;;;5656:2:357;11010:68:45;;;5638:21:357;5695:2;5675:18;;;5668:30;5734:31;5714:18;;;5707:59;5783:18;;11010:68:45;5454:353:357;11010:68:45;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;7601:18;;;7593:68;;;;;;;6014:2:357;7593:68:45;;;5996:21:357;6053:2;6033:18;;;6026:30;6092:34;6072:18;;;6065:62;6163:7;6143:18;;;6136:35;6188:19;;7593:68:45;5812:401:357;7593:68:45;7679:16;;;7671:64;;;;;;;6420:2:357;7671:64:45;;;6402:21:357;6459:2;6439:18;;;6432:30;6498:34;6478:18;;;6471:62;6569:5;6549:18;;;6542:33;6592:19;;7671:64:45;6218:399:357;7671:64:45;7817:15;;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;;;;6824:2:357;7842:72:45;;;6806:21:357;6863:2;6843:18;;;6836:30;6902:34;6882:18;;;6875:62;6973:8;6953:18;;;6946:36;6999:19;;7842:72:45;6622:402:357;7842:72:45;7948:15;;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;8045:26;;8054:4;8045:26;;;8064:6;8045:26;;;;2041:25:357;;2029:2;2014:18;;1895:177;8045:26:45;;;;;;;;8082:37;9111:576;8402:389;8485:21;;;8477:65;;;;;;;7231:2:357;8477:65:45;;;7213:21:357;7270:2;7250:18;;;7243:30;7309:33;7289:18;;;7282:61;7360:18;;8477:65:45;7029:355:357;8477:65:45;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;8645:18:45;;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:45;;2041:25:357;;;8688:37:45;;;;8705:1;;8688:37;;2029:2:357;2014:18;8688:37:45;;;;;;;8402:389;;:::o;9111:576::-;9194:21;;;9186:67;;;;;;;7591:2:357;9186:67:45;;;7573:21:357;7630:2;7610:18;;;7603:30;7669:34;7649:18;;;7642:62;7740:3;7720:18;;;7713:31;7761:19;;9186:67:45;7389:397:357;9186:67:45;9349:18;;;9324:22;9349:18;;;;;;;;;;;9385:24;;;;9377:71;;;;;;;7993:2:357;9377:71:45;;;7975:21:357;8032:2;8012:18;;;8005:30;8071:34;8051:18;;;8044:62;8142:4;8122:18;;;8115:32;8164:19;;9377:71:45;7791:398:357;9377:71:45;9482:18;;;:9;:18;;;;;;;;;;9503:23;;;9482:44;;9546:12;:22;;9520:6;;9482:9;9546:22;;9520:6;;9546:22;:::i;:::-;;;;-1:-1:-1;;9584:37:45;;2041:25:357;;;9610:1:45;;9584:37;;;;;;2029:2:357;2014:18;9584:37:45;1895:177:357;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:357:o;774:656::-;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1212:6;1209:1;1206:13;1203:91;;;1282:1;1277:2;1268:6;1257:9;1253:22;1249:31;1242:42;1203:91;-1:-1:-1;1346:2:357;1334:15;1351:66;1330:88;1315:104;;;;1421:2;1311:113;;774:656;-1:-1:-1;;;774:656:357:o;1435:196::-;1503:20;;1563:42;1552:54;;1542:65;;1532:93;;1621:1;1618;1611:12;1532:93;1435:196;;;:::o;1636:254::-;1704:6;1712;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;1804:29;1823:9;1804:29;:::i;:::-;1794:39;1880:2;1865:18;;;;1852:32;;-1:-1:-1;;;1636:254:357:o;2077:328::-;2154:6;2162;2170;2223:2;2211:9;2202:7;2198:23;2194:32;2191:52;;;2239:1;2236;2229:12;2191:52;2262:29;2281:9;2262:29;:::i;:::-;2252:39;;2310:38;2344:2;2333:9;2329:18;2310:38;:::i;:::-;2300:48;;2395:2;2384:9;2380:18;2367:32;2357:42;;2077:328;;;;;:::o;2599:186::-;2658:6;2711:2;2699:9;2690:7;2686:23;2682:32;2679:52;;;2727:1;2724;2717:12;2679:52;2750:29;2769:9;2750:29;:::i;2790:260::-;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:29;2977:9;2958:29;:::i;:::-;2948:39;;3006:38;3040:2;3029:9;3025:18;3006:38;:::i;:::-;2996:48;;2790:260;;;;;:::o;3055:437::-;3134:1;3130:12;;;;3177;;;3198:61;;3252:4;3244:6;3240:17;3230:27;;3198:61;3305:2;3297:6;3294:14;3274:18;3271:38;3268:218;;3342:77;3339:1;3332:88;3443:4;3440:1;3433:15;3471:4;3468:1;3461:15;3268:218;;3055:437;;;:::o;3497:184::-;3549:77;3546:1;3539:88;3646:4;3643:1;3636:15;3670:4;3667:1;3660:15;3686:128;3726:3;3757:1;3753:6;3750:1;3747:13;3744:39;;;3763:18;;:::i;:::-;-1:-1:-1;3799:9:357;;3686:128::o;8194:125::-;8234:4;8262:1;8259;8256:8;8253:34;;;8267:18;;:::i;:::-;-1:-1:-1;8304:9:357;;8194:125::o","linkReferences":{},"immutableReferences":{"109440":[{"start":425,"length":32},{"start":881,"length":32}],"109443":[{"start":843,"length":32},{"start":992,"length":32},{"start":1573,"length":32},{"start":1884,"length":32}],"109446":[{"start":580,"length":32}]}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_TOKEN()":"033964be","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","l1Token()":"c01e1bd6","l2Bridge()":"ae1f6aaf","mint(address,uint256)":"40c10f19","name()":"06fdde03","remoteToken()":"d6c0b2c4","supportsInterface(bytes4)":"
38501ffc9a7","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_bridge\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_name\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_symbol\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"uint8\\",\\"name\\":\\"_decimals\\",\\"type\\":\\"uint8\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"owner\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"spender\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"value\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"Approval\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"account\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"Burn\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"account\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"Mint\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"uint256\\",\\"name\\":\\"value\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"Transfer\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"BRIDGE\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"REMOTE_TOKEN\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"owner\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"spender\\",\\"type\\":\\"address\\"}],\\"name\\":\\"allowance\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"spender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"approve\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"account\\",\\"type\\":\\"address\\"}],\\"name\\":\\"balanceOf\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"bridge\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_from\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"burn\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"}
385,{\\"inputs\\":[],\\"name\\":\\"decimals\\",\\"outputs\\":[{\\"internalType\\":\\"uint8\\",\\"name\\":\\"\\",\\"type\\":\\"uint8\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"spender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"subtractedValue\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"decreaseAllowance\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"spender\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"addedValue\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"increaseAllowance\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l1Token\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"l2Bridge\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"_amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"mint\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"name\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"remoteToken\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"bytes4\\",\\"name\\":\\"_interfaceId\\",\\"type\\":\\"bytes4\\"}],\\"name\\":\\"supportsInterface\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"pure\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"symbol\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"totalSupply\\",\\"outputs\\":[{\\"internalType\\":\\"uint256\\",\\"name\\":\\"\\",\\"type\\":\\"uint256\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"transfer\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"from\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"address\\",\\"name\\":\\"to\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"uint256\\",\\"name\\":\\"amount\\",\\"type\\":\\"uint256\\"}],\\"name\\":\\"transferFrom\\",\\"outputs\\":[{\\"internalType\\":\\"bool\\",\\"name\\":\\"\\",\\"type\\":\\"bool\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"events\\":{\\"Burn(address,uint256)\\":{\\"params\\":{\\"account\\":\\"Address of the account tokens are being burned from.\\",\\"amount\\":\\"Amount of tokens burned.\\"}},\\"Mint(address,uint256)\\":{\\"params\\":{\\"account\\":\\"Address of the account tokens are being minted for.\\",\\"amount\\":\\"Amount of tokens minted.\\"}}},\\"kind\\":\\"dev\\",\\"methods\\":{\\"allowance(address,address)\\":{\\"details\\":\\"See {IERC20-allowance}.\\"},\\"approve(address,uint256)\\":{\\"details\\":\\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\\"},\\"balanceOf(address)\\":{\\"details\\":\\"See {IERC20-balanceOf}.\\"},\\"bridge()\\":{\\"custom:legacy\\":\\"@notice Legacy getter for BRIDGE.\\"},\\"burn(address,uint256)\\":{\\"params\\":{\\"_amount\\":\\"Amount of tokens to burn.\\",\\"_from\\":\\"Address to burn tokens from.\\"}},\\"constructor\\":{\\"params\\":{\\"_bridge\\":\\"Address of the L2 standard bridge.\\",\\"_name\\":\\"ERC20 name.\\",\\"_remoteToken\\":\\"Address of the corresponding L1 token.\\",\\"_symbol\\":\\"ERC20 symbol.\\"}},\\"decimals()\\":{\\"details\\":\\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\\"},\\"decreaseAllowance(address,uint256)\\":{\\"details\\":\\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve}
385 that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\\"},\\"increaseAllowance(address,uint256)\\":{\\"details\\":\\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\\"},\\"l1Token()\\":{\\"custom:legacy\\":\\"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward.\\"},\\"l2Bridge()\\":{\\"custom:legacy\\":\\"@notice Legacy getter for the bridge. Use BRIDGE going forward.\\"},\\"mint(address,uint256)\\":{\\"params\\":{\\"_amount\\":\\"Amount of tokens to mint.\\",\\"_to\\":\\"Address to mint tokens to.\\"}},\\"name()\\":{\\"details\\":\\"Returns the name of the token.\\"},\\"remoteToken()\\":{\\"custom:legacy\\":\\"@notice Legacy getter for REMOTE_TOKEN.\\"},\\"supportsInterface(bytes4)\\":{\\"params\\":{\\"_interfaceId\\":\\"Interface ID to check.\\"},\\"returns\\":{\\"_0\\":\\"Whether or not the interface is supported by this contract.\\"}},\\"symbol()\\":{\\"details\\":\\"Returns the symbol of the token, usually a shorter version of the name.\\"},\\"totalSupply()\\":{\\"details\\":\\"See {IERC20-totalSupply}.\\"},\\"transfer(address,uint256)\\":{\\"details\\":\\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\\"},\\"transferFrom(address,address,uint256)\\":{\\"details\\":\\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``\'s tokens of at least `amount`.\\"}},\\"stateVariables\\":{\\"version\\":{\\"custom:semver\\":\\"1.3.0\\"}},\\"title\\":\\"OptimismMintableERC20\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"Burn(address,uint256)\\":{\\"notice\\":\\"Emitted whenever tokens are burned from an account.\\"},\\"Mint(address,uint256)\\":{\\"notice\\":\\"Emitted whenever tokens are minted for an account.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"BRIDGE()\\":{\\"notice\\":\\"Address of the StandardBridge on this network.\\"},\\"REMOTE_TOKEN()\\":{\\"notice\\":\\"Address of the corresponding version of this token on the remote chain.\\"},\\"burn(address,uint256)\\":{\\"notice\\":\\"Allows the StandardBridge on this network to burn tokens.\\"},\\"mint(address,uint256)\\":{\\"notice\\":\\"Allows the StandardBridge on this network to mint tokens.\\"},\\"supportsInterface(bytes4)\\":{\\"notice\\":\\"ERC165 interface check function.\\"},\\"version()\\":{\\"notice\\":\\"Semantic version.\\"}},\\"notice\\":\\"OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa. Designed to be backwards compatible with the older StandardL2ERC20 token which was only meant for use on L2.\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/universal/OptimismMintableERC20.sol\\":\\"OptimismMintableERC20\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\\":{\\"keccak256\\":\\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\\",\\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\\":{\\"keccak256\\":\\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\\",\\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\\":{\\"keccak256\\":\\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\\",\\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Context.sol\\":{\\"keccak256\\":\\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\\",\\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\\":{\\"keccak256\\":\\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\\",\\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\\"]},\\"src/universal/IOptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x6f8133b39efcb
385cbd5088f195dfacf1bedc3146508429c3865443909af735a04c\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\\",\\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/universal/OptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\\",\\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_bridge","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}
385,{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"bridge()":{"custom:legacy":"@notice Legacy getter for BRIDGE."},"burn(address,uint256)":{"params":{"_amount":"Amount of tokens to burn.","_from":"Address to burn tokens from."}},"constructor":{"params":{"_bridge":"Address of the L2 standard bridge.","_name":"ERC20 name.","_remoteToken":"Address of the corresponding L1 token.","_symbol":"ERC20 symbol."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"l1Token()":{"custom:legacy":"@notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward."},"l2Bridge()":{"custom:legacy":"@notice Legacy getter for the bridge. Use BRIDGE going forward."},"mint(address,uint256)":{"params":{"_amount":"Amount of tokens to mint.","_to":"Address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"remoteToken()":{"custom:legacy":"@notice Legacy getter for REMOTE_TOKEN."},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``\'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"burn(address,uint256)":{"notice":"Allows the StandardBridge on this network to burn tokens."},"mint(address,uint256)":{"notice":"Allows the StandardBridge on this network to mint tokens."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/OptimismMintableERC20.sol":"OptimismMintableERC20"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcb
385cbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49734,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":49740,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":49742,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":49744,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":49746,"contract":"src/universal/OptimismMintableERC20.sol:OptimismMintableERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the StandardBridge on this network."},"REMOTE_TOKEN()":{"notice":"Address of the corresponding version of this token on the remote chain."},"burn(address,uint256)":{"notice":"Allows the StandardBridge on this network to burn tokens."},"mint(address,uint256)":{"notice":"Allows the StandardBridge on this network to mint tokens."},"supportsInterface(bytes4)":{"notice":"ERC165 interface check function."},"version()":{"notice":"Semantic version."}},"events":{"Burn(address,uint256)":{"notice":"Emitted whenever tokens are burned from an account."},"Mint(address,uint256)":{"notice":"Emitted whenever tokens are minted for an account."}},"notice":"OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa. Designed to be backwards compatible with the older StandardL2ERC20 token which was only meant for use on L2."},"devdoc":{"version":1,"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"bridge()":{},"burn(address,uint256)":{"params":{"_amount":"Amount of tokens to burn.","_from":"Address to burn tokens from."}},"constructor":{"params":{"_bridge":"Address of the L2 standard bridge.","_name":"ERC20 name.","_remoteToken":"Address of the corresponding L1 token.","_symbol":"ERC20 symbol."}},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve}
385 that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"l1Token()":{},"l2Bridge()":{},"mint(address,uint256)":{"params":{"_amount":"Amount of tokens to mint.","_to":"Address to mint tokens to."}},"name()":{"details":"Returns the name of the token."},"remoteToken()":{},"supportsInterface(bytes4)":{"params":{"_interfaceId":"Interface ID to check."},"returns":{"_0":"Whether or not the interface is supported by this contract."}},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``\'s tokens of at least `amount`."}},"events":{"Burn(address,uint256)":{"params":{"account":"Address of the account tokens are being burned from.","amount":"Amount of tokens burned."}},"Mint(address,uint256)":{"params":{"account":"Address of the account tokens are being minted for.","amount":"Amount of tokens minted."}}},"title":"OptimismMintableERC20"},"ast":{"absolutePath":"src/universal/OptimismMintableERC20.sol","id":109646,"exportedSymbols":{"ERC20":[50304],"IERC165":[54446],"ILegacyMintableERC20":[109333],"IOptimismMintableERC20":[109310],"ISemver":[109417],"OptimismMintableERC20":[109645]},"nodeType":"SourceUnit","src":"32:5312:229","nodes":[{"id":109419,"nodeType":"PragmaDirective","src":"32:23:229","nodes":[],"literals":["solidity","0.8",".15"]},{"id":109421,"nodeType":"ImportDirective","src":"57:70:229","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":50305,"symbolAliases":[{"foreign":{"id":109420,"name":"ERC20","no
385deType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50304,"src":"66:5:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109423,"nodeType":"ImportDirective","src":"128:82:229","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":54447,"symbolAliases":[{"foreign":{"id":109422,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54446,"src":"137:7:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109426,"nodeType":"ImportDirective","src":"211:104:229","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC20.sol","file":"src/universal/IOptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":109334,"symbolAliases":[{"foreign":{"id":109424,"name":"ILegacyMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109333,"src":"220:20:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":109425,"name":"IOptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109310,"src":"242:22:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109428,"nodeType":"ImportDirective","src":"316:52:229","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":109646,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":109427,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"325:7:229","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109645,"nodeType":"ContractDefinition","src":"833:4510:229","nodes":[{"id":109440,"nodeType":"VariableDeclaration","src":"1022:37:229","nodes":[],"constant":false,"documentation":{"id":109438,"nodeType":"StructuredDocumentation","src":"934:83:229","text":"@notice Address of the corresponding version of this token on the remote chain."},"functionSelector":"033964be","mutability":"immutable","name":"REMOTE_TOKEN","nameLocation":"1047:12:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109439,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109443,"nodeType":"VariableDeclaration","src":"1129:31:229","nodes":[],"constant":false,"documentation":{"id":109441,"nodeType":"StructuredDocumentation","src":"1066:58:229","text":"@notice Address of the StandardBridge on this network."},"functionSelector":"ee9a31a2","mutability":"immutable","name":"BRIDGE","nameLocation":"1154:6:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109442,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109446,"nodeType":"VariableDeclaration","src":"1205:32:229","nodes":[],"constant":false,"documentation":{"id":109444,"nodeType":"StructuredDocumentation","src":"1167:33:229","text":"@notice Decimals of the token"},"mutability":"immutable","name":"DECIMALS","nameLocation":"1229:8:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109445,"name":"uint8","nodeType":"ElementaryTypeName","src":"1205:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":109453,"nodeType":"EventDefinition","src":"1434:52:229","nodes":[],"anonymous":false,"documentation":{"id":109447,"nodeType":"StructuredDocumentation","src":"1244:185:229","text":"@notice Emitted whenever tokens are minted for an account.\\n @param account Address of the account tokens are being minted for.\\n @param amount Amount of tokens minted."}
385,"eventSelector":"0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","name":"Mint","nameLocation":"1440:4:229","parameters":{"id":109452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109449,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1461:7:229","nodeType":"VariableDeclaration","scope":109453,"src":"1445:23:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109448,"name":"address","nodeType":"ElementaryTypeName","src":"1445:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109451,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1478:6:229","nodeType":"VariableDeclaration","scope":109453,"src":"1470:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109450,"name":"uint256","nodeType":"ElementaryTypeName","src":"1470:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1444:41:229"}},{"id":109460,"nodeType":"EventDefinition","src":"1684:52:229","nodes":[],"anonymous":false,"documentation":{"id":109454,"nodeType":"StructuredDocumentation","src":"1492:187:229","text":"@notice Emitted whenever tokens are burned from an account.\\n @param account Address of the account tokens are being burned from.\\n @param amount Amount of tokens burned."},"eventSelector":"cc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5","name":"Burn","nameLocation":"1690:4:229","parameters":{"id":109459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109456,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1711:7:229","nodeType":"VariableDeclaration","scope":109460,"src":"1695:23:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109455,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109458,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1728:6:229","nodeType":"VariableDeclaration","scope":109460,"src":"1720:14:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:41:229"}},{"id":109473,"nodeType":"ModifierDefinition","src":"1805:135:229","nodes":[],"body":{"id":109472,"nodeType":"Block","src":"1827:113:229","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":109464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1845:3:229","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1845:10:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109466,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"1859:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1845:20:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696467652063616e206d696e7420616e64206275726e","id":109468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1867:54:229","typeDescriptions":{"typeIdentifier":"t_stringliteral_684e9b7e2c7fdcb543a3efbe7d9ca90113ea3f2c0463752c3d3de870c67a963a","typeString":"literal_string \\"OptimismMintableERC20: only bridge can mint and burn\\""},"value":"OptimismMintableERC20: only bridge can mint and burn"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_684e9b7e2c7fdcb543a3efbe7d9ca90113ea3f2c0463752c3d3de870c67a963a","typeString":"literal_string \\"OptimismMintableERC20: only bridge can mint and burn\\""}],"id":109463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1837:7:229","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":109469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:85:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109470,"nodeType":"ExpressionStatement","src":"1837:85:229"},{"id":109471,"nodeType":"PlaceholderStatement","src":"1932:1:229"}]},"documentation":{"id":109461,"nodeType":"StructuredDocumentation","src":"1742:58:229","text":"@notice A modifier that only allows the bridge to call"},"name":"onlyBridge","nameLocation":"1814:10:229","parameters":{"id":109462,"nodeType":"ParameterList","parameters":[],"src":"1824:2:229"},"virtual":false,"visibility":"internal"},{"id":109477,"nodeType":"VariableDeclaration","src":"2009:40:229","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":109474,"nodeType":"StructuredDocumentation","src":"1946:58:229","text":"@notice Semantic version.\\n @custom:semver 1.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2032:7:229","scope":109645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109475,"name":"string","nodeType":"ElementaryTypeName","src":"2009:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":109476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2042:7:229","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \\"1.3.0\\""},"value":"1.3.0"},"visibility":"public"},{"id":109508,"nodeType":"FunctionDefinition","src":"2268:292:229","nodes":[],"body":{"id":109507,"nodeType":"Block","src":"2460:100:229","nodes":[],"statements":[{"expression":{"id":109497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109495,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"2470:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109496,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109482,"src":"2485:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2470:27:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109498,"nodeType":"ExpressionStatement","src":"2470:27:229"},{"expression":{"id":109501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109499,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"2507:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109500,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109480,"src":"2516:7:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2507:16:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}
385,"id":109502,"nodeType":"ExpressionStatement","src":"2507:16:229"},{"expression":{"id":109505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109503,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109446,"src":"2533:8:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109504,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109488,"src":"2544:9:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2533:20:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":109506,"nodeType":"ExpressionStatement","src":"2533:20:229"}]},"documentation":{"id":109478,"nodeType":"StructuredDocumentation","src":"2056:207:229","text":"@param _bridge Address of the L2 standard bridge.\\n @param _remoteToken Address of the corresponding L1 token.\\n @param _name ERC20 name.\\n @param _symbol ERC20 symbol."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":109491,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109484,"src":"2440:5:229","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109492,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109486,"src":"2447:7:229","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":109493,"kind":"baseConstructorSpecifier","modifierName":{"id":109490,"name":"ERC20","no
385deType":"IdentifierPath","referencedDeclaration":50304,"src":"2434:5:229"},"nodeType":"ModifierInvocation","src":"2434:21:229"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":109489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109480,"mutability":"mutable","name":"_bridge","nameLocation":"2297:7:229","nodeType":"VariableDeclaration","scope":109508,"src":"2289:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109479,"name":"address","nodeType":"ElementaryTypeName","src":"2289:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109482,"mutability":"mutable","name":"_remoteToken","nameLocation":"2322:12:229","nodeType":"VariableDeclaration","scope":109508,"src":"2314:20:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109481,"name":"address","nodeType":"ElementaryTypeName","src":"2314:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109484,"mutability":"mutable","name":"_name","nameLocation":"2358:5:229","nodeType":"VariableDeclaration","scope":109508,"src":"2344:19:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109483,"name":"string","nodeType":"ElementaryTypeName","src":"2344:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109486,"mutability":"mutable","name":"_symbol","nameLocation":"2387:7:229","nodeType":"VariableDeclaration","scope":109508,"src":"2373:21:229","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109485,"name":"string","nodeType":"ElementaryTypeName","src":"2373:6:229","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109488,"mutability":"mutable","name":"_decimals","nameLocation":"2410:9:229","nodeType":"VariableDeclaration","scope":109508,"src":"2404:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109487,"name":"uint8","nodeType":"ElementaryTypeName","src":"2404:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2279:146:229"},"returnParameters":{"id":109494,"nodeType":"ParameterList","parameters":[],"src":"2460:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109532,"nodeType":"FunctionDefinition","src":"2739:254:229","nodes":[],"body":{"id":109531,"nodeType":"Block","src":"2924:69:229","nodes":[],"statements":[{"expression":{"arguments":[{"id":109522,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109511,"src":"2940:3:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109523,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109513,"src":"2945:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109521,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50121,"src":"2934:5:229","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2934:19:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109525,"nodeType":"ExpressionStatement","src":"2934:19:229"},{"eventCall":{"arguments":[{"id":109527,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109511,"src":"2973:3:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109528,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109513,"src":"2978:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109526,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109453,"src":"2968:4:229","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2968:18:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109530,"nodeType":"EmitStatement","src":"2963:23:229"}]},"baseFunctions":[109302,109325],"documentation":{"id":109509,"nodeType":"StructuredDocumentation","src":"2566:168:229","text":"@notice Allows the StandardBridge on this network to mint tokens.\\n @param _to Address to mint tokens to.\\n @param _amount Amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":109519,"kind":"modifierInvocation","modifierName":{"id":109518,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":109473,"src":"2909:10:229"},"nodeType":"ModifierInvocation","src":"2909:10:229"}],"name":"mint","nameLocation":"2748:4:229","overrides":{"id":109517,"nodeType":"OverrideSpecifier","overrides":[{"id":109515,"name":"IOptimismMintableERC20","no
385deType":"IdentifierPath","referencedDeclaration":109310,"src":"2855:22:229"},{"id":109516,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"2879:20:229"}],"src":"2846:54:229"},"parameters":{"id":109514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109511,"mutability":"mutable","name":"_to","nameLocation":"2770:3:229","nodeType":"VariableDeclaration","scope":109532,"src":"2762:11:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109510,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109513,"mutability":"mutable","name":"_amount","nameLocation":"2791:7:229","nodeType":"VariableDeclaration","scope":109532,"src":"2783:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109512,"name":"uint256","nodeType":"ElementaryTypeName","src":"2783:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2752:52:229"},"returnParameters":{"id":109520,"nodeType":"ParameterList","parameters":[],"src":"2924:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":109556,"nodeType":"FunctionDefinition","src":"3174:260:229","nodes":[],"body":{"id":109555,"nodeType":"Block","src":"3361:73:229","nodes":[],"statements":[{"expression":{"arguments":[{"id":109546,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109535,"src":"3377:5:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109547,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109537,"src":"3384:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109545,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50193,"src":"3371:5:229","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3371:21:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109549,"nodeType":"ExpressionStatement","src":"3371:21:229"},{"eventCall":{"arguments":[{"id":109551,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109535,"src":"3412:5:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109552,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109537,"src":"3419:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":109550,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109460,"src":"3407:4:229","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":109553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3407:20:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109554,"nodeType":"EmitStatement","src":"3402:25:229"}]},"baseFunctions":[109309,109332],"documentation":{"id":109533,"nodeType":"StructuredDocumentation","src":"2999:170:229","text":"@notice Allows the StandardBridge on this network to burn tokens.\\n @param _from Address to burn tokens from.\\n @param _amount Amount of tokens to burn."},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[{"id":109543,"kind":"modifierInvocation","modifierName":{"id":109542,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":109473,"src":"3346:10:229"},"nodeType":"ModifierInvocation","src":"3346:10:229"}],"name":"burn","nameLocation":"3183:4:229","overrides":{"id":109541,"nodeType":"OverrideSpecifier","overrides":[{"id":109539,"name":"IOptimismMintableERC20","no
385deType":"IdentifierPath","referencedDeclaration":109310,"src":"3292:22:229"},{"id":109540,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"3316:20:229"}],"src":"3283:54:229"},"parameters":{"id":109538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109535,"mutability":"mutable","name":"_from","nameLocation":"3205:5:229","nodeType":"VariableDeclaration","scope":109556,"src":"3197:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109534,"name":"address","nodeType":"ElementaryTypeName","src":"3197:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109537,"mutability":"mutable","name":"_amount","nameLocation":"3228:7:229","nodeType":"VariableDeclaration","scope":109556,"src":"3220:15:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":109536,"name":"uint256","nodeType":"ElementaryTypeName","src":"3220:7:229","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3187:54:229"},"returnParameters":{"id":109544,"nodeType":"ParameterList","parameters":[],"src":"3361:0:229"},"scope":109645,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":109598,"nodeType":"FunctionDefinition","src":"3616:519:229","nodes":[],"body":{"id":109597,"nodeType":"Block","src":"3701:434:229","nodes":[],"statements":[{"assignments":[109565],"declarations":[{"constant":false,"id":109565,"mutability":"mutable","name":"iface1","nameLocation":"3718:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3711:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109564,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3711:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109570,"initialValue":{"expression":{"arguments":[{"id":109567,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54446,"src":"3732:7:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$54446_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$54446_$","typeString":"type(contract IERC165)"}],"id":109566,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3727:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3727:13:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$54446","typeString":"type(contract IERC165)"}},"id":109569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3727:25:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3711:41:229"},{"assignments":[109572],"declarations":[{"constant":false,"id":109572,"mutability":"mutable","name":"iface2","nameLocation":"3835:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3828:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109571,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3828:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109577,"initialValue":{"expression":{"arguments":[{"id":109574,"name":"ILegacyMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109333,"src":"3849:20:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILegacyMintableERC20_$109333_$","typeString":"type(contract ILegacyMintableERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ILegacyMintableERC20_$109333_$","typeString":"type(contract ILegacyMintableERC20)"}],"id":109573,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3844:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:26:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ILegacyMintableERC20_$109333","typeString":"type(contract ILegacyMintableERC20)"}},"id":109576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3844:38:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3828:54:229"},{"assignments":[109579],"declarations":[{"constant":false,"id":109579,"mutability":"mutable","name":"iface3","nameLocation":"3988:6:229","nodeType":"VariableDeclaration","scope":109597,"src":"3981:13:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109578,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3981:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":109584,"initialValue":{"expression":{"arguments":[{"id":109581,"name":"IOptimismMintableERC20","no
385deType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109310,"src":"4002:22:229","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC20_$109310_$","typeString":"type(contract IOptimismMintableERC20)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC20_$109310_$","typeString":"type(contract IOptimismMintableERC20)"}],"id":109580,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3997:4:229","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":109582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3997:28:229","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC20_$109310","typeString":"type(contract IOptimismMintableERC20)"}},"id":109583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"3997:40:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3981:56:229"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":109595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":109591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109585,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4054:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109586,"name":"iface1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109565,"src":"4070:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4054:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109588,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4080:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109589,"name":"iface2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109572,"src":"4096:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4080:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4054:48:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":109594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109592,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109559,"src":"4106:12:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":109593,"name":"iface3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109579,"src":"4122:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4106:22:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4054:74:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":109563,"id":109596,"nodeType":"Return","src":"4047:81:229"}]}
385,"baseFunctions":[54445],"documentation":{"id":109557,"nodeType":"StructuredDocumentation","src":"3440:171:229","text":"@notice ERC165 interface check function.\\n @param _interfaceId Interface ID to check.\\n @return Whether or not the interface is supported by this contract."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3625:17:229","parameters":{"id":109560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109559,"mutability":"mutable","name":"_interfaceId","nameLocation":"3650:12:229","nodeType":"VariableDeclaration","scope":109598,"src":"3643:19:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":109558,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3643:6:229","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3642:21:229"},"returnParameters":{"id":109563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109598,"src":"3695:4:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":109561,"name":"bool","nodeType":"ElementaryTypeName","src":"3695:4:229","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3694:6:229"},"scope":109645,"stateMutability":"pure","virtual":true,"visibility":"external"},{"id":109607,"nodeType":"FunctionDefinition","src":"4248:85:229","nodes":[],"body":{"id":109606,"nodeType":"Block","src":"4297:36:229","nodes":[],"statements":[{"expression":{"id":109604,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"4314:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109603,"id":109605,"nodeType":"Return","src":"4307:19:229"}]},"baseFunctions":[109318],"documentation":{"id":109599,"nodeType":"StructuredDocumentation","src":"4141:102:229","text":"@custom:legacy\\n @notice Legacy getter for the remote token. Use REMOTE_TOKEN going forward."},"functionSelector":"c01e1bd6","implemented":true,"kind":"function","modifiers":[],"name":"l1Token","nameLocation":"4257:7:229","parameters":{"id":109600,"nodeType":"ParameterList","parameters":[],"src":"4264:2:229"},"returnParameters":{"id":109603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109607,"src":"4288:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109601,"name":"address","nodeType":"ElementaryTypeName","src":"4288:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4287:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109616,"nodeType":"FunctionDefinition","src":"4434:80:229","nodes":[],"body":{"id":109615,"nodeType":"Block","src":"4484:30:229","nodes":[],"statements":[{"expression":{"id":109613,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"4501:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109612,"id":109614,"nodeType":"Return","src":"4494:13:229"}]},"documentation":{"id":109608,"nodeType":"StructuredDocumentation","src":"4339:90:229","text":"@custom:legacy\\n @notice Legacy getter for the bridge. Use BRIDGE going forward."},"functionSelector":"ae1f6aaf","implemented":true,"kind":"function","modifiers":[],"name":"l2Bridge","nameLocation":"4443:8:229","parameters":{"id":109609,"nodeType":"ParameterList","parameters":[],"src":"4451:2:229"},"returnParameters":{"id":109612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109616,"src":"4475:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109610,"name":"address","nodeType":"ElementaryTypeName","src":"4475:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4474:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109625,"nodeType":"FunctionDefinition","src":"4591:89:229","nodes":[],"body":{"id":109624,"nodeType":"Block","src":"4644:36:229","nodes":[],"statements":[{"expression":{"id":109622,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109440,"src":"4661:12:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109621,"id":109623,"nodeType":"Return","src":"4654:19:229"}]},"baseFunctions":[109290],"documentation":{"id":109617,"nodeType":"StructuredDocumentation","src":"4520:66:229","text":"@custom:legacy\\n @notice Legacy getter for REMOTE_TOKEN."},"functionSelector":"d6c0b2c4","implemented":true,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"4600:11:229","parameters":{"id":109618,"nodeType":"ParameterList","parameters":[],"src":"4611:2:229"},"returnParameters":{"id":109621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109625,"src":"4635:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109619,"name":"address","nodeType":"ElementaryTypeName","src":"4635:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4634:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109634,"nodeType":"FunctionDefinition","src":"4751:78:229","nodes":[],"body":{"id":109633,"nodeType":"Block","src":"4799:30:229","nodes":[],"statements":[{"expression":{"id":109631,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109443,"src":"4816:6:229","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109630,"id":109632,"nodeType":"Return","src":"4809:13:229"}]},"baseFunctions":[109295],"documentation":{"id":109626,"nodeType":"StructuredDocumentation","src":"4686:60:229","text":"@custom:legacy\\n @notice Legacy getter for BRIDGE."},"functionSelector":"e78cea92","implemented":true,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"4760:6:229","parameters":{"id":109627,"nodeType":"ParameterList","parameters":[],"src":"4766:2:229"}
385,"returnParameters":{"id":109630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109634,"src":"4790:7:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109628,"name":"address","nodeType":"ElementaryTypeName","src":"4790:7:229","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4789:9:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":109644,"nodeType":"FunctionDefinition","src":"5252:89:229","nodes":[],"body":{"id":109643,"nodeType":"Block","src":"5309:32:229","nodes":[],"statements":[{"expression":{"id":109641,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109446,"src":"5326:8:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":109640,"id":109642,"nodeType":"Return","src":"5319:15:229"}]},"baseFunctions":[49793],"documentation":{"id":109635,"nodeType":"StructuredDocumentation","src":"4835:412:229","text":"@dev Returns the number of decimals used to get its user representation.\\n For example, if `decimals` equals `2`, a balance of `505` tokens should\\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\\n NOTE: This information is only used for _display_ purposes: it in\\n no way affects any of the arithmetic of the contract, including\\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"5261:8:229","overrides":{"id":109637,"nodeType":"OverrideSpecifier","overrides":[],"src":"5284:8:229"},"parameters":{"id":109636,"nodeType":"ParameterList","parameters":[],"src":"5269:2:229"},"returnParameters":{"id":109640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109644,"src":"5302:5:229","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109638,"name":"uint8","nodeType":"ElementaryTypeName","src":"5302:5:229","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5301:7:229"},"scope":109645,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":109430,"name":"IOptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109310,"src":"867:22:229"},"id":109431,"nodeType":"InheritanceSpecifier","src":"867:22:229"},{"baseName":{"id":109432,"name":"ILegacyMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109333,"src":"891:20:229"},"id":109433,"nodeType":"InheritanceSpecifier","src":"891:20:229"}
385,{"baseName":{"id":109434,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":50304,"src":"913:5:229"},"id":109435,"nodeType":"InheritanceSpecifier","src":"913:5:229"},{"baseName":{"id":109436,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"920:7:229"},"id":109437,"nodeType":"InheritanceSpecifier","src":"920:7:229"}],"canonicalName":"OptimismMintableERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":109429,"nodeType":"StructuredDocumentation","src":"370:463:229","text":"@title OptimismMintableERC20\\n @notice OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed\\n to allow the StandardBridge contracts to mint and burn tokens. This makes it possible to\\n use an OptimismMintablERC20 as the L2 representation of an L1 token, or vice-versa.\\n Designed to be backwards compatible with the older StandardL2ERC20 token which was only\\n meant for use on L2."},"fullyImplemented":true,"linearizedBaseContracts":[109645,109417,50304,51088,50382,53291,109333,109310,54446],"name":"OptimismMintableERC20","nameLocation":"842:21:229","scope":109646,"usedErrors":[]}],"license":"MIT"},"id":229}')},70599:function(e){"use strict";e.exports=JSON.parse('{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"createOptimismMintableERC20","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createOptimismMintableERC20WithDecimals","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_decimals","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createStandardL2Token","inputs":[{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_bridge","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OptimismMintableERC20Created","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"deployer","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StandardL2TokenCreated","inputs":[{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"localToken","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001b6000610020565b610169565b600054610100900460ff16158080156100405750600054600160ff909116105b8061006b57506100593061015a60201b61059d1760201c565b15801561006b575060005460ff166001145b6100d25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100f5576000805461ff0019166101001790555b600180546001600160a01b0319166001600160a01b0384161790558015610156576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b6120e5806101786000396000f3fe60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063c4d66de81162000062578063c4d66de81462000135578063ce5ac90f146200014e578063e78cea921462000165578063ee9a31a2146200018657600080fd5b806354fd4d50146200008c578063896f93d114620000e15780638cf0629c146200011e575b600080fd5b620000c96040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b
385604051620000d8919062000635565b60405180910390f35b620000f8620000f23660046200075d565b620001a5565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b620000f86200012f366004620007da565b620001bc565b6200014c6200014636600462000871565b620003ba565b005b620000f86200015f3660046200075d565b6200058c565b600154620000f89073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000f8565b6000620001b48484846200058c565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff851662000267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b6000858585856040516020016200028294939291906200088f565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688888888604051620002d290620005b9565b620002e2959493929190620008e9565b8190604051809103906000f590508015801562000303573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff1615808015620003db5750600054600160ff909116105b80620003f75750303b158015620003f7575060005460ff166001145b62000485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200025e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015620004e457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200058857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001b48484846012620001bc565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61178a806200094f83390190565b6000815180845260005b81811015620005ef57602081850181015186830182015201620005d1565b8181111562000602576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200064a6020830184620005c7565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200067657600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112620006bc57600080fd5b813567ffffffffffffffff80821115620006da57620006da6200067b565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156200072357620007236200067b565b816040528381528660208588010111156200073d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060006060848
38560312156200077357600080fd5b6200077e8462000651565b9250602084013567ffffffffffffffff808211156200079c57600080fd5b620007aa87838801620006aa565b93506040860135915080821115620007c157600080fd5b50620007d086828701620006aa565b9150509250925092565b60008060008060808587031215620007f157600080fd5b620007fc8562000651565b9350602085013567ffffffffffffffff808211156200081a57600080fd5b6200082888838901620006aa565b945060408701359150808211156200083f57600080fd5b506200084e87828801620006aa565b925050606085013560ff811681146200086657600080fd5b939692955090935050565b6000602082840312156200088457600080fd5b6200064a8262000651565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000620008c06080830186620005c7565b8281036040840152620008d48186620005c7565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200092460a0830186620005c7565b8281036060840152620009388186620005c7565b91505060ff83166080830152969550505050505056fe60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b
38561021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b60008060006060848
38560312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000aa164736f6c634300080f000a","sourceMap":"770:5093:230:-:0;;;2694:66;;;;;;;;;-1:-1:-1;2718:35:230;2748:1;2718:10;:35::i;:::-;770:5093;;2876:89;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;;;;;:33;;:::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:43;;216:2:357;3146:190:43;;;198:21:357;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:357;;;338:44;399:19;;3146:190:43;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:43;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:43;;;;;3372:65;2942:6:230::1;:16:::0;;-1:-1:-1;;;;;;2942:16:230::1;-1:-1:-1::0;;;;;2942:16:230;::::1;;::::0;;3457:99:43;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:43;;;3531:14;;-1:-1:-1;581:36:357;;3531:14:43;;569:2:357;554:18;3531:14:43;;;;;;;3457:99;3090:472;2876:89:230;:::o;1175:320:59:-;-1:-1:-1;;;;;1465:19:59;;:23;;;1175:320::o;429:194:357:-;770:5093:230;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620000875760003560e01c8063c4d66de81162000062578063c4d66de81462000135578063ce5ac90f146200014e578063e78cea921462000165578063ee9a31a2146200018657600080fd5b806354fd4d50146200008c578063896f93d114620000e15780638cf0629c146200011e575b600080fd5b620000c96040518060400160405280600581526020017f312e392e3000000000000000000000000000000000000000000000000000000081525081565b604051620000d8919062000635565b60405180910390f35b620000f8620000f23660046200075d565b620001a5565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000d8565b620000f86200012f366004620007da565b620001bc565b6200014c6200014636600462000871565b620003ba565b005b620000f86200015f3660046200075d565b6200058c565b600154620000f89073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16620000f8565b6000620001b48484846200058c565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff851662000267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7560448201527f73742070726f766964652072656d6f746520746f6b656e20616464726573730060648201526084015b60405180910390fd5b6000858585856040516020016200028294939291906200088f565b604051602081830303815290604052805190602001209050600081600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688888888604051620002d290620005b9565b620002e2959493929190620008e9565b8190604051809103906000f590508015801562000303573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf60405160405180910390a360405133815273ffffffffffffffffffffffffffffffffffffffff80891691908316907f52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb9060200160405180910390a39695505050505050565b600054610100900460ff1615808015620003db5750600054600160ff909116105b80620003f75750303b158015620003f7575060005460ff166001145b62000485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016200025e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015620004e457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841617905580156200058857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000620001b48484846012620001bc565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b61178a806200094f83390190565b6000815180845260005b81811015620005ef57602081850181015186830182015201620005d1565b8181111562000602576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006200064a6020830184620005c7565b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200067657600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112620006bc57600080fd5b813567ffffffffffffffff80821115620006da57620006da6200067b565b604051601f8301
3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156200072357620007236200067b565b816040528381528660208588010111156200073d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156200077357600080fd5b6200077e8462000651565b9250602084013567ffffffffffffffff808211156200079c57600080fd5b620007aa87838801620006aa565b93506040860135915080821115620007c157600080fd5b50620007d086828701620006aa565b9150509250925092565b60008060008060808587031215620007f157600080fd5b620007fc8562000651565b9350602085013567ffffffffffffffff808211156200081a57600080fd5b6200082888838901620006aa565b945060408701359150808211156200083f57600080fd5b506200084e87828801620006aa565b925050606085013560ff811681146200086657600080fd5b939692955090935050565b6000602082840312156200088457600080fd5b6200064a8262000651565b73ffffffffffffffffffffffffffffffffffffffff85168152608060208201526000620008c06080830186620005c7565b8281036040840152620008d48186620005c7565b91505060ff8316606083015295945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a060408301526200092460a0830186620005c7565b8281036060840152620009388186620005c7565b91505060ff83166080830152969550505050505056fe60e06040523480156200001157600080fd5b506040516200178a3803806200178a833981016040819052620000349162000163565b828260036200004483826200029e565b5060046200005382826200029e565b5050506001600160a01b039384166080529390921660a052505060ff1660c0526200036a565b80516001600160a01b03811681146200009157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000be57600080fd5b81516001600160401b0380821115620000db57620000db62000096565b604051601f8301601f19908116603f0116810190828211818310171562000106576200010662000096565b816040528381526020925086838588010111156200012357600080fd5b600091505b8382101562000147578582018301518183018401529082019062000128565b83821115620001595760008385830101525b9695505050505050565b600080600080600060a086880312156200017c57600080fd5b620001878662000079565b9450620001976020870162000079565b60408701519094506001600160401b0380821115620001b557600080fd5b620001c389838a01620000ac565b94506060880151915080821115620001da57600080fd5b50620001e988828901620000ac565b925050608086015160ff811681146200020157600080fd5b809150509295509295909350565b600181811c908216806200022457607f821691505b6020821081036200024557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029957600081815260208120601f850160051c81016020861015620002745750805b601f850160051c820191505b81811015620002955782815560010162000280565b5050505b505050565b81516001600160401b03811115620002ba57620002ba62000096565b620002d281620002cb84546200020f565b846200024b565b602080601f8311600181146200030a5760008415620002f15750858301515b600019600386901b1c1916600185901b17855562000295565b600085815260208120601f198616915b828110156200033b578886015182559484019460019091019084016200031a565b50858210156200035a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c0516113d4620003b6600039600061024401526000818161034b015281816103e001528181610625015261075c0152600081816101a9015261037101526113d46000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c806370a08231116100d8578063ae1f6aaf1161008c578063dd62ed3e11610066578063dd62ed3e14610395578063e78cea9214610349578063ee9a31a2146103db57600080fd5b8063ae1f6aaf14610349578063c01e1bd61461036f578063d6c0b2c41461036f57600080fd5b80639dc29fac116100bd5780639dc29fac14610310578063a457c2d714610323578063a9059cbb1461033657600080fd5b806370a08231146102d257806395d89b411461030857600080fd5b806323b872dd1161012f5780633950935111610114578063395093511461026e57806340c10f191461028157806354fd4d501461029657600080fd5b806323b872dd1461022a578063313ce5671461023d57600080fd5b806306fdde031161016057806306fdde03146101f0578063095ea7b31461020557806318160ddd1461021857600080fd5b806301ffc9a71461017c578063033964be146101a4575b600080fd5b61018f61018a36600461117d565b610402565b60405190151581526020015b60405180910390f35b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019b565b6101f86104f3565b60405161019b91906111c6565b61018f610213366004611262565b610585565b6002545b60405190815260200161019b565b61018f61023836600461128c565b61059d565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161019b565b61018f61027c366004611262565b6105c1565b61029461028f366004611262565b61060d565b005b6101f86040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b
38561021c6102e03660046112c8565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6101f8610735565b61029461031e366004611262565b610744565b61018f610331366004611262565b61085b565b61018f610344366004611262565b61092c565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b7f00000000000000000000000000000000000000000000000000000000000000006101cb565b61021c6103a33660046112e3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b6101cb7f000000000000000000000000000000000000000000000000000000000000000081565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007f1d1d8b63000000000000000000000000000000000000000000000000000000007fec4fc8e3000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000085168314806104bb57507fffffffff00000000000000000000000000000000000000000000000000000000858116908316145b806104ea57507fffffffff00000000000000000000000000000000000000000000000000000000858116908216145b95945050505050565b60606003805461050290611316565b80601f016020809104026020016040519081016040528092919081815260200182805461052e90611316565b801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60003361059381858561093a565b5060019392505050565b6000336105ab858285610aee565b6105b6858585610bc5565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906105939082908690610608908790611398565b61093a565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084015b60405180910390fd5b6106e18282610e78565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161072991815260200190565b60405180910390a25050565b60606004805461050290611316565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f4f7074696d69736d4d696e7461626c6545524332303a206f6e6c79206272696460448201527f67652063616e206d696e7420616e64206275726e00000000000000000000000060648201526084016106ce565b6108138282610f98565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161072991815260200190565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091908381101561091f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016106ce565b6105b6828686840361093a565b600033610593818585610bc5565b73ffffffffffffffffffffffffffffffffffffffff83166109dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbf5781811015610bb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016106ce565b610bbf848484840361093a565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610c68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216610d0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610dc1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610e05908490611398565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e6b91815260200190565b60405180910390a3610bbf565b73ffffffffffffffffffffffffffffffffffffffff8216610ef5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ce565b8060026000828254610f079190611398565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610f41908490611398565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff821661103b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260208190526040902054818110156110f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ce565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208190526040812083830390556002805484929061112d9084906113b0565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610ae1565b60006020828403121561118f57600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146111bf57600080fd5b9392505050565b600060208083528351808285015260005b818110156111f3578581018301518582016040015282016111d7565b81811115611205576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461125d57600080fd5b919050565b6000806040838503121561127557600080fd5b61127e83611239565b946020939093013593505050565b60008060006060848
38560312156112a157600080fd5b6112aa84611239565b92506112b860208501611239565b9150604084013590509250925092565b6000602082840312156112da57600080fd5b6111bf82611239565b600080604083850312156112f657600080fd5b6112ff83611239565b915061130d60208401611239565b90509250929050565b600181811c9082168061132a57607f821691505b602082108103611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156113ab576113ab611369565b500190565b6000828210156113c2576113c2611369565b50039056fea164736f6c634300080f000aa164736f6c634300080f000a","sourceMap":"770:5093:230:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3740:255;;;;;;:::i;:::-;;:::i;:::-;;;2746:42:357;2734:55;;;2716:74;;2704:2;2689:18;3740:255:230;2570:226:357;4908:953:230;;;;;;:::i;:::-;;:::i;2876:89::-;;;;;;:::i;:::-;;:::i;:::-;;4280:275;;;;;;:::i;:::-;;:::i;1115:21::-;;;;;;;;;3237:80;3304:6;;;;3237:80;;3740:255;3901:7;3931:57;3959:12;3973:5;3980:7;3931:27;:57::i;:::-;3924:64;3740:255;-1:-1:-1;;;;3740:255:230:o;4908:953::-;5110:7;5141:26;;;5133:102;;;;;;;3974:2:357;5133:102:230;;;3956:21:357;4013:2;3993:18;;;3986:30;4052:34;4032:18;;;4025:62;4123:33;4103:18;;;4096:61;4174:19;;5133:102:230;;;;;;;;;5246:12;5282;5296:5;5303:7;5312:9;5271:51;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5261:62;;;;;;5246:77;;5333:18;5407:4;5414:6;;;;;;;;;;;5422:12;5436:5;5443:7;5452:9;5374:88;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5333:130;;5570:10;5533:48;;5556:12;5533:48;;;;;;;;;;;;5760:66;;5815:10;2716:74:357;;5760:66:230;;;;;;;;;;;2704:2:357;2689:18;5760:66:230;;;;;;;5844:10;4908:953;-1:-1:-1;;;;;;4908:953:230:o;2876:89::-;3100:19:43;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:43;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:43;1465:19:59;:23;;;3208:55:43;;-1:-1:-1;3246:12:43;;;;;:17;3208:55;3146:190;;;;;;;5684:2:357;3146:190:43;;;5666:21:357;5723:2;5703:18;;;5696:30;5762:34;5742:18;;;5735:62;5833:16;5813:18;;;5806:44;5867:19;;3146:190:43;5482:410:357;3146:190:43;3346:12;:16;;;;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;;;;;;;3372:65;2942:6:230::1;:16:::0;;;::::1;;::::0;::::1;;::::0;;3457:99:43;;;;3507:5;3491:21;;;;;;3531:14;;-1:-1:-1;6049:36:357;;3531:14:43;;6037:2:357;6022:18;3531:14:43;;;;;;;3457:99;3090:472;2876:89:230;:::o;4280:275::-;4445:7;4475:73;4515:12;4529:5;4536:7;4545:2;4475:39;:73::i;1175:320:59:-;1465:19;;;:23;;;1175:320::o;-1:-1:-1:-;;;;;;;;:::o;14:531:357:-;56:3;94:5;88:12;121:6;116:3;109:19;146:1;156:162;170:6;167:1;164:13;156:162;;;232:4;288:13;;;284:22;;278:29;260:11;;;256:20;;249:59;185:12;156:162;;;336:6;333:1;330:13;327:87;;;402:1;395:4;386:6;381:3;377:16;373:27;366:38;327:87;-1:-1:-1;459:2:357;447:15;464:66;443:88;434:98;;;;534:4;430:109;;14:531;-1:-1:-1;;14:531:357:o;550:220::-;699:2;688:9;681:21;662:4;719:45;760:2;749:9;745:18;737:6;719:45;:::i;:::-;711:53;550:220;-1:-1:-1;;;550:220:357:o;775:196::-;843:20;;903:42;892:54;;882:65;;872:93;;961:1;958;951:12;872:93;775:196;;;:::o;976:184::-;1028:77;1025:1;1018:88;1125:4;1122:1;1115:15;1149:4;1146:1;1139:15;1165:778;1208:5;1261:3;1254:4;1246:6;1242:17;1238:27;1228:55;;1279:1;1276;1269:12;1228:55;1315:6;1302:20;1341:18;1378:2;1374;1371:10;1368:36;;;1384:18;;:::i;:::-;1518:2;1512:9;1580:4;1572:13;;1423:66;1568:22;;;1592:2;1564:31;1560:40;1548:53;;;1616:18;;;1636:22;;;1613:46;1610:72;;;1662:18;;:::i;:::-;1702:10;1698:2;1691:22;1737:2;1729:6;1722:18;1783:3;1776:4;1771:2;1763:6;1759:15;1755:26;1752:35;1749:55;;;1800:1;1797;1790:12;1749:55;1864:2;1857:4;1849:6;1845:17;1838:4;1830:6;1826:17;1813:54;1911:1;1904:4;1899:2;1891:6;1887:15;1883:26;1876:37;1931:6;1922:15;;;;;;1165:778;;;;:::o;1948:617::-;2045:6;2053;2061;2114:2;2102:9;2093:7;2089:23;2085:32;2082:52;;;2130:1;2127;2120:12;2082:52;2153:29;2172:9;2153:29;:::i;:::-;2143:39;;2233:2;2222:9;2218:18;2205:32;2256:18;2297:2;2289:6;2286:14;2283:34;;;2313:1;2310;2303:12;2283:34;2336:50;2378:7;2369:6;2358:9;2354:22;2336:50;:::i;:::-;2326:60;;2439:2;2428:9;2424:18;2411:32;2395:48;;2468:2;2458:8;2455:16;2452:36;;;2484:1;2481;2474:12;2452:36;;2507:52;2551:7;2540:8;2529:9;2525:24;2507:52;:::i;:::-;2497:62;;;1948:617;;;;;:::o;2801:775::-;2905:6;2913;2921;2929;2982:3;2970:9;
3852961:7;2957:23;2953:33;2950:53;;;2999:1;2996;2989:12;2950:53;3022:29;3041:9;3022:29;:::i;:::-;3012:39;;3102:2;3091:9;3087:18;3074:32;3125:18;3166:2;3158:6;3155:14;3152:34;;;3182:1;3179;3172:12;3152:34;3205:50;3247:7;3238:6;3227:9;3223:22;3205:50;:::i;:::-;3195:60;;3308:2;3297:9;3293:18;3280:32;3264:48;;3337:2;3327:8;3324:16;3321:36;;;3353:1;3350;3343:12;3321:36;;3376:52;3420:7;3409:8;3398:9;3394:24;3376:52;:::i;:::-;3366:62;;;3478:2;3467:9;3463:18;3450:32;3522:4;3515:5;3511:16;3504:5;3501:27;3491:55;;3542:1;3539;3532:12;3491:55;2801:775;;;;-1:-1:-1;2801:775:357;;-1:-1:-1;;2801:775:357:o;3581:186::-;3640:6;3693:2;3681:9;3672:7;3668:23;3664:32;3661:52;;;3709:1;3706;3699:12;3661:52;3732:29;3751:9;3732:29;:::i;4204:583::-;4465:42;4457:6;4453:55;4442:9;4435:74;4545:3;4540:2;4529:9;4525:18;4518:31;4416:4;4572:46;4613:3;4602:9;4598:19;4590:6;4572:46;:::i;:::-;4666:9;4658:6;4654:22;4649:2;4638:9;4634:18;4627:50;4694:33;4720:6;4712;4694:33;:::i;:::-;4686:41;;;4775:4;4767:6;4763:17;4758:2;4747:9;4743:18;4736:45;4204:583;;;;;;;:::o;4792:685::-;5032:4;5061:42;5142:2;5134:6;5130:15;5119:9;5112:34;5194:2;5186:6;5182:15;5177:2;5166:9;5162:18;5155:43;;5234:3;5229:2;5218:9;5214:18;5207:31;5261:46;5302:3;5291:9;5287:19;5279:6;5261:46;:::i;:::-;5355:9;5347:6;5343:22;5338:2;5327:9;5323:18;5316:50;5383:33;5409:6;5401;5383:33;:::i;:::-;5375:41;;;5465:4;5457:6;5453:17;5447:3;5436:9;5432:19;5425:46;4792:685;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","bridge()":"e78cea92","createOptimismMintableERC20(address,string,
385string)":"ce5ac90f","createOptimismMintableERC20WithDecimals(address,string,string,uint8)":"8cf0629c","createStandardL2Token(address,string,string)":"896f93d1","initialize(address)":"c4d66de8","version()":"54fd4d50"},"rawMetadata":"{\\"compiler\\":{\\"version\\":\\"0.8.15+commit.e14f2714\\"},\\"language\\":\\"Solidity\\",\\"output\\":{\\"abi\\":[{\\"inputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"constructor\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":false,\\"internalType\\":\\"uint8\\",\\"name\\":\\"version\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"Initialized\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":false,\\"internalType\\":\\"address\\",\\"name\\":\\"deployer\\",\\"type\\":\\"address\\"}],\\"name\\":\\"OptimismMintableERC20Created\\",\\"type\\":\\"event\\"},{\\"anonymous\\":false,\\"inputs\\":[{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"remoteToken\\",\\"type\\":\\"address\\"},{\\"indexed\\":true,\\"internalType\\":\\"address\\",\\"name\\":\\"localToken\\",\\"type\\":\\"address\\"}],\\"name\\":\\"StandardL2TokenCreated\\",\\"type\\":\\"event\\"},{\\"inputs\\":[],\\"name\\":\\"BRIDGE\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"bridge\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_name\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_symbol\\",\\"type\\":\\"string\\"}],\\"name\\":\\"createOptimismMintableERC20\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_name\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_symbol\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"uint8\\",\\"name\\":\\"_decimals\\",\\"type\\":\\"uint8\\"}],\\"name\\":\\"createOptimismMintableERC20WithDecimals\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_remoteToken\\",\\"type\\":\\"address\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_name\\",\\"type\\":\\"string\\"},{\\"internalType\\":\\"string\\",\\"name\\":\\"_symbol\\",\\"type\\":\\"string\\"}],\\"name\\":\\"createStandardL2Token\\",\\"outputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"\\",\\"type\\":\\"address\\"}],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[{\\"internalType\\":\\"address\\",\\"name\\":\\"_bridge\\",\\"type\\":\\"address\\"}],\\"name\\":\\"initialize\\",\\"outputs\\":[],\\"stateMutability\\":\\"nonpayable\\",\\"type\\":\\"function\\"},{\\"inputs\\":[],\\"name\\":\\"version\\",\\"outputs\\":[{\\"internalType\\":\\"string\\",\\"name\\":\\"\\",\\"type\\":\\"string\\"}],\\"stateMutability\\":\\"view\\",\\"type\\":\\"function\\"}],\\"devdoc\\":{\\"custom:proxied\\":\\"@custom:predeployed 0x4200000000000000000000000000000000000012\\",\\"events\\":{\\"OptimismMintableERC20Created(address,address,address)\\":{\\"params\\":{\\"deployer\\":\\"Address of the account that deployed the token.\\",\\"localToken\\":\\"Address of the created token on the local chain.\\",\\"remoteToken\\":\\"Address of the corresponding token on the remote chain.\\"}},\\"StandardL2TokenCreated(address,address)\\":{\\"custom:legacy\\":\\"@notice Emitted whenever a new OptimismMintableERC20 is created. Legacy version of the newer OptimismMintableERC20Created event. We recommend relying on that event instead.\\",\\"params\\":{\\"localToken\\":\\"Address of the created token on the local chain.\\",\\"remoteToken\\":\\"Address of the token on the remote chain.\\"}}},\\"kind\\":\\"dev\\",\\"methods\\":{\\"BRIDGE()\\":{\\"custom:legacy\\":\\"\\",\\"returns\\":{\\"_0\\":\\"Address of the StandardBridge on this chain.\\"}}
385,\\"createOptimismMintableERC20(address,string,string)\\":{\\"params\\":{\\"_name\\":\\"ERC20 name.\\",\\"_remoteToken\\":\\"Address of the token on the remote chain.\\",\\"_symbol\\":\\"ERC20 symbol.\\"},\\"returns\\":{\\"_0\\":\\"Address of the newly created token.\\"}},\\"createOptimismMintableERC20WithDecimals(address,string,string,uint8)\\":{\\"params\\":{\\"_decimals\\":\\"ERC20 decimals\\",\\"_name\\":\\"ERC20 name.\\",\\"_remoteToken\\":\\"Address of the token on the remote chain.\\",\\"_symbol\\":\\"ERC20 symbol.\\"},\\"returns\\":{\\"_0\\":\\"Address of the newly created token.\\"}},\\"createStandardL2Token(address,string,string)\\":{\\"custom:legacy\\":\\"@notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the newer createOptimismMintableERC20 function, which has a more intuitive name.\\",\\"params\\":{\\"_name\\":\\"ERC20 name.\\",\\"_remoteToken\\":\\"Address of the token on the remote chain.\\",\\"_symbol\\":\\"ERC20 symbol.\\"},\\"returns\\":{\\"_0\\":\\"Address of the newly created token.\\"}},\\"initialize(address)\\":{\\"params\\":{\\"_bridge\\":\\"Address of the StandardBridge on this chain.\\"}}},\\"stateVariables\\":{\\"bridge\\":{\\"custom:network-specific\\":\\"\\"},\\"spacer_0_2_30\\":{\\"custom:spacer\\":\\"OptimismMintableERC20Factory\'s initializer slot spacing\\"},\\"version\\":{\\"custom:semver\\":\\"1.9.0\\"}},\\"title\\":\\"OptimismMintableERC20Factory\\",\\"version\\":1},\\"userdoc\\":{\\"events\\":{\\"OptimismMintableERC20Created(address,address,address)\\":{\\"notice\\":\\"Emitted whenever a new OptimismMintableERC20 is created.\\"}},\\"kind\\":\\"user\\",\\"methods\\":{\\"BRIDGE()\\":{\\"notice\\":\\"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead.\\"},\\"bridge()\\":{\\"notice\\":\\"Address of the StandardBridge on this chain.\\"},\\"constructor\\":{\\"notice\\":\\"Constructs the OptimismMintableERC20Factory contract.\\"}
385,\\"createOptimismMintableERC20(address,string,string)\\":{\\"notice\\":\\"Creates an instance of the OptimismMintableERC20 contract.\\"},\\"createOptimismMintableERC20WithDecimals(address,string,string,uint8)\\":{\\"notice\\":\\"Creates an instance of the OptimismMintableERC20 contract, with specified decimals.\\"},\\"initialize(address)\\":{\\"notice\\":\\"Initializes the contract.\\"},\\"version()\\":{\\"notice\\":\\"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version.\\"}},\\"notice\\":\\"OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20 contracts on the network it\'s deployed to. Simplifies the deployment process for users who may be less familiar with deploying smart contracts. Designed to be backwards compatible with the older StandardL2ERC20Factory contract.\\",\\"version\\":1}},\\"settings\\":{\\"compilationTarget\\":{\\"src/universal/OptimismMintableERC20Factory.sol\\":\\"OptimismMintableERC20Factory\\"},\\"evmVersion\\":\\"london\\",\\"libraries\\":{},\\"metadata\\":{\\"bytecodeHash\\":\\"none\\"},\\"optimizer\\":{\\"enabled\\":true,\\"runs\\":999999},\\"remappings\\":[\\":@lib-keccak/=lib/lib-keccak/contracts/lib/\\",\\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\\",\\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\\",\\":@rari-capital/solmate/=lib/solmate/\\",\\":@solady-test/=lib/lib-keccak/lib/solady/test/\\",\\":@solady/=lib/solady/src/\\",\\":ds-test/=lib/forge-std/lib/ds-test/src/\\",\\":forge-std/=lib/forge-std/src/\\",\\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\\",\\":lib-keccak/=lib/lib-keccak/contracts/\\",\\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\\",\\":openzeppelin-contracts/=lib/openzeppelin-contracts/\\",\\":safe-contracts/=lib/safe-contracts/contracts/\\",\\":solady/=lib/solady/\\",\\":solmate/=lib/solmate/src/\\"]},\\"sources\\":{\\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\\":{\\"keccak256\\":\\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\\",\\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\\":{\\"keccak256\\":\\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\\",\\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\\":{\\"keccak256\\":\\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\\",\\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\\"]},\\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\\":{\\"keccak256\\":\\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\\",\\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Address.sol\\":{\\"keccak256\\":\\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\\",\\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\\"]},\\"lib/openzeppelin-contracts/contracts/utils/Context.sol\\":{\\"keccak256\\":\\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\\",\\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\\"]},\\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\\":{\\"keccak256\\":\\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\\",\\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\\"]},\\"src/universal/IOptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x6f8133b39efcb
385cbd5088f195dfacf1bedc3146508429c3865443909af735a04c\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\\",\\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\\"]},\\"src/universal/ISemver.sol\\":{\\"keccak256\\":\\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\\",\\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\\"]},\\"src/universal/OptimismMintableERC20.sol\\":{\\"keccak256\\":\\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\\",\\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\\"]},\\"src/universal/OptimismMintableERC20Factory.sol\\":{\\"keccak256\\":\\"0xb508dc7b6f7fbf6e7156a11ae7a1e6ceed86f627c82b94d4f37dd98691b5e00f\\",\\"license\\":\\"MIT\\",\\"urls\\":[\\"bzz-raw://5e27f27581f94a983c92809aeda85232e37e1de4552777fbf734c9a0fd84a5a9\\",\\"dweb:/ipfs/QmVNzxCwipUN2UgcrYf8n7Ei7y6uE76cCYcorAwRg96Kp3\\"]}},\\"version\\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"deployer","type":"address","indexed":false}],"type":"event","name":"OptimismMintableERC20Created","anonymous":false},{"inputs":[{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"localToken","type":"address","indexed":true}],"type":"event","name":"StandardL2TokenCreated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createOptimismMintableERC20","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createOptimismMintableERC20WithDecimals","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"createStandardL2Token","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_bridge","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"BRIDGE()":{"custom:legacy":"","returns":{"_0":"Address of the StandardBridge on this chain."}}
385,"createOptimismMintableERC20(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"params":{"_decimals":"ERC20 decimals","_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createStandardL2Token(address,string,string)":{"custom:legacy":"@notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the newer createOptimismMintableERC20 function, which has a more intuitive name.","params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"initialize(address)":{"params":{"_bridge":"Address of the StandardBridge on this chain."}}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead."},"bridge()":{"notice":"Address of the StandardBridge on this chain."},"constructor":{"notice":"Constructs the OptimismMintableERC20Factory contract."}
385,"createOptimismMintableERC20(address,string,string)":{"notice":"Creates an instance of the OptimismMintableERC20 contract."},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"notice":"Creates an instance of the OptimismMintableERC20 contract, with specified decimals."},"initialize(address)":{"notice":"Initializes the contract."},"version()":{"notice":"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/OptimismMintableERC20Factory.sol":"OptimismMintableERC20Factory"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f
3851ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/OptimismMintableERC20Factory.sol":{"keccak256":"0xb508dc7b6f7fbf6e7156a11ae7a1e6ceed86f627c82b94d4f37dd98691b5e00f","urls":["bzz-raw://5e27f27581f94a983c92809aeda85232e37e1de4552777fbf734c9a0fd84a5a9","dweb:/ipfs/QmVNzxCwipUN2UgcrYf8n7Ei7y6uE76cCYcorAwRg96Kp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":49534,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":49537,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":109661,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":109664,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"bridge","offset":0,"slot":"1","type":"t_address"},{"astId":109669,"contract":"src/universal/OptimismMintableERC20Factory.sol:OptimismMintableERC20Factory","label":"__gap","offset":0,"slot":"2","type":"t_array(t_uint256)49_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Getter function for the address of the StandardBridge on this chain. Public getter is legacy and will be removed in the future. Use `bridge` instead."},"bridge()":{"notice":"Address of the StandardBridge on this chain."},"constructor":{"notice":"Constructs the OptimismMintableERC20Factory contract."}
385,"createOptimismMintableERC20(address,string,string)":{"notice":"Creates an instance of the OptimismMintableERC20 contract."},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"notice":"Creates an instance of the OptimismMintableERC20 contract, with specified decimals."},"initialize(address)":{"notice":"Initializes the contract."},"version()":{"notice":"The semver MUST be bumped any time that there is a change in the OptimismMintableERC20 token contract since this contract is responsible for deploying OptimismMintableERC20 contracts.Semantic version."}},"events":{"OptimismMintableERC20Created(address,address,address)":{"notice":"Emitted whenever a new OptimismMintableERC20 is created."}},"notice":"OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20 contracts on the network it\'s deployed to. Simplifies the deployment process for users who may be less familiar with deploying smart contracts. Designed to be backwards compatible with the older StandardL2ERC20Factory contract."},"devdoc":{"version":1,"kind":"dev","methods":{"BRIDGE()":{"returns":{"_0":"Address of the StandardBridge on this chain."}}
385,"createOptimismMintableERC20(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createOptimismMintableERC20WithDecimals(address,string,string,uint8)":{"params":{"_decimals":"ERC20 decimals","_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"createStandardL2Token(address,string,string)":{"params":{"_name":"ERC20 name.","_remoteToken":"Address of the token on the remote chain.","_symbol":"ERC20 symbol."},"returns":{"_0":"Address of the newly created token."}},"initialize(address)":{"params":{"_bridge":"Address of the StandardBridge on this chain."}}},"events":{"OptimismMintableERC20Created(address,address,address)":{"params":{"deployer":"Address of the account that deployed the token.","localToken":"Address of the created token on the local chain.","remoteToken":"Address of the corresponding token on the remote chain."}},"StandardL2TokenCreated(address,address)":{"params":{"localToken":"Address of the created token on the local chain.","remoteToken":"Address of the token on the remote chain."}}},"title":"OptimismMintableERC20Factory"},"ast":{"absolutePath":"src/universal/OptimismMintableERC20Factory.sol","id":109832,"exportedSymbols":{"ISemver":[109417],"Initializable":[49678],"OptimismMintableERC20":[109645],"OptimismMintableERC20Factory":[109831]},"nodeType":"SourceUnit","src":"32:5832:230","nodes":[{"id":109647,"nodeType":"PragmaDirective","src":"32:23:230","nodes":[],"literals":["solidity","0.8",".15"]},{"id":109649,"nodeType":"ImportDirective","src":"57:80:230","nodes":[],"absolutePath":"src/universal/OptimismMintableERC20.sol","file":"src/universal/OptimismMintableERC20.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":109646,"symbolAliases":[{"foreign":{"id":109648,"name":"OptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109645,"src":"66:21:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109651,"nodeType":"ImportDirective","src":"138:52:230","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":109418,"symbolAliases":[{"foreign":{"id":109650,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109417,"src":"147:7:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109653,"nodeType":"ImportDirective","src":"191:86:230","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":109832,"sourceUnit":49679,"symbolAliases":[{"foreign":{"id":109652,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49678,"src":"200:13:230","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":109831,"nodeType":"ContractDefinition","src":"770:5093:230","nodes":[{"id":109661,"nodeType":"VariableDeclaration","src":"985:29:230","nodes":[],"constant":false,"documentation":{"id":109659,"nodeType":"StructuredDocumentation","src":"840:140:230","text":"@custom:spacer OptimismMintableERC20Factory\'s initializer slot spacing\\n @notice Spacer to avoid packing into the initializer slot"},"mutability":"mutable","name":"spacer_0_2_30","nameLocation":"1001:13:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":109660,"name":"bytes30","nodeType":"ElementaryTypeName","src":"985:7:230","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"private"},{"id":109664,"nodeType":"VariableDeclaration","src":"1115:21:230","nodes":[],"constant":false,"documentation":{"id":109662,"nodeType":"StructuredDocumentation","src":"1021:89:230","text":"@notice Address of the StandardBridge on this chain.\\n @custom:network-specific"},"functionSelector":"e78cea92","mutability":"mutable","name":"bridge","nameLocation":"1130:6:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109663,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":109669,"nodeType":"VariableDeclaration","src":"1370:25:230","no
385des":[],"constant":false,"documentation":{"id":109665,"nodeType":"StructuredDocumentation","src":"1143:222:230","text":"@notice Reserve extra slots in the storage layout for future upgrades.\\n A gap size of 49 was chosen here, so that the first slot used in a child contract\\n would be 1 plus a multiple of 50."},"mutability":"mutable","name":"__gap","nameLocation":"1390:5:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":109666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1370:7:230","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":109668,"length":{"hexValue":"3439","id":109667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1378:2:230","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1370:11:230","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":109676,"nodeType":"EventDefinition","src":"1767:86:230","nodes":[],"anonymous":false,"documentation":{"id":109670,"nodeType":"StructuredDocumentation","src":"1402:360:230","text":"@custom:legacy\\n @notice Emitted whenever a new OptimismMintableERC20 is created. Legacy version of the newer\\n OptimismMintableERC20Created event. We recommend relying on that event instead.\\n @param remoteToken Address of the token on the remote chain.\\n @param localToken Address of the created token on the local chain."},"eventSelector":"ceeb8e7d520d7f3b65fc11a262b91066940193b05d4f93df07cfdced0eb551cf","name":"StandardL2TokenCreated","nameLocation":"1773:22:230","parameters":{"id":109675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109672,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"1812:11:230","nodeType":"VariableDeclaration","scope":109676,"src":"1796:27:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109671,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109674,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"1841:10:230","nodeType":"VariableDeclaration","scope":109676,"src":"1825:26:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109673,"name":"address","nodeType":"ElementaryTypeName","src":"1825:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1795:57:230"}},{"id":109685,"nodeType":"EventDefinition","src":"2166:110:230","nodes":[],"anonymous":false,"documentation":{"id":109677,"nodeType":"StructuredDocumentation","src":"1859:302:230","text":"@notice Emitted whenever a new OptimismMintableERC20 is created.\\n @param localToken Address of the created token on the local chain.\\n @param remoteToken Address of the corresponding token on the remote chain.\\n @param deployer Address of the account that deployed the token."},"eventSelector":"52fe89dd5930f343d25650b62fd367bae47088bcddffd2a88350a6ecdd620cdb","name":"OptimismMintableERC20Created","nameLocation":"2172:28:230","parameters":{"id":109684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109679,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"2217:10:230","nodeType":"VariableDeclaration","scope":109685,"src":"2201:26:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109678,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109681,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"2245:11:230","no
385deType":"VariableDeclaration","scope":109685,"src":"2229:27:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109680,"name":"address","nodeType":"ElementaryTypeName","src":"2229:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109683,"indexed":false,"mutability":"mutable","name":"deployer","nameLocation":"2266:8:230","nodeType":"VariableDeclaration","scope":109685,"src":"2258:16:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109682,"name":"address","nodeType":"ElementaryTypeName","src":"2258:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:75:230"}},{"id":109689,"nodeType":"VariableDeclaration","src":"2577:40:230","nodes":[],"baseFunctions":[109416],"constant":true,"documentation":{"id":109686,"n
385odeType":"StructuredDocumentation","src":"2282:290:230","text":"@notice The semver MUST be bumped any time that there is a change in\\n the OptimismMintableERC20 token contract since this contract\\n is responsible for deploying OptimismMintableERC20 contracts.\\n @notice Semantic version.\\n @custom:semver 1.9.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"2600:7:230","scope":109831,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109687,"name":"string","nodeType":"ElementaryTypeName","src":"2577:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e392e30","id":109688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2610:7:230","typeDescriptions":{"typeIdentifier":"t_stringliteral_48b337767c221abef259fe87e655d8fa1026fb5e60ec68ad68fa7e00bb7f050c","typeString":"literal_string \\"1.9.0\\""},"value":"1.9.0"},"visibility":"public"},{"id":109701,"nodeType":"FunctionDefinition","src":"2694:66:230","nodes":[],"body":{"id":109700,"nodeType":"Block","src":"2708:52:230","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":109696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2748:1:230","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":109695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109694,"name":"address","nodeType":"ElementaryTypeName","src":"2740:7:230","typeDescriptions":{}}},"id":109697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2740:10:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":109693,"name":"initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109714,"src":"2718
385:10:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":109698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_bridge"],"nodeType":"FunctionCall","src":"2718:35:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109699,"nodeType":"ExpressionStatement","src":"2718:35:230"}]},"documentation":{"id":109690,"nodeType":"StructuredDocumentation","src":"2624:65:230","text":"@notice Constructs the OptimismMintableERC20Factory contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":109691,"nodeType":"ParameterList","parameters":[],"src":"2705:2:230"},"returnParameters":{"id":109692,"nodeType":"ParameterList","parameters":[],"src":"2708:0:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109714,"nodeType":"FunctionDefinition","src":"2876:89:230","nodes":[],"body":{"id":109713,"nodeType":"Block","src":"2932:33:230","nodes":[],"statements":[{"expression":{"id":109711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":109709,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"2942:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":109710,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109704,"src":"2951:7:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2942:16:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":109712,"nodeType":"ExpressionStatement","src":"2942:16:230"}]},"documentation":{"id":109702,"nodeType":"StructuredDocumentation","src":"2766:105:230","text":"@notice Initializes the contract.\\n @param _bridge Address of the StandardBridge on this chain."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":109707,"kind":"modifierInvocation","modifierName":{"id":109706,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":49598,"src":"2920:11:230"},"nodeType":"ModifierInvocation","src":"2920:11:230"}],"name":"initialize","nameLocation":"2885:10:230","parameters":{"id":109705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109704,"mutability":"mutable","name":"_bridge","nameLocation":"2904:7:230","nodeType":"VariableDeclaration","scope":109714,"src":"2896:15:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109703,"name":"address","nodeType":"ElementaryTypeName","src":"2896:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2895:17:230"},"returnParameters":{"id":109708,"nodeType":"ParameterList","parameters":[],"src":"2932:0:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109723,"nodeType":"FunctionDefinition","src":"3237:80:230","nodes":[],"body":{"id":109722,"nodeType":"Block","src":"3287:30:230","nodes":[],"statements":[{"expression":{"id":109720,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"3304:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109719,"id":109721,"nodeType":"Return","src":"3297:13:230"}]},"documentation":{"id":109715,"nodeType":"StructuredDocumentation","src":"2971:261:230","text":"@notice Getter function for the address of the StandardBridge on this chain.\\n Public getter is legacy and will be removed in the future. Use `bridge` instead.\\n @return Address of the StandardBridge on this chain.\\n @custom:legacy"},"functionSelector":"ee9a31a2","implemented":true,"kind":"function","modifiers":[],"name":"BRIDGE","nameLocation":"3246:6:230","parameters":{"id":109716,"nodeType":"ParameterList","parameters":[],"src":"3252:2:230"},"returnParameters":{"id":109719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109723,"src":"3278:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109717,"name":"address","nodeType":"ElementaryTypeName","src":"3278:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3277:9:230"},"scope":109831,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":109742,"nodeType":"FunctionDefinition","src":"3740:255:230","no
385des":[],"body":{"id":109741,"nodeType":"Block","src":"3914:81:230","nodes":[],"statements":[{"expression":{"arguments":[{"id":109736,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109726,"src":"3959:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109737,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109728,"src":"3973:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109738,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109730,"src":"3980:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":109735,"name":"createOptimismMintableERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109762,"src":"3931:27:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (address,string memory,string memory) returns (address)"}},"id":109739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3931:57:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109734,"id":109740,"nodeType":"Return","src":"3924:64:230"}]},"documentation":{"id":109724,"nodeType":"StructuredDocumentation","src":"3323:412:230","text":"@custom:legacy\\n @notice Creates an instance of the OptimismMintableERC20 contract. Legacy version of the\\n newer createOptimismMintableERC20 function, which has a more intuitive name.\\n @param _remoteToken Address of the token on the remote chain.\\n @param _name ERC20 name.\\n @param _symbol ERC20 symbol.\\n @return Address of the newly created token."},"functionSelector":"896f93d1","implemented":true,"kind":"function","modifiers":[],"name":"createStandardL2Token","nameLocation":"3749:21:230","parameters":{"id":109731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109726,"mutability":"mutable","name":"_remoteToken","nameLocation":"3788:12:230","nodeType":"VariableDeclaration","scope":109742,"src":"3780:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109725,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109728,"mutability":"mutable","name":"_name","nameLocation":"3824:5:230","nodeType":"VariableDeclaration","scope":109742,"src":"3810:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109727,"name":"string","nodeType":"ElementaryTypeName","src":"3810:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109730,"mutability":"mutable","name":"_symbol","nameLocation":"3853:7:230","nodeType":"VariableDeclaration","scope":109742,"src":"3839:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109729,"name":"string","nodeType":"ElementaryTypeName","src":"3839:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3770:96:230"},"returnParameters":{"id":109734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109742,"src":"3901:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109732,"name":"address","nodeType":"ElementaryTypeName","src":"3901:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3900:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}
385,{"id":109762,"nodeType":"FunctionDefinition","src":"4280:275:230","nodes":[],"body":{"id":109761,"nodeType":"Block","src":"4458:97:230","nodes":[],"statements":[{"expression":{"arguments":[{"id":109755,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109745,"src":"4515:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109756,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109747,"src":"4529:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109757,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109749,"src":"4536:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3138","id":109758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4545:2:230","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":109754,"name":"createOptimismMintableERC20WithDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109830,"src":"4475:39:230","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_address_$","typeString":"function (address,string memory,string memory,uint8) returns (address)"}},"id":109759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4475:73:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}
385,"functionReturnParameters":109753,"id":109760,"nodeType":"Return","src":"4468:80:230"}]},"documentation":{"id":109743,"nodeType":"StructuredDocumentation","src":"4001:274:230","text":"@notice Creates an instance of the OptimismMintableERC20 contract.\\n @param _remoteToken Address of the token on the remote chain.\\n @param _name ERC20 name.\\n @param _symbol ERC20 symbol.\\n @return Address of the newly created token."},"functionSelector":"ce5ac90f","implemented":true,"kind":"function","modifiers":[],"name":"createOptimismMintableERC20","nameLocation":"4289:27:230","parameters":{"id":109750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109745,"mutability":"mutable","name":"_remoteToken","nameLocation":"4334:12:230","nodeType":"VariableDeclaration","scope":109762,"src":"4326:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109744,"name":"address","nodeType":"ElementaryTypeName","src":"4326:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109747,"mutability":"mutable","name":"_name","nameLocation":"4370:5:230","nodeType":"VariableDeclaration","scope":109762,"src":"4356:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109746,"name":"string","nodeType":"ElementaryTypeName","src":"4356:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109749,"mutability":"mutable","name":"_symbol","nameLocation":"4399:7:230","nodeType":"VariableDeclaration","scope":109762,"src":"4385:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109748,"name":"string","nodeType":"ElementaryTypeName","src":"4385:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4316:96:230"},"returnParameters":{"id":109753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109762,"src":"4445:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109751,"name":"address","nodeType":"ElementaryTypeName","src":"4445:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4444:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":109830,"nodeType":"FunctionDefinition","src":"4908:953:230","nodes":[],"body":{"id":109829,"nodeType":"Block","src":"5123:738:230","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":109782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109777,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5141:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":109780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5165:1:230","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":109779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5157:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109778,"name":"address","nodeType":"ElementaryTypeName","src":"5157:7:230","typeDescriptions":{}}},"id":109781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5157:10:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5141:26:230","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433230466163746f72793a206d7573742070726f766964652072656d6f746520746f6b656e2061646472657373","id":109783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5169:65:230","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fc9c38ce58e5889170de515a92b1e54913f12f8fd8aa9ab11446ca47e097779","typeString":"literal_string \\"OptimismMintableERC20Factory: must provide remote token address\\""},"value":"OptimismMintableERC20Factory: must provide remote token address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1fc9c38ce58e5889170de515a92b1e54913f12f8fd8aa9ab11446ca47e097779","typeString":"literal_string \\"OptimismMintableERC20Factory: must provide remote token address\\""}],"id":109776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5133:7:230","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":109784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5133:102:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109785,"nodeType":"ExpressionStatement","src":"5133:102:230"},{"assignments":[109787],"declarations":[{"constant":false,"id":109787,"mutability":"mutable","name":"salt","nameLocation":"5254:4:230","nodeType":"VariableDeclaration","scope":109829,"src":"5246:12:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":109786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5246:7:230","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":109797,"initialValue":{"arguments":[{"arguments":[{"id":109791,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5282:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109792,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109767,"src":"5296:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109793,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109769,"src":"5303:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109794,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109771,"src":"5312:9:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":109789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5271:3:230","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":109790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5271:10:230","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":109795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5271:51:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":109788,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5261:9:230","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":109796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5261:62:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5246:77:230"},{"assignments":[109799],"declarations":[{"constant":false,"id":109799,"mutability":"mutable","name":"localToken","nameLocation":"5341:10:230","no
385deType":"VariableDeclaration","scope":109829,"src":"5333:18:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109798,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":109814,"initialValue":{"arguments":[{"arguments":[{"id":109807,"name":"bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109664,"src":"5414:6:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109808,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5422:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109809,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109767,"src":"5436:5:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109810,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109769,"src":"5443:7:230","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":109811,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109771,"src":"5452:9:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":109804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5374:25:230","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_OptimismMintableERC20_$109645_$","typeString":"function (address,address,string memory,string memory,uint8) returns (contract OptimismMintableERC20)"},"typeName":{"id":109803,"nodeType":"UserDefinedTypeName","pathNode":{"id":109802,"name":"OptimismMintableERC20","nodeType":"IdentifierPath","referencedDeclaration":109645,"src":"5378:21:230"},"referencedDeclaration":109645,"src":"5378:21:230","typeDescriptions":{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}}},"id":109806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":109805,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109787,"src":"5407:4:230","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"5374:39:230","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_OptimismMintableERC20_$109645_$salt","typeString":"function (address,address,string memory,string memory,uint8) returns (contract OptimismMintableERC20)"}},"id":109812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5374:88:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimismMintableERC20_$109645","typeString":"contract OptimismMintableERC20"}],"id":109801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5366:7:230","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":109800,"name":"address","nodeType":"ElementaryTypeName","src":"5366:7:230","typeDescriptions":{}}},"id":109813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","l
385ValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5366:97:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5333:130:230"},{"eventCall":{"arguments":[{"id":109816,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5556:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109817,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5570:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":109815,"name":"StandardL2TokenCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109676,"src":"5533:22:230","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":109818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5533:48:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109819,"nodeType":"EmitStatement","src":"5528:53:230"},{"eventCall":{"arguments":[{"id":109821,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5789:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109822,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109765,"src":"5801:12:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":109823,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5815:3:230","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":109824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"5815:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":109820,"name":"OptimismMintableERC20Created","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109685,"src":"5760:28:230","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":109825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5760:66:230","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109826,"nodeType":"EmitStatement","src":"5755:71:230"},{"expression":{"id":109827,"name":"localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109799,"src":"5844:10:230","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":109775,"id":109828,"nodeType":"Return","src":"5837:17:230"}]},"documentation":{"id":109763,"nodeType":"StructuredDocumentation","src":"4561:342:230","text":"@notice Creates an instance of the OptimismMintableERC20 contract, with specified decimals.\\n @param _remoteToken Address of the token on the remote chain.\\n @param _name ERC20 name.\\n @param _symbol ERC20 symbol.\\n @param _decimals ERC20 decimals\\n @return Address of the newly created token."},"functionSelector":"8cf0629c","implemented":true,"kind":"function","modifiers":[],"name":"createOptimismMintableERC20WithDecimals","nameLocation":"4917:39:230","parameters":{"id":109772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109765,"mutability":"mutable","name":"_remoteToken","nameLocation":"4974:12:230","no
385deType":"VariableDeclaration","scope":109830,"src":"4966:20:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109764,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109767,"mutability":"mutable","name":"_name","nameLocation":"5010:5:230","nodeType":"VariableDeclaration","scope":109830,"src":"4996:19:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109766,"name":"string","nodeType":"ElementaryTypeName","src":"4996:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109769,"mutability":"mutable","name":"_symbol","nameLocation":"5039:7:230","nodeType":"VariableDeclaration","scope":109830,"src":"5025:21:230","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":109768,"name":"string","nodeType":"ElementaryTypeName","src":"5025:6:230","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":109771,"mutability":"mutable","name":"_decimals","nameLocation":"5062:9:230","nodeType":"VariableDeclaration","scope":109830,"src":"5056:15:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":109770,"name":"uint8","nodeType":"ElementaryTypeName","src":"5056:5:230","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4956:121:230"},"returnParameters":{"id":109775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":109830,"src":"5110:7:230","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":109773,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:230","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:9:230"},"scope":109831,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":109655,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":109417,"src":"811:7:230"},"id":109656,"nodeType":"InheritanceSpecifier","src":"811:7:230"},{"baseName":{"id":109657,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":49678,"src":"820:13:230"},"id":109658,"nodeType":"InheritanceSpecifier","src":"820:13:230"}],"canonicalName":"OptimismMintableERC20Factory","contractDependencies":[109645],"contractKind":"contract","documentation":{"id":109654,"nodeType":"StructuredDocumentation","src":"279:491:230","text":"@custom:proxied\\n @custom:predeployed 0x4200000000000000000000000000000000000012\\n @title OptimismMintableERC20Factory\\n @notice OptimismMintableERC20Factory is a factory contract that generates OptimismMintableERC20\\n contracts on the network it\'s deployed to. Simplifies the deployment process for users\\n who may be less familiar with deploying smart contracts. Designed to be backwards\\n compatible with the older StandardL2ERC20Factory contract."},"fullyImplemented":true,"linearizedBaseContracts":[109831,49678,109417],"name":"OptimismMintableERC20Factory","nameLocation":"779:28:230","scope":109832,"usedErrors":[]}],"license":"MIT"},"id":230}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.