4 txs
8 calls
constructor
constructor(address endpoint_, address owner_)
functions
allowInitializePath
viewfunction allowInitializePath(tuple origin) view returns (bool)
bridge
viewfunction bridge() view returns (address)
endpoint
viewfunction endpoint() view returns (address)
getAddressByReadableSymbol
viewfunction getAddressByReadableSymbol(string readableSymbol) view returns (uint8 tokenType, address token)
getAddressBySymbol
viewfunction getAddressBySymbol(bytes31 symbol) view returns (uint8 tokenType, address token)
getNativeFee
viewfunction getNativeFee(uint32 dstEid, uint64 gasLimit) view returns (uint256 nativeFee)
getReadableSymbolByAddress
viewfunction getReadableSymbolByAddress(address token) view returns (uint8 tokenType, string readableSymbol)
getSymbolByAddress
viewfunction getSymbolByAddress(address token) view returns (uint8 tokenType, bytes31 symbol)
isComposeMsgSender
viewfunction isComposeMsgSender(tuple, bytes, address _sender) view returns (bool)
MIN_GAS_LIMIT
viewfunction MIN_GAS_LIMIT() view returns (uint64)
nextNonce
viewfunction nextNonce(uint32, bytes32) view returns (uint64 nonce)
oAppVersion
purefunction oAppVersion() pure returns (uint64 senderVersion, uint64 receiverVersion)
owner
viewfunction owner() view returns (address)
peers
viewfunction peers(uint32 eid) view returns (bytes32 peer)
addToken
nonpayablefunction addToken(address token, uint8 tokenType, bytes31 symbol)
bridgeERC20
payablefunction bridgeERC20(uint32 dstEid, address to, address token, uint256 amount, uint64 gasLimit) payable
lzReceive
payablefunction lzReceive(tuple _origin, bytes32 _guid, bytes _message, address _executor, bytes _extraData) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setBridge
nonpayablefunction setBridge(address newBridge)
setDelegate
nonpayablefunction setDelegate(address _delegate)
setPeer
nonpayablefunction setPeer(uint32 _eid, bytes32 _peer)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
BridgeSet
event BridgeSet(address bridge)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PeerSet
event PeerSet(uint32 eid, bytes32 peer)
TokenAdded
event TokenAdded(address token, uint8 tokenType, bytes31 symbol)
TokenReceived
event TokenReceived(uint32 indexed srcEid, address indexed to, address indexed token, uint256 amount, bytes32 guid)
TokenSent
event TokenSent(uint32 indexed dstEid, address indexed to, address indexed token, uint256 amount, bytes32 guid)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
BridgeMessage__InvalidPayload
error BridgeMessage__InvalidPayload()
FailedInnerCall
error FailedInnerCall()
InvalidDelegate
error InvalidDelegate()
InvalidEndpointCall
error InvalidEndpointCall()
InvalidOptionType
error InvalidOptionType(uint16 optionType)
LzTokenUnavailable
error LzTokenUnavailable()
NoPeer
error NoPeer(uint32 eid)
NotEnoughNative
error NotEnoughNative(uint256 msgValue)
OnlyEndpoint
error OnlyEndpoint(address addr)
OnlyPeer
error OnlyPeer(uint32 eid, bytes32 sender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReadableSymbol__StringTooLong
error ReadableSymbol__StringTooLong()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SBA__BridgeAlreadySet
error SBA__BridgeAlreadySet()
SBA__BridgeNotSet
error SBA__BridgeNotSet()
SBA__GasLimitBelowMinimum
error SBA__GasLimitBelowMinimum()
SBA__RecipientZeroAddress
error SBA__RecipientZeroAddress()
SBA__SymbolAlreadyAdded
error SBA__SymbolAlreadyAdded(bytes31 symbol)
SBA__SymbolUnknown
error SBA__SymbolUnknown(bytes31 symbol)
SBA__TokenAlreadyAdded
error SBA__TokenAlreadyAdded(address token)
SBA__TokenUnknown
error SBA__TokenUnknown(address token)
SBA__ZeroAddress
error SBA__ZeroAddress()
SBA__ZeroAmount
error SBA__ZeroAmount()
SBA__ZeroSymbol
error SBA__ZeroSymbol()
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162002cae38038062002cae83398101604081905262000034916200017c565b81818181806001600160a01b0381166200006857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b62000073816200010f565b506001600160a01b038083166080528116620000a257604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000ea57600080fd5b505af1158015620000ff573d6000803e3d6000fd5b50505050505050505050620001b4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200017757600080fd5b919050565b600080604083850312156200019057600080fd5b6200019b836200015f565b9150620001ab602084016200015f565b90509250929050565b608051612ab4620001fa600039600081816102680152818161051e01528181611064015281816117540152818161192901528181611c8d0152611d860152612ab46000f3fe6080604052600436106101755760003560e01c80638da5cb5b116100cb578063ca5eb5e11161007f578063edd29e9211610059578063edd29e9214610497578063f2fde38b146104b7578063ff7bd03d146104d757600080fd5b8063ca5eb5e11461041c578063de50fcec1461043c578063e78cea921461046a57600080fd5b8063a811504f116100b0578063a811504f146103ae578063bb0b6a53146103c1578063c1d02f9a146103ee57600080fd5b80638da5cb5b146103635780638dd148021461038e57600080fd5b80633400288b1161012d5780637ce1ffeb116101075780637ce1ffeb146102c45780637d25a05e146102f457806382413eac1461031757600080fd5b80633400288b146102365780635e280f1114610256578063715018a6146102af57600080fd5b80631495f0fd1161015e5780631495f0fd146101c657806317442b70146101e65780631c3eab281461020857600080fd5b80630f791c261461017a57806313137d65146101b1575b600080fd5b34801561018657600080fd5b5061019a6101953660046120e4565b6104f7565b6040516101a89291906121d9565b60405180910390f35b6101c46101bf366004612262565b61051c565b005b3480156101d257600080fd5b506101c46101e1366004612337565b61061b565b3480156101f257600080fd5b50604080516001815260026020820152016101a8565b34801561021457600080fd5b506102286102233660046123ac565b6109dc565b6040519081526020016101a8565b34801561024257600080fd5b506101c46102513660046123e3565b610aa3565b34801561026257600080fd5b5061028a7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a8565b3480156102bb57600080fd5b506101c4610ab9565b3480156102d057600080fd5b506102db620186a081565b60405167ffffffffffffffff90911681526020016101a8565b34801561030057600080fd5b506102db61030f3660046123e3565b600092915050565b34801561032357600080fd5b5061035361033236600461240d565b73ffffffffffffffffffffffffffffffffffffffff81163014949350505050565b60405190151581526020016101a8565b34801561036f57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff1661028a565b34801561039a57600080fd5b506101c46103a93660046120e4565b610acd565b6101c46103bc366004612474565b610beb565b3480156103cd57600080fd5b506102286103dc3660046124da565b60016020526000908152604090205481565b3480156103fa57600080fd5b5061040e6104093660046124f5565b610f65565b6040516101a8929190612510565b34801561042857600080fd5b506101c46104373660046120e4565b611017565b34801561044857600080fd5b5061045c6104573660046120e4565b6110c3565b6040516101a8929190612541565b34801561047657600080fd5b5060025461028a9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104a357600080fd5b5061040e6104b23660046125ad565b611167565b3480156104c357600080fd5b506101c46104d23660046120e4565b61118a565b3480156104e357600080fd5b506103536104f236600461267c565b6111ee565b600060606000610506846110c3565b909350905061051481611224565b915050915091565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610592576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906105ac906105a7908a6124da565b61133e565b14610603576105be60208801886124da565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610589565b61061287878787878787611393565b50505050505050565b610623611601565b73ffffffffffffffffffffffffffffffffffffffff8316610670576040517f3e158de400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081166106c9576040517fd59f16a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054610100900460081b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001615610768576040517f492d202300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610589565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008116600090815260046020526040902054610100900473ffffffffffffffffffffffffffffffffffffffff1615610810576040517fd3811d9d0000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082166004820152602401610589565b604051806040016040528083600181111561082d5761082d612101565b81527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0080841660209283015273ffffffffffffffffffffffffffffffffffffffff861660009081526003909252604090912082518154919290918391166001838181111561089d5761089d612101565b021790555060209190910151815460089190911c6101000260ff90911617905560408051808201909152808360018111156108da576108da612101565b815273ffffffffffffffffffffffffffffffffffffffff85166020918201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0080841660009081526004909252604090912082518154919290918391166001838181111561094a5761094a612101565b021790555060209190910151815473ffffffffffffffffffffffffffffffffffffffff909116610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161790556040517f0456a3e963e86d2cd1495c2ea74135613d99cee3d94085d6aa1333e6ccc4b695906109cf90859085908590612698565b60405180910390a1505050565b6000620186a067ffffffffffffffff83161015610a25576040517f7f3c87ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a32818080611654565b9050610a988482610a918667ffffffffffffffff166000610a8a604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b91906116bd565b600061173e565b519150505b92915050565b610aab611601565b610ab5828261182c565b5050565b610ac1611601565b610acb6000611881565b565b610ad5611601565b73ffffffffffffffffffffffffffffffffffffffff8116610b22576040517f3e158de400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025473ffffffffffffffffffffffffffffffffffffffff1615610b72576040517f597f86ca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fa49730bff544fd0b716395c592e39c6fd2d2481a19b9229b5b240483db95a4959060200160405180910390a150565b73ffffffffffffffffffffffffffffffffffffffff8416610c38576040517f3e158de400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600003610c72576040517f5308d1f300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620186a067ffffffffffffffff82161015610cb9576040517f7f3c87ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025473ffffffffffffffffffffffffffffffffffffffff1680610d09576040517ffad4dcdc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610d15866110c3565b90925090506000826001811115610d2e57610d2e612101565b03610dbe576040517f79cc67900000000000000000000000000000000000000000000000000000000081523360048201526024810186905273ffffffffffffffffffffffffffffffffffffffff8716906379cc679090604401600060405180830381600087803b158015610da157600080fd5b505af1158015610db5573d6000803e3d6000fd5b50505050610e5f565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8481166024830152604482018790528716906323b872dd906064016020604051808303816000875af1158015610e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5d91906126f2565b505b6000610edd89610e708a858a611654565b610ec18867ffffffffffffffff166000610a8a604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b60405180604001604052803481526020016000815250336118f6565b6000015190508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a63ffffffff167fe24e6284bb4ec2f5820189573deff7603191eb850be5a872ac3b72d477cdc58d8985604051610f52929190918252602082015260400190565b60405180910390a4505050505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00811660009081526004602052604090205460ff811690610100900473ffffffffffffffffffffffffffffffffffffffff1680611012576040517f79fd14110000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084166004820152602401610589565b915091565b61101f611601565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156110a857600080fd5b505af11580156110bc573d6000803e3d6000fd5b5050505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526003602052604090205460ff811690610100900460081b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008116611012576040517f8ceb423800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610589565b600080600061117584611a0e565b905061118081610f65565b9250925050915091565b611192611601565b73ffffffffffffffffffffffffffffffffffffffff81166111e2576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610589565b6111eb81611881565b50565b600060208201803590600190839061120690866124da565b63ffffffff1681526020810191909152604001600020541492915050565b6060601f60005b601f811015611283578381601f811061124657611246612714565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001660000361127b57809150611283565b60010161122b565b5060008167ffffffffffffffff81111561129f5761129f61257e565b6040519080825280601f01601f1916602001820160405280156112c9576020820181803683370190505b50905060005b82811015611336578481601f81106112e9576112e9612714565b1a60f81b8282815181106112ff576112ff612714565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016112cf565b509392505050565b63ffffffff811660009081526001602052604081205480610a9d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610589565b60008060006113a28888611a55565b6002549295509093509150899073ffffffffffffffffffffffffffffffffffffffff16806113fc576040517ffad4dcdc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061140886610f65565b9092509050600082600181111561142157611421612101565b036114c9576040517f20d7b32700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015282811660248301526044820187905260006064830152608482018690528416906320d7b3279060a401600060405180830381600087803b1580156114ac57600080fd5b505af11580156114c0573d6000803e3d6000fd5b50505050611568565b6040517f1cf5f07f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301528281166024830152604482018790526000606483015260848201869052841690631cf5f07f9060a401600060405180830381600087803b15801561154f57600080fd5b505af1158015611563573d6000803e3d6000fd5b505050505b8073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168f60000160208101906115a991906124da565b63ffffffff167fdacad4857568b1be1bc81a68218d331a0b5cb59e116a32d2121cb960c6c7f4f588886040516115e9929190918252602082015260400190565b60405180910390a45050505050505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610acb576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610589565b6040805173ffffffffffffffffffffffffffffffffffffffff851660208201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168183015260608082018490528251808303909101815260809091019091525b9392505050565b60608360036116cd826000611aac565b61ffff161461171a576116e1816000611aac565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff9091166004820152602401610589565b60006117268585611b2c565b905061173486600183611bdd565b9695505050505050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff1681526020016117ae8961133e565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016117e3929190612743565b6040805180830381865afa1580156117ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118239190612836565b95945050505050565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6118fe61207a565b600061190d8460000151611c48565b602085015190915015611927576119278460200151611c89565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016119848c61133e565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016119c0929190612743565b60806040518083038185885af11580156119de573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a039190612852565b979650505050505050565b6000601f82511115611a4c576040517fe34b4e5d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a9d826128ba565b6000808060608414611a93576040517f7d52e50600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a9f8486018661290a565b9250925092509250925092565b6000611ab9826002612977565b83511015611b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e64730000000000000000000000006044820152606401610589565b50016002015190565b60606fffffffffffffffffffffffffffffffff821615611b9557604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b166030820152016040516020818303038152906040526116b6565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b1660208201526030016040516020818303038152906040529392505050565b6060836003611bed826000611aac565b61ffff1614611c01576116e1816000611aac565b846001611c0e8551611dab565b611c1990600161298a565b8686604051602001611c2f9594939291906129ac565b6040516020818303038152906040529150509392505050565b6000813414611c85576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610589565b5090565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1a9190612a45565b905073ffffffffffffffffffffffffffffffffffffffff8116611d69576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab573ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085611df3565b600061ffff821115611c85576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526010600482015260248101839052604401610589565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052611e88908590611e8e565b50505050565b6000611eb073ffffffffffffffffffffffffffffffffffffffff841683611f29565b90508051600014158015611ed5575080806020019051810190611ed391906126f2565b155b15611f24576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602401610589565b505050565b60606116b683836000846000808573ffffffffffffffffffffffffffffffffffffffff168486604051611f5c9190612a62565b60006040518083038185875af1925050503d8060008114611f99576040519150601f19603f3d011682016040523d82523d6000602084013e611f9e565b606091505b5091509150611734868383606082611fbe57611fb982612038565b6116b6565b8151158015611fe2575073ffffffffffffffffffffffffffffffffffffffff84163b155b15612031576040517f9996b31500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610589565b50806116b6565b8051156120485780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016120bd604051806040016040528060008152602001600081525090565b905290565b73ffffffffffffffffffffffffffffffffffffffff811681146111eb57600080fd5b6000602082840312156120f657600080fd5b81356116b6816120c2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110612167577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b60005b8381101561218657818101518382015260200161216e565b50506000910152565b600081518084526121a781602086016020860161216b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6121e38184612130565b6040602082015260006121f9604083018461218f565b949350505050565b60006060828403121561221357600080fd5b50919050565b60008083601f84011261222b57600080fd5b50813567ffffffffffffffff81111561224357600080fd5b60208301915083602082850101111561225b57600080fd5b9250929050565b600080600080600080600060e0888a03121561227d57600080fd5b6122878989612201565b965060608801359550608088013567ffffffffffffffff808211156122ab57600080fd5b6122b78b838c01612219565b909750955060a08a013591506122cc826120c2565b90935060c089013590808211156122e257600080fd5b506122ef8a828b01612219565b989b979a50959850939692959293505050565b80357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008116811461233257600080fd5b919050565b60008060006060848603121561234c57600080fd5b8335612357816120c2565b925060208401356002811061236b57600080fd5b915061237960408501612302565b90509250925092565b803563ffffffff8116811461233257600080fd5b67ffffffffffffffff811681146111eb57600080fd5b600080604083850312156123bf57600080fd5b6123c883612382565b915060208301356123d881612396565b809150509250929050565b600080604083850312156123f657600080fd5b6123ff83612382565b946020939093013593505050565b60008060008060a0858703121561242357600080fd5b61242d8686612201565b9350606085013567ffffffffffffffff81111561244957600080fd5b61245587828801612219565b9094509250506080850135612469816120c2565b939692955090935050565b600080600080600060a0868803121561248c57600080fd5b61249586612382565b945060208601356124a5816120c2565b935060408601356124b5816120c2565b92506060860135915060808601356124cc81612396565b809150509295509295909350565b6000602082840312156124ec57600080fd5b6116b682612382565b60006020828403121561250757600080fd5b6116b682612302565b6040810161251e8285612130565b73ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b6040810161254f8285612130565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831660208301529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602082840312156125bf57600080fd5b813567ffffffffffffffff808211156125d757600080fd5b818401915084601f8301126125eb57600080fd5b8135818111156125fd576125fd61257e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156126435761264361257e565b8160405282815287602084870101111561265c57600080fd5b826020860160208301376000928101602001929092525095945050505050565b60006060828403121561268e57600080fd5b6116b68383612201565b73ffffffffffffffffffffffffffffffffffffffff84168152606081016126c26020830185612130565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083166040830152949350505050565b60006020828403121561270457600080fd5b815180151581146116b657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261277960e084018261218f565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526127b4828261218f565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b6000604082840312156127f957600080fd5b6040516040810181811067ffffffffffffffff8211171561281c5761281c61257e565b604052825181526020928301519281019290925250919050565b60006040828403121561284857600080fd5b6116b683836127e7565b60006080828403121561286457600080fd5b6040516060810181811067ffffffffffffffff821117156128875761288761257e565b60405282518152602083015161289c81612396565b60208201526128ae84604085016127e7565b60408201529392505050565b6000815160208301517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008082169350601f83101561290257808184601f0360031b1b83161693505b505050919050565b60008060006060848603121561291f57600080fd5b833561292a816120c2565b925061293860208501612302565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a9d57610a9d612948565b61ffff8181168382160190808211156129a5576129a5612948565b5092915050565b600086516129be818460208b0161216b565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b166003830152508351612a3681600484016020880161216b565b01600401979650505050505050565b600060208284031215612a5757600080fd5b81516116b6816120c2565b60008251612a7481846020870161216b565b919091019291505056fea2646970667358221220ad2da2d438fc6878b1961adcd74fffd0665a113649de33271bad8be4a75d761064736f6c634300081800330000000000000000000000001a44076050125825900e736c501f859c50fe728c000000000000000000000000b73acb429ba868984c0236bdf940d4fe1e643f27