0 txs
0 calls
constructor
constructor(address _layerZeroEndpointV2)
functions
blockUpdaters
viewfunction blockUpdaters(uint32) view returns (address)
chainFeeLookup
viewfunction chainFeeLookup(uint32) view returns (uint256)
feeBalance
viewfunction feeBalance() view returns (uint256 balance)
feeManager
viewfunction feeManager(address) view returns (bool)
getFee
viewfunction getFee(uint32 _dstEid, uint64, address, bytes) view returns (uint256 fee)
getLzMessageLib
viewfunction getLzMessageLib(address _msgLib) view returns (tuple)
getLzMessageLibLength
viewfunction getLzMessageLibLength() view returns (uint256)
hashLookup
viewfunction hashLookup(bytes _encodedPayload) view returns (bool)
isSupportedMessageLib
viewfunction isSupportedMessageLib(address _messageLib) view returns (bool)
layerZeroEndpointV2
viewfunction layerZeroEndpointV2() view returns (address)
owner
viewfunction owner() view returns (address)
supportedDstChain
viewfunction supportedDstChain(uint32) view returns (bool)
zkMptValidator
viewfunction zkMptValidator() view returns (address)
addLzMessageLib
nonpayablefunction addLzMessageLib(address _messageLib)
assignJob
payablefunction assignJob(tuple _param, bytes) payable returns (uint256 fee)
batchVerify
nonpayablefunction batchVerify(bytes32[] _blockHashs, bytes[] _encodedPayloads, bytes[] _zkMptProof)
initialize
nonpayablefunction initialize()
removeLzMessageLib
nonpayablefunction removeLzMessageLib(address _messageLib)
renounceOwnership
nonpayablefunction renounceOwnership()
setBlockUpdater
nonpayablefunction setBlockUpdater(uint32 _srcEid, address _newBlockUpdater)
setDstChain
nonpayablefunction setDstChain(uint32 _dstEid, bool enabled)
setFee
nonpayablefunction setFee(uint32 _dstEid, uint256 _price)
setFeeManager
nonpayablefunction setFeeManager(address feeManager_, bool enabled_)
setZKMptValidator
nonpayablefunction setZKMptValidator(address _newZkMptValidator)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
verify
nonpayablefunction verify(bytes32 _blockHash, bytes _encodedPayload, bytes _zkMptProof)
withdrawFee
nonpayablefunction withdrawFee(address _messageLib, address _to)
withdrawFeeAll
nonpayablefunction withdrawFeeAll(address _to)
events
DstChainStatusChanged
event DstChainStatusChanged(uint32 dstEid, bool enabled)
Initialized
event Initialized(uint8 version)
NewBlockUpdater
event NewBlockUpdater(uint32 srcEid, address oldBlockUpdater, address newBlockUpdater)
NewZKMptValidator
event NewZKMptValidator(address oldValidator, address newValidator)
OracleNotified
event OracleNotified(uint32 dstEid, uint64 blockConfirmations, address userApplication, uint256 fee)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetFee
event SetFee(uint32 dstEid, uint256 fee)
SetFeeManager
event SetFeeManager(address feeManager, bool enabled)
WithdrawFee
event WithdrawFee(address messageLib, address receiver, uint256 amount)
errors
AlreadySet
error AlreadySet()
BlockNotSet
error BlockNotSet()
InsufficientFee
error InsufficientFee()
InvalidParameters
error InvalidParameters()
InvalidZkMptProof
error InvalidZkMptProof()
MessageLibAlreadyAdded
error MessageLibAlreadyAdded()
MessageLibAlreadyDeleted
error MessageLibAlreadyDeleted()
OnlySendLib
error OnlySendLib()
Unauthorized
error Unauthorized()
UnsupportedChain
error UnsupportedChain(uint32 dstEid)
UnsupportedSendLib
error UnsupportedSendLib()
UnsupportedUpdater
error UnsupportedUpdater(uint32 srcEid)
ZeroAddress
error ZeroAddress()
ZkMptValidatorUnavailable
error ZkMptValidatorUnavailable()
creation bytecode
0x60a06040523480156200001157600080fd5b506040516200281d3803806200281d83398101604081905262000034916200013b565b6001600160a01b0381166200005c5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038116608052620000736200007a565b506200016d565b600054610100900460ff1615620000e75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000139576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200014e57600080fd5b81516001600160a01b03811681146200016657600080fd5b9392505050565b60805161268662000197600039600081816104c1015281816114630152611c9c01526126866000f3fe6080604052600436106101b75760003560e01c806384795a2c116100ec578063c879c6d81161008a578063dc7e3d5811610064578063dc7e3d5814610543578063de0c60d414610570578063e0ac429f1461059d578063f2fde38b146105b257600080fd5b8063c879c6d8146104e3578063ce19556a14610503578063d1ba4cc91461052357600080fd5b806395d376d7116100c657806395d376d71461045c5780639ad920c41461046f578063a541b37d1461048f578063b3129896146104af57600080fd5b806384795a2c146103fe5780638da5cb5b1461041e578063949fff5c1461043c57600080fd5b8063679ef7b0116101595780636dea4190116101335780636dea419014610384578063715018a6146103a457806380765130146103b95780638129fc1c146103e957600080fd5b8063679ef7b0146102f6578063698021491461034457806369f5d3861461036457600080fd5b806332d269301161019557806332d269301461027f5780635bf48e3a146102a157806360b71d4e146102c157806362b69baa146102d657600080fd5b806329681700146101bc57806330bb3aac1461020157806331108fbc14610246575b600080fd5b3480156101c857600080fd5b506101ec6101d7366004611e54565b60666020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561020d57600080fd5b5061023861021c366004611edc565b5050505063ffffffff1660009081526065602052604090205490565b6040519081526020016101f8565b34801561025257600080fd5b506101ec610261366004611f56565b6001600160a01b03166000908152606a602052604090205460ff1690565b34801561028b57600080fd5b5061029f61029a366004611f56565b6105d2565b005b3480156102ad57600080fd5b5061029f6102bc366004611f73565b61077f565b3480156102cd57600080fd5b506102386108cd565b3480156102e257600080fd5b5061029f6102f1366004611f56565b6109ac565b34801561030257600080fd5b5061032c610311366004611e54565b6067602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101f8565b34801561035057600080fd5b5061029f61035f366004612021565b610ba3565b34801561037057600080fd5b5061029f61037f366004611f56565b610e2d565b34801561039057600080fd5b5061029f61039f3660046120bb565b610ef3565b3480156103b057600080fd5b5061029f610ffb565b3480156103c557600080fd5b506101ec6103d4366004611f56565b606b6020526000908152604090205460ff1681565b3480156103f557600080fd5b5061029f61100f565b34801561040a57600080fd5b5061029f610419366004611f56565b61113f565b34801561042a57600080fd5b506033546001600160a01b031661032c565b34801561044857600080fd5b5060685461032c906001600160a01b031681565b61023861046a3660046120f2565b611311565b34801561047b57600080fd5b506101ec61048a366004612163565b61145e565b34801561049b57600080fd5b5061029f6104aa3660046121a5565b611675565b3480156104bb57600080fd5b5061032c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ef57600080fd5b5061029f6104fe3660046121cf565b6116f2565b34801561050f57600080fd5b5061029f61051e3660046121fb565b61183a565b34801561052f57600080fd5b5061029f61053e366004612229565b611906565b34801561054f57600080fd5b5061056361055e366004611f56565b6119a5565b6040516101f8919061225b565b34801561057c57600080fd5b5061023861058b366004611e54565b60656020526000908152604090205481565b3480156105a957600080fd5b50606954610238565b3480156105be57600080fd5b5061029f6105cd366004611f56565b611a3a565b6105da611ab0565b6001600160a01b0381166000908152606a602052604090205460ff16610613576040516301d007a760e01b815260040160405180910390fd5b6001600160a01b0381166000818152606a6020526040808220805460ff191690555163faaebd2160e01b815230600482015290919063faaebd2190602401602060405180830381865afa15801561066e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069291906122a8565b9050801561077b57816001600160a01b031663fd9be5226106bb6033546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b505050507ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb8261074f6033546001600160a01b031690565b604080516001600160a01b03938416815292909116602083015281018390526060015b60405180910390a15b5050565b6068546001600160a01b03166107a8576040516314e8eced60e11b815260040160405180910390fd5b60685460405163057d916d60e11b81526000916001600160a01b031690630afb22da906107db90869086906004016122ea565b6040805180830381865afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b919061233d565b90508060200151858560405161083292919061236f565b6040518091039020146108585760405163b5e367c560e01b815260040160405180910390fd5b6108c586826000015161086b8888611b0a565b6108758989611b2d565b61087f8a8a611b4d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506108c092508d91508c9050611b69565b611b93565b505050505050565b6000805b6069548110156109a8576000606982815481106108f0576108f061237f565b60009182526020808320909101546001600160a01b0316808352606a90915260409091205490915060ff16156109955760405163faaebd2160e01b81523060048201526001600160a01b0382169063faaebd2190602401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906122a8565b61099290846123ab565b92505b50806109a0816123be565b9150506108d1565b5090565b6109b4611ab0565b6000816001600160a01b0316631881d94d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1891906123e4565b90506002816002811115610a2e57610a2e612245565b14158015610a4e57506000816002811115610a4b57610a4b612245565b14155b15610a6c57604051633885d60360e01b815260040160405180910390fd5b6001600160a01b0382166000908152606a602052604090205460ff1615610aa65760405163a1dfd62f60e01b815260040160405180910390fd5b6040518060600160405280600115158152602001826002811115610acc57610acc612245565b81526001600160a01b03841660209182018190526000908152606a8252604090208251815490151560ff19821681178355928401519192839161ff001990911661ffff1990911617610100836002811115610b2957610b29612245565b021790555060409190910151815462010000600160b01b031916620100006001600160a01b039283160217909155606980546001810182556000919091527f7fb4302e8e91f9110a6554c2c0a24601252c2a42c2220ca988efcfe3999143080180546001600160a01b031916939091169290921790915550565b6068546001600160a01b0316610bcc576040516314e8eced60e11b815260040160405180910390fd5b8483141580610bdb5750848114155b15610bf957604051630e52390960e41b815260040160405180910390fd5b604080518082019091526000808252602082015260005b86811015610e23576068546001600160a01b0316630afb22da858584818110610c3b57610c3b61237f565b9050602002810190610c4d9190612401565b6040518363ffffffff1660e01b8152600401610c6a9291906122ea565b6040805180830381865afa158015610c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caa919061233d565b91508160200151868683818110610cc357610cc361237f565b9050602002810190610cd59190612401565b604051610ce392919061236f565b604051809103902014610d095760405163b5e367c560e01b815260040160405180910390fd5b610e11888883818110610d1e57610d1e61237f565b905060200201358360000151610d56898986818110610d3f57610d3f61237f565b9050602002810190610d519190612401565b611b0a565b610d828a8a87818110610d6b57610d6b61237f565b9050602002810190610d7d9190612401565b611b2d565b610dae8b8b88818110610d9757610d9761237f565b9050602002810190610da99190612401565b611b4d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506108c092508e91508d905089818110610dfa57610dfa61237f565b9050602002810190610e0c9190612401565b611b69565b80610e1b816123be565b915050610c10565b5050505050505050565b610e35611ab0565b6001600160a01b038116610e5c5760405163d92e233d60e01b815260040160405180910390fd5b6068546001600160a01b03808316911603610e8a5760405163a741a04560e01b815260040160405180910390fd5b606854604080516001600160a01b03928316815291831660208301527f10e0a034592ae57bd3e0a9468eba02aaf661e61275bf00efe40f956ed89483dd910160405180910390a1606880546001600160a01b0319166001600160a01b0392909216919091179055565b610efb611ab0565b6001600160a01b038116610f225760405163d92e233d60e01b815260040160405180910390fd5b63ffffffff82166000908152606760205260409020546001600160a01b03808316911603610f635760405163a741a04560e01b815260040160405180910390fd5b63ffffffff82166000818152606760209081526040918290205482519384526001600160a01b0390811691840191909152831682820152517f9738de301c763a91427d836968b3504d77cf4c72624e54407b8482707897fcac9181900360600190a163ffffffff91909116600090815260676020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b611003611ab0565b61100d6000611d7a565b565b600054610100900460ff161580801561102f5750600054600160ff909116105b806110495750303b158015611049575060005460ff166001145b6110b15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156110d4576000805461ff0019166101001790555b336000908152606b60205260409020805460ff191660011790556110f6611dcc565b801561113c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b611147611ab0565b6000805b6069548110156112f05760006069828154811061116a5761116a61237f565b6000918252602090912001546001600160a01b031690506111a3816001600160a01b03166000908152606a602052604090205460ff1690565b6111ad57506112de565b60405163faaebd2160e01b81523060048201526000906001600160a01b0383169063faaebd2190602401602060405180830381865afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121891906122a8565b905080156112db57604051637ecdf29160e11b81526001600160a01b0386811660048301526024820183905283169063fd9be52290604401600060405180830381600087803b15801561126a57600080fd5b505af115801561127e573d6000803e3d6000fd5b5050604080516001600160a01b038087168252891660208201529081018490527ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb9250606001905060405180910390a16112d881856123ab565b93505b50505b806112e8816123be565b91505061114b565b508060000361077b5760405162976f7560e21b815260040160405180910390fd5b60006066816113236020870187611e54565b63ffffffff16815260208101919091526040016000205460ff166113705761134e6020850185611e54565b604051635c12eebb60e11b815263ffffffff90911660048201526024016110a8565b336000908152606a602052604090205460ff166113a057604051636073e9bf60e11b815260040160405180910390fd5b606560006113b16020870187611e54565b63ffffffff1681526020808201929092526040016000205491507f915615b444fd15cbe20634e8d0a109373bea8c1ed15d3c503ca9e70547a4c220906113f990860186611e54565b6114096080870160608801612448565b61141960a0880160808901611f56565b6040805163ffffffff909416845267ffffffffffffffff90921660208401526001600160a01b0316908201526060810183905260800160405180910390a19392505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663402f846861149a8686611b2d565b6114a48787611b0a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115169190612465565b5090506000816001600160a01b03166327d12cd96115348787611b4d565b61153e8989611b69565b6040518463ffffffff1660e01b815260040161155c93929190612494565b602060405180830381865afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d91906123e4565b905060008160028111156115b3576115b3612245565b146115c35760019250505061166f565b6000826001600160a01b0316633c782a526115de8888611b4d565b6040516115ec92919061236f565b60405180910390206115fe8989611b69565b6040516001600160e01b031960e085901b168152600481019290925260248201523060448201526064016040805180830381865afa158015611644573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166891906124b8565b5193505050505b92915050565b336000908152606b602052604090205460ff166116a4576040516282b42960e81b815260040160405180910390fd5b63ffffffff8216600081815260656020908152604091829020849055815192835282018390527f3722a9f6d5cdd3d4506591f2182163eedf8e74f346faf115ae42f4f0ffdc1a1f9101610772565b6116fa611ab0565b60405163faaebd2160e01b81523060048201526000906001600160a01b0384169063faaebd2190602401602060405180830381865afa158015611741573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176591906122a8565b9050806000036117875760405162976f7560e21b815260040160405180910390fd5b604051637ecdf29160e11b81526001600160a01b0383811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b1580156117d157600080fd5b505af11580156117e5573d6000803e3d6000fd5b5050604080516001600160a01b038088168252861660208201529081018490527ff15a0a3784dea9b4fe33bc98e2450745e262d310237b2868ea8ef56967ff3ecb9250606001905060405180910390a1505050565b611842611ab0565b6001600160a01b0382166118695760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166000908152606b602052604090205481151560ff9091161515036118aa5760405163a741a04560e01b815260040160405180910390fd5b6001600160a01b0382166000818152606b6020908152604091829020805460ff19168515159081179091558251938452908301527f882386da003a547e108f4013481dc50dd637ba9e2f89b0a884803db03eef247a9101610772565b61190e611ab0565b63ffffffff821660009081526066602052604090205481151560ff90911615150361194c5760405163a741a04560e01b815260040160405180910390fd5b63ffffffff8216600081815260666020908152604091829020805460ff19168515159081179091558251938452908301527f968effd490f9188c28dc3411469f24794e98398797d621c8670c5ff1f99dd4af9101610772565b6040805160608082018352600080835260208084018290528385018290526001600160a01b0386168252606a8152908490208451928301909452835460ff808216151584529394929391840191610100909104166002811115611a0a57611a0a612245565b6002811115611a1b57611a1b612245565b815290546201000090046001600160a01b031660209091015292915050565b611a42611ab0565b6001600160a01b038116611aa75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016110a8565b61113c81611d7a565b6033546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016110a8565b6000611b1a600d600984866124f9565b611b2391612523565b60e01c9392505050565b6000611b3d6051603184866124f9565b611b4691612553565b9392505050565b366000611b5d60518285876124f9565b915091505b9250929050565b6000611b758383611dfb565b604051611b8392919061236f565b6040518091039020905092915050565b63ffffffff84166000908152606760205260409020546001600160a01b031680611bd8576040516349659b1360e01b815263ffffffff861660048201526024016110a8565b60405163254252af60e01b8152600481018890526024810187905260009081906001600160a01b0384169063254252af906044016040805180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c9190612571565b9150915081611c6e5760405163b767edf560e01b815260040160405180910390fd5b604051630805f08d60e31b81526001600160a01b03878116600483015263ffffffff891660248301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063402f8468906044016040805180830381865afa158015611ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d089190612465565b50604051630111a9b760e11b81529091506001600160a01b03821690630223536e90611d3c9089908990879060040161259f565b600060405180830381600087803b158015611d5657600080fd5b505af1158015611d6a573d6000803e3d6000fd5b5050505050505050505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16611df35760405162461bcd60e51b81526004016110a890612605565b61100d611e0b565b366000611b5d83605181876124f9565b600054610100900460ff16611e325760405162461bcd60e51b81526004016110a890612605565b61100d33611d7a565b803563ffffffff81168114611e4f57600080fd5b919050565b600060208284031215611e6657600080fd5b611b4682611e3b565b67ffffffffffffffff8116811461113c57600080fd5b6001600160a01b038116811461113c57600080fd5b60008083601f840112611eac57600080fd5b50813567ffffffffffffffff811115611ec457600080fd5b602083019150836020828501011115611b6257600080fd5b600080600080600060808688031215611ef457600080fd5b611efd86611e3b565b94506020860135611f0d81611e6f565b93506040860135611f1d81611e85565b9250606086013567ffffffffffffffff811115611f3957600080fd5b611f4588828901611e9a565b969995985093965092949392505050565b600060208284031215611f6857600080fd5b8135611b4681611e85565b600080600080600060608688031215611f8b57600080fd5b85359450602086013567ffffffffffffffff80821115611faa57600080fd5b611fb689838a01611e9a565b90965094506040880135915080821115611fcf57600080fd5b50611f4588828901611e9a565b60008083601f840112611fee57600080fd5b50813567ffffffffffffffff81111561200657600080fd5b6020830191508360208260051b8501011115611b6257600080fd5b6000806000806000806060878903121561203a57600080fd5b863567ffffffffffffffff8082111561205257600080fd5b61205e8a838b01611fdc565b9098509650602089013591508082111561207757600080fd5b6120838a838b01611fdc565b9096509450604089013591508082111561209c57600080fd5b506120a989828a01611fdc565b979a9699509497509295939492505050565b600080604083850312156120ce57600080fd5b6120d783611e3b565b915060208301356120e781611e85565b809150509250929050565b60008060006040848603121561210757600080fd5b833567ffffffffffffffff8082111561211f57600080fd5b9085019060a0828803121561213357600080fd5b9093506020850135908082111561214957600080fd5b5061215686828701611e9a565b9497909650939450505050565b6000806020838503121561217657600080fd5b823567ffffffffffffffff81111561218d57600080fd5b61219985828601611e9a565b90969095509350505050565b600080604083850312156121b857600080fd5b6121c183611e3b565b946020939093013593505050565b600080604083850312156121e257600080fd5b82356120d781611e85565b801515811461113c57600080fd5b6000806040838503121561220e57600080fd5b823561221981611e85565b915060208301356120e7816121ed565b6000806040838503121561223c57600080fd5b61221983611e3b565b634e487b7160e01b600052602160045260246000fd5b815115158152602082015160608201906003811061228957634e487b7160e01b600052602160045260246000fd5b60208301526040928301516001600160a01b0316929091019190915290565b6000602082840312156122ba57600080fd5b5051919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006122fe6020830184866122c1565b949350505050565b6040805190810167ffffffffffffffff8111828210171561233757634e487b7160e01b600052604160045260246000fd5b60405290565b60006040828403121561234f57600080fd5b612357612306565b82518152602083015160208201528091505092915050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561166f5761166f612395565b6000600182016123d0576123d0612395565b5060010190565b6003811061113c57600080fd5b6000602082840312156123f657600080fd5b8151611b46816123d7565b6000808335601e1984360301811261241857600080fd5b83018035915067ffffffffffffffff82111561243357600080fd5b602001915036819003821315611b6257600080fd5b60006020828403121561245a57600080fd5b8135611b4681611e6f565b6000806040838503121561247857600080fd5b825161248381611e85565b60208401519092506120e7816121ed565b6040815260006124a86040830185876122c1565b9050826020830152949350505050565b6000604082840312156124ca57600080fd5b6124d2612306565b82516124dd816121ed565b815260208301516124ed81611e6f565b60208201529392505050565b6000808585111561250957600080fd5b8386111561251657600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561254b5780818660040360031b1b83161692505b505092915050565b8035602083101561166f57600019602084900360031b1b1692915050565b6000806040838503121561258457600080fd5b825161258f816121ed565b6020939093015192949293505050565b606081526000845180606084015260005b818110156125cd57602081880181015160808684010152016125b0565b506000608082850101526080601f19601f83011684010191505083602083015267ffffffffffffffff83166040830152949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fea26469706673582212200b84b843e464f22a5baf1a3f2e252fb9993c72258ea7875cdd251021cd72c03b64736f6c634300081200330000000000000000000000001a44076050125825900e736c501f859c50fe728c